

#include "BUILTIN.h"
extern OBJ _AName4SigAna_59(OBJ,OBJ);extern OBJ __AName4SigAna_59;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _AObjects_22(OBJ);extern OBJ __AObjects_22;
extern OBJ _AObjects_24(OBJ);extern OBJ __AObjects_24;
extern OBJ _AGlobSig_52(OBJ);extern OBJ __AGlobSig_52;
extern OBJ _AGlobSig_56(OBJ);extern OBJ __AGlobSig_56;
extern OBJ _AGlobSig_80(OBJ,OBJ);extern OBJ __AGlobSig_80;
extern OBJ _AGlobSig_85(OBJ,OBJ);extern OBJ __AGlobSig_85;
extern OBJ _ACompose_4(OBJ,OBJ,OBJ);extern OBJ __ACompose_4;
extern OBJ __AAttributes_11;
extern OBJ __AAttributes_24;
extern OBJ __AOcPos_35;

#include "Denotation.h"
extern OBJ __ASeq_6;
extern OBJ __AOption_5;
extern OBJ __AGlobSigImpl_20;
extern OBJ __AGlobSigImpl_22;

#include "Nat.h"

#include "Char.h"

#include "Bitset.h"
extern TUP2 _ATable_8(OBJ,OBJ);extern OBJ __ATable_8;
extern OBJ _ADeclEntry_11(OBJ);extern OBJ __ADeclEntry_11;
extern OBJ _ADeclEntry_12(OBJ);extern OBJ __ADeclEntry_12;
extern OBJ _ADeclEntry_13(OBJ);extern OBJ __ADeclEntry_13;
extern OBJ _ADeclEntry_14(OBJ);extern OBJ __ADeclEntry_14;
extern OBJ _ADeclEntry_33(OBJ,OBJ);extern OBJ __ADeclEntry_33;
extern OBJ _ADArray_15(OBJ,OBJ,OBJ);extern OBJ __ADArray_15;
extern OBJ _ADArray_20(OBJ,OBJ);extern OBJ __ADArray_20;
extern OBJ _ADArray_21(OBJ,OBJ);extern OBJ __ADArray_21;

#include "Array.h"
extern TUP2 _ADecl4SigAna_1(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_1; /* addDecl */
extern TUP2 _ADecl4SigAna_2(OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_2; /* addDecl,1 */
extern TUP2 _ADecl4SigAna_3(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_3; /* addDecl,2 */
extern OBJ _ADecl4SigAna_4(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_4; /* addSignSort */
extern OBJ _ADecl4SigAna_5(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_5; /* addSignOper */
extern OBJ _ADecl4SigAna_6(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_6; /* addSignOper,1 */
extern OBJ _ADecl4SigAna_7(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_7; /* addSignOperCons */
extern OBJ _ADecl4SigAna_8(OBJ,OBJ);OBJ __ADecl4SigAna_8; /* setFormParam */
extern OBJ _ADecl4SigAna_9(OBJ,OBJ);OBJ __ADecl4SigAna_9; /* formParam? */
extern OBJ _ADecl4SigAna_10(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_10; /* updDecl */
extern OBJ _ADecl4SigAna_11(OBJ,OBJ);OBJ __ADecl4SigAna_11; /* fct */
extern OBJ _ADecl4SigAna_12(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_12; /* setDoubleDecl */
extern OBJ _ADecl4SigAna_13(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_13; /* updAttr */
extern OBJ _ADecl4SigAna_14(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_14; /* updSortPos */
extern OBJ _ADecl4SigAna_15(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_15; /* updLookupSort */
extern OBJ _ADecl4SigAna_16(OBJ,OBJ,OBJ);OBJ __ADecl4SigAna_16; /* updLookupOp */
extern OBJ _ADecl4SigAna_17(OBJ);OBJ __ADecl4SigAna_17; /* addSignOperCons'17 */

extern TUP2 _ADecl4SigAna_1(OBJ x1,OBJ x2,OBJ x3) /* addDecl */
{TUP2 r;
 CPPRD(__AAttributes_11,1);
 COPY(x1,2);
 CPPRD(x2,1);
 COPY(x3,1);
 {OBJ x4;OBJ x5;OBJ x6;
  PRD(5,0,x4);FLD(x4,1)=x2;FLD(x4,2)=x3;FLD(x4,3)=__AAttributes_11;FLD(x4,4)=__AGlobSigImpl_22;FLD(x4,5)=__AGlobSigImpl_22;
  x5=_AGlobSig_56(x1);
  x6=_AGlobSig_52(x1);
  {OBJ x7=FLD1(x2,1);
   CPPRD(x6,1);
   {OBJ x10;OBJ x12;OBJ x14;OBJ x15;OBJ x16;OBJ x17;
    x10=x7;
    x12=_ADArray_21(x6,x10);
    if(ISPRM(x12)){
     x14=__ABUILTIN_5;
    }else{
     x14=__ABUILTIN_3;}
    {TUP2 t=_ATable_8(x4,x5);
     x15=t.c1;
     x16=t.c2;}
    x17=_ADecl4SigAna_15(x2,x15,x6);
    if(ISTGPRM(x14,1)){
     r.c2=x15;
     FREE(x3,1);
     FREE(x12,1);
     {OBJ x18;
      x18=_AGlobSig_85(x1,x17);
      r.c1=_AGlobSig_80(x18,x16);}
    }else{
     {OBJ x21;
      if(ISPRM(x12)){
       HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
      }else{
       {OBJ x20=FLD1(x12,1);
	if(EXPRD(x12,1)){
	 x21=x20;
	 DSPRDF(x12);
	}else{
	 CPPRD(x20,1);
	 x21=x20;
	 FRPRD(x12,1);}}}
      {OBJ x43=FLD1(x21,2);
       if(EXPRD(x21,1)){
	FLD1(x21,2)=NIL;DSPRD(x21);
       }else{
	COPY(x43,1);
	FRPRD(x21,1);}
       if(ISPRM(x43)){
	r.c2=x15;
	FREE(x3,1);
	{OBJ x50;
	 x50=_AGlobSig_85(x1,x17);
	 r.c1=_AGlobSig_80(x50,x16);}
       }else{
	{OBJ x47=FLD1(x43,1);
	 if(EXPRD(x43,1)){
	  r.c2=x47;
	  FREE(FLD1(x43,2),1);DSPRDF(x43);
	 }else{
	  r.c2=x47;
	  FRPRD(x43,1);}
	 FRPRD(x16,1);
	 FRPRD(x17,1);
	 r.c1=_ADecl4SigAna_14(x1,r.c2,x3);}}}}}}}}
 return r;}
extern OBJ _ADecl4SigAna_1_c(OBJ x1,OBJ x2,OBJ x3) /* addDecl */
{OBJ r;
 {TUP2 t=_ADecl4SigAna_1(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ADecl4SigAna_2(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* addDecl,1 */
{TUP2 r;
 CPPRD(__AAttributes_11,1);
 COPY(x1,2);
 CPPRD(x2,1);
 {OBJ x5;OBJ x6;OBJ x7;TUP2 x10;OBJ x11;OBJ x12;
  PRD(6,1,x5);FLD(x5,1)=x2;FLD(x5,2)=x3;FLD(x5,3)=__AAttributes_11;FLD(x5,4)=__AGlobSigImpl_22;FLD(x5,5)=x4;FLD(x5,6)=__AOption_5;
  x6=_AGlobSig_56(x1);
  x7=_AGlobSig_52(x1);
  x10=_ATable_8(x5,x6);r.c2=x10.c1;
  x11=_ADecl4SigAna_16(x2,r.c2,x7);
  x12=_AGlobSig_85(x1,x11);
  r.c1=_AGlobSig_80(x12,x10.c2);}
 return r;}
extern OBJ _ADecl4SigAna_2_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* addDecl,1 */
{OBJ r;
 {TUP2 t=_ADecl4SigAna_2(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP2 _ADecl4SigAna_3(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* addDecl,2 */
{TUP2 r;
 CPPRD(__AAttributes_11,1);
 COPY(x1,2);
 CPPRD(x2,1);
 {OBJ x6;OBJ x7;OBJ x8;TUP2 x11;OBJ x12;OBJ x13;
  PRD(6,1,x6);FLD(x6,1)=x2;FLD(x6,2)=x3;FLD(x6,3)=__AAttributes_11;FLD(x6,4)=__AGlobSigImpl_22;FLD(x6,5)=x4;FLD(x6,6)=x5;
  x7=_AGlobSig_56(x1);
  x8=_AGlobSig_52(x1);
  x11=_ATable_8(x6,x7);r.c2=x11.c1;
  x12=_ADecl4SigAna_16(x2,r.c2,x8);
  x13=_AGlobSig_85(x1,x12);
  r.c1=_AGlobSig_80(x13,x11.c2);}
 return r;}
extern OBJ _ADecl4SigAna_3_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* addDecl,2 */
{OBJ r;
 {TUP2 t=_ADecl4SigAna_3(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _ADecl4SigAna_4(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* addSignSort */
{OBJ r;
 {OBJ x9;OBJ x6;OBJ x7;OBJ x10;OBJ x12;OBJ x11;OBJ x15;OBJ x16;OBJ x17;OBJ x18;
  if(ISPRM(x5)){
   COPY(x1,2);
   CPPRD(x4,1);
   x9=__ABUILTIN_5;
  }else{
   COPY(x1,2);
   CPPRD(x4,1);
   x9=__ABUILTIN_3;}
  x6=_AGlobSig_52(x1);
  ABitset_21(__AAttributes_24,x4,x7);
  x10=_AGlobSig_56(x1);
  if(ISTGPRM(x7,1)){
   CPPRD(x3,1);
   x12=__AGlobSigImpl_20;
  }else{
   CPPRD(x3,1);
   x12=__AGlobSigImpl_22;}
  x11=_ADecl4SigAna_15(x3,x2,x6);
  if(ISTGPRM(x9,1)){
   FREE(x5,1);
   COPY(__AOcPos_35,1);
   x15=__AGlobSigImpl_22;
  }else{
   {OBJ x14;
    if(ISPRM(x5)){
     HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
    }else{
     {OBJ x13=FLD1(x5,1);
      if(EXPRD(x5,1)){
       x14=x13;
       DSPRDF(x5);
      }else{
       CPPRD(x13,1);
       x14=x13;
       FRPRD(x5,1);}
      COPY(__AOcPos_35,1);}}
    PRD(1,3,x15);FLD(x15,1)=x14;}}
  x16=_AGlobSig_85(x1,x11);
  PRD(5,0,x17);FLD(x17,1)=x3;FLD(x17,2)=__AOcPos_35;FLD(x17,3)=x4;FLD(x17,4)=x12;FLD(x17,5)=x15;
  x18=_ADArray_15(x10,x2,x17);
  r=_AGlobSig_80(x16,x18);}
 return r;}

extern OBJ _ADecl4SigAna_5(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* addSignOper */
{OBJ r;
 COPY(x1,2);
 CPPRD(x4,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x10;OBJ x9;OBJ x11;OBJ x12;OBJ x13;
  x6=_AGlobSig_52(x1);
  ABitset_21(__AAttributes_24,x4,x7);
  x8=_AGlobSig_56(x1);
  if(ISTGPRM(x7,1)){
   CPPRD(x3,1);
   COPY(__AOcPos_35,1);
   x10=__AGlobSigImpl_20;
  }else{
   CPPRD(x3,1);
   COPY(__AOcPos_35,1);
   x10=__AGlobSigImpl_22;}
  x9=_ADecl4SigAna_16(x3,x2,x6);
  PRD(6,1,x11);FLD(x11,1)=x3;FLD(x11,2)=__AOcPos_35;FLD(x11,3)=x4;FLD(x11,4)=x10;FLD(x11,5)=x5;FLD(x11,6)=__AOption_5;
  x12=_AGlobSig_85(x1,x9);
  x13=_ADArray_15(x8,x2,x11);
  r=_AGlobSig_80(x12,x13);}
 return r;}

extern OBJ _ADecl4SigAna_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* addSignOper,1 */
{OBJ r;
 COPY(x1,2);
 CPPRD(x4,1);
 {OBJ x7;OBJ x8;OBJ x9;OBJ x11;OBJ x10;OBJ x12;OBJ x13;OBJ x14;
  x7=_AGlobSig_52(x1);
  ABitset_21(__AAttributes_24,x4,x8);
  x9=_AGlobSig_56(x1);
  if(ISTGPRM(x8,1)){
   CPPRD(x3,1);
   COPY(__AOcPos_35,1);
   x11=__AGlobSigImpl_20;
  }else{
   CPPRD(x3,1);
   COPY(__AOcPos_35,1);
   x11=__AGlobSigImpl_22;}
  x10=_ADecl4SigAna_16(x3,x2,x7);
  PRD(6,1,x12);FLD(x12,1)=x3;FLD(x12,2)=__AOcPos_35;FLD(x12,3)=x4;FLD(x12,4)=x11;FLD(x12,5)=x5;FLD(x12,6)=x6;
  x13=_AGlobSig_85(x1,x10);
  x14=_ADArray_15(x9,x2,x12);
  r=_AGlobSig_80(x13,x14);}
 return r;}

extern OBJ _ADecl4SigAna_7(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7) /* addSignOperCons */
{OBJ r;
 CPCLS(__ADecl4SigAna_17,1);
 COPY(__AOcPos_35,1);
 COPY(x1,2);
 CPPRD(x3,1);
 {OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;OBJ x13;OBJ x14;OBJ x15;
  x8=_AGlobSig_52(x1);
  x9=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADecl4SigAna_17,1))(__ADecl4SigAna_17,__ABUILTIN_20);
  x10=_AGlobSig_56(x1);
  x11=_ADecl4SigAna_16(x3,x2,x8);
  x12=_ASeqMap_3(x9,x7);
  PRD(7,2,x13);FLD(x13,1)=x3;FLD(x13,2)=__AOcPos_35;FLD(x13,3)=x4;FLD(x13,4)=__AGlobSigImpl_22;FLD(x13,5)=x5;FLD(x13,6)=x6;FLD(x13,7)=x12;
  x14=_AGlobSig_85(x1,x11);
  x15=_ADArray_15(x10,x2,x13);
  r=_AGlobSig_80(x14,x15);}
 return r;}

extern OBJ _ADecl4SigAna_8(OBJ x1,OBJ x2) /* setFormParam */
{OBJ r;
 COPY(x2,2);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_AName4SigAna_59(x2,x1);
  x4=_AGlobSig_56(x2);
  CPPRD(x4,1);
  x5=_ADArray_20(x4,x3);
  if(ISTGPRD(x5,0)){
   {OBJ x135=FLD(x5,5);
    COPY(x135,1);
    CPPRD(x5,2);
    {OBJ x142;OBJ x143;OBJ x144;OBJ x148;OBJ x149;OBJ x150;
     x142=_ADeclEntry_12(x5);
     x143=_ADeclEntry_14(x5);
     x144=_ADeclEntry_13(x5);
     ABitset_3(__AAttributes_24,x142,x148);
     PRD(5,0,x149);FLD(x149,1)=x143;FLD(x149,2)=x144;FLD(x149,3)=x148;FLD(x149,4)=__AGlobSigImpl_20;FLD(x149,5)=x135;
     x150=_ADArray_15(x4,x3,x149);
     r=_AGlobSig_80(x2,x150);}}
  }else{
   {OBJ x174;OBJ x175;
    switch(TGPRD(x5)){
     case 2:
      {OBJ x165=FLD(x5,5);OBJ x166=FLD(x5,6);OBJ x167=FLD(x5,7);
       COPY(x165,1);COPY(x167,1);
       CPPRD(x5,2);
       {OBJ x168;OBJ x169;OBJ x170;OBJ x171;
	x168=_ADeclEntry_13(x5);
	x169=_ADeclEntry_14(x5);
	x170=_ADeclEntry_12(x5);
	ABitset_3(__AAttributes_24,x170,x171);
	PRD(7,2,x174);FLD(x174,1)=x169;FLD(x174,2)=x168;FLD(x174,3)=x171;FLD(x174,4)=__AGlobSigImpl_20;FLD(x174,5)=x165;FLD(x174,6)=x166;FLD(x174,7)=x167;}}break;
     case 3:
      HLT("Decl4SigAna at <111,14-117,67> : missing else in setFormParam\'Decl4SigAna:decl**globSig->globSig");break;
     default: 
      {OBJ x155=FLD(x5,5);
       COPY(x155,1);
       CPPRD(x5,2);
       {OBJ x157;OBJ x158;OBJ x159;OBJ x160;
	x157=_ADeclEntry_12(x5);
	x158=_ADeclEntry_14(x5);
	x159=_ADeclEntry_13(x5);
	ABitset_3(__AAttributes_24,x157,x160);
	PRD(6,1,x174);FLD(x174,1)=x158;FLD(x174,2)=x159;FLD(x174,3)=x160;FLD(x174,4)=__AGlobSigImpl_20;FLD(x174,5)=x155;FLD(x174,6)=__AOption_5;}}}
    x175=_ADArray_15(x4,x3,x174);
    r=_AGlobSig_80(x2,x175);}}}
 return r;}

extern OBJ _ADecl4SigAna_9(OBJ x1,OBJ x2) /* formParam? */
{OBJ r;
 COPY(x1,1);
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;
  x3=_AName4SigAna_59(x1,x2);
  x4=_AGlobSig_56(x1);
  x5=_ADArray_20(x4,x3);
  x6=_ADeclEntry_12(x5);
  ABitset_21(__AAttributes_24,x6,r);}
 return r;}

extern OBJ _ADecl4SigAna_10(OBJ x1,OBJ x2,OBJ x3) /* updDecl */
{OBJ r;
 COPY(x1,2);
 {OBJ x4;OBJ x5;OBJ x6;
  x4=_AName4SigAna_59(x1,x2);
  x5=_AGlobSig_56(x1);
  CPPRD(x5,1);
  x6=_ADArray_20(x5,x4);
  if(ISTGPRD(x6,1)){
   {OBJ x78=FLD(x6,6);
    COPY(x78,1);
    CPPRD(x6,3);
    {OBJ x85;OBJ x86;OBJ x87;OBJ x88;OBJ x89;OBJ x90;
     x85=_ADeclEntry_14(x6);
     x86=_ADeclEntry_13(x6);
     x87=_ADeclEntry_12(x6);
     x88=_ADeclEntry_11(x6);
     PRD(6,1,x89);FLD(x89,1)=x85;FLD(x89,2)=x86;FLD(x89,3)=x87;FLD(x89,4)=x88;FLD(x89,5)=x3;FLD(x89,6)=x78;
     x90=_ADArray_15(x5,x4,x89);
     r=_AGlobSig_80(x1,x90);}}
  }else{
   if(ISTGPRD(x6,2)){
    {OBJ x96=FLD(x6,6);OBJ x97=FLD(x6,7);
     COPY(x97,1);
     CPPRD(x6,3);
     {OBJ x98;OBJ x99;OBJ x100;OBJ x101;OBJ x102;OBJ x103;
      x98=_ADeclEntry_14(x6);
      x99=_ADeclEntry_13(x6);
      x100=_ADeclEntry_12(x6);
      x101=_ADeclEntry_11(x6);
      PRD(7,2,x102);FLD(x102,1)=x98;FLD(x102,2)=x99;FLD(x102,3)=x100;FLD(x102,4)=x101;FLD(x102,5)=x3;FLD(x102,6)=x96;FLD(x102,7)=x97;
      x103=_ADArray_15(x5,x4,x102);
      r=_AGlobSig_80(x1,x103);}}
   }else{
    HLT("Decl4SigAna at <129,14-134,61> : missing else in updDecl\'Decl4SigAna:globSig**decl**fct->globSig");}}}
 return r;}

extern OBJ _ADecl4SigAna_11(OBJ x1,OBJ x2) /* fct */
{OBJ r;
 COPY(x1,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_AName4SigAna_59(x1,x2);
  x4=_AGlobSig_56(x1);
  x5=_ADArray_20(x4,x3);
  if(ISTGPRD(x5,2)||ISTGPRD(x5,1)){
   {OBJ x10=FLD(x5,5);
    if(EXPRD(x5,1)){
     r=x10;
     FLD(x5,5)=NIL;DSPRD(x5);
    }else{
     COPY(x10,1);
     r=x10;
     FRPRD(x5,1);}}
  }else{
   HLT("DeclEntry at <unknown> : undefined selection fct\'DeclEntry:declE->fct");}}
 return r;}

extern OBJ _ADecl4SigAna_12(OBJ x1,OBJ x2,OBJ x3) /* setDoubleDecl */
{OBJ r;
 COPY(x3,1);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;
  x4=_AGlobSig_56(x3);
  CPPRD(x4,1);
  x5=_ADArray_20(x4,x1);
  PRD(2,3,x6);FLD(x6,1)=x1;FLD(x6,2)=x5;
  x7=_ADArray_15(x4,x2,x6);
  r=_AGlobSig_80(x3,x7);}
 return r;}

extern OBJ _ADecl4SigAna_13(OBJ x1,OBJ x2,OBJ x3) /* updAttr */
{OBJ r;
 COPY(x1,1);
 {OBJ x6;
  x6=_AGlobSig_56(x1);
  if(ISPRD(x2)&&(ISTGPRD(x2,1))){
   {OBJ x4=FLD(x2,1);
    if(EXPRD(x2,1)){
     DSPRDF(x2);
    }else{
     FRPRD(x2,1);}
    COPY(x1,1);
    CPPRD(x6,1);
    {OBJ x5;OBJ x7;OBJ x8;OBJ x9;OBJ x10;OBJ x11;OBJ x12;
     x5=x4;
     x7=_AName4SigAna_59(x1,x5);
     x8=_ADArray_20(x6,x7);
     CPPRD(x8,1);
     x9=_ADeclEntry_12(x8);
     x10=(*(OBJ(*)(OBJ,OBJ))METHOD(x3,1))(x3,x9);
     x11=_ADeclEntry_33(x8,x10);
     x12=_ADArray_15(x6,x7,x11);
     r=_AGlobSig_80(x1,x12);}}
  }else{
   HLT("Name at <unknown> : undefined selection decl\'Name:name->decl");}}
 return r;}

extern OBJ _ADecl4SigAna_14(OBJ x1,OBJ x2,OBJ x3) /* updSortPos */
{OBJ r;
 COPY(x1,1);
 {OBJ x4;OBJ x5;OBJ x6;OBJ x7;OBJ x8;
  x4=_AGlobSig_56(x1);
  CPPRD(x4,1);
  x5=_ADArray_20(x4,x2);
  CPPRD(x5,3);
  x6=_ADeclEntry_14(x5);
  x7=_ADeclEntry_12(x5);
  x8=_ADeclEntry_11(x5);
  if(ISTGPRD(x5,0)){
   {OBJ x13=FLD(x5,5);FLAG x_x5=EXPRD(x5,1);
    if(x_x5){
    }else{
     COPY(x13,1);}
    {OBJ x14;OBJ x15;OBJ x16;
     x14=x13;
     if(x_x5){
      RPRD(x5,x15);FRPRD(FLD(x15,1),1);FLD(x15,1)=x6;FREE(FLD(x15,2),1);FLD(x15,2)=x3;FRPRD(FLD(x15,3),1);FLD(x15,3)=x7;FREE(FLD(x15,4),1);FLD(x15,4)=x8;FLD(x15,5)=x14;
     }else{
      FRPRD(x5,1);PRD(5,0,x15);FLD(x15,1)=x6;FLD(x15,2)=x3;FLD(x15,3)=x7;FLD(x15,4)=x8;FLD(x15,5)=x14;}
     x16=_ADArray_15(x4,x2,x15);
     r=_AGlobSig_80(x1,x16);}}
  }else{
   HLT("DeclEntry at <unknown> : undefined selection type\'DeclEntry:declE->impl");}}
 return r;}

extern OBJ _ADecl4SigAna_15(OBJ x1,OBJ x2,OBJ x3) /* updLookupSort */
{OBJ r;
 {OBJ x4=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FRPRD(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   FRPRD(x1,1);}
  CPPRD(x3,1);
  {OBJ x7;OBJ x8;OBJ x10;OBJ x59;
   x7=x4;
   x8=_ADArray_21(x3,x7);
   if(ISPRM(x8)){
    x10=__ABUILTIN_5;
   }else{
    x10=__ABUILTIN_3;}
   if(ISTGPRM(x10,1)){
    FREE(x8,1);
    {OBJ x11;
     PRD1F(2,x11);FLD1(x11,1)=x2;FLD1(x11,2)=__ASeq_6;
     PRD1(5,x59);FLD1(x59,1)=__AOption_5;FLD1(x59,2)=x11;FLD1(x59,3)=__ASeq_6;FLD1(x59,4)=__ASeq_6;FLD1(x59,5)=__ASeq_6;}
   }else{
    {OBJ x13;
     if(ISPRM(x8)){
      HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
     }else{
      {OBJ x12=FLD1(x8,1);
       if(EXPRD(x8,1)){
	x13=x12;
	DSPRDF(x8);
       }else{
	CPPRD(x12,1);
	x13=x12;
	FRPRD(x8,1);}}}
     {OBJ x51=FLD1(x13,1);OBJ x52=FLD1(x13,2);OBJ x53=FLD1(x13,3);OBJ x54=FLD1(x13,4);OBJ x55=FLD1(x13,5);
      COPY(x51,1);COPY(x52,1);COPY(x53,1);COPY(x54,1);COPY(x55,1);
      if(ISPRM(x52)){
       if(EXPRD(x13,1)){
	DSPRD(x13);
       }else{
	DCPRD(x13,1);}
       {OBJ x58;
	PRD1F(2,x58);FLD1(x58,1)=x2;FLD1(x58,2)=__ASeq_6;
	PRD1(5,x59);FLD1(x59,1)=x51;FLD1(x59,2)=x58;FLD1(x59,3)=x53;FLD1(x59,4)=x54;FLD1(x59,5)=x55;}
      }else{
       x59=x13;
       if(EXPRD(x52,1)){
	FREE(FLD1(x52,2),1);DSPRDF(x52);
       }else{
	DCPRD(x52,1);}
       FREE(x51,1);
       FREE(x53,1);
       FREE(x54,1);
       FREE(x55,1);}}}}
   r=_ADArray_15(x3,x7,x59);}}
 return r;}

extern OBJ _ADecl4SigAna_16(OBJ x1,OBJ x2,OBJ x3) /* updLookupOp */
{OBJ r;
 {OBJ x4=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FRPRD(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   FRPRD(x1,1);}
  CPPRD(x3,1);
  {OBJ x7;OBJ x8;OBJ x10;OBJ x51;
   x7=x4;
   x8=_ADArray_21(x3,x7);
   if(ISPRM(x8)){
    x10=__ABUILTIN_5;
   }else{
    x10=__ABUILTIN_3;}
   if(ISTGPRM(x10,1)){
    FREE(x8,1);
    {OBJ x11;
     PRD1F(2,x11);FLD1(x11,1)=x2;FLD1(x11,2)=__ASeq_6;
     PRD1(5,x51);FLD1(x51,1)=__AOption_5;FLD1(x51,2)=__ASeq_6;FLD1(x51,3)=x11;FLD1(x51,4)=__ASeq_6;FLD1(x51,5)=__ASeq_6;}
   }else{
    {OBJ x13;
     if(ISPRM(x8)){
      HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
     }else{
      {OBJ x12=FLD1(x8,1);
       if(EXPRD(x8,1)){
	x13=x12;
	DSPRDF(x8);
       }else{
	CPPRD(x12,1);
	x13=x12;
	FRPRD(x8,1);}}}
     {OBJ x45;OBJ x46;OBJ x47=FLD1(x13,3);OBJ x48;OBJ x49;
      if(EXPRD(x13,1)){
       {OBJ x50;
	PRD1(2,x50);FLD1(x50,1)=x2;FLD1(x50,2)=x47;
	RSOME(x13,x51);FLD1(x51,3)=x50;}
      }else{
       x45=FLD1(x13,1);x46=FLD1(x13,2);x48=FLD1(x13,4);x49=FLD1(x13,5);COPY(x45,1);COPY(x46,1);COPY(x47,1);COPY(x48,1);COPY(x49,1);
       {OBJ x50;
	PRD1(2,x50);FLD1(x50,1)=x2;FLD1(x50,2)=x47;
	FRPRD(x13,1);PRD1(5,x51);FLD1(x51,1)=x45;FLD1(x51,2)=x46;FLD1(x51,3)=x50;FLD1(x51,4)=x48;FLD1(x51,5)=x49;}}}}}
   r=_ADArray_15(x3,x7,x51);}}
 return r;}

extern OBJ _ADecl4SigAna_17(OBJ x1) /* addSignOperCons'17 */
{OBJ r;
 CPCLS(__AObjects_22,1);
 CPCLS(__AObjects_24,1);
 CPCLS(__ACompose_4,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ACompose_4,2))(__ACompose_4,__AObjects_24,__AObjects_22);
 return r;}

static OBJ _mt_1_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 {OBJ t3;
  DCCLS(t,1);
  t3=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t3,1))(t3,t2);}
 return r;}

init_ADecl4SigAna()
{
 static int visited=0; if(visited) return; visited=1;
 init_APartName();
 init_AName4SigAna();
 init_AMaps4SigAna();
 init_ASeqMap();
 init_AObjects();
 init_ASeqReduce();
 init_AGlobSig();
 init_ACompose();
 init_AName();
 init_ASetByBST();
 init_AAttributes();
 init_ABSTree();
 init_ARep();
 init_ATree();
 init_AOcPos();
 init_ALexem();
 init_AFct();
 init_ADenotation();
 init_AImpl();
 init_ADArrayReduce();
 init_ASeq();
 init_AOption();
 init_AGlobSigImpl();
 init_APatterns();
 init_ANat();
 init_AChar();
 init_APair();
 init_ABitset();
 init_ATable();
 init_AUniqueTable();
 init_ADeclEntry();
 init_APartNameEntry();
 init_AImpExpEntry();
 init_APragma();
 init_AGlobPragma();
 init_AMap();
 init_ASet();
 init_ADArray();
 init_ANatMap();
 init_AString();
 init_AArray();
 LCLS(1,_ADecl4SigAna_17,__ADecl4SigAna_17);
 CLS(3,_ADecl4SigAna_16,__ADecl4SigAna_16);
 CLS(3,_ADecl4SigAna_15,__ADecl4SigAna_15);
 CLS(3,_ADecl4SigAna_14,__ADecl4SigAna_14);
 CLS(3,_ADecl4SigAna_13,__ADecl4SigAna_13);
 CLS(3,_ADecl4SigAna_12,__ADecl4SigAna_12);
 CLS(2,_ADecl4SigAna_11,__ADecl4SigAna_11);
 CLS(3,_ADecl4SigAna_10,__ADecl4SigAna_10);
 CLS(2,_ADecl4SigAna_9,__ADecl4SigAna_9);
 CLS(2,_ADecl4SigAna_8,__ADecl4SigAna_8);
 CLS(7,_ADecl4SigAna_7,__ADecl4SigAna_7);
 CLS(6,_ADecl4SigAna_6,__ADecl4SigAna_6);
 CLS(5,_ADecl4SigAna_5,__ADecl4SigAna_5);
 CLS(5,_ADecl4SigAna_4,__ADecl4SigAna_4);
 CLS(5,_ADecl4SigAna_3_c,__ADecl4SigAna_3);
 CLS(4,_ADecl4SigAna_2_c,__ADecl4SigAna_2);
 CLS(3,_ADecl4SigAna_1_c,__ADecl4SigAna_1);
 MTH(1,0,2,_mt_1_0_2);LZYMTH(1,0,2,_mt_1_0_2);}

