

#include "BUILTIN.h"

#include "Nat.h"
extern OBJ _AOcPos_32(OBJ,OBJ);extern OBJ __AOcPos_32;
extern OBJ _AOcPos_34(OBJ);extern OBJ __AOcPos_34;
extern OBJ __ATerminal_2;
extern OBJ __ATerminal_120;
extern OBJ _ATerminal_145(OBJ);extern OBJ __ATerminal_145;
extern OBJ _ARep_9(OBJ);extern OBJ __ARep_9;
extern OBJ __ARep_13;
extern OBJ _ARep_24(OBJ,OBJ);extern OBJ __ARep_24;
extern OBJ __ARep_45;
extern OBJ _ARep_119(OBJ);extern OBJ __ARep_119;
extern OBJ __ARep_187;

#include "Char.h"

#include "Int.h"

#include "Denotation.h"

#include "CharConv.h"
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_3;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;

#include "NatConv.h"
extern OBJ __AZOpts_5;

#include "Real.h"

#include "Array.h"

#include "Bitset.h"
extern OBJ _AToken_2(OBJ,OBJ,OBJ);OBJ __AToken_2; /* token */
extern OBJ _AToken_3(OBJ);OBJ __AToken_3; /* token? */
extern OBJ _AToken_4(OBJ);OBJ __AToken_4; /* pos */
extern OBJ _AToken_5(OBJ);OBJ __AToken_5; /* lexem */
extern OBJ _AToken_6(OBJ);OBJ __AToken_6; /* terminal */
extern OBJ _AToken_7(OBJ,OBJ);OBJ __AToken_7; /* = */
extern OBJ _AToken_8(OBJ,OBJ);OBJ __AToken_8; /* =,1 */
extern OBJ _AToken_9(OBJ,OBJ);OBJ __AToken_9; /* =,2 */
extern OBJ _AToken_10(OBJ);OBJ __AToken_10; /* impTok */
extern OBJ _AToken_11(OBJ);OBJ __AToken_11; /* eqSepTok */
extern OBJ _AToken_12(OBJ);OBJ __AToken_12; /* ` */
extern OBJ _AToken_13(OBJ);OBJ __AToken_13; /* dump */
extern OBJ _AToken_14(OBJ);OBJ __AToken_14; /* printToken */
extern OBJ _AToken_15(OBJ);OBJ __AToken_15; /* printRepToken */
extern OBJ _AToken_16(OBJ);OBJ __AToken_16; /* printTS */
extern OBJ _AToken_17(OBJ);OBJ __AToken_17; /* `'17 */
extern OBJ _AToken_18(OBJ);OBJ __AToken_18; /* `'18 */
extern OBJ _AToken_19(OBJ);OBJ __AToken_19; /* dump'19 */
extern OBJ _AToken_20(OBJ);OBJ __AToken_20; /* dump'20 */
extern OBJ _AToken_21(OBJ);OBJ __AToken_21; /* printToken'21 */
OBJ __AToken_22; /* printToken'22 */
extern OBJ _AToken_23(OBJ);OBJ __AToken_23; /* printRepToken'23 */
OBJ __AToken_24; /* printTS'24 */
extern OBJ _AToken_25(OBJ);OBJ __AToken_25; /* printTS'25 */
OBJ __AToken_26; /* printTS'26 */

extern OBJ _AToken_2(OBJ x1,OBJ x2,OBJ x3) /* token */
{OBJ r;
 PRD1(3,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;
 return r;}

extern OBJ _AToken_3(OBJ x1) /* token? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AToken_4(OBJ x1) /* pos */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FRPRD(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AToken_5(OBJ x1) /* lexem */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FREE(FLD1(x1,3),1);DSPRDF(x1);
  }else{
   CPPRD(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AToken_6(OBJ x1) /* terminal */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   DSPRD(x1);
  }else{
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AToken_7(OBJ x1,OBJ x2) /* = */
{OBJ r;
 {OBJ x29=FLD1(x1,1);OBJ x30=FLD1(x1,2);OBJ x31=FLD1(x1,3);
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   CPPRD(x30,1);COPY(x31,1);
   FRPRD(x1,1);}
  {OBJ x46=FLD1(x2,1);OBJ x47=FLD1(x2,2);OBJ x48=FLD1(x2,3);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    CPPRD(x47,1);COPY(x48,1);
    FRPRD(x2,1);}
   {OBJ x49;OBJ x50;
    ANat_76(x29,x46,x49);
    if(ISTGPRM(x49,1)){
     x50=_ARep_24(x30,x47);
    }else{
     FRPRD(x30,1);
     FRPRD(x47,1);
     x50=__ABUILTIN_3;}
    if(ISTGPRM(x50,1)){
     r=_AOcPos_32(x31,x48);
    }else{
     FREE(x31,1);
     FREE(x48,1);
     r=__ABUILTIN_3;}}}}
 return r;}

extern OBJ _AToken_8(OBJ x1,OBJ x2) /* =,1 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   DSPRD(x1);
  }else{
   FRPRD(x1,1);}
  {OBJ x6;
   x6=x3;
   ANat_76(x6,x2,r);}}
 return r;}

extern OBJ _AToken_9(OBJ x1,OBJ x2) /* =,2 */
{OBJ r;
 {OBJ x3=FLD1(x2,1);
  if(EXPRD(x2,1)){
   DSPRD(x2);
  }else{
   FRPRD(x2,1);}
  {OBJ x6;
   x6=x3;
   ANat_76(x6,x1,r);}}
 return r;}

extern OBJ _AToken_10(OBJ x1) /* impTok */
{OBJ r;
 CPPRD(__ARep_45,1);
 PRD1(3,r);FLD1(r,1)=__ATerminal_120;FLD1(r,2)=__ARep_45;FLD1(r,3)=x1;
 return r;}

extern OBJ _AToken_11(OBJ x1) /* eqSepTok */
{OBJ r;
 CPPRD(__ARep_13,1);
 PRD1(3,r);FLD1(r,1)=__ATerminal_2;FLD1(r,2)=__ARep_13;FLD1(r,3)=x1;
 return r;}

extern OBJ _AToken_12(OBJ x1) /* ` */
{OBJ r;
 CPCLS(__AToken_17,1);
 CPCLS(__AToken_18,1);
 {OBJ x6;OBJ x15;
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_17,1))(__AToken_17,__ABUILTIN_20);
  x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_18,1))(__AToken_18,__ABUILTIN_20);
  {OBJ x23=FLD1(x1,1);OBJ x24=FLD1(x1,2);OBJ x25=FLD1(x1,3);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    CPPRD(x24,1);COPY(x25,1);
    FRPRD(x1,1);}
   CPPRD(x6,1);
   {OBJ x26;OBJ x27;OBJ x28;OBJ x29;OBJ x30;OBJ x31;OBJ x32;
    x26=_AOcPos_34(x25);
    x27=_ARep_119(x24);
    x28=_ATerminal_145(x23);
    ADenotation_4(x26,x15,x29);
    ADenotation_4(x6,x29,x30);
    ADenotation_4(x27,x30,x31);
    ADenotation_4(x6,x31,x32);
    ADenotation_4(x28,x32,r);}}}
 return r;}

extern OBJ _AToken_13(OBJ x1) /* dump */
{OBJ r;
 CPCLS(__AToken_19,1);
 CPCLS(__AToken_20,1);
 {OBJ x6;OBJ x15;
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_19,1))(__AToken_19,__ABUILTIN_20);
  x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_20,1))(__AToken_20,__ABUILTIN_20);
  {OBJ x30=FLD1(x1,1);OBJ x31=FLD1(x1,2);OBJ x32=FLD1(x1,3);
   if(EXPRD(x1,1)){
    CPPRD(x31,1);
    DSPRDF(x1);
   }else{
    CPPRD(x31,2);COPY(x32,1);
    FRPRD(x1,1);}
   {OBJ x33;OBJ x34;OBJ x35;
    x33=_AOcPos_34(x32);
    x34=_ARep_119(x31);
    x35=_ATerminal_145(x30);
    {OBJ x36=FLD1(x31,1);
     if(EXPRD(x31,1)){
      FRPRD(FLD1(x31,2),1);DSPRDF(x31);
     }else{
      FRPRD(x31,1);}
     CPPRD(x6,2);
     {OBJ x39;OBJ x40;OBJ x41;OBJ x42;OBJ x43;OBJ x44;OBJ x45;
      ADenotation_4(x33,x15,x39);
      ANatConv_1(x36,x40);
      ADenotation_4(x6,x39,x41);
      ADenotation_4(x40,x41,x42);
      ADenotation_4(x6,x42,x43);
      ADenotation_4(x34,x43,x44);
      ADenotation_4(x6,x44,x45);
      ADenotation_4(x35,x45,r);}}}}}
 return r;}

extern OBJ _AToken_14(OBJ x1) /* printToken */
{OBJ r;
 CPCLS(__AToken_21,1);
 {OBJ x8;
  x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_21,1))(__AToken_21,__ABUILTIN_20);
  {OBJ x15=FLD1(x1,1);OBJ x16=FLD1(x1,2);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    COPY(x15,1);CPPRD(x16,1);
    FRPRD(x1,1);}
   CPCLS(__AToken_12,1);
   {OBJ x17;OBJ x19;OBJ x18;OBJ x20;OBJ x21;OBJ x22;
    x17=_ASeqMap_3(__AToken_12,x15);
    if(ISTGPRM(__AZOpts_5,1)){
     CPPRD(x8,1);
     CPPRD(__AToken_22,1);
     CPPRD(__ARep_187,1);
     CPCLS(__ADenotation_4,1);
     x19=_ARep_9(x16);
    }else{
     FRPRD(x16,1);
     CPPRD(x8,1);
     CPPRD(__AToken_22,1);
     CPPRD(__ARep_187,2);
     CPCLS(__ADenotation_4,1);
     x19=__ARep_187;}
    x18=_ASeqReduce_3(__ADenotation_4,__ARep_187,x17);
    ADenotation_4(x8,x19,x20);
    ADenotation_4(x18,x20,x21);
    ADenotation_4(x8,x21,x22);
    ADenotation_4(__AToken_22,x22,r);}}}
 return r;}

extern OBJ _AToken_15(OBJ x1) /* printRepToken */
{OBJ r;
 CPCLS(__AToken_23,1);
 {OBJ x8;
  x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_23,1))(__AToken_23,__ABUILTIN_20);
  {OBJ x15=FLD1(x1,1);OBJ x16=FLD1(x1,2);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    COPY(x15,1);CPPRD(x16,1);
    FRPRD(x1,1);}
   CPCLS(__AToken_13,1);
   {OBJ x17;OBJ x19;OBJ x18;OBJ x20;OBJ x21;OBJ x22;
    x17=_ASeqMap_3(__AToken_13,x15);
    if(ISTGPRM(__AZOpts_5,1)){
     CPPRD(x8,1);
     CPPRD(__AToken_22,1);
     CPPRD(__ARep_187,1);
     CPCLS(__ADenotation_4,1);
     x19=_ARep_9(x16);
    }else{
     FRPRD(x16,1);
     CPPRD(x8,1);
     CPPRD(__AToken_22,1);
     CPPRD(__ARep_187,2);
     CPCLS(__ADenotation_4,1);
     x19=__ARep_187;}
    x18=_ASeqReduce_3(__ADenotation_4,__ARep_187,x17);
    ADenotation_4(x8,x19,x20);
    ADenotation_4(x18,x20,x21);
    ADenotation_4(x8,x21,x22);
    ADenotation_4(__AToken_22,x22,r);}}}
 return r;}

extern OBJ _AToken_16(OBJ x1) /* printTS */
{OBJ r;
 if(ISPRM(x1)){
  CPPRD(__AToken_24,1);
  r=__AToken_24;
 }else{
  CPCLS(__AToken_12,1);
  CPCLS(__AToken_25,1);
  CPPRD(__AToken_26,1);
  CPPRD(__ARep_187,1);
  CPCLS(__ADenotation_4,1);
  {OBJ x11;OBJ x12;OBJ x13;OBJ x14;
   x11=_ASeqMap_3(__AToken_12,x1);
   x12=(*(OBJ(*)(OBJ,OBJ))METHOD(__AToken_25,1))(__AToken_25,__ABUILTIN_20);
   x13=_ASeqReduce_3(__ADenotation_4,__ARep_187,x11);
   ADenotation_4(x12,x13,x14);
   ADenotation_4(__AToken_26,x14,r);}}
 return r;}

extern OBJ _AToken_17(OBJ x1) /* `'17 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_6,r);
 return r;}

extern OBJ _AToken_18(OBJ x1) /* `'18 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_7,r);
 return r;}

extern OBJ _AToken_19(OBJ x1) /* dump'19 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_6,r);
 return r;}

extern OBJ _AToken_20(OBJ x1) /* dump'20 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_7,r);
 return r;}

extern OBJ _AToken_21(OBJ x1) /* printToken'21 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_7,r);
 return r;}

extern OBJ _AToken_23(OBJ x1) /* printRepToken'23 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_7,r);
 return r;}

extern OBJ _AToken_25(OBJ x1) /* printTS'25 */
{OBJ r;
 ADenotation_1(__ANat_8,__AChar_7,r);
 return r;}

init_AToken()
{
 static int visited=0; if(visited) return; visited=1;
 init_AMapReduce();
 init_ASetByBST();
 init_ABSTree();
 init_ANat();
 init_AOcPos();
 init_ATerminal();
 init_ARep();
 init_ARepTab();
 init_ASeq();
 init_APair();
 init_AOption();
 init_AChar();
 init_ASet();
 init_AOcOptions();
 init_ACom();
 init_AStream();
 init_AVoid();
 init_AString();
 init_AFile();
 init_AInt();
 init_ADenotation();
 init_ACharConv();
 init_ASeqReduce();
 init_ASeqMap();
 init_ANatConv();
 init_AZOpts();
 init_AReal();
 init_AArray();
 init_ALexem();
 init_ATree();
 init_ABitset();
 init_AMap();
 DEN("TokenSeq ",__AToken_26);
 LCLS(1,_AToken_25,__AToken_25);
 DEN("TokenSeq <>",__AToken_24);
 LCLS(1,_AToken_23,__AToken_23);
 DEN("TOKEN SEQ",__AToken_22);
 LCLS(1,_AToken_21,__AToken_21);
 LCLS(1,_AToken_20,__AToken_20);
 LCLS(1,_AToken_19,__AToken_19);
 LCLS(1,_AToken_18,__AToken_18);
 LCLS(1,_AToken_17,__AToken_17);
 CLS(1,_AToken_16,__AToken_16);
 CLS(1,_AToken_15,__AToken_15);
 CLS(1,_AToken_14,__AToken_14);
 CLS(1,_AToken_13,__AToken_13);
 CLS(1,_AToken_12,__AToken_12);
 CLS(1,_AToken_11,__AToken_11);
 CLS(1,_AToken_10,__AToken_10);
 CLS(2,_AToken_9,__AToken_9);
 CLS(2,_AToken_8,__AToken_8);
 CLS(2,_AToken_7,__AToken_7);
 CLS(1,_AToken_6,__AToken_6);
 CLS(1,_AToken_5,__AToken_5);
 CLS(1,_AToken_4,__AToken_4);
 CLS(1,_AToken_3,__AToken_3);
 CLS(3,_AToken_2,__AToken_2);}

