

#include "BUILTIN.h"

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

#include "Array.h"
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;

#include "Nat.h"
extern OBJ _AComCompose_5(OBJ,OBJ);extern OBJ __AComCompose_5;
extern OBJ _ADEBUG_2(OBJ,OBJ,OBJ);extern OBJ __ADEBUG_2;
extern OBJ _ADEBUG_10(OBJ);extern OBJ __ADEBUG_10;
extern OBJ __ASeq_6;
extern OBJ _AGlobSig4SigAna_18(OBJ,OBJ,OBJ);extern OBJ __AGlobSig4SigAna_18;
extern OBJ _AGlobSig4SigAna_19(OBJ,OBJ,OBJ);extern OBJ __AGlobSig4SigAna_19;
extern OBJ _AGlobSig4SigAna_20(OBJ,OBJ);extern OBJ __AGlobSig4SigAna_20;
extern OBJ _AGlobSig4SigAna_22(OBJ,OBJ,OBJ);extern OBJ __AGlobSig4SigAna_22;
extern OBJ _AGlobSig4SigAna_23(OBJ,OBJ);extern OBJ __AGlobSig4SigAna_23;
extern OBJ _AGlobSig4SigAna_24(OBJ,OBJ);extern OBJ __AGlobSig4SigAna_24;
extern OBJ _AGlobSigEvalDecl_1(OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalDecl_1;
extern TUP2 _AGlobSigEvalDecl_2(OBJ,OBJ);extern OBJ __AGlobSigEvalDecl_2;

#include "Char.h"
extern OBJ _AGlobSigEvalInst_1(OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalInst_1;
extern TUP2 _AGlobSigEvalInst_2(OBJ,OBJ);extern OBJ __AGlobSigEvalInst_2;
extern OBJ _AGlobSigEvalInst_3(OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalInst_3;
extern OBJ _AGlobSigEvalInst_4(OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalInst_4;
extern OBJ _AGlobSigEvalOnly_1(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalOnly_1;
extern OBJ _AGlobSigEvalOnly_2(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalOnly_2;
extern OBJ _AGlobSigEvalParam_1(OBJ,OBJ,OBJ);extern OBJ __AGlobSigEvalParam_1;
extern OBJ _AGlobSigToText_1(OBJ,OBJ);extern OBJ __AGlobSigToText_1;

#include "Int.h"
extern OBJ __AOcExit_1;
extern OBJ __ASigAnaTexts_7;
extern OBJ __AOcVerbose_3;
extern OBJ _AOcVerbose_4(OBJ,OBJ,OBJ);extern OBJ __AOcVerbose_4;

#include "Denotation.h"

#include "Real.h"
extern OBJ _AGlobSigEval_1(OBJ,OBJ);OBJ __AGlobSigEval_1; /* globSigEval */
extern OBJ _AGlobSigEval_3(OBJ,OBJ);OBJ __AGlobSigEval_3; /* evalGlobSig1 */
extern OBJ _AGlobSigEval_4(OBJ,OBJ);OBJ __AGlobSigEval_4; /* evalGlobSig2 */
extern OBJ _AGlobSigEval_5(OBJ,OBJ);OBJ __AGlobSigEval_5; /* evalGlobSig3 */
extern OBJ _AGlobSigEval_6(OBJ,OBJ);OBJ __AGlobSigEval_6; /* evalGlobSig3b */
extern OBJ _AGlobSigEval_7(OBJ,OBJ);OBJ __AGlobSigEval_7; /* evalGlobSig4 */
extern OBJ _AGlobSigEval_8(OBJ,OBJ);OBJ __AGlobSigEval_8; /* evalGlobSig5 */
OBJ __AGlobSigEval_9; /* printGsEvalInst? */
OBJ __AGlobSigEval_10; /* printGsEvalDecl? */
OBJ __AGlobSigEval_11; /* printGsEvalDoubleInst? */
OBJ __AGlobSigEval_12; /* printGsEvalOnly? */
OBJ __AGlobSigEval_13; /* printGsEvalClose? */
OBJ __AGlobSigEval_14; /* printGsEvalDouble? */
OBJ __AGlobSigEval_15; /* evalGlobSig5'15 */
OBJ __AGlobSigEval_16; /* evalGlobSig5'16 */
extern OBJ _AGlobSigEval_17(OBJ);OBJ __AGlobSigEval_17; /* evalGlobSig5'17 */
extern OBJ _AGlobSigEval_18(OBJ,OBJ,OBJ);OBJ __AGlobSigEval_18; /* globSigEval'18 */
OBJ __AGlobSigEval_19; /* printGsEvalInst?'19 */
OBJ __AGlobSigEval_20; /* printGsEvalDecl?'20 */
OBJ __AGlobSigEval_21; /* printGsEvalDoubleInst?'21 */
OBJ __AGlobSigEval_22; /* printGsEvalOnly?'22 */
OBJ __AGlobSigEval_23; /* printGsEvalClose?'23 */
OBJ __AGlobSigEval_24; /* printGsEvalDouble?'24 */

extern OBJ _AGlobSigEval_1(OBJ x1,OBJ x2) /* globSigEval */
{OBJ r;
 CPCLS(__AGlobSigEval_18,1);
 CPPRD(__ASigAnaTexts_7,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x4;
  x3=_AOcVerbose_4(x1,__AOcVerbose_3,__ASigAnaTexts_7);
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AGlobSigEval_18,2))(__AGlobSigEval_18,x1,x2);
  r=_AComCompose_5(x3,x4);}
 return r;}

extern OBJ _AGlobSigEval_3(OBJ x1,OBJ x2) /* evalGlobSig1 */
{OBJ r;
 CPCLS(__AGlobSigEval_4,1);
 CPCLS(__AGlobSigEvalInst_3,1);
 CPPRD(x1,1);
 {OBJ x9;OBJ x10;
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEvalInst_3,1))(__AGlobSigEvalInst_3,x1);
  x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_4,1))(__AGlobSigEval_4,x1);
  {OBJ x12=FLD1(x2,1);OBJ x13=FLD1(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x12,1);
    FRPRD(x2,1);}
   {OBJ x14;
    x14=_AGlobSig4SigAna_19(x9,x12,x13);
    r=_AComCompose_5(x14,x10);}}}
 return r;}

extern OBJ _AGlobSigEval_4(OBJ x1,OBJ x2) /* evalGlobSig2 */
{OBJ r;
 CPCLS(__AGlobSigEval_5,1);
 CPCLS(__AGlobSigEvalDecl_1,1);
 CPPRD(x1,1);
 {OBJ x9;OBJ x10;
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEvalDecl_1,1))(__AGlobSigEvalDecl_1,x1);
  x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_5,1))(__AGlobSigEval_5,x1);
  {OBJ x14=FLD1(x2,1);OBJ x15=FLD1(x2,2);
   if(EXPRD(x2,1)){
    COPY(x14,1);
    DSPRDF(x2);
   }else{
    COPY(x14,2);
    FRPRD(x2,1);}
   CPCLS(__AGlobSigToText_1,1);
   {OBJ x16;OBJ x17;OBJ x18;
    x16=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x14);
    x17=_ADEBUG_2(__AGlobSigEval_9,x16,x14);
    x18=_AGlobSig4SigAna_18(x9,x17,x15);
    r=_AComCompose_5(x18,x10);}}}
 return r;}

extern OBJ _AGlobSigEval_5(OBJ x1,OBJ x2) /* evalGlobSig3 */
{OBJ r;
 CPCLS(__AGlobSigEval_6,1);
 CPCLS(__AGlobSigEvalOnly_1,1);
 CPPRD(x1,1);
 {OBJ x9;OBJ x10;
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEvalOnly_1,1))(__AGlobSigEvalOnly_1,x1);
  x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_6,1))(__AGlobSigEval_6,x1);
  {OBJ x18=FLD1(x2,1);OBJ x19=FLD1(x2,2);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x18,1);
    FRPRD(x2,1);}
   CPCLS(__AGlobSigEvalInst_1,1);
   CPCLS(__AGlobSigEvalInst_2,1);
   CPCLS(__AGlobSigToText_1,2);
   {OBJ x20;OBJ x21;OBJ x22;OBJ x23;OBJ x24;OBJ x25;OBJ x26;
    x20=_AGlobSig4SigAna_20(x18,__AGlobSigEvalInst_1);
    COPY(x20,1);
    x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x20);
    x22=_ADEBUG_2(__AGlobSigEval_11,x21,x20);
    x23=_AGlobSig4SigAna_24(x22,__AGlobSigEvalInst_2);
    COPY(x23,1);
    x24=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x23);
    x25=_ADEBUG_2(__AGlobSigEval_10,x24,x23);
    x26=_AGlobSig4SigAna_22(x9,x25,x19);
    r=_AComCompose_5(x26,x10);}}}
 return r;}

extern OBJ _AGlobSigEval_6(OBJ x1,OBJ x2) /* evalGlobSig3b */
{OBJ r;
 CPCLS(__AGlobSigEval_7,1);
 CPCLS(__AGlobSigEvalOnly_2,1);
 CPPRD(x1,1);
 {OBJ x9;OBJ x10;
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEvalOnly_2,1))(__AGlobSigEvalOnly_2,x1);
  x10=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_7,1))(__AGlobSigEval_7,x1);
  {OBJ x14=FLD1(x2,1);OBJ x15=FLD1(x2,2);
   if(EXPRD(x2,1)){
    COPY(x14,1);
    DSPRDF(x2);
   }else{
    COPY(x14,2);
    FRPRD(x2,1);}
   CPCLS(__AGlobSigToText_1,1);
   {OBJ x16;OBJ x17;OBJ x18;
    x16=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x14);
    x17=_ADEBUG_2(__AGlobSigEval_12,x16,x14);
    x18=_AGlobSig4SigAna_22(x9,x17,x15);
    r=_AComCompose_5(x18,x10);}}}
 return r;}

extern OBJ _AGlobSigEval_7(OBJ x1,OBJ x2) /* evalGlobSig4 */
{OBJ r;
 CPCLS(__AGlobSigEval_8,1);
 CPPRD(x1,1);
 {OBJ x9;
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_8,1))(__AGlobSigEval_8,x1);
  {OBJ x16=FLD1(x2,1);OBJ x17=FLD1(x2,2);
   if(EXPRD(x2,1)){
    COPY(x16,1);
    DSPRDF(x2);
   }else{
    COPY(x16,2);
    FRPRD(x2,1);}
   CPCLS(__AGlobSigEvalDecl_2,1);
   CPCLS(__AGlobSigToText_1,2);
   {OBJ x18;OBJ x19;OBJ x20;OBJ x21;OBJ x22;OBJ x23;
    x18=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x16);
    x19=_ADEBUG_2(__AGlobSigEval_13,x18,x16);
    x20=_AGlobSig4SigAna_23(__AGlobSigEvalDecl_2,x19);
    COPY(x20,1);
    x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x20);
    x22=_ADEBUG_2(__AGlobSigEval_14,x21,x20);
    x23=_AGlobSigEvalParam_1(x1,x22,x17);
    r=_AComCompose_5(x23,x9);}}}
 return r;}

extern OBJ _AGlobSigEval_8(OBJ x1,OBJ x2) /* evalGlobSig5 */
{OBJ r;
 {OBJ x15=FLD1(x2,1);OBJ x16=FLD1(x2,2);
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   COPY(x15,1);
   FRPRD(x2,1);}
  if(ISTGPRM(x16,1)){
   COPY(x15,1);
   CPPRD(__AGlobSigEval_15,1);
   CPCLS(__ACom_47,1);
   CPCLS(__AGlobSigToText_1,1);
   {OBJ x17;OBJ x18;OBJ x19;OBJ x20;OBJ x21;
    x17=_AOcOptions_14(__AGlobSigEval_15,x1);
    x18=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x15);
    x19=_ADEBUG_2(x17,x18,x15);
    PRD(1,0,x20);FLD(x20,1)=x19;
    x21=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x20);
    PRD(2,0,r);FLD(r,1)=x21;FLD(r,2)=__ASeq_6;}
  }else{
   FRPRD(x1,1);
   FREE(x15,1);
   CPCLS(__AGlobSigEval_17,1);
   {OBJ x22;
    x22=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_17,1))(__AGlobSigEval_17,__ABUILTIN_20);
    PRD(2,0,r);FLD(r,1)=x22;FLD(r,2)=__ASeq_6;}}}
 return r;}

extern OBJ _AGlobSigEval_17(OBJ x1) /* evalGlobSig5'17 */
{OBJ r;
 CPPRD(__AGlobSigEval_16,1);
 CPCLS(__ACom_47,1);
 r=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,__AGlobSigEval_16);
 return r;}

extern OBJ _AGlobSigEval_18(OBJ x1,OBJ x2,OBJ x3) /* globSigEval'18 */
{OBJ r;
 CPCLS(__AGlobSigEval_3,1);
 CPCLS(__AGlobSigEvalInst_4,1);
 CPPRD(x1,1);
 {OBJ x4;OBJ x5;OBJ x6;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEvalInst_4,1))(__AGlobSigEvalInst_4,x1);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigEval_3,1))(__AGlobSigEval_3,x1);
  x6=_AGlobSig4SigAna_19(x4,x2,__ABUILTIN_5);
  r=_AComCompose_5(x6,x5);}
 return r;}








init_AGlobSigEval()
{
 static int visited=0; if(visited) return; visited=1;
 init_AImpDecl4SigAna();
 init_ABitset();
 init_AMySeqFun1();
 init_APatterns();
 init_AAttributes();
 init_AName4SigAna();
 init_ADArray();
 init_AGlobSig();
 init_ALexem();
 init_ANatMap();
 init_AOcOptions();
 init_AArray();
 init_ACom();
 init_APartName();
 init_ANat();
 init_AComCompose();
 init_AVoid();
 init_ADEBUG();
 init_ASeq();
 init_AGlobSig4SigAna();
 init_AOption();
 init_AGlobSigEvalDecl();
 init_AChar();
 init_AGlobSigEvalInst();
 init_AStream();
 init_AGlobSigEvalOnly();
 init_AString();
 init_AGlobSigEvalParam();
 init_AFile();
 init_AGlobSigToText();
 init_AInt();
 init_AOcExit();
 init_ATable();
 init_ASigAnaTexts();
 init_AUniqueTable();
 init_AOcVerbose();
 init_ADeclEntry();
 init_AOcError();
 init_APartNameEntry();
 init_AAnalyzedGlobSig();
 init_AImpExpEntry();
 init_ASetByBST();
 init_AObjects();
 init_ABSTree();
 init_AName();
 init_ATree();
 init_AGlobSigImpl();
 init_ADenotation();
 init_ARep();
 init_AMapReduce();
 init_APragma();
 init_ASeqReduce();
 init_AImpl();
 init_ASeqMap();
 init_AGlobPragma();
 init_ATriple();
 init_AOcPos();
 init_ADArrayReduce();
 init_APair();
 init_AReal();
 init_AMap();
 init_AAbsyFun3();
 init_ASet();
 init_AAnalyzedGlobSigH();
 init_AFct();
 DEN("-zprintGsEvalDouble",__AGlobSigEval_24);
 DEN("-zprintGsEvalClose",__AGlobSigEval_23);
 DEN("-zprintGsEvalOnly",__AGlobSigEval_22);
 DEN("-zprintGsEvalDoubleInst",__AGlobSigEval_21);
 DEN("-zprintGsEvalDecl",__AGlobSigEval_20);
 DEN("-zprintGsEvalInst",__AGlobSigEval_19);
 CLS(3,_AGlobSigEval_18,__AGlobSigEval_18);
 LCLS(1,_AGlobSigEval_17,__AGlobSigEval_17);
 DEN("printGsEval",__AGlobSigEval_15);
 CLS(2,_AGlobSigEval_8,__AGlobSigEval_8);
 CLS(2,_AGlobSigEval_7,__AGlobSigEval_7);
 CLS(2,_AGlobSigEval_6,__AGlobSigEval_6);
 CLS(2,_AGlobSigEval_5,__AGlobSigEval_5);
 CLS(2,_AGlobSigEval_4,__AGlobSigEval_4);
 CLS(2,_AGlobSigEval_3,__AGlobSigEval_3);
 CLS(2,_AGlobSigEval_1,__AGlobSigEval_1);
 CPPRD(__AGlobSigEval_19,1);
 __AGlobSigEval_9=_ADEBUG_10(__AGlobSigEval_19);
 CPPRD(__AGlobSigEval_20,1);
 __AGlobSigEval_10=_ADEBUG_10(__AGlobSigEval_20);
 CPPRD(__AGlobSigEval_21,1);
 __AGlobSigEval_11=_ADEBUG_10(__AGlobSigEval_21);
 CPPRD(__AGlobSigEval_22,1);
 __AGlobSigEval_12=_ADEBUG_10(__AGlobSigEval_22);
 CPPRD(__AGlobSigEval_23,1);
 __AGlobSigEval_13=_ADEBUG_10(__AGlobSigEval_23);
 CPPRD(__AGlobSigEval_24,1);
 __AGlobSigEval_14=_ADEBUG_10(__AGlobSigEval_24);
 CPPRD(__AOcExit_1,1);
 PRD(1,1,__AGlobSigEval_16);FLD(__AGlobSigEval_16,1)=__AOcExit_1;}

