

#include "BUILTIN.h"

#include "Denotation.h"

#include "Nat.h"

#include "Char.h"

#include "Int.h"
extern OBJ _AQuadrupleConv_5(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AQuadrupleConv_5; /* ` */
extern OBJ _AQuadrupleConv_6(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AQuadrupleConv_6; /* `,1 */
OBJ __AQuadrupleConv_7; /* `'7 */
OBJ __AQuadrupleConv_8; /* `'8 */
OBJ __AQuadrupleConv_9; /* `'9 */

extern OBJ _AQuadrupleConv_5(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* ` */
{OBJ r;
 CPPRD(__AQuadrupleConv_7,1);
 CPPRD(__AQuadrupleConv_8,1);
 CPPRD(__AQuadrupleConv_9,1);
 r=_AQuadrupleConv_6(__AQuadrupleConv_7,__AQuadrupleConv_8,__AQuadrupleConv_9,x1,x2,x3,x4,x5);
 return r;}

extern OBJ _AQuadrupleConv_6(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6,OBJ x7,OBJ x8) /* `,1 */
{OBJ r;
 {OBJ x40=FLD1(x8,1);OBJ x41=FLD1(x8,2);OBJ x42=FLD1(x8,3);OBJ x43=FLD1(x8,4);
  if(EXPRD(x8,1)){
   DSPRDF(x8);
  }else{
   COPY(x40,1);COPY(x41,1);COPY(x42,1);COPY(x43,1);
   FRPRD(x8,1);}
  CPPRD(x2,2);
  {OBJ x44;OBJ x45;OBJ x46;OBJ x47;OBJ x48;OBJ x49;OBJ x50;OBJ x51;OBJ x52;OBJ x53;OBJ x54;
   x44=(*(OBJ(*)(OBJ,OBJ))METHOD(x7,1))(x7,x43);
   x45=(*(OBJ(*)(OBJ,OBJ))METHOD(x6,1))(x6,x42);
   x46=(*(OBJ(*)(OBJ,OBJ))METHOD(x5,1))(x5,x41);
   x47=(*(OBJ(*)(OBJ,OBJ))METHOD(x4,1))(x4,x40);
   ADenotation_4(x44,x3,x48);
   ADenotation_4(x2,x48,x49);
   ADenotation_4(x45,x49,x50);
   ADenotation_4(x2,x50,x51);
   ADenotation_4(x46,x51,x52);
   ADenotation_4(x2,x52,x53);
   ADenotation_4(x47,x53,x54);
   ADenotation_4(x1,x54,r);}}
 return r;}

static OBJ _mt_5_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,4);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 return r;}

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

static OBJ _mt_5_4_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),t1);
 return r;}
static OBJ _mt_5_4_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

static OBJ _mt_8_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_8_0_7(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,7);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 FLDCLS(r,4)=t4;
 FLDCLS(r,5)=t5;
 FLDCLS(r,6)=t6;
 FLDCLS(r,7)=t7;
 return r;}

static OBJ _mt_8_0_8(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5,OBJ t6,OBJ t7,OBJ t8) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4,t5,t6,t7,t8);
 return r;}

static OBJ _mt_8_3_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 if(EXCLS(t)){
  r=t;
 }else{
  DPCLS(t,r);
  FLDCLS(r,1)=FLDCLS(t,1);
  FLDCLS(r,2)=FLDCLS(t,2);
  FLDCLS(r,3)=FLDCLS(t,3);
  COPY(FLDCLS(r,1),1);
  COPY(FLDCLS(r,2),1);
  COPY(FLDCLS(r,3),1);}
 INCCLS(r,3,4);
 FLDCLS(r,4)=t1;
 FLDCLS(r,5)=t2;
 FLDCLS(r,6)=t3;
 FLDCLS(r,7)=t4;
 return r;}

static OBJ _mt_8_3_5(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4,OBJ t5) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1,t2,t3,t4,t5);
 return r;}

static OBJ _mt_8_7_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  COPY(FLDCLS(t,4),1);
  COPY(FLDCLS(t,5),1);
  COPY(FLDCLS(t,6),1);
  COPY(FLDCLS(t,7),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),FLDCLS(t,7),t1);
 return r;}
static OBJ _mt_8_7_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),FLDCLS(t,4),FLDCLS(t,5),FLDCLS(t,6),FLDCLS(t,7),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;FLDCLS(t,4)=NIL;FLDCLS(t,5)=NIL;FLDCLS(t,6)=NIL;FLDCLS(t,7)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AQuadrupleConv()
{
 static int visited=0; if(visited) return; visited=1;
 init_AQuadruple();
 init_ADenotation();
 init_ANat();
 init_AChar();
 init_AInt();
 DEN(")",__AQuadrupleConv_9);
 DEN(",",__AQuadrupleConv_8);
 DEN("(",__AQuadrupleConv_7);
 CLS(8,_AQuadrupleConv_6,__AQuadrupleConv_6);
 CLS(5,_AQuadrupleConv_5,__AQuadrupleConv_5);
 MTH(5,0,4,_mt_5_0_4);LZYMTH(5,0,4,_mt_5_0_4);
 MTH(5,0,5,_mt_5_0_5);LZYMTH(5,0,5,_mt_5_0_5);
 MTH(5,4,1,_mt_5_4_1);LZYMTH(5,4,1,_mt_5_4_1_l);
 MTH(8,0,3,_mt_8_0_3);LZYMTH(8,0,3,_mt_8_0_3);
 MTH(8,0,7,_mt_8_0_7);LZYMTH(8,0,7,_mt_8_0_7);
 MTH(8,0,8,_mt_8_0_8);LZYMTH(8,0,8,_mt_8_0_8);
 MTH(8,3,4,_mt_8_3_4);LZYMTH(8,3,4,_mt_8_3_4);
 MTH(8,3,5,_mt_8_3_5);LZYMTH(8,3,5,_mt_8_3_5);
 MTH(8,7,1,_mt_8_7_1);LZYMTH(8,7,1,_mt_8_7_1_l);}

