

#include "BUILTIN.h"
extern OBJ __ASeq_6;
extern OBJ _ASeq_26(OBJ,OBJ);extern OBJ __ASeq_26;
extern OBJ _AImpl_10(OBJ);extern OBJ __AImpl_10;
extern OBJ _AAnalyzedGlobSig_1(OBJ);extern OBJ __AAnalyzedGlobSig_1;
extern OBJ _AAnalyzedGlobSig_46(OBJ,OBJ);extern OBJ __AAnalyzedGlobSig_46;

#include "Array.h"
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;

#include "Denotation.h"

#include "Nat.h"

#include "Char.h"

#include "Int.h"

#include "Bitset.h"
extern OBJ _ABindingAnalysis_1(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_1; /* generateBindings */
extern OBJ _ABindingAnalysis_3(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_3; /* generateLhsBindings */
extern OBJ _ABindingAnalysis_4(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_4; /* generatePatternBindings */
extern OBJ _ABindingAnalysis_5(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_5; /* generatePatternSeqBindings */
extern OBJ _ABindingAnalysis_6(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_6; /* generatePatternBindings'6 */
extern OBJ _ABindingAnalysis_7(OBJ,OBJ);OBJ __ABindingAnalysis_7; /* generatePatternBindings'7 */
extern OBJ _ABindingAnalysis_8(OBJ,OBJ,OBJ);OBJ __ABindingAnalysis_8; /* generatePatternBindings'8 */
extern OBJ _ABindingAnalysis_9(OBJ,OBJ);OBJ __ABindingAnalysis_9; /* generatePatternBindings'9 */

extern OBJ _ABindingAnalysis_1(register OBJ x1,register OBJ x2,register OBJ x3) /* generateBindings */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRPRD(x1,1);
   FREE(x3,1);
   *p1=__ASeq_6;
  }else{
   {OBJ x57=FLD1(x2,1);OBJ x58=FLD1(x2,2);FLAG x_x2=EXPRD(x2,1);
    if(x_x2){
    }else{
     CPPRD(x57,1);COPY(x58,1);}
    {OBJ x60=FLD1(x57,1);OBJ x61=FLD1(x57,2);OBJ x62=FLD1(x57,3);
     if(EXPRD(x57,1)){
      DSPRDF(x57);
     }else{
      CPPRD(x60,1);CPPRD(x61,1);COPY(x62,1);
      FRPRD(x57,1);}
     CPPRD(x1,1);
     COPY(x3,1);
     {OBJ x63;
      x63=_ABindingAnalysis_3(x1,x60,x3);
      if(ISPRM(x63)){
       FREE(x62,1);
       {
	if(x_x2){
	 RSOME(x2,*p1);FLD1(*p1,1)=x61;
	}else{
	 FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x61;}
	x2=x58;p1=&FLD1(*p1,2);continue;}
      }else{
       {OBJ x67;OBJ x68;
	x67=_ABindingAnalysis_1(x1,x58,x3);
	PRD(3,9,x68);FLD(x68,1)=x63;FLD(x68,2)=x61;FLD(x68,3)=x62;
	if(x_x2){
	 RSOME(x2,*p1);FLD1(*p1,1)=x68;FLD1(*p1,2)=x67;
	}else{
	 FRPRD(x2,1);PRD1(2,*p1);FLD1(*p1,1)=x68;FLD1(*p1,2)=x67;}}}}}}}
  break;}
 return r;}

extern OBJ _ABindingAnalysis_3(OBJ x1,OBJ x2,OBJ x3) /* generateLhsBindings */
{OBJ r;
 if(ISTGPRD(x1,4)){
  {OBJ x68=FLD(x1,1);OBJ x69=FLD(x1,2);
   if(EXPRD(x1,1)){
    FREE(FLD(x1,3),1);DSPRDF(x1);
   }else{
    CPPRD(x68,1);CPPRD(x69,1);
    FRPRD(x1,1);}
   if(ISTGPRD(x2,4)){
    {OBJ x71=FLD(x2,1);OBJ x72=FLD(x2,2);
     if(EXPRD(x2,1)){
      FREE(FLD(x2,3),1);DSPRDF(x2);
     }else{
      CPPRD(x71,1);CPPRD(x72,1);
      FRPRD(x2,1);}
     COPY(x3,1);
     {OBJ x74;OBJ x75;
      x74=_ABindingAnalysis_4(x69,x72,x3);
      x75=_ABindingAnalysis_3(x68,x71,x3);
      r=_ASeq_26(x75,x74);}}
   }else{
    HLT("BindingAnalysis at <41,5-23> : missing else in generateLhsBindings\'BindingAnalysis:expr**expr**globSig->seq");}}
 }else{
  if(ISTGPRD(x1,7)){
   if(EXPRD(x1,1)){
    DSPRD(x1);
   }else{
    DCPRD(x1,1);}
   FREE(x3,1);
   if(ISTGPRD(x2,7)){
    if(EXPRD(x2,1)){
     DSPRD(x2);
    }else{
     DCPRD(x2,1);}
    r=__ASeq_6;
   }else{
    HLT("BindingAnalysis at <41,5-23> : missing else in generateLhsBindings\'BindingAnalysis:expr**expr**globSig->seq");}
  }else{
   HLT("BindingAnalysis at <41,5-23> : missing else in generateLhsBindings\'BindingAnalysis:expr**expr**globSig->seq");}}
 return r;}

extern OBJ _ABindingAnalysis_4(register OBJ x1,register OBJ x2,register OBJ x3) /* generatePatternBindings */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISTGPRD(x1,3)){
   {OBJ x376=FLD(x1,1);
    COPY(x376,1);
    if(ISTGPRD(x2,4)){
     {OBJ x378=FLD(x2,1);OBJ x379=FLD(x2,2);
      CPPRD(x378,1);CPPRD(x379,1);
      FREE(x376,1);
      if(ISTGPRD(x378,7)){
       {OBJ x381=FLD(x378,1);
	COPY(x381,1);
	if(EXPRD(x378,1)){
	 DSPRD(x378);
	}else{
	 DCPRD(x378,1);}
	{OBJ x385;OBJ x389;OBJ x386;OBJ x390;OBJ x391;OBJ x392;
	 if(ISTGPRD(x379,3)){
	  x385=__ABUILTIN_5;
	 }else{
	  x385=__ABUILTIN_3;}
	 if(ISTGPRM(x385,1)){
	  if(ISTGPRD(x379,3)){
	   {OBJ x387=FLD(x379,1);
	    COPY(x387,1);
	    x389=x387;
	    if(EXPRD(x379,1)){
	     DSPRD(x379);
	    }else{
	     DCPRD(x379,1);}
	    COPY(x3,1);
	    CPCLS(__ABindingAnalysis_7,1);}
	  }else{
	   HLT("Impl at <unknown> : undefined selection elems\'Impl:expr->seq");}
	 }else{
	  COPY(x3,1);
	  CPCLS(__ABindingAnalysis_7,1);
	  PRD1(2,x389);FLD1(x389,1)=x379;FLD1(x389,2)=__ASeq_6;}
	 x386=_AAnalyzedGlobSig_46(x3,x381);
	 x390=(*(OBJ(*)(OBJ,OBJ))METHOD(__ABindingAnalysis_7,1))(__ABindingAnalysis_7,x2);
	 x391=(*(OBJ(*)(OBJ,OBJ))METHOD(x390,1))(x390,x1);
	 x392=_ASeqMap_3(x391,x386);
	 *p1=_ABindingAnalysis_5(x392,x389,x3);}}
      }else{
       HLT("BindingAnalysis at <52,5-27> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}
    }else{
     if(ISTGPRD(x2,7)){
      {OBJ x393=FLD(x2,1);
       COPY(x393,1);
       FREE(x3,1);
       FREE(x376,1);
       if(ISPRD(x393)&&(ISTGPRD(x393,7))){
	if(EXPRD(x393,1)){
	 DSPRDF(x393);
	}else{
	 DCPRD(x393,1);}
	CPPRD(x2,1);
	{OBJ x396;OBJ x397;
	 x396=_AImpl_10(x2);
	 PRD1(3,x397);FLD1(x397,1)=x2;FLD1(x397,2)=x1;FLD1(x397,3)=x396;
	 PRD1(2,*p1);FLD1(*p1,1)=x397;FLD1(*p1,2)=__ASeq_6;}
       }else{
	if(EXPRD(x1,1)){
	 DSPRD(x1);
	}else{
	 DCPRD(x1,1);}
	if(EXPRD(x2,1)){
	 DSPRD(x2);
	}else{
	 DCPRD(x2,1);}
	{OBJ x398;
	 x398=_AAnalyzedGlobSig_1(x393);
	 if(ISTGPRM(x398,1)){
	  *p1=__ASeq_6;
	 }else{
	  HLT("BindingAnalysis at <55,6-56,23> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}}}
     }else{
      if(ISTGPRD(x2,8)){
       {OBJ x399=FLD(x2,1);OBJ x400=FLD(x2,2);
	COPY(x399,1);CPPRD(x400,1);
	FREE(x376,1);
	{OBJ x402;OBJ x403;OBJ x405;
	 x402=_AImpl_10(x2);
	 COPY(x402,1);
	 PRD(2,7,x403);FLD(x403,1)=x399;FLD(x403,2)=x402;
	 CPPRD(x403,1);
	 PRD1(3,x405);FLD1(x405,1)=x403;FLD1(x405,2)=x1;FLD1(x405,3)=x402;
	 PRD1(2,*p1);FLD1(*p1,1)=x405;
	 x1=x403;x2=x400;p1=&FLD1(*p1,2);continue;}}
      }else{
       if(ISTGPRD(x2,3)){
	{OBJ x406=FLD(x2,1);
	 if(EXPRD(x2,1)){
	  FREE(FLD(x2,2),1);DSPRDF(x2);
	 }else{
	  COPY(x406,1);
	  FRPRD(x2,1);}
	 if(EXPRD(x1,1)){
	  DSPRD(x1);
	 }else{
	  DCPRD(x1,1);}
	 *p1=_ABindingAnalysis_5(x376,x406,x3);}
       }else{
	HLT("BindingAnalysis at <52,5-27> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}}}}
  }else{
   if(ISTGPRD(x2,7)){
    {OBJ x408=FLD(x2,1);
     COPY(x408,1);
     FREE(x3,1);
     if(ISPRD(x408)&&(ISTGPRD(x408,7))){
      if(EXPRD(x408,1)){
       DSPRDF(x408);
      }else{
       DCPRD(x408,1);}
      CPPRD(x2,1);
      {OBJ x411;OBJ x412;
       x411=_AImpl_10(x2);
       PRD1(3,x412);FLD1(x412,1)=x2;FLD1(x412,2)=x1;FLD1(x412,3)=x411;
       PRD1(2,*p1);FLD1(*p1,1)=x412;FLD1(*p1,2)=__ASeq_6;}
     }else{
      FRPRD(x1,1);
      if(EXPRD(x2,1)){
       DSPRD(x2);
      }else{
       DCPRD(x2,1);}
      {OBJ x413;
       x413=_AAnalyzedGlobSig_1(x408);
       if(ISTGPRM(x413,1)){
	*p1=__ASeq_6;
       }else{
	HLT("BindingAnalysis at <55,6-56,23> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}}}
   }else{
    if(ISTGPRD(x2,8)){
     {OBJ x414=FLD(x2,1);OBJ x415=FLD(x2,2);
      COPY(x414,1);CPPRD(x415,1);
      {OBJ x417;OBJ x418;OBJ x419;
       x417=_AImpl_10(x2);
       COPY(x417,1);
       PRD(2,7,x418);FLD(x418,1)=x414;FLD(x418,2)=x417;
       CPPRD(x418,1);
       PRD1(3,x419);FLD1(x419,1)=x418;FLD1(x419,2)=x1;FLD1(x419,3)=x417;
       PRD1(2,*p1);FLD1(*p1,1)=x419;
       x1=x418;x2=x415;p1=&FLD1(*p1,2);continue;}}
    }else{
     if(ISTGPRD(x2,4)){
      {OBJ x421=FLD(x2,1);OBJ x422=FLD(x2,2);
       CPPRD(x421,1);CPPRD(x422,1);
       if(ISTGPRD(x421,7)){
	{OBJ x424=FLD(x421,1);
	 COPY(x424,1);
	 if(EXPRD(x421,1)){
	  DSPRD(x421);
	 }else{
	  DCPRD(x421,1);}
	 {OBJ x428;OBJ x432;OBJ x429;OBJ x433;OBJ x434;OBJ x435;
	  if(ISTGPRD(x422,3)){
	   x428=__ABUILTIN_5;
	  }else{
	   x428=__ABUILTIN_3;}
	  if(ISTGPRM(x428,1)){
	   if(ISTGPRD(x422,3)){
	    {OBJ x430=FLD(x422,1);
	     COPY(x430,1);
	     x432=x430;
	     if(EXPRD(x422,1)){
	      DSPRD(x422);
	     }else{
	      DCPRD(x422,1);}
	     COPY(x3,1);
	     CPCLS(__ABindingAnalysis_9,1);}
	   }else{
	    HLT("Impl at <unknown> : undefined selection elems\'Impl:expr->seq");}
	  }else{
	   COPY(x3,1);
	   CPCLS(__ABindingAnalysis_9,1);
	   PRD1(2,x432);FLD1(x432,1)=x422;FLD1(x432,2)=__ASeq_6;}
	  x429=_AAnalyzedGlobSig_46(x3,x424);
	  x433=(*(OBJ(*)(OBJ,OBJ))METHOD(__ABindingAnalysis_9,1))(__ABindingAnalysis_9,x2);
	  x434=(*(OBJ(*)(OBJ,OBJ))METHOD(x433,1))(x433,x1);
	  x435=_ASeqMap_3(x434,x429);
	  *p1=_ABindingAnalysis_5(x435,x432,x3);}}
       }else{
	HLT("BindingAnalysis at <52,5-27> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}
     }else{
      HLT("BindingAnalysis at <52,5-27> : missing else in generatePatternBindings\'BindingAnalysis:expr**expr**globSig->seq");}}}}
  break;}
 return r;}

extern OBJ _ABindingAnalysis_5(OBJ x1,OBJ x2,OBJ x3) /* generatePatternSeqBindings */
{OBJ r;
 if(ISPRM(x1)){
  FREE(x3,1);
  if(ISPRM(x2)){
   r=__ASeq_6;
  }else{
   HLT("BindingAnalysis at <74,5-30> : missing else in generatePatternSeqBindings\'BindingAnalysis:seq**seq**globSig->seq");}
 }else{
  {OBJ x69=FLD1(x1,1);OBJ x70=FLD1(x1,2);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    CPPRD(x69,1);COPY(x70,1);
    FRPRD(x1,1);}
   if(ISPRM(x2)){
    HLT("BindingAnalysis at <74,5-30> : missing else in generatePatternSeqBindings\'BindingAnalysis:seq**seq**globSig->seq");
   }else{
    {OBJ x71=FLD1(x2,1);OBJ x72=FLD1(x2,2);
     if(EXPRD(x2,1)){
      DSPRDF(x2);
     }else{
      CPPRD(x71,1);COPY(x72,1);
      FRPRD(x2,1);}
     COPY(x3,1);
     {OBJ x76;OBJ x75;
      x76=_ABindingAnalysis_4(x69,x71,x3);
      x75=_ABindingAnalysis_5(x70,x72,x3);
      r=_ASeq_26(x76,x75);}}}}}
 return r;}

extern OBJ _ABindingAnalysis_6(OBJ x1,OBJ x2,OBJ x3) /* generatePatternBindings'6 */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_AImpl_10(x1);
  COPY(x4,1);
  PRD(2,7,x5);FLD(x5,1)=x3;FLD(x5,2)=x4;
  PRD(3,4,r);FLD(r,1)=x5;FLD(r,2)=x2;FLD(r,3)=x4;}
 return r;}

extern OBJ _ABindingAnalysis_7(OBJ x1,OBJ x2) /* generatePatternBindings'7 */
{OBJ r;
 CPCLS(__ABindingAnalysis_6,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ABindingAnalysis_6,2))(__ABindingAnalysis_6,x1,x2);
 return r;}

extern OBJ _ABindingAnalysis_8(OBJ x1,OBJ x2,OBJ x3) /* generatePatternBindings'8 */
{OBJ r;
 {OBJ x4;OBJ x5;
  x4=_AImpl_10(x1);
  COPY(x4,1);
  PRD(2,7,x5);FLD(x5,1)=x3;FLD(x5,2)=x4;
  PRD(3,4,r);FLD(r,1)=x5;FLD(r,2)=x2;FLD(r,3)=x4;}
 return r;}

extern OBJ _ABindingAnalysis_9(OBJ x1,OBJ x2) /* generatePatternBindings'9 */
{OBJ r;
 CPCLS(__ABindingAnalysis_8,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ABindingAnalysis_8,2))(__ABindingAnalysis_8,x1,x2);
 return r;}

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

static OBJ _mt_2_1_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 {OBJ t3;
  if(EXCLS(t)){
   DSCLSF(t);
  }else{
   COPY(FLDCLS(t,1),1);
   DCCLS(t,1);}
  t3=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),t1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t3,1))(t3,t2);}
 return r;}

init_ABindingAnalysis()
{
 static int visited=0; if(visited) return; visited=1;
 init_ADeclEntry();
 init_APartNameEntry();
 init_AImpExpEntry();
 init_APragma();
 init_ASeq();
 init_AAttributes();
 init_AImpl();
 init_ADArray();
 init_AAnalyzedGlobSig();
 init_ANatMap();
 init_AGlobSig();
 init_AArray();
 init_AGlobPragma();
 init_APartName();
 init_AName();
 init_ASeqReduce();
 init_AGlobSigImpl();
 init_ASeqMap();
 init_AObjects();
 init_ADenotation();
 init_APatterns();
 init_ATree();
 init_APair();
 init_AAbsyFun3();
 init_AMap();
 init_AAnalyzedGlobSigH();
 init_ANat();
 init_AGlobSigToText();
 init_AOcError();
 init_AImpDecl4SigAna();
 init_ARep();
 init_AMySeqFun1();
 init_AFct();
 init_AName4SigAna();
 init_AOption();
 init_ASetByBST();
 init_AOcPos();
 init_ABSTree();
 init_ACom();
 init_AVoid();
 init_AChar();
 init_AString();
 init_AOcOptions();
 init_AStream();
 init_AFile();
 init_AInt();
 init_ASet();
 init_ABitset();
 init_ATable();
 init_AUniqueTable();
 CLS(2,_ABindingAnalysis_9,__ABindingAnalysis_9);
 CLS(3,_ABindingAnalysis_8,__ABindingAnalysis_8);
 CLS(2,_ABindingAnalysis_7,__ABindingAnalysis_7);
 CLS(3,_ABindingAnalysis_6,__ABindingAnalysis_6);
 CLS(3,_ABindingAnalysis_5,__ABindingAnalysis_5);
 CLS(3,_ABindingAnalysis_4,__ABindingAnalysis_4);
 CLS(3,_ABindingAnalysis_3,__ABindingAnalysis_3);
 CLS(3,_ABindingAnalysis_1,__ABindingAnalysis_1);
 MTH(2,0,3,_mt_2_0_3);LZYMTH(2,0,3,_mt_2_0_3);
 MTH(2,1,2,_mt_2_1_2);LZYMTH(2,1,2,_mt_2_1_2);}

