

#include "BUILTIN.h"

#include "Array.h"
extern OBJ __APartName_11;
extern OBJ _AOcOptions_14(OBJ,OBJ);extern OBJ __AOcOptions_14;

#include "Int.h"
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;
extern OBJ _AAbsyPrep_1(OBJ,OBJ,OBJ);extern OBJ __AAbsyPrep_1;

#include "Nat.h"
extern OBJ _AGlobSigInit_1(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigInit_1;
extern OBJ _AGlobSigFix_1(OBJ,OBJ);extern OBJ __AGlobSigFix_1;
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _AGlobSigEval_1(OBJ,OBJ);extern OBJ __AGlobSigEval_1;
extern OBJ __AOption_5;
extern OBJ __ASigAnaTexts_1;
extern OBJ _AGlobSig4SigAna_13(OBJ);extern OBJ __AGlobSig4SigAna_13;
extern OBJ _AGlobSigToText_1(OBJ,OBJ);extern OBJ __AGlobSigToText_1;
extern OBJ __AOcVerbose_2;
extern OBJ _AOcVerbose_4(OBJ,OBJ,OBJ);extern OBJ __AOcVerbose_4;
extern OBJ _AComCompose_5(OBJ,OBJ);extern OBJ __AComCompose_5;
extern OBJ _ADEBUG_2(OBJ,OBJ,OBJ);extern OBJ __ADEBUG_2;
extern OBJ _ASeqOfSeq_2(OBJ);extern OBJ __ASeqOfSeq_2;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ARep_27(OBJ,OBJ);extern OBJ __ARep_27;
extern OBJ __ARep_96;
extern OBJ __APragma_5;

#include "Denotation.h"
extern OBJ __AOcPos_9;
extern OBJ _AMap_22(OBJ,OBJ);extern OBJ __AMap_22;

#include "Char.h"

#include "Bitset.h"

#include "Real.h"
extern OBJ _ASigAna_1(OBJ,OBJ);OBJ __ASigAna_1; /* sigAna */
extern OBJ _ASigAna_3(OBJ,OBJ);OBJ __ASigAna_3; /* finitSigAna */
extern OBJ _ASigAna_4(OBJ);OBJ __ASigAna_4; /* addT */
OBJ __ASigAna_5; /* finitSigAna'5 */
extern OBJ _ASigAna_6(OBJ,OBJ,OBJ,OBJ);OBJ __ASigAna_6; /* sigAna'6 */

extern OBJ _ASigAna_1(OBJ x1,OBJ x2) /* sigAna */
{OBJ r;
 CPPRD(__ASigAnaTexts_1,1);
 CPPRD(x1,1);
 {OBJ x9;
  x9=_AOcVerbose_4(x1,__AOcVerbose_2,__ASigAnaTexts_1);
  {OBJ x11=FLD1(x2,1);OBJ x12=FLD1(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x11,1);CPPRD(x12,1);
    FRPRD(x2,1);}
   CPCLS(__ASigAna_6,1);
   {OBJ x13;
    x13=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ASigAna_6,3))(__ASigAna_6,x1,x11,x12);
    r=_AComCompose_5(x9,x13);}}}
 return r;}

extern OBJ _ASigAna_3(OBJ x1,OBJ x2) /* finitSigAna */
{OBJ r;
 CPPRD(__ASigAna_5,1);
 CPCLS(__ACom_47,1);
 CPCLS(__AGlobSigToText_1,1);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;OBJ x7;OBJ x8;
  x3=_AGlobSig4SigAna_13(x2);
  COPY(x3,1);
  x4=_AOcOptions_14(__ASigAna_5,x1);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x3);
  x6=_ADEBUG_2(x4,x5,x3);
  PRD(1,0,x7);FLD(x7,1)=x6;
  x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x7);
  PRD(2,0,r);FLD(r,1)=x8;FLD(r,2)=__ASeq_6;}
 return r;}

extern OBJ _ASigAna_4(OBJ x1) /* addT */
{OBJ r;
 if(ISTGPRD(x1,0)){
  r=x1;
 }else{
  {OBJ x32=FLD(x1,1);OBJ x33=FLD(x1,2);
   if(EXPRD(x1,1)){
    {OBJ x38;OBJ x43;OBJ x44;OBJ x45;
     if(ISPRM(x32)){
      x38=__ABUILTIN_3;
     }else{
      x38=__ABUILTIN_5;}
     if(ISTGPRM(x38,1)){
      if(ISPRM(x32)){
       HLT("Struct at <unknown> : undefined selection pos\'Struct:origin->pos");
      }else{
       {OBJ x40=FLD1(x32,2);
	COPY(x40,1);
	x43=x40;
	CPPRD(__ARep_96,1);
	COPY(__APragma_5,1);}}
     }else{
      CPPRD(__ARep_96,1);
      COPY(__APragma_5,1);
      x43=__AOcPos_9;}
     COPY(x43,1);
     PRD1(7,x44);FLD1(x44,1)=__ARep_96;FLD1(x44,2)=__AOption_5;FLD1(x44,3)=__ASeq_6;FLD1(x44,4)=x43;FLD1(x44,5)=__APartName_11;FLD1(x44,6)=__APragma_5;FLD1(x44,7)=x43;
     PRD1(2,x45);FLD1(x45,1)=x44;FLD1(x45,2)=x33;
     RPRD(x1,r);FLD(r,2)=x45;}
   }else{
    COPY(x32,1);COPY(x33,1);
    {OBJ x38;OBJ x43;OBJ x44;OBJ x45;
     if(ISPRM(x32)){
      x38=__ABUILTIN_3;
     }else{
      x38=__ABUILTIN_5;}
     if(ISTGPRM(x38,1)){
      if(ISPRM(x32)){
       HLT("Struct at <unknown> : undefined selection pos\'Struct:origin->pos");
      }else{
       {OBJ x40=FLD1(x32,2);
	COPY(x40,1);
	x43=x40;
	CPPRD(__ARep_96,1);
	COPY(__APragma_5,1);}}
     }else{
      CPPRD(__ARep_96,1);
      COPY(__APragma_5,1);
      x43=__AOcPos_9;}
     COPY(x43,1);
     PRD1(7,x44);FLD1(x44,1)=__ARep_96;FLD1(x44,2)=__AOption_5;FLD1(x44,3)=__ASeq_6;FLD1(x44,4)=x43;FLD1(x44,5)=__APartName_11;FLD1(x44,6)=__APragma_5;FLD1(x44,7)=x43;
     PRD1(2,x45);FLD1(x45,1)=x44;FLD1(x45,2)=x33;
     FRPRD(x1,1);PRD(2,1,r);FLD(r,1)=x32;FLD(r,2)=x45;}}}}
 return r;}

extern OBJ _ASigAna_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* sigAna'6 */
{OBJ r;
 CPCLS(__ASigAna_3,1);
 CPCLS(__AGlobSigFix_1,1);
 CPCLS(__AGlobSigEval_1,1);
 CPPRD(x1,3);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x82;OBJ x67;OBJ x52;OBJ x37;OBJ x22;OBJ x83;OBJ x84;OBJ x85;OBJ x86;OBJ x87;OBJ x88;OBJ x89;OBJ x90;OBJ x91;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigFix_1,1))(__AGlobSigFix_1,x1);
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_1,1))(__AGlobSigEval_1,x1);
  x7=(*(OBJ(*)(OBJ,OBJ))METHOD(__ASigAna_3,1))(__ASigAna_3,x1);
  if(ISPRM(x2)){
   HLT("Struct at <unknown> : undefined selection specsign\'Struct:struct->seq");
  }else{
   {OBJ x106=FLD1(x2,1);OBJ x107=FLD1(x2,2);OBJ x108=FLD1(x2,3);OBJ x109=FLD1(x2,4);OBJ x117=FLD1(x2,12);
    if(EXPRD(x2,1)){
     x52=x106;x22=x107;x67=x108;x82=x109;x37=x117;
     FLD1(x2,1)=NIL;FLD1(x2,2)=NIL;FLD1(x2,3)=NIL;FLD1(x2,4)=NIL;FLD1(x2,12)=NIL;DSPRD(x2);
    }else{
     COPY(x106,1);COPY(x107,1);COPY(x108,1);COPY(x109,1);COPY(x117,1);
     x52=x106;x22=x107;x67=x108;x82=x109;x37=x117;
     FRPRD(x2,1);}
    CPPRD(x1,1);
    CPCLS(__ASigAna_4,1);
    CPCLS(__ARep_27,1);
    CPCLS(__AGlobSigInit_1,1);}}
  x83=_AMap_22(__ARep_27,x37);
  x84=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__AGlobSigInit_1,4))(__AGlobSigInit_1,x52,x67,x82,x1);
  x85=_ASeqOfSeq_2(x83);
  x86=_ASeqMap_3(__ASigAna_4,x85);
  x87=_ASeq_26(x22,x86);
  x88=_AAbsyPrep_1(x87,x3,x1);
  x89=_AComCompose_5(x88,x84);
  x90=_AComCompose_5(x89,x5);
  x91=_AComCompose_5(x90,x6);
  r=_AComCompose_5(x91,x7);}
 return r;}

init_ASigAna()
{
 static int visited=0; if(visited) return; visited=1;
 init_ALexem();
 init_AAttributes();
 init_ADArray();
 init_ANatMap();
 init_AString();
 init_AStruct();
 init_AArray();
 init_ARepTab();
 init_APartName();
 init_APair();
 init_AStream();
 init_AOcOptions();
 init_AFile();
 init_AGlobSig();
 init_AInt();
 init_ACom();
 init_AAbsyPrep();
 init_ANat();
 init_AGlobSigInit();
 init_AVoid();
 init_AGlobSigFix();
 init_ASeq();
 init_AGlobSigEval();
 init_AOption();
 init_ASigAnaTexts();
 init_ATable();
 init_AGlobSig4SigAna();
 init_AUniqueTable();
 init_AGlobSigToText();
 init_ADeclEntry();
 init_AOcVerbose();
 init_APartNameEntry();
 init_AComCompose();
 init_AImpExpEntry();
 init_ADEBUG();
 init_AObjects();
 init_ASeqOfSeq();
 init_AName();
 init_ASeqMap();
 init_AGlobSigImpl();
 init_ASetByBST();
 init_ARep();
 init_ABSTree();
 init_APragma();
 init_ATree();
 init_AImpl();
 init_ASeqConv();
 init_AGlobPragma();
 init_ADenotation();
 init_AOcPos();
 init_AMapReduce();
 init_AMap();
 init_ASeqReduce();
 init_ASet();
 init_ADyn();
 init_AChar();
 init_AInterOpal();
 init_AFct();
 init_AOcError();
 init_ABitset();
 init_AReal();
 init_APatterns();
 CLS(4,_ASigAna_6,__ASigAna_6);
 DEN("printGsAna",__ASigAna_5);
 CLS(1,_ASigAna_4,__ASigAna_4);
 CLS(2,_ASigAna_3,__ASigAna_3);
 CLS(2,_ASigAna_1,__ASigAna_1);}

