

#include "BUILTIN.h"

#include "Real.h"
extern OBJ _ATranslate_1(OBJ,OBJ);extern OBJ __ATranslate_1;
extern OBJ _AGenerate_1(OBJ,OBJ,OBJ);extern OBJ __AGenerate_1;
extern OBJ _ACom_47(OBJ,OBJ);extern OBJ __ACom_47;
extern OBJ __AVoid_2;

#include "Nat.h"
extern OBJ __ASeq_6;

#include "Denotation.h"

#include "Int.h"

#include "Char.h"
extern OBJ _AOcOptions_22(OBJ);extern OBJ __AOcOptions_22;
extern OBJ _AComCompose_3(OBJ,OBJ);extern OBJ __AComCompose_3;
extern OBJ _AComCompose_5(OBJ,OBJ);extern OBJ __AComCompose_5;
extern OBJ _AOcBinStream_4(OBJ,OBJ,OBJ);extern OBJ __AOcBinStream_4;
extern OBJ __AOcSetup_2;
extern OBJ _AOcSetup_6(OBJ);extern OBJ __AOcSetup_6;
extern OBJ _AOcSetup_7(OBJ,OBJ);extern OBJ __AOcSetup_7;

#include "Array.h"
extern OBJ __AOcExit_1;
extern OBJ __AOcExit_2;
extern OBJ _AOcExit_4(OBJ);extern OBJ __AOcExit_4;
extern OBJ _AOcError_25(OBJ,OBJ);extern OBJ __AOcError_25;
extern OBJ _APreparedOptions_2(OBJ);extern OBJ __APreparedOptions_2;

#include "Bitset.h"
extern OBJ __AInterOpal_316;
extern OBJ _AAcDump_1(OBJ,OBJ);extern OBJ __AAcDump_1;
extern OBJ _ADumpToFile_2(OBJ,OBJ,OBJ,OBJ);extern OBJ __ADumpToFile_2;
extern OBJ _ATranslation_2(OBJ,OBJ);extern OBJ __ATranslation_2;
extern OBJ _AOptimize_1(OBJ,OBJ);extern OBJ __AOptimize_1;
OBJ __ADriver_1; /* oc2 */
extern OBJ _ADriver_2(OBJ);OBJ __ADriver_2; /* drive */
extern OBJ _ADriver_3(OBJ,OBJ);OBJ __ADriver_3; /* driveSingleProc */
extern OBJ _ADriver_4(OBJ,OBJ);OBJ __ADriver_4; /* failOnError */
OBJ __ADriver_5; /* failOnError'5 */
extern OBJ _ADriver_6(OBJ);OBJ __ADriver_6; /* failOnError'6 */
OBJ __ADriver_7; /* failOnError'7 */
extern OBJ _ADriver_8(OBJ,OBJ);OBJ __ADriver_8; /* failOnError'8 */
OBJ __ADriver_9; /* driveSingleProc'9 */
extern OBJ _ADriver_10(OBJ,OBJ);OBJ __ADriver_10; /* driveSingleProc'10 */
extern OBJ _ADriver_11(OBJ,OBJ);OBJ __ADriver_11; /* driveSingleProc'11 */
extern OBJ _ADriver_12(OBJ,OBJ,OBJ,OBJ);OBJ __ADriver_12; /* driveSingleProc'12 */
extern OBJ _ADriver_13(OBJ,OBJ,OBJ);OBJ __ADriver_13; /* driveSingleProc'13 */
extern OBJ _ADriver_14(OBJ,OBJ,OBJ);OBJ __ADriver_14; /* driveSingleProc'14 */
extern OBJ _ADriver_15(OBJ,OBJ);OBJ __ADriver_15; /* driveSingleProc'15 */
extern OBJ _ADriver_16(OBJ,OBJ);OBJ __ADriver_16; /* drive'16 */
extern OBJ _ADriver_17(OBJ,OBJ);OBJ __ADriver_17; /* drive'17 */
OBJ __ADriver_18; /* drive'18 */
OBJ __ADriver_19; /* drive'19 */
extern OBJ _ADriver_20(OBJ);OBJ __ADriver_20; /* drive'20 */
extern OBJ _ADriver_21(OBJ,OBJ,OBJ);OBJ __ADriver_21; /* drive'21 */

extern OBJ _ADriver_2(OBJ x1) /* drive */
{OBJ r;
 {OBJ x2;
  x2=_APreparedOptions_2(x1);
  {OBJ x3=FLD1(x2,1);
   CPPRD(x3,1);
   CPCLS(__ADriver_21,1);
   CPPRD(__AInterOpal_316,1);
   {OBJ x6;OBJ x7;OBJ x8;OBJ x9;
    x6=x3;
    CPPRD(x6,2);
    x7=_AOcOptions_22(x6);
    x8=_AOcBinStream_4(x6,x7,__AInterOpal_316);
    x9=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ADriver_21,2))(__ADriver_21,x2,x6);
    r=_AComCompose_5(x8,x9);}}}
 return r;}

extern OBJ _ADriver_3(OBJ x1,OBJ x2) /* driveSingleProc */
{OBJ r;
 CPCLS(__ADriver_15,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x4;
  x3=_AOptimize_1(x1,x2);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_15,1))(__ADriver_15,x1);
  r=_AComCompose_5(x3,x4);}
 return r;}

extern OBJ _ADriver_4(OBJ x1,OBJ x2) /* failOnError */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPCLS(__ADriver_8,1);
  {OBJ x6;OBJ x7;OBJ x8;
   x6=x3;
   CPPRD(x6,1);
   x7=_AOcError_25(x6,x2);
   x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_8,1))(__ADriver_8,x6);
   r=_AComCompose_5(x7,x8);}}
 return r;}

extern OBJ _ADriver_6(OBJ x1) /* failOnError'6 */
{OBJ r;
 CPPRD(__ADriver_5,1);
 CPCLS(__ACom_47,1);
 r=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,__ADriver_5);
 return r;}

extern OBJ _ADriver_8(OBJ x1,OBJ x2) /* failOnError'8 */
{OBJ r;
 if(ISTGPRM(x2,1)){
  FRPRD(x1,1);
  CPCLS(__ADriver_6,1);
  {OBJ x3;
   x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_6,1))(__ADriver_6,__ABUILTIN_20);
   PRD(2,0,r);FLD(r,1)=x3;FLD(r,2)=__ASeq_6;}
 }else{
  CPPRD(__ADriver_7,1);
  r=_AOcSetup_7(x1,__ADriver_7);}
 return r;}

extern OBJ _ADriver_10(OBJ x1,OBJ x2) /* driveSingleProc'10 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPPRD(__ADriver_9,1);
  {OBJ x6;
   x6=x3;
   r=_AOcSetup_7(x6,__ADriver_9);}}
 return r;}

extern OBJ _ADriver_11(OBJ x1,OBJ x2) /* driveSingleProc'11 */
{OBJ r;
 CPCLS(__ADriver_10,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x4;
  x3=_ADriver_4(x1,x2);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_10,1))(__ADriver_10,x1);
  r=_AComCompose_5(x3,x4);}
 return r;}

extern OBJ _ADriver_12(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* driveSingleProc'12 */
{OBJ r;
 CPCLS(__ADriver_11,1);
 CPPRD(x1,1);
 {OBJ x5;OBJ x6;
  x5=_AGenerate_1(x1,x2,x3);
  x6=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_11,1))(__ADriver_11,x1);
  r=_AComCompose_5(x5,x6);}
 return r;}

extern OBJ _ADriver_13(OBJ x1,OBJ x2,OBJ x3) /* driveSingleProc'13 */
{OBJ r;
 {OBJ x12=FLD1(x3,1);OBJ x13=FLD1(x3,2);
  if(EXPRD(x3,1)){
   DSPRDF(x3);
  }else{
   CPPRD(x12,1);CPPRD(x13,1);
   FRPRD(x3,1);}
  CPPRD(x1,1);
  CPCLS(__ADriver_12,1);
  {OBJ x14;OBJ x15;
   x14=_ADriver_4(x1,x13);
   x15=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ADriver_12,3))(__ADriver_12,x1,x2,x12);
   r=_AComCompose_5(x14,x15);}}
 return r;}

extern OBJ _ADriver_14(OBJ x1,OBJ x2,OBJ x3) /* driveSingleProc'14 */
{OBJ r;
 CPCLS(__ADriver_13,1);
 CPPRD(x1,1);
 CPPRD(x2,1);
 {OBJ x4;OBJ x5;
  x4=_ATranslate_1(x1,x2);
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ADriver_13,2))(__ADriver_13,x1,x2);
  r=_AComCompose_5(x4,x5);}
 return r;}

extern OBJ _ADriver_15(OBJ x1,OBJ x2) /* driveSingleProc'15 */
{OBJ r;
 {OBJ x11=FLD1(x2,1);OBJ x12=FLD1(x2,2);
  if(EXPRD(x2,1)){
   DSPRDF(x2);
  }else{
   CPPRD(x11,1);CPPRD(x12,1);
   FRPRD(x2,1);}
  CPPRD(x1,1);
  CPCLS(__ADriver_14,1);
  {OBJ x13;OBJ x14;
   x13=_ADriver_4(x1,x12);
   x14=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__ADriver_14,2))(__ADriver_14,x1,x11);
   r=_AComCompose_5(x13,x14);}}
 return r;}

extern OBJ _ADriver_16(OBJ x1,OBJ x2) /* drive'16 */
{OBJ r;
 r=_ADriver_3(x1,x2);
 return r;}

extern OBJ _ADriver_17(OBJ x1,OBJ x2) /* drive'17 */
{OBJ r;
 r=_AAcDump_1(x1,x2);
 return r;}

extern OBJ _ADriver_20(OBJ x1) /* drive'20 */
{OBJ r;
 CPPRD(__ADriver_19,1);
 CPCLS(__ACom_47,1);
 r=(*(OBJ(*)(OBJ,OBJ))METHOD(__ACom_47,1))(__ACom_47,__ADriver_19);
 return r;}

extern OBJ _ADriver_21(OBJ x1,OBJ x2,OBJ x3) /* drive'21 */
{OBJ r;
 if(ISPRM(x3)){
  FRPRD(x1,1);
  FRPRD(x2,1);
  CPCLS(__ADriver_20,1);
  {OBJ x20;
   x20=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_20,1))(__ADriver_20,__ABUILTIN_20);
   PRD(2,0,r);FLD(r,1)=x20;FLD(r,2)=__ASeq_6;}
 }else{
  {OBJ x14=FLD1(x3,1);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    CPPRD(x14,1);
    FRPRD(x3,1);}
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPCLS(__ADriver_16,1);
   CPCLS(__ADriver_17,1);
   CPPRD(__ADriver_18,1);
   CPCLS(__ADumpToFile_2,1);
   {OBJ x15;OBJ x16;OBJ x17;OBJ x18;OBJ x19;
    x15=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_16,1))(__ADriver_16,x1);
    x16=_ATranslation_2(x2,x14);
    x17=(*(OBJ(*)(OBJ,OBJ))METHOD(__ADriver_17,1))(__ADriver_17,x2);
    x18=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__ADumpToFile_2,3))(__ADumpToFile_2,x1,__ADriver_18,x17);
    x19=_AComCompose_3(x16,x18);
    r=_AComCompose_5(x19,x15);}}}
 return r;}

static void ___ADriver_1()
{
 CPCLS(__ADriver_2,1);
 CPCLS(__AOcExit_4,1);
 {OBJ x1;OBJ x2;
  x1=_AOcSetup_6(__AOcSetup_2);
  x2=_AComCompose_5(x1,__ADriver_2);
  __ADriver_1=_AComCompose_3(x2,__AOcExit_4);}}





init_ADriver()
{
 static int visited=0; if(visited) return; visited=1;
 init_AReal();
 init_ATranslate();
 init_AParameterTranslation();
 init_AGenerate();
 init_ASet();
 init_AIde();
 init_ACom();
 init_AStore();
 init_AVoid();
 init_ASourceAn();
 init_ANat();
 init_AFormat();
 init_ASeq();
 init_AFmt();
 init_AOption();
 init_AFile();
 init_ADenotation();
 init_AInt();
 init_AString();
 init_AAn();
 init_AStringConv();
 init_ATypeAn();
 init_AChar();
 init_AOptimAn();
 init_ACompose();
 init_ATransAn();
 init_APair();
 init_APragmaAn();
 init_ATriple();
 init_AIdeMap();
 init_AOcOptions();
 init_AOcPos();
 init_AOcVerbose();
 init_AMap();
 init_AComCompose();
 init_ADyn();
 init_AStream();
 init_AIdeSet();
 init_AOcBinStream();
 init_AIcFun();
 init_AOcSetup();
 init_AArray();
 init_AOcExit();
 init_ASetByBST();
 init_AOcError();
 init_ABSTree();
 init_ANatMap();
 init_ATree();
 init_APreparedOptions();
 init_ABitset();
 init_AAc();
 init_ASeqSort();
 init_AInterOpal();
 init_ABoxedText();
 init_AAcDump();
 init_ASeqMap();
 init_ADumpToFile();
 init_AStringMapSeq();
 init_AIc();
 init_AMapReduce();
 init_ATranslation();
 init_ASeqReduce();
 init_AOptimize();
 CLS(3,_ADriver_21,__ADriver_21);
 LCLS(1,_ADriver_20,__ADriver_20);
 DEN("AnaFile",__ADriver_18);
 CLS(2,_ADriver_17,__ADriver_17);
 CLS(2,_ADriver_16,__ADriver_16);
 CLS(2,_ADriver_15,__ADriver_15);
 CLS(3,_ADriver_14,__ADriver_14);
 CLS(3,_ADriver_13,__ADriver_13);
 CLS(4,_ADriver_12,__ADriver_12);
 CLS(2,_ADriver_11,__ADriver_11);
 CLS(2,_ADriver_10,__ADriver_10);
 CLS(2,_ADriver_8,__ADriver_8);
 LCLS(1,_ADriver_6,__ADriver_6);
 CLS(2,_ADriver_4,__ADriver_4);
 CLS(2,_ADriver_3,__ADriver_3);
 CLS(1,_ADriver_2,__ADriver_2);
 ___ADriver_1();
 PRDF(1,0,__ADriver_5);FLD(__ADriver_5,1)=__AVoid_2;
 CPPRD(__AOcExit_1,1);
 PRD(1,1,__ADriver_7);FLD(__ADriver_7,1)=__AOcExit_1;
 PRDF(1,0,__ADriver_9);FLD(__ADriver_9,1)=__AVoid_2;
 CPPRD(__AOcExit_2,1);
 PRD(1,1,__ADriver_19);FLD(__ADriver_19,1)=__AOcExit_2;}

