

#include "BUILTIN.h"
extern OBJ __AOcOptions_2;
extern OBJ _AOcOptions_14(OBJ,OBJ);extern OBJ __AOcOptions_14;
extern OBJ _AOcOptions_17(OBJ);extern OBJ __AOcOptions_17;
extern OBJ _AOcOptions_32(OBJ,OBJ);extern OBJ __AOcOptions_32;
extern OBJ __AOcOptions_151;
extern OBJ _ACom_23(OBJ);extern OBJ __ACom_23;
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;
extern OBJ __AVoid_2;

#include "Nat.h"

#include "Char.h"
extern OBJ __ASeq_6;
extern OBJ __AStream_4;
extern OBJ _AFile_28(OBJ,OBJ);extern OBJ __AFile_28;

#include "Int.h"

#include "Denotation.h"
extern OBJ _AComCompose_3(OBJ,OBJ);extern OBJ __AComCompose_3;
extern OBJ _AComCompose_4(OBJ,OBJ);extern OBJ __AComCompose_4;
extern OBJ _AComCompose_5(OBJ,OBJ);extern OBJ __AComCompose_5;
extern OBJ _AComCompose_6(OBJ,OBJ);extern OBJ __AComCompose_6;
extern OBJ _AOcStream_1(OBJ,OBJ);extern OBJ __AOcStream_1;
extern OBJ _AOcStream_2(OBJ,OBJ);extern OBJ __AOcStream_2;
extern OBJ _AOcStream_3(OBJ,OBJ);extern OBJ __AOcStream_3;
extern OBJ _AOcVerbose_8(OBJ,OBJ);extern OBJ __AOcVerbose_8;
extern OBJ _AOcVerbose_12(OBJ,OBJ,OBJ,OBJ);extern OBJ __AOcVerbose_12;
extern OBJ _AOcExit_4(OBJ);extern OBJ __AOcExit_4;

#include "Bitset.h"

#include "Real.h"
OBJ __AOcSetup_2; /* oc2 */
extern OBJ _AOcSetup_3(OBJ);OBJ __AOcSetup_3; /* oc2? */
OBJ __AOcSetup_4; /* oc1 */
extern OBJ _AOcSetup_5(OBJ);OBJ __AOcSetup_5; /* oc1? */
extern OBJ _AOcSetup_6(OBJ);OBJ __AOcSetup_6; /* init */
extern OBJ _AOcSetup_7(OBJ,OBJ);OBJ __AOcSetup_7; /* finit */
OBJ __AOcSetup_8; /* version */
extern OBJ _AOcSetup_13(OBJ);OBJ __AOcSetup_13; /* banner */
extern OBJ _AOcSetup_15(OBJ,OBJ);OBJ __AOcSetup_15; /* printVersion */
extern OBJ _AOcSetup_16(OBJ,OBJ);OBJ __AOcSetup_16; /* prepareDiagFile */
extern OBJ _AOcSetup_17(OBJ);OBJ __AOcSetup_17; /* finitDiagFile */
OBJ __AOcSetup_18; /* banner'18 */
extern OBJ _AOcSetup_19(OBJ);OBJ __AOcSetup_19; /* banner'19 */
OBJ __AOcSetup_20; /* banner'20 */
extern OBJ _AOcSetup_21(OBJ);OBJ __AOcSetup_21; /* banner'21 */
OBJ __AOcSetup_22; /* printVersion'22 */
OBJ __AOcSetup_23; /* printVersion'23 */
extern OBJ _AOcSetup_24(OBJ);OBJ __AOcSetup_24; /* printVersion'24 */
extern OBJ _AOcSetup_25(OBJ,OBJ);OBJ __AOcSetup_25; /* prepareDiagFile'25 */
OBJ __AOcSetup_26; /* prepareDiagFile'26 */
extern OBJ _AOcSetup_27(OBJ,OBJ,OBJ);OBJ __AOcSetup_27; /* prepareDiagFile'27 */
OBJ __AOcSetup_28; /* init'28 */
OBJ __AOcSetup_29; /* init'29 */
extern OBJ _AOcSetup_30(OBJ,OBJ);OBJ __AOcSetup_30; /* init'30 */
extern OBJ _AOcSetup_31(OBJ,OBJ);OBJ __AOcSetup_31; /* init'31 */
extern OBJ _AOcSetup_32(OBJ,OBJ,OBJ);OBJ __AOcSetup_32; /* init'32 */
extern OBJ _AOcSetup_33(OBJ,OBJ);OBJ __AOcSetup_33; /* init'33 */

extern OBJ _AOcSetup_3(OBJ x1) /* oc2? */
{OBJ r;
 if(ISTGPRM(x1,1)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOcSetup_5(OBJ x1) /* oc1? */
{OBJ r;
 if(ISTGPRM(x1,0)){
  r=__ABUILTIN_5;
 }else{
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOcSetup_6(OBJ x1) /* init */
{OBJ r;
 CPCLS(__AOcSetup_33,1);
 CPPRD(__AOcOptions_2,1);
 {OBJ x2;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_33,1))(__AOcSetup_33,x1);
  r=_AComCompose_5(__AOcOptions_2,x2);}
 return r;}

extern OBJ _AOcSetup_7(OBJ x1,OBJ x2) /* finit */
{OBJ r;
 CPPRD(__AOcOptions_151,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x4;
  x3=_AOcVerbose_12(x1,__ANat_5,__AOcOptions_151,__AStream_4);
  x4=_AOcExit_4(x2);
  {OBJ x15=FLD1(x1,11);
   {OBJ x16;OBJ x17;
    x16=_AOcStream_3(x1,x15);
    x17=_AComCompose_4(x16,x4);
    r=_AComCompose_6(x3,x17);}}}
 return r;}

extern OBJ _AOcSetup_13(OBJ x1) /* banner */
{OBJ r;
 if(ISTGPRM(x1,0)){
  CPCLS(__AOcSetup_19,1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_19,1))(__AOcSetup_19,__ABUILTIN_20);
 }else{
  CPCLS(__AOcSetup_21,1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_21,1))(__AOcSetup_21,__ABUILTIN_20);}
 return r;}

extern OBJ _AOcSetup_15(OBJ x1,OBJ x2) /* printVersion */
{OBJ r;
 CPPRD(__AOcSetup_22,1);
 {OBJ x3;
  x3=_AOcOptions_14(__AOcSetup_22,x2);
  if(ISTGPRM(x3,1)){
   {OBJ x4;
    x4=_AOcSetup_13(x1);
    r=_AFile_28(__AStream_4,x4);}
  }else{
   CPCLS(__AOcSetup_24,1);
   {OBJ x5;
    x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_24,1))(__AOcSetup_24,__ABUILTIN_20);
    PRD(2,0,r);FLD(r,1)=x5;FLD(r,2)=__ASeq_6;}}}
 return r;}

extern OBJ _AOcSetup_16(OBJ x1,OBJ x2) /* prepareDiagFile */
{OBJ r;
 CPPRD(x2,1);
 {OBJ x5;OBJ x4;OBJ x3;OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  x5=_AOcOptions_17(x2);
  if(ISTGPRM(x1,1)){
   x4=__ABUILTIN_5;x3=__ABUILTIN_3;
  }else{
   x4=__ABUILTIN_3;x3=__ABUILTIN_5;}
  if(ISTGPRM(x3,1)){
   CPPRD(x2,2);
   CPCLS(__AOcSetup_25,1);
   CPCLS(__AOcSetup_27,1);
   CPCLS(__AOcStream_1,1);
   x6=__AOcStream_1;
  }else{
   if(ISTGPRM(x4,1)){
    CPPRD(x2,2);
    CPCLS(__AOcSetup_25,1);
    CPCLS(__AOcSetup_27,1);
    CPCLS(__AOcStream_2,1);
    x6=__AOcStream_2;
   }else{
    HLT("OcSetup at <58,22-59,42> : missing else in prepareDiagFile\'OcSetup:part->options->com");}}
  CPCLS(x6,1);
  x7=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x6,2))(x6,x2,x5);
  x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_25,1))(__AOcSetup_25,x2);
  x9=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOcSetup_27,2))(__AOcSetup_27,x2,x6);
  x10=_AComCompose_3(x7,x9);
  r=_AComCompose_5(x10,x8);}
 return r;}

extern OBJ _AOcSetup_17(OBJ x1) /* finitDiagFile */
{OBJ r;
 {OBJ x12=FLD1(x1,11);
  {OBJ x13;
   x13=x12;
   r=_AOcStream_3(x1,x13);}}
 return r;}

extern OBJ _AOcSetup_19(OBJ x1) /* banner'19 */
{OBJ r;
 CPPRD(__AOcSetup_8,1);
 CPPRD(__AOcSetup_18,1);
 ADenotation_4(__AOcSetup_18,__AOcSetup_8,r);
 return r;}

extern OBJ _AOcSetup_21(OBJ x1) /* banner'21 */
{OBJ r;
 CPPRD(__AOcSetup_8,1);
 CPPRD(__AOcSetup_20,1);
 ADenotation_4(__AOcSetup_20,__AOcSetup_8,r);
 return r;}

extern OBJ _AOcSetup_24(OBJ x1) /* printVersion'24 */
{OBJ r;
 CPPRD(__AOcSetup_23,1);
 CPCLS(__ACom_47,1);
 r=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,__AOcSetup_23);
 return r;}

extern OBJ _AOcSetup_25(OBJ x1,OBJ x2) /* prepareDiagFile'25 */
{OBJ r;
 CPCLS(__ACom_47,1);
 {OBJ x3;OBJ x4;OBJ x5;
  x3=_AOcOptions_32(x1,x2);
  PRD(1,0,x4);FLD(x4,1)=x3;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x4);
  PRD(2,0,r);FLD(r,1)=x5;FLD(r,2)=__ASeq_6;}
 return r;}

extern OBJ _AOcSetup_27(OBJ x1,OBJ x2,OBJ x3) /* prepareDiagFile'27 */
{OBJ r;
 if(ISTGPRD(x3,0)){
  FRPRD(x1,1);
  FRCLS(x2,1);
  CPCLS(__ACom_47,1);
  {OBJ x12;
   x12=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,x3);
   PRD(2,0,r);FLD(r,1)=x12;FLD(r,2)=__ASeq_6;}
 }else{
  if(EXPRD(x3,1)){
   FRPRD(FLD(x3,1),1);DSPRDF(x3);
  }else{
   DCPRD(x3,1);}
  CPPRD(__AOcSetup_26,1);
  r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x1,__AOcSetup_26);}
 return r;}

extern OBJ _AOcSetup_30(OBJ x1,OBJ x2) /* init'30 */
{OBJ r;
 r=_ACom_23(x1);
 return r;}

extern OBJ _AOcSetup_31(OBJ x1,OBJ x2) /* init'31 */
{OBJ r;
 {OBJ x3;OBJ x4;OBJ x5;OBJ x6;
  if(ISTGPRM(x1,0)){
   x3=__ABUILTIN_5;
  }else{
   x3=__ABUILTIN_3;}
  if(ISTGPRM(x3,1)){
   CPPRD(x2,1);
   CPPRD(__AOcSetup_28,1);
   CPCLS(__AOcSetup_30,1);
   x4=__AOcSetup_28;
  }else{
   CPPRD(x2,1);
   CPPRD(__AOcSetup_29,1);
   CPCLS(__AOcSetup_30,1);
   x4=__AOcSetup_29;}
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_30,1))(__AOcSetup_30,x2);
  x6=_AOcVerbose_8(x2,x4);
  r=_AComCompose_5(x6,x5);}
 return r;}

extern OBJ _AOcSetup_32(OBJ x1,OBJ x2,OBJ x3) /* init'32 */
{OBJ r;
 CPCLS(__AOcSetup_31,1);
 {OBJ x4;OBJ x5;
  x4=_AOcSetup_16(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOcSetup_31,1))(__AOcSetup_31,x1);
  r=_AComCompose_5(x4,x5);}
 return r;}

extern OBJ _AOcSetup_33(OBJ x1,OBJ x2) /* init'33 */
{OBJ r;
 CPCLS(__AOcSetup_32,1);
 CPPRD(x2,1);
 {OBJ x3;OBJ x4;
  x3=_AOcSetup_15(x1,x2);
  x4=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOcSetup_32,2))(__AOcSetup_32,x1,x2);
  r=_AComCompose_5(x3,x4);}
 return r;}




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

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

init_AOcSetup()
{
 static int visited=0; if(visited) return; visited=1;
 init_AOcOptions();
 init_ACom();
 init_AString();
 init_AVoid();
 init_ANat();
 init_AChar();
 init_ASeq();
 init_AOption();
 init_AStream();
 init_AFile();
 init_AInt();
 init_ADenotation();
 init_AComCompose();
 init_AOcStream();
 init_AOcVerbose();
 init_AOcExit();
 init_ATree();
 init_ABitset();
 init_APair();
 init_ASet();
 init_AMap();
 init_AMapReduce();
 init_ASeqReduce();
 init_ASetByBST();
 init_ABSTree();
 init_ASeqMap();
 init_AReal();
 CLS(2,_AOcSetup_31,__AOcSetup_31);
 CLS(2,_AOcSetup_30,__AOcSetup_30);
 DEN("oc2",__AOcSetup_29);
 DEN("oc1",__AOcSetup_28);
 CLS(3,_AOcSetup_27,__AOcSetup_27);
 DEN("/dev/null",__AOcSetup_26);
 CLS(2,_AOcSetup_25,__AOcSetup_25);
 LCLS(1,_AOcSetup_24,__AOcSetup_24);
 DEN("version",__AOcSetup_22);
 LCLS(1,_AOcSetup_21,__AOcSetup_21);
 DEN("InterOpal to C compiler oc2\n",__AOcSetup_20);
 LCLS(1,_AOcSetup_19,__AOcSetup_19);
 DEN("Opal to InterOpal compiler oc1\n",__AOcSetup_18);
 CLS(1,_AOcSetup_17,__AOcSetup_17);
 CLS(2,_AOcSetup_16,__AOcSetup_16);
 CLS(2,_AOcSetup_15,__AOcSetup_15);
 CLS(1,_AOcSetup_13,__AOcSetup_13);
 DEN("oc-3.0a $Date: 2000/04/14 21:20:59 $",__AOcSetup_8);
 CLS(2,_AOcSetup_7,__AOcSetup_7);
 CLS(1,_AOcSetup_6,__AOcSetup_6);
 CLS(1,_AOcSetup_5,__AOcSetup_5);
 CLS(1,_AOcSetup_3,__AOcSetup_3);
 CLS(2,_AOcSetup_33,__AOcSetup_33);
 CLS(3,_AOcSetup_32,__AOcSetup_32);
 MTH(3,0,2,_mt_3_0_2);LZYMTH(3,0,2,_mt_3_0_2);
 MTH(3,2,1,_mt_3_2_1);LZYMTH(3,2,1,_mt_3_2_1_l);
 PRM(1,__AOcSetup_2);
 PRM(0,__AOcSetup_4);
 PRDF(1,0,__AOcSetup_23);FLD(__AOcSetup_23,1)=__AVoid_2;}

