

#include "BUILTIN.h"
extern OBJ __AIdeMap_3;
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_3;
extern OBJ _ASeqOfSeq_2(OBJ);extern OBJ __ASeqOfSeq_2;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;

#include "Denotation.h"
extern OBJ _AMap_31(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_31;
extern OBJ _AMap_33(OBJ,OBJ,OBJ);extern OBJ __AMap_33;
extern OBJ __AOcError_15;
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;

#include "Nat.h"

#include "Array.h"
extern OBJ __ASeq_6;
extern OBJ _ASeq_52(OBJ,OBJ);extern OBJ __ASeq_52;

#include "Bitset.h"

#include "Char.h"

#include "Int.h"
extern OBJ _AIde_14(OBJ,OBJ);extern OBJ __AIde_14;
extern OBJ _AAn_7(OBJ,OBJ);extern OBJ __AAn_7;
extern OBJ __AOptimAn_5;
extern OBJ __AOptimAn_7;
extern OBJ __AOptimAn_24;
extern OBJ _APragmaAn_29(OBJ);extern OBJ __APragmaAn_29;
extern OBJ __APragmaAn_34;
extern OBJ _AOptimPragmaEval_1(OBJ,OBJ);OBJ __AOptimPragmaEval_1; /* optimPragmaEval */
extern TUP2 _AOptimPragmaEval_2(OBJ,OBJ);OBJ __AOptimPragmaEval_2; /* eval */
extern TUP3 _AOptimPragmaEval_3(OBJ,OBJ,OBJ);OBJ __AOptimPragmaEval_3; /* parse */
extern OBJ _AOptimPragmaEval_4(OBJ,OBJ,OBJ);OBJ __AOptimPragmaEval_4; /* add */
OBJ __AOptimPragmaEval_5; /* parse'5 */
extern OBJ _AOptimPragmaEval_6(OBJ,OBJ,OBJ);OBJ __AOptimPragmaEval_6; /* parse'6 */
OBJ __AOptimPragmaEval_7; /* parse'7 */
OBJ __AOptimPragmaEval_8; /* parse'8 */
extern OBJ _AOptimPragmaEval_9(OBJ,OBJ);OBJ __AOptimPragmaEval_9; /* parse'9 */
OBJ __AOptimPragmaEval_10; /* parse'10 */
extern OBJ _AOptimPragmaEval_11(OBJ,OBJ);OBJ __AOptimPragmaEval_11; /* parse'11 */

extern OBJ _AOptimPragmaEval_1(OBJ x1,OBJ x2) /* optimPragmaEval */
{OBJ r;
 {OBJ x47=FLD1(x2,1);OBJ x48=FLD1(x2,2);OBJ x49=FLD1(x2,3);OBJ x50=FLD1(x2,4);OBJ x51=FLD1(x2,5);FLAG x_x2=EXPRD(x2,1);
  if(x_x2){
  }else{
   COPY(x47,1);CPPRD(x48,1);CPPRD(x50,1);CPPRD(x51,1);}
  {OBJ x57;OBJ x59;OBJ x60;OBJ x61;OBJ x62;OBJ x63;OBJ x64;OBJ x65;
   if(ISPRM(x47)){
    CPPRD(__AOcError_15,1);
    CPCLS(__ACom_47,1);
    x57=__APragmaAn_34;
   }else{
    {OBJ x56=FLD1(x47,5);
     COPY(x56,1);
     x57=x56;
     CPPRD(__AOcError_15,1);
     CPCLS(__ACom_47,1);}}
   {TUP2 t=_AOptimPragmaEval_2(x1,x57);
    x59=t.c1;
    x60=t.c2;}
   x61=_AAn_7(x47,x60);
   if(x_x2){
    RSOME(x2,x62);FLD1(x62,1)=x61;
   }else{
    FRPRD(x2,1);PRD1(5,x62);FLD1(x62,1)=x61;FLD1(x62,2)=x48;FLD1(x62,3)=x49;FLD1(x62,4)=x50;FLD1(x62,5)=x51;}
   PRD1(3,x63);FLD1(x63,1)=x62;FLD1(x63,2)=x59;FLD1(x63,3)=__AOcError_15;
   PRD(1,0,x64);FLD(x64,1)=x63;
   x65=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x64);
   PRD(2,0,r);FLD(r,1)=x65;FLD(r,2)=__ASeq_6;}}
 return r;}

extern TUP2 _AOptimPragmaEval_2(OBJ x1,OBJ x2) /* eval */
{TUP2 r;
 if(ISPRM(x2)){
  r.c1=x1;r.c2=__AOptimAn_24;
 }else{
  {OBJ x16=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x16,1);
    FRPRD(x2,1);}
   CPCLS(__APragmaAn_29,1);
   COPY(__AIdeMap_3,1);
   {OBJ x17;OBJ x18;TUP3 x21;
    x17=_ASeqMap_3(__APragmaAn_29,x16);
    x18=_ASeqOfSeq_2(x17);
    x21=_AOptimPragmaEval_3(x1,__AIdeMap_3,x18);r.c1=x21.c1;
    FREE(x21.c3,1);
    PRD(1,3,r.c2);FLD(r.c2,1)=x21.c2;}}}
 return r;}
extern OBJ _AOptimPragmaEval_2_c(OBJ x1,OBJ x2) /* eval */
{OBJ r;
 {TUP2 t=_AOptimPragmaEval_2(x1,x2);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP3 _AOptimPragmaEval_3(register OBJ x1,register OBJ x2,register OBJ x3) /* parse */
{TUP3 r;
 for(;;){
  if(ISPRM(x3)){
   r.c1=x1;r.c2=x2;r.c3=__ASeq_6;
  }else{
   {OBJ x470=FLD1(x3,1);OBJ x471=FLD1(x3,2);
    if(EXPRD(x3,1)){
     DSPRDF(x3);
    }else{
     CPPRD(x470,1);COPY(x471,1);
     FRPRD(x3,1);}
    if(ISTGPRD(x470,0)){
     {OBJ x473=FLD(x470,2);
      if(EXPRD(x470,1)){
       DSPRDF(x470);
      }else{
       CPPRD(x473,1);
       FRPRD(x470,1);}
      if(ISPRM(x471)){
       FRPRD(x473,1);
       r.c1=x1;r.c2=x2;r.c3=__ASeq_6;
      }else{
       {OBJ x474=FLD1(x471,1);OBJ x475=FLD1(x471,2);
	CPPRD(x474,1);COPY(x475,1);
	if(ISTGPRD(x474,0)){
	 {OBJ x477=FLD(x474,2);
	  CPPRD(x477,1);
	  if(EXPRD(x474,1)){
	   FRPRD(FLD(x474,2),1);DSPRDF(x474);
	  }else{
	   DCPRD(x474,1);}
	  if(ISPRM(x475)){
	   if(EXPRD(x471,1)){
	    DSPRD(x471);
	   }else{
	    DCPRD(x471,1);}
	   FRPRD(x473,1);
	   FRPRD(x477,1);
	   r.c1=x1;r.c2=x2;r.c3=__ASeq_6;
	  }else{
	   {OBJ x478=FLD1(x475,1);OBJ x479=FLD1(x475,2);
	    CPPRD(x478,1);COPY(x479,1);
	    if(EXPRD(x475,1)){
	     DSPRD(x475);
	    }else{
	     DCPRD(x475,1);}
	    if(ISTGPRD(x478,1)){
	     {OBJ x481=FLD(x478,2);
	      COPY(x481,1);
	      if(EXPRD(x478,1)){
	       FREE(FLD(x478,2),1);DSPRDF(x478);
	      }else{
	       DCPRD(x478,1);}
	      CPPRD(__AOptimPragmaEval_5,1);
	      {OBJ x482;
	       ADenotation_21(x473,__AOptimPragmaEval_5,x482);
	       if(ISTGPRM(x482,1)){
		if(EXPRD(x471,1)){
		 DSPRD(x471);
		}else{
		 DCPRD(x471,1);}
		CPCLS(__AOptimPragmaEval_6,1);
		{OBJ x483;OBJ x484;
		 x483=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPragmaEval_6,1))(__AOptimPragmaEval_6,x477);
		 x484=_ASeqReduce_3(x483,x2,x481);
		 x2=x484;x3=x479;continue;}
	       }else{
		FRPRD(x477,1);
		FREE(x479,1);
		FREE(x481,1);
		x3=x471;continue;}}}
	    }else{
	     if(EXPRD(x478,1)){
	      FRPRD(FLD(x478,2),1);DSPRDF(x478);
	     }else{
	      DCPRD(x478,1);}
	     if(EXPRD(x471,1)){
	      DSPRD(x471);
	     }else{
	      DCPRD(x471,1);}
	     FRPRD(x473,1);
	     FRPRD(x477,1);
	     FREE(x479,1);
	     r.c1=x1;r.c2=x2;r.c3=__ASeq_6;}}}}
	}else{
	 {OBJ x488=FLD(x474,2);
	  if(EXPRD(x474,1)){
	   DSPRDF(x474);
	  }else{
	   COPY(x488,1);
	   FRPRD(x474,1);}
	  if(EXPRD(x471,1)){
	   DSPRD(x471);
	  }else{
	   DCPRD(x471,1);}
	  CPPRD(x473,1);
	  CPPRD(__AOptimPragmaEval_7,1);
	  {OBJ x489;
	   ADenotation_21(x473,__AOptimPragmaEval_7,x489);
	   if(ISTGPRM(x489,1)){
	    FRPRD(x473,1);
	    COPY(x488,1);
	    {OBJ x490;OBJ x491;OBJ x509;
	     x490=_ASeq_52(x488,__ANat_5);
	     ANat_76(x490,__ANat_9,x491);
	     if(ISTGPRM(x491,1)){
	      {OBJ x494;
	       if(ISPRM(x488)){
		HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
	       }else{
		{OBJ x492=FLD1(x488,1);
		 CPPRD(x492,1);
		 x494=x492;}}
	       if(ISTGPRD(x494,1)){
		if(EXPRD(x494,1)){
		 DSPRD(x494);
		}else{
		 DCPRD(x494,1);}
		{OBJ x501;OBJ x504;
		 if(ISPRM(x488)){
		  HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
		 }else{
		  {OBJ x500=FLD1(x488,2);
		   COPY(x500,1);
		   x501=x500;}}
		 if(ISPRM(x501)){
		  HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
		 }else{
		  {OBJ x502=FLD1(x501,1);
		   if(EXPRD(x501,1)){
		    x504=x502;
		    FREE(FLD1(x501,2),1);DSPRDF(x501);
		   }else{
		    CPPRD(x502,1);
		    x504=x502;
		    FRPRD(x501,1);}}}
		 if(ISTGPRD(x504,1)){
		  if(EXPRD(x504,1)){
		   DSPRD(x504);
		  }else{
		   DCPRD(x504,1);}
		  x509=__ABUILTIN_5;
		 }else{
		  FRPRD(x504,1);
		  x509=__ABUILTIN_3;}}
	       }else{
		FRPRD(x494,1);
		x509=__ABUILTIN_3;}}
	     }else{
	      x509=__ABUILTIN_3;}
	     if(ISTGPRM(x509,1)){
	      if(ISPRM(x488)){
	       HLT("Seq at <unknown> : undefined selection rt\'Seq:seq->seq");
	      }else{
	       {OBJ x510=FLD1(x488,1);OBJ x511=FLD1(x488,2);
		if(EXPRD(x488,1)){
		 DSPRDF(x488);
		}else{
		 CPPRD(x510,1);COPY(x511,1);
		 FRPRD(x488,1);}
		if(ISTGPRD(x510,1)){
		 {OBJ x515=FLD(x510,3);
		  if(EXPRD(x510,1)){
		   FLD(x510,3)=NIL;DSPRD(x510);
		  }else{
		   CPPRD(x515,1);
		   FRPRD(x510,1);}
		  {OBJ x519;OBJ x520;
		   if(ISPRM(x511)){
		    HLT("Seq at <unknown> : undefined selection ft\'Seq:seq->data");
		   }else{
		    {OBJ x517=FLD1(x511,1);
		     if(EXPRD(x511,1)){
		      x519=x517;
		      FREE(FLD1(x511,2),1);DSPRDF(x511);
		     }else{
		      CPPRD(x517,1);
		      x519=x517;
		      FRPRD(x511,1);}
		     CPPRD(x515,1);}}
		   PRD(1,0,x520);FLD(x520,1)=x515;
		   if(ISTGPRD(x519,1)){
		    {OBJ x523=FLD(x519,3);
		     if(EXPRD(x519,1)){
		      CPPRD(x523,1);
		      FLD(x519,3)=NIL;DSPRD(x519);
		     }else{
		      CPPRD(x523,2);
		      FRPRD(x519,1);}
		     {OBJ x525;OBJ x526;OBJ x527;
		      PRD(1,0,x525);FLD(x525,1)=x523;
		      x526=_AOptimPragmaEval_4(x523,x520,x2);
		      x527=_AOptimPragmaEval_4(x515,x525,x526);
		      x2=x527;x3=x475;continue;}}
		   }else{
		    HLT("PragmaAn at <unknown> : undefined selection ide\'PragmaAn:pragmaName->ide");}}}
		}else{
		 HLT("PragmaAn at <unknown> : undefined selection ide\'PragmaAn:pragmaName->ide");}}}
	     }else{
	      FREE(x488,1);
	      x3=x475;continue;}}
	   }else{
	    CPPRD(x473,1);
	    CPPRD(__AOptimPragmaEval_8,1);
	    {OBJ x528;
	     ADenotation_21(x473,__AOptimPragmaEval_8,x528);
	     if(ISTGPRM(x528,1)){
	      FRPRD(x473,1);
	      CPCLS(__AOptimPragmaEval_9,1);
	      {OBJ x529;
	       x529=_ASeqReduce_3(__AOptimPragmaEval_9,x2,x488);
	       x2=x529;x3=x475;continue;}
	     }else{
	      CPPRD(__AOptimPragmaEval_10,1);
	      {OBJ x530;
	       ADenotation_21(x473,__AOptimPragmaEval_10,x530);
	       if(ISTGPRM(x530,1)){
		CPCLS(__AOptimPragmaEval_11,1);
		{OBJ x531;
		 x531=_ASeqReduce_3(__AOptimPragmaEval_11,x2,x488);
		 x2=x531;x3=x475;continue;}
	       }else{
		FREE(x488,1);
		x3=x475;continue;}}}}}}}}}}}
    }else{
     if(EXPRD(x470,1)){
      FREE(FLD(x470,2),1);DSPRDF(x470);
     }else{
      DCPRD(x470,1);}
     FREE(x471,1);
     r.c1=x1;r.c2=x2;r.c3=__ASeq_6;}}}
  break;}
 return r;}
extern OBJ _AOptimPragmaEval_3_c(OBJ x1,OBJ x2,OBJ x3) /* parse */
{OBJ r;
 {TUP3 t=_AOptimPragmaEval_3(x1,x2,x3);
  PRD1(3,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;}
 return r;}

extern OBJ _AOptimPragmaEval_4(OBJ x1,OBJ x2,OBJ x3) /* add */
{OBJ r;
 CPCLS(__AIde_14,1);
 CPPRD(x1,1);
 COPY(x3,1);
 {OBJ x4;
  x4=_AMap_33(__AIde_14,x3,x1);
  if(ISPRM(x4)){
   CPCLS(__AIde_14,1);
   {OBJ x13;
    PRD1(2,x13);FLD1(x13,1)=x2;FLD1(x13,2)=__ASeq_6;
    r=_AMap_31(__AIde_14,x1,x13,x3);}
  }else{
   {OBJ x11=FLD1(x4,1);
    if(EXPRD(x4,1)){
     DSPRDF(x4);
    }else{
     COPY(x11,1);
     FRPRD(x4,1);}
    CPCLS(__AIde_14,1);
    {OBJ x12;
     PRD1(2,x12);FLD1(x12,1)=x2;FLD1(x12,2)=x11;
     r=_AMap_31(__AIde_14,x1,x12,x3);}}}}
 return r;}

extern OBJ _AOptimPragmaEval_6(OBJ x1,OBJ x2,OBJ x3) /* parse'6 */
{OBJ r;
 if(ISTGPRD(x2,1)){
  {OBJ x6=FLD(x2,3);
   if(EXPRD(x2,1)){
    FLD(x2,3)=NIL;DSPRD(x2);
   }else{
    CPPRD(x6,1);
    FRPRD(x2,1);}
   {OBJ x8;OBJ x9;
    x8=x6;
    PRD(1,3,x9);FLD(x9,1)=x1;
    r=_AOptimPragmaEval_4(x8,x9,x3);}}
 }else{
  HLT("PragmaAn at <unknown> : undefined selection ide\'PragmaAn:pragmaName->ide");}
 return r;}

extern OBJ _AOptimPragmaEval_9(OBJ x1,OBJ x2) /* parse'9 */
{OBJ r;
 if(ISTGPRD(x1,1)){
  {OBJ x5=FLD(x1,3);
   if(EXPRD(x1,1)){
    FLD(x1,3)=NIL;DSPRD(x1);
   }else{
    CPPRD(x5,1);
    FRPRD(x1,1);}
   {OBJ x7;
    x7=x5;
    r=_AOptimPragmaEval_4(x7,__AOptimAn_7,x2);}}
 }else{
  HLT("PragmaAn at <unknown> : undefined selection ide\'PragmaAn:pragmaName->ide");}
 return r;}

extern OBJ _AOptimPragmaEval_11(OBJ x1,OBJ x2) /* parse'11 */
{OBJ r;
 if(ISTGPRD(x1,1)){
  {OBJ x5=FLD(x1,3);
   if(EXPRD(x1,1)){
    FLD(x1,3)=NIL;DSPRD(x1);
   }else{
    CPPRD(x5,1);
    FRPRD(x1,1);}
   {OBJ x7;
    x7=x5;
    r=_AOptimPragmaEval_4(x7,__AOptimAn_5,x2);}}
 }else{
  HLT("PragmaAn at <unknown> : undefined selection ide\'PragmaAn:pragmaName->ide");}
 return r;}

init_AOptimPragmaEval()
{
 static int visited=0; if(visited) return; visited=1;
 init_AIdeMap();
 init_ASeqReduce();
 init_ASeqOfSeq();
 init_ASeqMap();
 init_AAc();
 init_ADenotation();
 init_APreparedOptions();
 init_AMap();
 init_AOcError();
 init_AMapConv();
 init_ATriple();
 init_ASetByBST();
 init_ACom();
 init_ABSTree();
 init_ANat();
 init_ATree();
 init_AVoid();
 init_AArray();
 init_ASeq();
 init_ABitset();
 init_AOption();
 init_AOcPos();
 init_AString();
 init_AOcOptions();
 init_AChar();
 init_AStream();
 init_AFile();
 init_AInt();
 init_ANatMap();
 init_AIde();
 init_AAn();
 init_ATypeAn();
 init_ASourceAn();
 init_AOptimAn();
 init_ATransAn();
 init_APragmaAn();
 init_AStore();
 init_AFormat();
 init_AFmt();
 init_ASet();
 init_APair();
 CLS(2,_AOptimPragmaEval_11,__AOptimPragmaEval_11);
 DEN("primary",__AOptimPragmaEval_10);
 CLS(2,_AOptimPragmaEval_9,__AOptimPragmaEval_9);
 DEN("unfold",__AOptimPragmaEval_8);
 DEN("inverse",__AOptimPragmaEval_7);
 CLS(3,_AOptimPragmaEval_6,__AOptimPragmaEval_6);
 DEN("experimental",__AOptimPragmaEval_5);
 CLS(3,_AOptimPragmaEval_4,__AOptimPragmaEval_4);
 CLS(3,_AOptimPragmaEval_3_c,__AOptimPragmaEval_3);
 CLS(2,_AOptimPragmaEval_2_c,__AOptimPragmaEval_2);
 CLS(2,_AOptimPragmaEval_1,__AOptimPragmaEval_1);}

