

#include "BUILTIN.h"
extern OBJ _AGlobSig_85(OBJ,OBJ);extern OBJ __AGlobSig_85;
extern OBJ _ADeclLookup_1(OBJ,OBJ);extern OBJ __ADeclLookup_1;
extern OBJ _AGlobSigToText_1(OBJ,OBJ);extern OBJ __AGlobSigToText_1;
extern OBJ _AImpDecl4SigAna_33(OBJ,OBJ,OBJ);extern OBJ __AImpDecl4SigAna_33;
extern OBJ _AImpDecl4SigAna_34(OBJ,OBJ);extern OBJ __AImpDecl4SigAna_34;
extern OBJ _AInterOpalAccess_16(OBJ);extern OBJ __AInterOpalAccess_16;
extern TUP2 _AStructPrep_1(OBJ,OBJ,OBJ);extern OBJ __AStructPrep_1;
extern OBJ _AStructLookup_1(OBJ,OBJ);extern OBJ __AStructLookup_1;
extern OBJ _ASeq_40(OBJ,OBJ);extern OBJ __ASeq_40;
extern OBJ _AStructPrepConvert_1(OBJ,OBJ);extern OBJ __AStructPrepConvert_1;
extern OBJ _APair_4(OBJ);extern OBJ __APair_4;
extern OBJ _ADEBUG_2(OBJ,OBJ,OBJ);extern OBJ __ADEBUG_2;
extern OBJ _ADEBUG_10(OBJ);extern OBJ __ADEBUG_10;

#include "Nat.h"

#include "Char.h"
extern TUP2 _ASeqMapEnv_4(OBJ,OBJ,OBJ);extern OBJ __ASeqMapEnv_4;
extern OBJ _ARep_2(OBJ,OBJ);extern OBJ __ARep_2;
extern OBJ _ASeqReduce_4(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_4;
extern OBJ __ATable_10;

#include "Int.h"

#include "Bitset.h"

#include "Array.h"
extern OBJ _AGlobSigInitPass_1(OBJ,OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_1; /* globSigInitPass1 */
extern TUP2 _AGlobSigInitPass_2(OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_2; /* globSigInitPass2 */
extern OBJ _AGlobSigInitPass_3(OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_3; /* globSigInitPass3 */
extern OBJ _AGlobSigInitPass_4(OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_4; /* globSigInitPass4 */
extern OBJ _AGlobSigInitPass_6(OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_6; /* h2 */
extern OBJ _AGlobSigInitPass_9(OBJ);OBJ __AGlobSigInitPass_9; /* toQuad */
OBJ __AGlobSigInitPass_10; /* declsComplete? */
extern OBJ _AGlobSigInitPass_12(OBJ);OBJ __AGlobSigInitPass_12; /* toTriple */
extern TUP2 _AGlobSigInitPass_13(OBJ,OBJ,OBJ);OBJ __AGlobSigInitPass_13; /* globSigInitPass2'13 */
extern OBJ _AGlobSigInitPass_14(OBJ,OBJ);OBJ __AGlobSigInitPass_14; /* globSigInitPass3'14 */
extern OBJ _AGlobSigInitPass_15(OBJ,OBJ);OBJ __AGlobSigInitPass_15; /* globSigInitPass4'15 */
OBJ __AGlobSigInitPass_16; /* declsComplete?'16 */

extern OBJ _AGlobSigInitPass_1(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* globSigInitPass1 */
{OBJ r;
 {OBJ x7;OBJ x5;OBJ x12;
  if(ISPRM(x3)){
   CPPRD(__ATable_10,1);
   x7=__ABUILTIN_3;
  }else{
   CPPRD(__ATable_10,1);
   x7=__ABUILTIN_5;}
  x5=_AGlobSig_85(x2,__ATable_10);
  if(ISTGPRM(x7,1)){
   {OBJ x10;OBJ x8;OBJ x11;
    if(ISPRM(x3)){
     HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
    }else{
     {OBJ x9=FLD1(x3,1);
      if(EXPRD(x3,1)){
       x10=x9;
       DSPRDF(x3);
      }else{
       CPPRD(x9,1);
       x10=x9;
       FRPRD(x3,1);}
      CPCLS(__AGlobSigInitPass_6,1);
      CPCLS(__AImpDecl4SigAna_34,1);}}
    x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigInitPass_6,1))(__AGlobSigInitPass_6,x1);
    x11=_AInterOpalAccess_16(x10);
    x12=_ASeqReduce_4(x8,x5,x11);}
  }else{
   x12=x5;
   FRPRD(x1,1);
   FREE(x3,1);
   CPCLS(__AImpDecl4SigAna_34,1);}
  r=_ASeqReduce_4(__AImpDecl4SigAna_34,x12,x4);}
 return r;}

extern TUP2 _AGlobSigInitPass_2(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass2 */
{TUP2 r;
 CPCLS(__AGlobSigInitPass_13,1);
 {OBJ x4;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigInitPass_13,1))(__AGlobSigInitPass_13,x1);
  r=_ASeqMapEnv_4(x4,x2,x3);}
 return r;}
extern OBJ _AGlobSigInitPass_2_c(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass2 */
{OBJ r;
 {TUP2 t=_AGlobSigInitPass_2(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AGlobSigInitPass_3(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass3 */
{OBJ r;
 CPCLS(__AGlobSigInitPass_14,1);
 {OBJ x4;OBJ x5;
  PRD1(2,x4);FLD1(x4,1)=x2;FLD1(x4,2)=x1;
  x5=_ASeqReduce_4(__AGlobSigInitPass_14,x4,x3);
  {OBJ x6=FLD1(x5,1);
   if(EXPRD(x5,1)){
    r=x6;
    FRPRD(FLD1(x5,2),1);DSPRDF(x5);
   }else{
    COPY(x6,1);
    r=x6;
    FRPRD(x5,1);}}}
 return r;}

extern OBJ _AGlobSigInitPass_4(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass4 */
{OBJ r;
 CPCLS(__AGlobSigInitPass_15,1);
 CPCLS(__ADeclLookup_1,1);
 CPCLS(__AGlobSigToText_1,1);
 {OBJ x4;OBJ x5;OBJ x6;
  x4=_ASeqReduce_4(__ADeclLookup_1,x1,x2);
  COPY(x4,1);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AGlobSigToText_1,1))(__AGlobSigToText_1,x4);
  x6=_ADEBUG_2(__AGlobSigInitPass_10,x5,x4);
  r=_ASeqReduce_4(__AGlobSigInitPass_15,x6,x3);}
 return r;}

extern OBJ _AGlobSigInitPass_6(OBJ x1,OBJ x2,OBJ x3) /* h2 */
{OBJ r;
 {OBJ x26=FLD1(x2,2);OBJ x27=FLD1(x2,3);
  if(EXPRD(x2,1)){
   FLD1(x2,2)=NIL;FLD1(x2,3)=NIL;DSPRD(x2);
  }else{
   COPY(x26,1);CPPRD(x27,1);
   FRPRD(x2,1);}
  {OBJ x33;
   x33=_ARep_2(x1,x27);
   if(ISPRD(x26)){
    {OBJ x34=FLD1(x26,1);
     if(EXPRD(x26,1)){
      DSPRDF(x26);
     }else{
      FRPRD(x26,1);}
     r=_AImpDecl4SigAna_33(x3,x34,x33);}
   }else{
    HLT("InterOpal at <unknown> : undefined selection no\'InterOpal:origin->nat");}}}
 return r;}

extern OBJ _AGlobSigInitPass_9(OBJ x1) /* toQuad */
{OBJ r;
 {OBJ x33=FLD1(x1,1);OBJ x34=FLD1(x1,2);
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   CPPRD(x33,1);CPPRD(x34,1);
   FRPRD(x1,1);}
  {OBJ x35=FLD1(x33,1);OBJ x36=FLD1(x33,2);
   if(EXPRD(x33,1)){
    DSPRDF(x33);
   }else{
    CPPRD(x35,1);COPY(x36,1);
    FRPRD(x33,1);}
   {OBJ x37=FLD1(x34,1);OBJ x38=FLD1(x34,2);
    if(EXPRD(x34,1)){
     DSPRDF(x34);
    }else{
     CPPRD(x37,1);COPY(x38,1);
     FRPRD(x34,1);}
    CPCLS(__APair_4,1);
    {
     PRD1(4,r);FLD1(r,1)=x37;FLD1(r,2)=x38;FLD1(r,3)=x35;
     FLD1(r,4)=_ASeq_40(__APair_4,x36);}}}}
 return r;}

extern OBJ _AGlobSigInitPass_12(OBJ x1) /* toTriple */
{OBJ r;
 {OBJ x30=FLD1(x1,1);OBJ x31=FLD1(x1,2);
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   CPPRD(x30,1);CPPRD(x31,1);
   FRPRD(x1,1);}
  {OBJ x33=FLD1(x30,2);
   if(EXPRD(x30,1)){
    FRPRD(FLD1(x30,1),1);DSPRDF(x30);
   }else{
    COPY(x33,1);
    FRPRD(x30,1);}
   {OBJ x34=FLD1(x31,1);OBJ x35=FLD1(x31,2);
    if(EXPRD(x31,1)){
     DSPRDF(x31);
    }else{
     CPPRD(x34,1);COPY(x35,1);
     FRPRD(x31,1);}
    PRD1(3,r);FLD1(r,1)=x33;FLD1(r,2)=x34;FLD1(r,3)=x35;}}}
 return r;}

extern TUP2 _AGlobSigInitPass_13(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass2'13 */
{TUP2 r;
 CPPRD(x3,1);
 {
  PRD1(2,r.c2);FLD1(r.c2,1)=x3;
  {TUP2 t=_AStructPrep_1(x1,x2,x3);
   r.c1=t.c1;
   FLD1(r.c2,2)=t.c2;}}
 return r;}
extern OBJ _AGlobSigInitPass_13_c(OBJ x1,OBJ x2,OBJ x3) /* globSigInitPass2'13 */
{OBJ r;
 {TUP2 t=_AGlobSigInitPass_13(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AGlobSigInitPass_14(OBJ x1,OBJ x2) /* globSigInitPass3'14 */
{OBJ r;
 {OBJ x3;
  x3=_AGlobSigInitPass_9(x1);
  r=_AStructPrepConvert_1(x3,x2);}
 return r;}

extern OBJ _AGlobSigInitPass_15(OBJ x1,OBJ x2) /* globSigInitPass4'15 */
{OBJ r;
 {OBJ x3;
  x3=_AGlobSigInitPass_12(x1);
  r=_AStructLookup_1(x3,x2);}
 return r;}


init_AGlobSigInitPass()
{
 static int visited=0; if(visited) return; visited=1;
 init_ALexem();
 init_APatterns();
 init_AUniqueTable();
 init_ADeclEntry();
 init_AGlobPragma();
 init_AGlobSig();
 init_AMap();
 init_AInterOpal();
 init_ADyn();
 init_AImpExpEntry();
 init_ADeclLookup();
 init_AStruct();
 init_AGlobSig4SigAna();
 init_AMaps4SigAna();
 init_AGlobSigToText();
 init_APartName();
 init_AImpDecl4SigAna();
 init_AObjects();
 init_AInterOpalAccess();
 init_ARepTab();
 init_AStructPrep();
 init_AOcPos();
 init_AStructLookup();
 init_ASeq();
 init_AStructPrepConvert();
 init_APair();
 init_ADEBUG();
 init_AOption();
 init_AQuadruple();
 init_ANat();
 init_ASeqMap();
 init_AChar();
 init_ASeqMapEnv();
 init_ARep();
 init_ASeqReduce();
 init_AFct();
 init_ASeqZip();
 init_APragma();
 init_ATriple();
 init_AGlobSigImpl();
 init_AOcOptions();
 init_APartNameEntry();
 init_ACom();
 init_AName();
 init_AStream();
 init_AImpl();
 init_AVoid();
 init_ATable();
 init_AFile();
 init_ADArray();
 init_AInt();
 init_ANatMap();
 init_ASetByBST();
 init_AString();
 init_ABSTree();
 init_ASet();
 init_ATree();
 init_ABitset();
 init_ASeqConv();
 init_AArray();
 init_ACompose();
 init_AAttributes();
 DEN("-zdeclsComplete",__AGlobSigInitPass_16);
 CLS(2,_AGlobSigInitPass_15,__AGlobSigInitPass_15);
 CLS(2,_AGlobSigInitPass_14,__AGlobSigInitPass_14);
 CLS(3,_AGlobSigInitPass_13_c,__AGlobSigInitPass_13);
 CLS(1,_AGlobSigInitPass_12,__AGlobSigInitPass_12);
 CLS(1,_AGlobSigInitPass_9,__AGlobSigInitPass_9);
 CLS(3,_AGlobSigInitPass_6,__AGlobSigInitPass_6);
 CLS(3,_AGlobSigInitPass_4,__AGlobSigInitPass_4);
 CLS(3,_AGlobSigInitPass_3,__AGlobSigInitPass_3);
 CLS(3,_AGlobSigInitPass_2_c,__AGlobSigInitPass_2);
 CLS(4,_AGlobSigInitPass_1,__AGlobSigInitPass_1);
 CPPRD(__AGlobSigInitPass_16,1);
 __AGlobSigInitPass_10=_ADEBUG_10(__AGlobSigInitPass_16);}

