          const char [2] snl ;
          extern int  rem (          int p ,           int q );
          extern void readsymbol (           *p );
          extern real  float (          int n );
          extern char [2]  tostring (          int p );
          extern char [256]  substring (          char [256] s ,           int f ,           int t );
          extern int  freespace ();
          extern void svc (          int n ,           struct (null) r  *);
          extern int  addr (           *p );
          extern int  integer (          int n );
          extern short int  shortinteger (          int n );
          extern char int  byteinteger (          int n );
          extern char [1]  string (          int n );
          extern struct (null) record  ;
(/*should not get here any more*/          int n ;
/*or here*/)
          extern real  real (          int n );
          extern long real  longreal (          int n );
          extern char int  length (          char [256] s );
          extern char int  charno (          char [256] s ,           int n );
          extern int  int (          real x );
          extern int  intpt (          real x );
          extern void iocp (          int n );
          extern int  typeof (           *n );
          extern int  sizeof (           *n );
          extern real  fracpt (          real x );
          extern void prompt (          char [16] s );
          extern int  nextsymbol ();
          extern void skipsymbol ();
          extern void printsymbol (          int sym );
          extern void printstring (          char [256] s );
          extern void write (          int v ,           int p );
          extern void selectinput (          int n );
          extern void selectoutput (          int n );
          extern void openinput (          int n ,           char [32] fd );
          extern void openoutput (          int n ,           char [32] fd );
          extern void closeinput ();
          extern void closeoutput ();
          extern void resetinput ();
          extern void resetoutput ();
          extern char [9]  time ();
          extern char [10]  date ();
          extern int  cputime ();
          extern int  comreg (          int n );
          extern void read (           *x );
          extern void print (          real val ,           int before ,           int after );
          extern void printfl (          real val ,           int places );
          extern void space ();
          extern void spaces (          int n );
          extern void newline ();
          extern void newlines (          int n );
          typedef struct FILEFM filefm (adding record field UNIT
, adding record field OWNER
, adding record field N1
, adding record field N2
);
          typedef struct EVENTFM eventfm (adding record field EVENT
, adding record field SUB
, adding record field EXTRA
, adding record field MESSAGE
, adding record field PC
, adding record field X
);
          extern struct EVENTFM event ;
          extern void closeoutput ();
          extern void closeinput ();
          extern void openoutput (          int i ,           char [256] s );
          extern void openinput (          int i ,           char [256] s );
          typedef struct IMPCOMFM impcomfm (adding record field STATEMENTS
, adding record field FLAGS
, adding record field CODE
, adding record field GLA
, adding record field DIAGS
, adding record field PERM
, adding record field FILE
, adding record field OPTION
);
          extern struct IMPCOMFM impcom ;
int main(int argc, char **argv) {
          const char [5] version ;
          static int sparenames ;
          typedef struct ARFM arfm (adding record field CLASS
, adding record field SUB
, adding record field LINK
, adding record field PTYPE
, adding record field PAPP
, adding record field PFORMAT
, adding record field X
, adding record field POS
);
          typedef struct TAGFM tagfm (adding record field APP
, adding record field FORMAT
, adding record field FLAGS
, adding record field INDEX
, adding record field TEXT
, adding record field LINK
);
          // bounds [0 : 15]
          const char int  *amap ;
          // bounds [0 : 15]
          const char int  *atoms ;
          struct ARFM ar  *;
          DIM 0x0001 0x0001
          static int class ;
          static int x ;
          static int atom1 ;
          static int atom2 ;
          static int subatom ;
          static int type ;
          static int app ;
          static int format ;
          int hashvalue ;
          static int faulty ;
          static int faultrate ;
          static int lines ;
          static int textline ;
          static int margin ;
          static int errormargin ;
          static int errorsym ;
          static int column ;
          static int stats ;
          static int monpos ;
          static int sym ;
          static int symtype ;
          static int quote ;
          static int endmark ;
          static int cont ;
          static int csym ;
          static int decl ;
          static int dim ;
          static int specgiven ;
          static int escapeclass ;
          static int protection ;
          static int atomflags ;
          static int otype ;
          static int realsln ;
          static int last1 ;
          static int gentype ;
          static int ptype ;
          static int papp ;
          static int pformat ;
          static int force ;
          static int g ;
          static int gg ;
          static int mapgg ;
          static int fdef ;
          static int this ;
          static int nmin ;
          static int nmax ;
          static int rbase ;
          static int stbase ;
          static int gmin ;
          static int dmax ;
          static int tmin ;
          static int ss ;
          char [64] includefile ;
          static int includelist ;
          static int includelevel ;
          static int include ;
          static int perm ;
          static int progmode ;
          static int sstype ;
          static int specmode ;
          static int ocount ;
          static int limit ;
          static int copy ;
          static int order ;
          static int forwarn ;
          static int dubious ;
          static int dp ;
          static int pos1 ;
          static int pos2 ;
          static int pos ;
          static int dimension ;
          static int local ;
          static int fmbase ;
          static int searchbase ;
          static int formatlist ;
          int recid ;
          // bounds [0 : 133]
          static char int  *char ;
          int  *litpool ;
          DIM 0x0001 0x0001
          static int lit ;
          static int lp ;
          static int blockx ;
          static int list ;
          static int control ;
          static int diag ;
          short int  *hash ;
          DIM 0x0001 0x0001
          struct TAGFM tag  *;
          DIM 0x0001 0x0001
          short int  *dict ;
          DIM 0x0001 0x0001
          char int  *buff ;
          DIM 0x0001 0x0001
          static int bp ;
          // bounds [0 : 255]
          const char [9]  *text ;
          static int gmax ;
          // bounds [200 : 255]
          static short int  *phrase ;
          // bounds [130 : 179]
          const char int  *atomic ;
          // bounds [0 : 119]
          const short int  *initial ;
          // bounds [0 : 1720]
          static short int  *gram ;
          // bounds [0 : 1720]
          static short int  *glink ;
          // bounds [32 : 607]
          const short int  *kdict ;
          goto L_0001;
          void flushbuffer ()
{
          int j ;
          if (faulty  != 0) goto L_0002;
          selectoutput (1);
          for (j  = 1; j  += 1; j  != bp ) {
          printsymbol (buff [j ]);
          }
L_0006:
          selectoutput (2);
L_0002:
          bp  = 0;
          return(0);
}
L_0001:
          goto L_0007;
          void printident (          int p ,           int mode )
{
          int j ;
          int ad ;
//          SELECT 5
          p  = /*RHSval*/tag [p ].{field 5};
          if (p  != 0) goto L_0008;
          if (mode  == 0) goto L_0009;
          bp  = (bp  + 1);
          buff [bp ] = 63;
L_0009:
          return;
L_0008:
          ad  = addr (dict [(p  + 1)]);
          if (mode  != 0) goto L_000a;
          printstring ("TRINGstring!extern char [1]  string Nn"(ad ));
          goto L_000b;
L_000a:
          for (j  = (ad  + 1); j  += 1; j  != (ad  + *byteinteger (ad ))) {
          bp  = (bp  + 1);
          buff [bp ] = *byteinteger (j );
          }
L_000f:
L_000b:
L_0007:
          goto L_0010;
          void abandon (          int n )
{
          // bounds [0 : 9]
          %switch reason ;
          int stream ;
          stream  = 2;
          for (;;) {
L_0011:
          if (sym  == 10) goto L_0012;
          newline ();
L_0012:
          printsymbol (42);
          write (lines , 4);
          space ();
          ->SJUMP_167(n )
SLABEL_167(0):
          printstring ("compiler error!");
          goto U_00a9;
SLABEL_167(1):
          printstring ("switch vector too large");
          goto U_00a9;
SLABEL_167(2):
          printstring ("too many names");
          goto U_00a9;
SLABEL_167(3):
          printstring ("program too complex");
          goto U_00a9;
SLABEL_167(4):
          printstring ("feature not implemented");
          goto U_00a9;
SLABEL_167(5):
          printstring ("input ended: ");
          if (quote  == 0) goto L_0013;
          if (quote  >= 0) goto L_0014;
          printsymbol (39);
          goto L_0015;
L_0014:
          printsymbol (34);
L_0015:
          goto L_0016;
L_0013:
          printstring ("%endof");
          if (progmode  < 0) goto L_0017;
          printstring ("program");
          goto L_0018;
L_0017:
          printstring ("file");
L_0018:
L_0016:
          printstring (" missing?");
          goto U_00a9;
SLABEL_167(6):
          printstring ("too many faults!");
          goto U_00a9;
SLABEL_167(7):
          printstring ("string constant too long");
          goto U_00a9;
SLABEL_167(8):
          printstring ("dictionary full");
          goto U_00a9;
SLABEL_167(9):
          printstring ("Included file ");
U_00a9:
          newline ();
          printstring ("***  compilation abandoned ***");
          newline ();
          if (stream  != 0) goto L_0019;
          goto L_001a;
L_0019:
          closeoutput ();
          stream  = 0;
          selectoutput (0);
          }
L_001a:
          exit(0);
L_0010:
          goto L_001b;
          void op (          int code ,           int param )
{
          buff [(bp  + 1)] = code ;
          buff [(bp  + 2)] = (param  >> 8);
          buff [(bp  + 3)] = param ;
          bp  = (bp  + 3);
L_001b:
          goto L_001c;
          void setconst (          int m )
{
          buff [(bp  + 1)] = 78;
          buff [(bp  + 5)] = m ;
          m  = (m  >> 8);
          buff [(bp  + 4)] = m ;
          m  = (m  >> 8);
          buff [(bp  + 3)] = m ;
          m  = (m  >> 8);
          buff [(bp  + 2)] = m ;
          bp  = (bp  + 5);
L_001c:
          goto L_001d;
          void compileblock (          int level ,           int blocktag ,           int dmin ,           int tmax ,           int id )
{
          int  gapp ();
          void deletenames (          int quiet );
          void analyse ();
          void compile ();
          int open ;
          open  = 16384;
          int dbase ;
          dbase  = dmax ;
          int tbase ;
          tbase  = tmax ;
          int tstart ;
          tstart  = tmax ;
          int label ;
          label  = 4;
          int access ;
          access  = 1;
          int inhibit ;
          inhibit  = 0;
          short int  *bflags ;
//          SELECT 3
          bflags  = &/*RHSval*/tag [blocktag ].{field 3};
          int blocktype ;
          blocktype  = (7 & (*bflags  >> 4));
          int blockform ;
          blockform  = (15 & *bflags );
          int blockfm ;
//          SELECT 2
          blockfm  = /*RHSval*/tag [blocktag ].{field 2};
          int blockotype ;
          blockotype  = otype ;
          int  *blockapp ;
//          SELECT 1
          blockapp  = &/*RHSval*/tag [blocktag ].{field 1};
          int l ;
          int newapp ;
          goto L_001d;
          void fault (          int n )
{
          // bounds [-5 : 22]
          %switch fm ;
          int st ;
          goto L_001d;
          void printss ()
{
          int s ;
          int p ;
          if (pos  != 0) goto L_001e;
          return;
L_001e:
          space ();
          p  = 1;
          for (;;) {
L_001f:
          if (p  != pos1 ) goto L_0020;
          printsymbol (94);
L_0020:
          if (p  != pos ) goto L_0021;
          goto L_0022;
L_0021:
          s  = char [p ];
          p  = (p  + 1);
          if (s  == 10) goto L_0023;
          if (s  != 37) goto L_0024;
          if (p  != pos ) goto L_0024;
L_0023:
          goto L_0022;
L_0024:
          if (s  >= 32) goto L_0025;
          if (s  != 12) goto L_0026;
          s  = 10;
          goto L_0027;
L_0026:
          s  = 32;
L_0027:
L_0025:
          printsymbol (s );
          }
L_0022:
          if (list  > 0) goto L_0028;
          pos  = 0;
L_0028:
L_001d:
          if (pos2  <= pos1 ) goto L_0029;
          pos1  = pos2 ;
L_0029:
          if (sym  == 10) goto L_002a;
          newline ();
L_002a:
          st  = 0;
          if (n  != (-3)) goto L_002b;
          st  = 2;
L_002b:
          for (;;) {
L_002c:
          selectoutput (st );
          if (n  >= 0) goto L_002d;
          printsymbol (63);
          pos1  = 0;
          goto L_002e;
L_002d:
          printsymbol (42);
L_002e:
          if (st  == 0) goto L_002f;
          if (list  > 0) goto L_0030;
          if (pos1  == 0) goto L_0030;
          spaces ((pos1  + margin ));
          printstring ("      ! ");
L_0030:
          goto L_0031;
L_002f:
          if (include  == 0) goto L_0032;
          printstring ("NCLUDEFILEincludefile!char [64] includefile INCLUDELIS");
L_0032:
          write (lines , 4);
          printsymbol (csym );
          space ();
L_0031:
          if ((-5) > n ) goto L_0033;
          if (n  > 22) goto L_0033;
          ->SJUMP_195(n )
L_0033:
          printstring ("fault");
          write (n , 2);
          goto U_00c6;
SLABEL_195(-5):
          printstring ("Dubious statement");
          dubious  = 0;
          goto U_00c7;
SLABEL_195(-4):
          printstring ("Non-local");
          pos1  = forwarn ;
          forwarn  = 0;
          goto U_00c6;
SLABEL_195(-3):
          printident (x , 0);
          printstring (" unused");
          goto U_00c8;
SLABEL_195(-2):
          printstring ("\"}\"");
          goto U_00c9;
SLABEL_195(-1):
          printstring ("access");
          goto U_00c7;
SLABEL_195(0):
          printstring ("form");
          goto U_00c6;
SLABEL_195(1):
          printstring ("atom");
          goto U_00c6;
SLABEL_195(2):
          printstring ("not declared");
          goto U_00c6;
SLABEL_195(3):
          printstring ("too complex");
          goto U_00c6;
SLABEL_195(4):
          printstring ("duplicate ");
          printident (x , 0);
          goto U_00c6;
SLABEL_195(5):
          printstring ("type");
          goto U_00c6;
SLABEL_195(6):
          printstring ("match");
          goto U_00c7;
SLABEL_195(7):
          printstring ("context");
          goto U_00c7;
SLABEL_195(21):
          printstring ("context ");
          printident (this , 0);
          goto U_00c6;
SLABEL_195(8):
          printstring ("%cycle");
          goto U_00c9;
SLABEL_195(9):
          printstring ("%start");
          goto U_00c9;
SLABEL_195(10):
          printstring ("size");
          if (pos1  != 0) goto L_0034;
          write (lit , 1);
L_0034:
          goto U_00c6;
SLABEL_195(11):
          printstring ("bounds");
          if (ocount  < 0) goto L_0035;
          write (ocount , 1);
L_0035:
          goto U_00c6;
SLABEL_195(12):
          printstring ("index");
          goto U_00c6;
SLABEL_195(13):
          printstring ("order");
          goto U_00c7;
SLABEL_195(14):
          printstring ("not a location");
          goto U_00c6;
SLABEL_195(15):
          printstring ("%begin");
          goto U_00c9;
SLABEL_195(16):
          printstring ("%end");
          goto U_00c9;
SLABEL_195(17):
          printstring ("%repeat");
          goto U_00c9;
SLABEL_195(18):
          printstring ("%finish");
          goto U_00c9;
SLABEL_195(19):
          printstring ("result");
          goto U_00c9;
SLABEL_195(22):
          printstring ("format");
          goto U_00c6;
SLABEL_195(20):
          printsymbol (34);
          printident (x , 0);
          printsymbol (34);
U_00c9:
          printstring (" missing");
          goto U_00c8;
U_00c7:
          pos1  = 0;
U_00c6:
          printss ();
U_00c8:
          newline ();
          if (st  != 2) goto L_0036;
          goto L_0037;
L_0036:
          st  = 2;
          }
L_0037:
          if (n  < 0) goto L_0038;
          if ((4096 & diag ) == 0) goto L_0039;
          exit(0);
L_0039:
          if (n  == 13) goto L_003a;
          ocount  = (-1);
          gg  = 0;
          copy  = 0;
          quote  = 0;
          searchbase  = 0;
          escapeclass  = 0;
          gg  = 0;
L_003a:
          faulty  = (faulty  + 1);
          faultrate  = (faultrate  + 3);
          if (faultrate  <= 30) goto L_003b;
          abandon (6);
L_003b:
          if (faultrate  > 0) goto L_003c;
          faultrate  = 3;
L_003c:
L_0038:
          tbase  = tstart ;
          if (list  > 0) goto L_003d;
          if (sym  == 10) goto L_003d;
          errormargin  = column ;
          errorsym  = sym ;
          sym  = 10;
L_003d:
          for (;;) {
L_003e:
          dmin  = (dmin  - 1);
          dict [dmin ] = (-1);
          if (dmax  != dmin ) goto L_003f;
          abandon (2);
L_003f:
          if (list  <= 0) goto L_0040;
          if (level  <= 0) goto L_0040;
          write (lines , 5);
          spaces (((3 * level ) - 1));
          if (blocktag  != 0) goto L_0041;
          printstring ("Begin");
          goto L_0042;
L_0041:
          printstring ("Procedure ");
          printident (blocktag , 0);
L_0042:
          newline ();
L_0040:
          if (blocktag  == 0) goto L_0043;
          analyse ();
          if (ss  == 0) goto L_0044;
          compile ();
L_0044:
          if (blockotype  == 0) goto L_0045;
          if ((128 & *bflags ) != 0) goto L_0046;
          if (progmode  > 0) goto L_0047;
          if (level  != 1) goto L_0047;
          progmode  = (-1);
          goto L_0048;
L_0047:
          fault (7);
L_0048:
L_0046:
L_0045:
          newapp  = gapp ();
          if (specgiven  == 0) goto L_0049;
          if (newapp  == *blockapp ) goto L_004a;
          fault (6);
L_004a:
L_0049:
          *blockapp  = newapp ;
          if (level  >= 0) goto L_004b;
          deletenames (0);
          return;
L_004b:
          goto L_004c;
L_0043:
          open  = 0;
L_004c:
          for (;;) {
L_004d:
          analyse ();
          if (ss  != 0) goto L_004e;
          goto L_004f;
L_004e:
          compile ();
          if (dubious  == 0) goto L_0050;
          fault ((-5));
L_0050:
          if (bp  < 128) goto L_0051;
          flushbuffer ();
L_0051:
          if (sstype  <= 0) goto L_0052;
          if (sstype  != 2) goto L_0053;
          goto L_0054;
L_0053:
          compileblock (specmode , blockx , dmin , tmax , id );
          if (ss  >= 0) goto L_0055;
          goto L_0054;
L_0055:
L_0052:
L_004f:
          }
L_0054:
          if (list  <= 0) goto L_0056;
          if (level  <= 0) goto L_0056;
          write (lines , 5);
          spaces (((3 * level ) - 1));
          printstring ("End");
          newline ();
L_0056:
          deletenames (0);
          return;
          goto L_003e;
          int  gapp ()
{
          void setcell (          int g ,           int tt );
          void class (          struct TAGFM v  *);
          struct TAGFM v  *;
          int p ;
          int link ;
          int tp ;
          int c ;
          int ap ;
          int t ;
          if (tmax  != local ) goto L_0057;
          return(0);
L_0057:
          p  = 719;
          link  = 0;
          t  = tmax ;
          for (;;) {
L_0058:
          /*LHSaddr*/%record {TAGFM} v  = &/*RHSval*/tag [t ];
          t  = (t  - 1);
          class (/*RHSval*/*v );
          if (c  >= 0) goto L_0059;
          c  = (-c );
          setcell (196, tp );
          tp  = (-1);
L_0059:
          setcell (c , tp );
          if (t  != local ) goto L_005a;
          goto L_005b;
L_005a:
          setcell (140, (-1));
          }
L_005b:
          if (gmax  <= gmin ) goto L_005c;
          abandon (3);
L_005c:
          return(link );
          goto L_003e;
          void setcell (          int g ,           int tt )
{
          for (;;) {
L_005d:
          if (p  == gmax ) goto L_005e;
          p  = (p  + 1);
          if (glink [p ] != link ) goto L_005f;
          if (gram [p ] != g ) goto L_005f;
          if (tt  < 0) goto L_0060;
          if (gram [(p  + 1)] != tt ) goto L_0061;
          if (glink [(p  + 1)] != ap ) goto L_0061;
L_0060:
          link  = p ;
          return;
L_0061:
L_005f:
          }
L_005e:
          gmax  = (gmax  + 1);
          gram [gmax ] = g ;
          glink [gmax ] = link ;
          link  = gmax ;
          if (tt  < 0) goto L_0062;
          gmax  = (gmax  + 1);
          gram [gmax ] = tt ;
          glink [gmax ] = ap ;
L_0062:
          p  = gmax ;
L_003e:
          goto L_0063;
          void class (          struct TAGFM v  *)
{
          // bounds [0 : 15]
          const int  *classmap ;
          int tags ;
          int type ;
          int form ;
          ap  = 0;
//          SELECT 3
          tags  = /*RHSval*/*v .{field 3};
          type  = (7 & (tags  >> 4));
          form  = (15 & tags );
//          SELECT 2
          tp  = (type  | (/*RHSval*/*v .{field 2} << 3));
          c  = classmap [form ];
          if (type  != 0) goto L_0064;
          if (form  != 2) goto L_0064;
          c  = 208;
          tp  = 0;
L_0064:
          if ((4096 & tags ) == 0) goto L_0065;
//          SELECT 1
          ap  = /*RHSval*/*v .{field 1};
L_0065:
L_0063:
          for (;;) {
L_0066:
          goto L_0066;
          void deletenames (          int quiet )
{
          int flags ;
          struct TAGFM tx  *;
          for (;;) {
L_0067:
          if (tmax  <= tbase ) goto L_0068;
          x  = tmax ;
          tmax  = (tmax  - 1);
          /*LHSaddr*/%record {TAGFM} tx  = &/*RHSval*/tag [x ];
//          SELECT 3
          flags  = /*RHSval*/*tx .{field 3};
          if ((128 & flags ) == 0) goto L_0069;
          if ((512 & flags ) != 0) goto L_0069;
          fault (20);
L_0069:
          if ((32768 & flags ) != 0) goto L_006a;
          if (level  < 0) goto L_006a;
          if (list  > 0) goto L_006a;
          if (quiet  != 0) goto L_006b;
          fault ((-3));
L_006b:
L_006a:
//          SELECT 5
//          SELECT 6
          dict [/*RHSval*/*tx .{field 5}] = /*RHSval*/*tx .{field 6};
          }
L_0068:
L_0066:
          goto L_006c;
          void analyse ()
{
          int strp ;
          int mark ;
          int flags ;
          int proterr ;
          int k ;
          int s ;
          int c ;
          static int key ;
          short int node ;
          short int  *z ;
          struct ARFM arp  *;
          // bounds [180 : 200]
          %switch act ;
          // bounds [0 : 15]
          %switch paction ;
          goto L_006c;
          void traceanalysis ()
{
          int a ;
          goto L_006c;
          void show (          int a )
{
          if (0 >= a ) goto L_006d;
          if (a  >= 130) goto L_006d;
          space ();
          printstring ("EXTtext!const char [9]  *text 	Z"[a ]);
          goto L_006e;
L_006d:
          write (a , 3);
L_006e:
L_006c:
          static int la1 ;
          static int la2 ;
          static int lsa ;
          static int lt ;
          if (monpos  == pos ) goto L_006f;
          if (sym  == 10) goto L_006f;
          newline ();
L_006f:
          monpos  = pos ;
          write (g , 3);
          space ();
          printstring ("EXTtext!const char [9]  *text 	Z"[class ]);
          if ((16384 & gg ) == 0) goto L_0070;
          printsymbol (34);
L_0070:
          a  = (15 & (gg  >> 8));
          if (a  == 0) goto L_0071;
          printsymbol (123);
          write (a , 0);
          printsymbol (125);
L_0071:
          if (atom1  != la1 ) goto L_0072;
          if (atom2  != la2 ) goto L_0072;
          if (lsa  != subatom ) goto L_0072;
          if (lt  == type ) goto L_0073;
L_0072:
          printstring (" [");
          la1  = atom1 ;
          show (la1 );
          la2  = atom2 ;
          show (la2 );
          lsa  = subatom ;
          write (lsa , 3);
          lt  = type ;
          write (lt , 5);
          printsymbol (93);
L_0073:
          newline ();
          for (;;) {
L_0074:
          goto L_0074;
          void getsym ()
{
          readsymbol (sym );
          if (pos  == 133) goto L_0075;
          pos  = (pos  + 1);
L_0075:
          char [pos ] = sym ;
          if (list  > 0) goto L_0076;
          printsymbol (sym );
L_0076:
          column  = (column  + 1);
L_0074:
          goto L_0077;
          void readsym ()
{
          static int last ;
          // bounds [0 : 127]
          const char int  *mapped ;
          if (sym  != 10) goto L_0078;
U_00d4:
          lines  = (lines  + 1);
          if (endmark  == 0) goto L_0079;
          printsymbol (endmark );
L_0079:
U_00d5:
          pos  = 0;
          pos1  = 0;
          pos2  = 0;
          margin  = 0;
          column  = 0;
          last  = 0;
          endmark  = 0;
          if (list  > 0) goto L_007a;
          if (include  == 0) goto L_007b;
          printstring (" &");
          write (lines , (-4));
          goto L_007c;
L_007b:
          write (lines , 5);
L_007c:
          csym  = cont ;
          printsymbol (csym );
          space ();
          if (errormargin  == 0) goto L_007d;
          lines  = (lines  - 1);
          spaces (errormargin );
          errormargin  = 0;
          if (errorsym  == 0) goto L_007e;
          printsymbol (errorsym );
          pos  = 1;
          *byteinteger ((addr (char [0]) + 1)) = errorsym ;
          sym  = errorsym ;
          errorsym  = 0;
          goto U_00d6;
L_007e:
L_007d:
L_007a:
U_00d7:
          symtype  = 1;
L_0078:
U_00d8:
          readsymbol (sym );
          if (pos  == 133) goto L_007f;
          pos  = (pos  + 1);
L_007f:
          char [pos ] = sym ;
          if (list  > 0) goto L_0080;
          printsymbol (sym );
L_0080:
          column  = (column  + 1);
U_00d6:
          if (sym  == 10) goto L_0081;
          last  = sym ;
          if (quote  == 0) goto L_0082;
          return;
L_0082:
          sym  = mapped [(127 & sym )];
          if (sym  > 3) goto L_0083;
          if (sym  != 0) goto L_0084;
          goto U_00d7;
L_0084:
          if (sym  != 1) goto L_0085;
          symtype  = 2;
          goto U_00d8;
L_0085:
          if (sym  != 3) goto L_0086;
          cont  = 43;
          goto U_00d5;
L_0086:
          for (;;) {
L_0087:
          getsym ();
          if (sym  != 125) goto L_0088;
          goto U_00d8;
L_0088:
          if (sym  != 10) goto L_0089;
          goto U_00d9;
L_0089:
          }
L_0083:
          key  = kdict [sym ];
          if ((3 & key ) != 0) goto L_008a;
          if (symtype  != 2) goto L_008a;
          if (sym  != 67) goto L_008b;
          if (nextsymbol () != 10) goto L_008b;
          getsym ();
          cont  = 43;
          goto U_00d4;
L_008b:
          goto L_008c;
L_008a:
          symtype  = ((3 & key ) - 2);
L_008c:
          return;
L_0081:
U_00d9:
          symtype  = quote ;
          if (last  != 0) goto L_008d;
          if (quote  != 0) goto L_008d;
          goto U_00d4;
L_008d:
          cont  = 43;
L_0077:
          goto L_008e;
          int  formatselected ()
{
//          SELECT 1
          formatlist  = /*RHSval*/tag [format ].{field 1};
          if (formatlist  >= 0) goto L_008f;
          atom1  = (32768 + 22);
          return(0);
L_008f:
          if (sym  != 95) goto L_0090;
          escapeclass  = 255;
//          SELECT 2
          searchbase  = /*RHSval*/tag [format ].{field 2};
L_0090:
          return(1);
L_008e:
          goto L_0091;
          void codeatom (          int target )
{
          int dbase ;
          int da ;
          int base ;
          int n ;
          int mul ;
          int pendquote ;
          int j ;
          int k ;
          int l ;
          int pt ;
          goto L_0091;
          void lookup (          int d )
{
          int newname ;
          int vid ;
          int k1 ;
          int k2 ;
          int form ;
          struct TAGFM t  *;
          int new ;
          new  = addr (dict [(dmax  + 1)]);
          k2  = (6700421 * hashvalue );
          k2  = (1 | (k2  >> (32 - (11 * 2))));
          k1  = (k2  >> 11);
          for (;;) {
L_0092:
          newname  = hash [k1 ];
          if (newname  != 0) goto L_0093;
          goto L_0094;
L_0093:
          if ("TRINGstring!extern char [1]  string Nn"(addr (dict [(newname  + 1)])) != "TRINGstring!extern char [1]  string Nn"(new )) goto L_0095;
          goto U_00e8;
L_0095:
          k1  = (2047 & (k1  + k2 ));
          }
L_0094:
          sparenames  = (sparenames  - 1);
          if (sparenames  > 0) goto L_0096;
          abandon (2);
L_0096:
          hash [k1 ] = dmax ;
          dict [dmax ] = (-1);
          newname  = dmax ;
          dmax  = dp ;
          goto U_00e9;
U_00e8:
          if (this  < 0) goto L_0097;
          if (d  == 0) goto L_0097;
          searchbase  = rbase ;
L_0097:
          if (searchbase  == 0) goto L_0098;
          new  = (-1);
          x  = searchbase ;
          for (;;) {
L_0099:
          if (x  >= formatlist ) goto L_009a;
          goto U_00e9;
L_009a:
//          SELECT 5
          if (/*RHSval*/tag [x ].{field 5} != newname ) goto L_009b;
          goto L_009c;
L_009b:
          x  = (x  - 1);
          }
L_009c:
          goto L_009d;
L_0098:
          x  = dict [newname ];
          if (x  > limit ) goto L_009e;
          goto U_00e9;
L_009e:
L_009d:
          subatom  = x ;
          /*LHSaddr*/%record {TAGFM} t  = &/*RHSval*/tag [x ];
//          SELECT 3
          atomflags  = /*RHSval*/*t .{field 3};
//          SELECT 2
          format  = /*RHSval*/*t .{field 2};
//          SELECT 1
          app  = /*RHSval*/*t .{field 1};
          protection  = (256 & atomflags );
          type  = (7 & (atomflags  >> 4));
          atom1  = amap [(15 & atomflags )];
          if ((8 & diag ) == 0) goto L_009f;
          printstring ("lookup:");
          write (atom1 , 3);
          write (type , 1);
          write (app , 3);
          write (format , 5);
          write (atomflags , 3);
          newline ();
L_009f:
          if (d  != 0) goto L_00a0;
//          SELECT 3
//          SELECT 3
          /*RHSval*/*t .{field 3} = (32768 | /*RHSval*/*t .{field 3});
          searchbase  = 0;
          if ((2048 & atomflags ) == 0) goto L_00a1;
          if (format  == 0) goto L_00a1;
          if (formatselected () != 0) goto L_00a2;
          return;
L_00a2:
L_00a1:
          if ((4096 & atomflags ) == 0) goto L_00a3;
          if (app  != 0) goto L_00a4;
          atom2  = atom1 ;
          atom1  = (atom1  - 4);
          if (97 > atom1 ) goto L_00a5;
          if (atom1  > 98) goto L_00a5;
          mapgg  = atom1 ;
          atom1  = 91;
L_00a5:
          goto L_00a6;
L_00a4:
          if (sym  != 40) goto L_00a7;
          searchbase  = 0;
          if (atom1  < 106) goto L_00a8;
          app  = phrase [(app  + 200)];
          escapeclass  = 254;
          atom1  = (((atom1  - 106) >> 1) + 91);
          goto L_00a9;
L_00a8:
          escapeclass  = 253;
          atom1  = (atom1  - 4);
L_00a9:
          phrase [200] = app ;
L_00a7:
L_00a6:
          pos2  = pos ;
          return;
L_00a3:
          if ((8192 & atomflags ) == 0) goto L_00aa;
          if (atom1  != 91) goto L_00aa;
          mapgg  = 93;
          atom2  = 93;
          if (type  != 1) goto L_00ab;
          subatom  = (-subatom );
L_00ab:
L_00aa:
          return;
L_00a0:
          if (tbase  == tstart ) goto L_00ac;
          goto U_00e9;
L_00ac:
          if (d  != ((3 + 128) + 32768)) goto L_00ad;
//          SELECT 3
//          SELECT 3
          /*RHSval*/*t .{field 3} = (32768 | /*RHSval*/*t .{field 3});
          return;
L_00ad:
          if ((128 & atomflags ) == 0) goto L_00ae;
          if (d  != 3) goto L_00af;
//          SELECT 3
//          SELECT 3
          /*RHSval*/*t .{field 3} = (/*RHSval*/*t .{field 3} - 128);
          return;
L_00af:
          if (7 > (15 & decl )) goto L_00b0;
          if ((15 & decl ) > 10) goto L_00b0;
          if ((128 & decl ) != 0) goto L_00b0;
          if ((127 & (atomflags  ^ decl )) != 0) goto L_00b1;
//          SELECT 3
//          SELECT 3
          /*RHSval*/*t .{field 3} = (/*RHSval*/*t .{field 3} - 128);
          specgiven  = 1;
          return;
L_00b1:
L_00b0:
          if ((15 & decl ) != 4) goto L_00b2;
//          SELECT 3
          /*RHSval*/*t .{field 3} = ((4 << 4) + 4);
//          SELECT 2
          /*RHSval*/*t .{field 2} = fdef ;
          return;
L_00b2:
L_00ae:
          if (last1  != 54) goto L_00b3;
          if (atom1  != 105) goto L_00b3;
          return;
L_00b3:
          if (copy  != 0) goto L_00b4;
          copy  = x ;
L_00b4:
U_00e9:
          app  = 0;
          vid  = 0;
          atom1  = (32768 + 2);
          if (d  != 0) goto L_00b5;
          return;
L_00b5:
          type  = (7 & (d  >> 4));
          form  = (15 & d );
          atom1  = amap [form ];
          if (this  >= 0) goto L_00b6;
          new  = newname ;
          tmax  = (tmax  + 1);
          x  = tmax ;
          goto L_00b7;
L_00b6:
          new  = (-1);
          recid  = (recid  - 1);
          vid  = recid ;
          tmin  = (tmin  - 1);
          x  = tmin ;
          formatlist  = tmin ;
L_00b7:
          if (11 > form ) goto L_00b8;
          if (form  > 14) goto L_00b8;
          if (dim  != 0) goto L_00b9;
          dim  = 1;
L_00b9:
          app  = dim ;
L_00b8:
          if (otype  <= 2) goto L_00ba;
          if ((128 & d ) == 0) goto L_00bb;
L_00ba:
          if (perm  != 0) goto L_00bb;
          if (level  != includelevel ) goto L_00bc;
L_00bb:
          d  = (32768 | d );
L_00bc:
          /*LHSaddr*/%record {TAGFM} t  = &/*RHSval*/tag [x ];
          if (form  != 3) goto L_00bd;
          id  = (id  + 1);
          vid  = id ;
L_00bd:
//          SELECT 4
          /*RHSval*/*t .{field 4} = vid ;
//          SELECT 5
          /*RHSval*/*t .{field 5} = newname ;
//          SELECT 3
          /*RHSval*/*t .{field 3} = d ;
//          SELECT 1
          /*RHSval*/*t .{field 1} = app ;
//          SELECT 2
          /*RHSval*/*t .{field 2} = fdef ;
          format  = fdef ;
          subatom  = x ;
          if (new  < 0) goto L_00be;
//          SELECT 6
          /*RHSval*/*t .{field 6} = dict [new ];
          dict [new ] = x ;
          if (gmin  != 1720) goto L_00bf;
          tmin  = (tmin  - 1);
          subatom  = tmin ;
          /*RHSval*/tag [tmin ] = /*RHSval*/*t ;
L_00bf:
L_00be:
          if (tmax  < tmin ) goto L_00c0;
          abandon (3);
L_00c0:
L_0091:
U_00e0:
          pos1  = pos ;
          subatom  = 0;
          pendquote  = 0;
          atomflags  = 0;
          if (symtype  != (-2)) goto L_00c1;
          goto U_00e1;
L_00c1:
          if (symtype  >= 0) goto L_00c2;
          goto U_00e2;
L_00c2:
          if (symtype  != 0) goto L_00c3;
          atom1  = 20;
          atom2  = 0;
          return;
L_00c3:
          if (symtype  == 2) goto L_00c4;
          if (quote  == 0) goto L_00c5;
          goto U_00e3;
L_00c5:
          if (sym  != 34) goto L_00c6;
          goto U_00e4;
L_00c6:
          if (sym  != 39) goto L_00c7;
          goto U_00e5;
L_00c7:
          if (sym  != 46) goto L_00c8;
          if (48 > nextsymbol ()) goto L_00c8;
          if (nextsymbol () > 57) goto L_00c8;
          goto U_00e2;
L_00c8:
L_00c4:
          k  = (key  >> 2);
          readsym ();
          for (;;) {
L_00c9:
          j  = kdict [k ];
          if ((16384 & j ) == 0) goto L_00ca;
          goto L_00cb;
L_00ca:
          if ((127 & j ) != sym ) goto L_00cc;
          if (symtype  >= 0) goto L_00cd;
L_00cc:
          if (j  < 0) goto L_00ce;
          goto U_00e6;
L_00ce:
          k  = (k  + 1);
          goto L_00cf;
L_00cd:
          l  = (127 & (j  >> 7));
          readsym ();
          if (j  <= 0) goto L_00d0;
          if (l  == 0) goto L_00d1;
          if (l  != sym ) goto L_00d2;
          if (symtype  >= 0) goto L_00d3;
L_00d2:
          goto U_00e6;
L_00d3:
          readsym ();
L_00d1:
          l  = 1;
L_00d0:
          k  = (k  + l );
L_00cf:
          }
L_00cb:
          atom1  = (127 & j );
          if (atom1  != 0) goto L_00d4;
          atom1  = 19;
          subatom  = 19;
          atom2  = 0;
          if (sym  != 10) goto L_00d5;
          if (ocount  < 0) goto L_00d6;
          return;
L_00d6:
          readsym ();
L_00d5:
          return;
L_00d4:
          atom2  = (127 & (j  >> 7));
          subatom  = (16383 & kdict [(k  + 1)]);
          return;
U_00e6:
          atom1  = (32768 + 1);
          atom2  = 0;
          if ((pos  - pos1 ) <= 2) goto L_00d7;
          pos1  = pos ;
L_00d7:
          return;
U_00e5:
          atom1  = 91;
          atom2  = 93;
          type  = 1;
          mapgg  = 93;
          protection  = 256;
          subatom  = lp ;
          if (lp  < 50) goto L_00d8;
          abandon (3);
L_00d8:
          quote  = (\pendquote );
          return;
U_00e7:
          n  = 0;
          cont  = 39;
          for (;;) {
L_00d9:
          readsym ();
          if (sym  != 39) goto L_00da;
          if (nextsymbol () == 39) goto L_00db;
          goto L_00dc;
L_00db:
          readsym ();
L_00da:
          if (((\((-1) >> 8)) & n ) == 0) goto L_00dd;
          pos1  = pos ;
          atom1  = (32768 + 10);
          return;
L_00dd:
          if (quote  != 0) goto L_00de;
          goto U_00e6;
L_00de:
          n  = ((n  << 8) + sym );
          quote  = (quote  + 1);
          }
L_00dc:
          quote  = 0;
          cont  = 32;
          if (sym  == 10) goto L_00df;
          readsym ();
L_00df:
          litpool [lp ] = n ;
          lp  = (lp  + 1);
          goto U_00e0;
U_00e4:
          atom1  = 91;
          atom2  = 93;
          type  = 3;
          subatom  = (16384 | (strp  - stbase ));
          mapgg  = 93;
          protection  = 256;
          quote  = subatom ;
          textline  = lines ;
          return;
U_00e3:
          if (quote  >= 0) goto L_00e0;
          goto U_00e7;
L_00e0:
          l  = strp ;
          n  = strp ;
          j  = addr (glink [(gmin  - 1)]);
          k  = (l  + 256);
          if (j  >= k ) goto L_00e1;
          k  = j ;
L_00e1:
          for (;;) {
L_00e2:
          cont  = 34;
          quote  = 1;
          for (;;) {
L_00e3:
          readsym ();
          if (sym  != 34) goto L_00e4;
          if (nextsymbol () == 34) goto L_00e5;
          goto L_00e6;
L_00e5:
          readsym ();
L_00e4:
          l  = (l  + 1);
          *byteinteger (l ) = sym ;
          if (l  < k ) goto L_00e7;
          lines  = textline ;
          abandon (7);
L_00e7:
          }
L_00e6:
          *byteinteger (n ) = (l  - n );
          strp  = (l  + 1);
          quote  = 0;
          cont  = 32;
          readsym ();
          codeatom (target );
          if (atom1  != 48) goto L_00e8;
          if (sym  == 34) goto L_00e9;
L_00e8:
          return;
L_00e9:
          }
          goto L_00ea;
          void get (          int limit )
{
          int s ;
          int shift ;
          shift  = 0;
          if (base  == 10) goto L_00eb;
          if (base  != 16) goto L_00ec;
          shift  = 4;
          goto L_00ed;
L_00ec:
          if (base  != 8) goto L_00ee;
          shift  = 3;
          goto L_00ef;
L_00ee:
          if (base  != 2) goto L_00f0;
          shift  = 1;
L_00f0:
L_00ef:
L_00ed:
L_00eb:
          n  = 0;
          for (;;) {
L_00f1:
          if (symtype  != (-1)) goto L_00f2;
          s  = (sym  - 48);
          goto L_00f3;
L_00f2:
          if (symtype  >= 0) goto L_00f4;
          s  = ((sym  - 65) + 10);
          goto L_00f5;
L_00f4:
          return;
L_00f5:
L_00f3:
          if (s  < limit ) goto L_00f6;
          return;
L_00f6:
          pt  = (pt  + 1);
          *byteinteger (pt ) = sym ;
          if (base  != 10) goto L_00f7;
          if (n  < 214748364) goto L_00f8;
          if (s  > 7) goto L_00f9;
          if (n  <= 214748364) goto L_00f8;
L_00f9:
          base  = 0;
          type  = 2;
          n  = 0;
L_00f8:
L_00f7:
          if (shift  != 0) goto L_00fa;
          n  = ((base  * n ) + s );
          goto L_00fb;
L_00fa:
          n  = ((n  << shift ) + s );
L_00fb:
          readsym ();
          }
L_00ea:
U_00e2:
          base  = 10;
U_00e9:
          atom1  = 91;
          atom2  = 93;
          type  = 1;
          subatom  = lp ;
          mapgg  = 93;
          protection  = 256;
          if (lp  < 50) goto L_00fc;
          abandon (3);
L_00fc:
          pt  = strp ;
          mul  = 0;
          for (;;) {
L_00fd:
          get (base );
          if (sym  != 95) goto L_00fe;
          if (base  == 0) goto L_00fe;
          if (pendquote  == 0) goto L_00ff;
L_00fe:
          goto L_0100;
L_00ff:
          pt  = (pt  + 1);
          *byteinteger (pt ) = 95;
          readsym ();
          base  = n ;
          }
L_0100:
          if (pendquote  == 0) goto L_0101;
          if (sym  == 39) goto L_0102;
          goto U_00e6;
L_0102:
          readsym ();
L_0101:
          if (sym  != 46) goto L_0103;
          pt  = (pt  + 1);
          *byteinteger (pt ) = 46;
          readsym ();
          type  = 2;
          n  = base ;
          base  = 0;
          get (n );
L_0103:
          if (sym  != 64) goto L_0104;
          pt  = (pt  + 1);
          *byteinteger (pt ) = 64;
          k  = pt ;
          readsym ();
          type  = 1;
          base  = 10;
          if (sym  != 45) goto L_0105;
          readsym ();
          get (10);
          n  = (-n );
          goto L_0106;
L_0105:
          get (10);
L_0106:
          pt  = (k  + 1);
          *byteinteger (pt ) = lp ;
          litpool [lp ] = n ;
          lp  = (lp  + 1);
          if (base  != 0) goto L_0107;
          atom1  = (32768 + 10);
L_0107:
          type  = 2;
L_0104:
          if (type  != 2) goto L_0108;
          *byteinteger (strp ) = (pt  - strp );
          subatom  = (8192 | (strp  - stbase ));
          strp  = (pt  + 1);
          goto L_0109;
L_0108:
          litpool [lp ] = n ;
          lp  = (lp  + 1);
L_0109:
          return;
U_00e1:
          if (27 > target ) goto L_010a;
          if (target  > 41) goto L_010a;
          atom1  = 0;
          return;
L_010a:
          hashvalue  = 0;
          dp  = (dmax  + 1);
          da  = addr (dict [dp ]);
          dbase  = da ;
          for (;;) {
L_010b:
          hashvalue  = (hashvalue  + (hashvalue  + sym ));
          da  = (da  + 1);
          *byteinteger (da ) = sym ;
          readsym ();
          if (symtype  < 0) goto L_010c;
          goto L_010d;
L_010c:
          }
L_010d:
          if (sym  != 39) goto L_010e;
          pendquote  = 100;
          if (hashvalue  != 77) goto L_010f;
          goto U_00e5;
L_010f:
          readsym ();
          if (hashvalue  != 88) goto L_0110;
          base  = 16;
          goto U_00e9;
L_0110:
          if (hashvalue  == 75) goto L_0111;
          if (hashvalue  != 79) goto L_0112;
L_0111:
          base  = 8;
          goto U_00e9;
L_0112:
          if (hashvalue  != 66) goto L_0113;
          base  = 2;
          goto U_00e9;
L_0113:
          goto U_00e6;
L_010e:
          n  = (da  - dbase );
          *byteinteger (dbase ) = n ;
          dp  = (dp  + ((n  + 2) >> 1));
          if (dp  < dmin ) goto L_0114;
          abandon (8);
L_0114:
          atom2  = 90;
          if (last1  != 0) goto L_0115;
          if (sym  != 58) goto L_0115;
          limit  = local ;
          lookup (3);
          return;
L_0115:
          if (last1  != 54) goto L_0116;
          limit  = local ;
          lookup (((3 + 128) + 32768));
          return;
L_0116:
          if (decl  == 0) goto L_0117;
          if (target  != 90) goto L_0117;
          searchbase  = fmbase ;
          limit  = local ;
          lookup (decl );
          searchbase  = 0;
          goto L_0118;
L_0117:
          limit  = 0;
          lookup (0);
L_0118:
          for (;;) {
L_0119:
          goto L_0119;
          int  parsedmachinecode ()
{
          goto L_0119;
          void octal (          int n )
{
          int m ;
          m  = (n  >> 3);
          if (m  == 0) goto L_011a;
          octal (m );
L_011a:
          bp  = (bp  + 1);
          buff [bp ] = ((7 & n ) + 48);
L_0119:
          if (symtype  == (-2)) goto L_011b;
          atom1  = 32768;
          return(0);
L_011b:
          if (bp  < 128) goto L_011c;
          flushbuffer ();
L_011c:
          bp  = (bp  + 1);
          buff [bp ] = 119;
          for (;;) {
L_011d:
          bp  = (bp  + 1);
          buff [bp ] = sym ;
          readsym ();
          if (symtype  < 0) goto L_011e;
          goto L_011f;
L_011e:
          }
L_011f:
          bp  = (bp  + 1);
          buff [bp ] = 95;
          if (symtype  == 0) goto L_0120;
          if (sym  == 95) goto L_0121;
          atom1  = 32768;
          return(0);
L_0121:
          readsym ();
          for (;;) {
L_0122:
          if (symtype  == 0) goto L_0123;
          if (symtype  >= 0) goto L_0124;
          codeatom (0);
          if ((32768 & atom1 ) == 0) goto L_0125;
          return(0);
L_0125:
          if (atom2  != 93) goto L_0126;
          if (type  != 1) goto L_0126;
          if (subatom  >= 0) goto L_0127;
//          SELECT 2
          octal (/*RHSval*/tag [(-subatom )].{field 2});
          goto L_0128;
L_0127:
          octal (litpool [subatom ]);
L_0128:
          goto L_0129;
L_0126:
          if (91 > atom1 ) goto L_012a;
          if (atom1  > 109) goto L_012a;
          if (atom1  != 104) goto L_012b;
//          SELECT 3
          if ((16384 & /*RHSval*/tag [subatom ].{field 3}) != 0) goto L_012b;
          this  = subatom ;
          atom1  = (32768 + 21);
          return(0);
L_012b:
//          SELECT 4
          op (32, /*RHSval*/tag [subatom ].{field 4});
          goto L_012c;
L_012a:
          atom1  = 32768;
          return(0);
L_012c:
L_0129:
          goto L_012d;
L_0124:
          bp  = (bp  + 1);
          buff [bp ] = sym ;
          readsym ();
L_012d:
          }
L_0123:
L_0120:
          bp  = (bp  + 1);
          buff [bp ] = 59;
          return(1);
          for (;;) {
L_012e:
          if (gg  != 0) goto L_012f;
          cont  = 32;
L_012f:
          last1  = 0;
          mapgg  = 0;
          s  = 0;
          ss  = 0;
          sstype  = (-1);
          fdef  = 0;
          fmbase  = 0;
          app  = 0;
          margin  = column ;
          pos  = 0;
          stbase  = addr (glink [(gmax  + 1)]);
          strp  = stbase ;
          lp  = 0;
          tbase  = tstart ;
          local  = tbase ;
          if (gg  == 0) goto L_0130;
          if (ocount  < 0) goto L_0131;
L_0130:
U_00d5:
          for (;;) {
L_0132:
          if (symtype  != 0) goto L_0133;
          c  = cont ;
          cont  = 32;
          if (ocount  < 0) goto L_0134;
          cont  = 43;
L_0134:
          readsym ();
          cont  = c ;
          }
L_0133:
          if (sym  != 33) goto L_0135;
          goto U_00d6;
L_0135:
          this  = (-1);
          codeatom (0);
          if (atom1  != 22) goto L_0136;
U_00d6:
          quote  = 1;
          c  = cont ;
          for (;;) {
L_0137:
          if (sym  == 10) goto L_0138;
          readsym ();
          cont  = c ;
          }
L_0138:
          quote  = 0;
          symtype  = 0;
          goto U_00d5;
L_0136:
L_0131:
          decl  = 0;
          mark  = 0;
          gentype  = 0;
          force  = 0;
          dim  = 0;
          proterr  = 0;
          node  = 0;
          nmax  = 0;
          nmin  = (520 + 1);
          order  = 1;
          gmin  = (1720 + 1);
          if (gg  == 0) goto L_0139;
          sstype  = 0;
          goto U_00d7;
L_0139:
          ptype  = 0;
          specgiven  = 0;
          stats  = (stats  + 1);
          if (perm  != 0) goto L_013a;
          op (79, lines );
L_013a:
          if ((32768 & atom1 ) == 0) goto L_013b;
          goto U_00d8;
L_013b:
          if (escapeclass  == 0) goto L_013c;
          g  = 25;
          sstype  = (-1);
          goto U_00d9;
L_013c:
          g  = initial [atom1 ];
          if (g  != 0) goto L_013d;
          g  = initial [0];
          sstype  = 0;
          goto U_00d9;
L_013d:
          if (g  >= 0) goto L_013e;
          g  = (255 & g );
          nmax  = 1;
//          SELECT 1
          /*RHSval*/ar [1].{field 1} = 0;
//          SELECT 3
          /*RHSval*/ar [1].{field 3} = 0;
//          SELECT 2
          /*RHSval*/ar [1].{field 2} = 25;
L_013e:
          gg  = gram [g ];
          class  = (255 & gg );
          sstype  = ((3 & (gg  >> 12)) - 1);
          goto U_00da;
SLABEL_205(194):
          ptype  = type ;
          papp  = app ;
          pformat  = format ;
          goto U_00d7;
SLABEL_205(196):
          k  = (g  + 1);
          goto U_00db;
SLABEL_205(188):
//          SELECT 2
          k  = (/*RHSval*/ar [nmax ].{field 2} + 1);
U_00db:
          papp  = glink [k ];
          k  = gram [k ];
          if (k  != 0) goto L_013f;
          goto U_00d7;
L_013f:
          ptype  = (7 & k );
          pformat  = (k  >> 3);
SLABEL_205(183):
          k  = type ;
          if (gentype  == 0) goto L_0140;
          if (k  != 2) goto L_0141;
L_0140:
          gentype  = k ;
L_0141:
          if (pformat  >= 0) goto L_0142;
          app  = papp ;
          format  = pformat ;
          if (ptype  != 2) goto L_0143;
          if (type  != 1) goto L_0143;
          k  = 2;
L_0143:
          if (force  == 0) goto L_0144;
          k  = force ;
          force  = 0;
L_0144:
L_0142:
          if (papp  != app ) goto L_0145;
          if (ptype  == k ) goto L_0146;
          if (ptype  == 0) goto L_0146;
L_0145:
          goto U_00dc;
L_0146:
          if (pformat  == format ) goto L_0147;
          if (pformat  == 0) goto L_0147;
          if (format  != 0) goto L_0148;
L_0147:
          goto U_00d7;
L_0148:
          goto U_00dc;
SLABEL_205(197):
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmin ];
//          SELECT 2
          k  = /*RHSval*/*arp .{field 2};
          if (blockform  == (15 & k )) goto L_0149;
          goto U_00dd;
L_0149:
//          SELECT 2
          /*RHSval*/*arp .{field 2} = (k  >> 4);
          type  = blocktype ;
          ptype  = blocktype ;
          pformat  = blockfm ;
          papp  = app ;
          if (ptype  == 4) goto L_014a;
          pformat  = (-1);
L_014a:
          goto U_00d7;
SLABEL_205(195):
          if (type  == 0) goto L_014b;
          if (type  == 1) goto L_014b;
          if (type  == 2) goto L_014b;
          goto U_00dc;
L_014b:
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmin ];
//          SELECT 2
          k  = /*RHSval*/*arp .{field 2};
//          SELECT 2
          /*RHSval*/*arp .{field 2} = (k  >> 2);
          k  = (3 & k );
          if (k  != 0) goto L_014c;
          goto U_00d7;
L_014c:
          if (k  != 1) goto L_014d;
          force  = 1;
          if (type  == 1) goto L_014e;
          if (type  != 0) goto L_014f;
L_014e:
          goto U_00d7;
L_014f:
          goto U_00dc;
L_014d:
          if (ptype  == 2) goto L_0150;
          if (ptype  == 0) goto L_0150;
          goto U_00dc;
L_0150:
          if (k  != 3) goto L_0151;
          force  = 1;
L_0151:
          goto U_00d7;
SLABEL_205(198):
          k  = (15 & (gg  >> 8));
          if (k  != 0) goto L_0152;
          atom1  = last1 ;
          goto U_00d7;
L_0152:
          if (k  != 1) goto L_0153;
          if (type  == 3) goto L_0154;
          goto U_00dc;
L_0154:
          goto U_00d7;
L_0153:
          if (k  != 2) goto L_0155;
          if (type  != 4) goto L_0156;
          goto U_00dc;
L_0156:
          goto U_00d7;
L_0155:
          if (k  != 3) goto L_0157;
          codeatom (0);
          if ((512 & atomflags ) != 0) goto L_0158;
          goto U_00de;
L_0158:
          goto U_00d7;
L_0157:
          if (x  > local ) goto L_0159;
          forwarn  = pos1 ;
L_0159:
          goto U_00d7;
SLABEL_206(1):
          if (type  != 4) goto L_015a;
          g  = phrase [242];
          goto L_015b;
L_015a:
          pformat  = (-1);
L_015b:
          goto U_00d9;
SLABEL_206(2):
          ptype  = 2;
          pformat  = (-1);
          goto U_00d9;
SLABEL_206(3):
          ptype  = 3;
          pformat  = (-1);
          goto U_00d9;
SLABEL_206(4):
          ptype  = 1;
          pformat  = (-1);
          goto U_00d9;
SLABEL_206(5):
          if (ptype  != 1) goto L_015c;
          goto U_00d9;
L_015c:
          if (ptype  != 2) goto L_015d;
          g  = phrase [212];
          pformat  = (-1);
L_015d:
          if (ptype  != 3) goto L_015e;
          g  = phrase [213];
L_015e:
          goto U_00d9;
SLABEL_206(6):
//          SELECT 2
          ptype  = (7 & gram [(/*RHSval*/ar [nmax ].{field 2} + 1)]);
          pformat  = (-1);
          goto U_00d9;
SLABEL_206(7):
          if (ptype  != 1) goto L_015f;
          ptype  = 2;
L_015f:
          pformat  = (-1);
          goto U_00d9;
U_00da:
          last1  = class ;
          atom1  = 0;
          s  = subatom ;
U_00df:
          if ((16384 & gg ) != 0) goto L_0160;
          z  = &%short node ;
          for (;;) {
L_0161:
          k  = *z ;
          if ((12288 & gg ) == 0) goto L_0162;
          if (k  != 0) goto L_0163;
L_0162:
          goto L_0164;
L_0163:
          gg  = (gg  - 4096);
//          SELECT 3
          z  = &/*RHSval*/ar [k ].{field 3};
          }
L_0164:
          if (mapgg  == 0) goto L_0165;
          if ((255 & gg ) != 91) goto L_0165;
          gg  = mapgg ;
L_0165:
          nmin  = (nmin  - 1);
          if (nmin  != nmax ) goto L_0166;
          goto U_00e0;
L_0166:
          *z  = nmin ;
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmin ];
//          SELECT 2
          /*RHSval*/*arp .{field 2} = s ;
//          SELECT 1
          /*RHSval*/*arp .{field 1} = (mark  | (255 & gg ));
//          SELECT 3
          /*RHSval*/*arp .{field 3} = k ;
L_0160:
          mark  = 0;
          mapgg  = 0;
U_00d7:
          g  = glink [g ];
SLABEL_206(0):
U_00d9:
          gg  = gram [g ];
          class  = (255 & gg );
          if ((1 & diag ) == 0) goto L_0167;
          traceanalysis ();
L_0167:
          if (class  != 0) goto L_0168;
          goto U_00e1;
L_0168:
          if (class  >= 180) goto L_0169;
          if (class  < 130) goto L_016a;
          class  = atomic [class ];
L_016a:
          if (class  < 120) goto L_016b;
          goto U_00df;
L_016b:
          if (atom1  != 0) goto L_016c;
          codeatom (class );
L_016c:
          if (escapeclass  == 0) goto L_016d;
          class  = escapeclass ;
          escapeclass  = 0;
          g  = (g  + 4096);
U_00e2:
          gg  = 0;
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [(nmax  + 1)];
//          SELECT 5
          /*RHSval*/*arp .{field 5} = papp ;
//          SELECT 7
          /*RHSval*/*arp .{field 7} = x ;
          goto U_00e3;
L_016d:
          if (class  == atom1 ) goto L_016e;
          if (class  != atom2 ) goto L_016f;
L_016e:
          goto U_00da;
L_016f:
U_00de:
          if (gg  < 0) goto L_0170;
          goto U_00d8;
L_0170:
          g  = (g  + 1);
          goto U_00d9;
L_0169:
          if (class  < 200) goto L_0171;
U_00e3:
          nmax  = (nmax  + 1);
          if (nmax  != nmin ) goto L_0172;
          goto U_00e0;
L_0172:
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmax ];
//          SELECT 4
          /*RHSval*/*arp .{field 4} = ptype ;
//          SELECT 8
          /*RHSval*/*arp .{field 8} = pos1 ;
//          SELECT 6
          /*RHSval*/*arp .{field 6} = pformat ;
//          SELECT 3
          /*RHSval*/*arp .{field 3} = gentype ;
//          SELECT 1
          /*RHSval*/*arp .{field 1} = node ;
//          SELECT 2
          /*RHSval*/*arp .{field 2} = g ;
          node  = 0;
          g  = phrase [class ];
          if (force  == 0) goto L_0173;
          ptype  = force ;
          force  = 0;
L_0173:
          gentype  = 0;
          ->SJUMP_206((15 & (gg  >> 8)))
L_0171:
          ->SJUMP_205(class )
U_00e1:
          s  = 0;
          for (;;) {
L_0174:
          if (node  == 0) goto L_0175;
//          SELECT 3
          z  = &/*RHSval*/ar [node ].{field 3};
          k  = *z ;
          *z  = s ;
          s  = node ;
          node  = k ;
          }
L_0175:
          ss  = s ;
U_00e4:
          if (nmax  == 0) goto L_0176;
          k  = gentype ;
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmax ];
          nmax  = (nmax  - 1);
//          SELECT 1
          node  = /*RHSval*/*arp .{field 1};
//          SELECT 3
          gentype  = /*RHSval*/*arp .{field 3};
//          SELECT 4
          ptype  = /*RHSval*/*arp .{field 4};
//          SELECT 6
          pformat  = /*RHSval*/*arp .{field 6};
//          SELECT 2
          g  = /*RHSval*/*arp .{field 2};
          if ((4096 & g ) == 0) goto L_0177;
          g  = (g  - 4096);
//          SELECT 5
          papp  = /*RHSval*/*arp .{field 5};
          mark  = 255;
          subatom  = s ;
          goto U_00d9;
L_0177:
          if (gentype  == 0) goto L_0178;
          if (k  != 2) goto L_0179;
L_0178:
          gentype  = k ;
L_0179:
          type  = gentype ;
          k  = gg ;
          for (;;) {
L_017a:
          gg  = gram [g ];
          if (k  != 0) goto L_017b;
          goto U_00df;
L_017b:
          if (gg  < 0) goto L_017c;
          goto U_00d8;
L_017c:
          k  = (k  - 4096);
          g  = (g  + 1);
          }
L_0176:
          if (copy  == 0) goto L_017d;
          fault (4);
L_017d:
          if (order  != 0) goto L_017e;
          fault (13);
L_017e:
          if (forwarn  == 0) goto L_017f;
          fault ((-4));
L_017f:
          pos1  = 0;
          faultrate  = (faultrate  - 1);
          return;
SLABEL_205(193):
          if (sym  == 61) goto L_0180;
          if (sym  == 60) goto L_0180;
          gg  = 0;
          goto U_00e1;
L_0180:
SLABEL_205(181):
          atom1  = amap [(15 & decl )];
          goto U_00d7;
SLABEL_205(182):
          class  = 252;
          g  = (4096 | glink [g ]);
          decl  = 0;
          otype  = 0;
          goto U_00e2;
SLABEL_205(199):
          s  = 0;
          for (;;) {
L_0181:
          if (node  == 0) goto L_0182;
//          SELECT 3
          z  = &/*RHSval*/ar [node ].{field 3};
          k  = *z ;
          *z  = s ;
          s  = node ;
          node  = k ;
          }
L_0182:
          ss  = s ;
          if (quote  == 0) goto L_0183;
          codeatom (28);
L_0183:
          compile ();
          if ((32768 & atom1 ) != 0) goto L_0184;
          goto U_00d7;
L_0184:
          goto U_00d8;
SLABEL_205(184):
          if (type  == 1) goto L_0185;
          goto U_00e5;
L_0185:
          if (subatom  >= 0) goto L_0186;
//          SELECT 2
          lit  = /*RHSval*/tag [(-subatom )].{field 2};
          goto L_0187;
L_0186:
          lit  = litpool [subatom ];
L_0187:
          if (lit  == 0) goto L_0188;
          goto U_00e5;
L_0188:
          goto U_00d7;
SLABEL_205(185):
          s  = 0;
          for (;;) {
L_0189:
          if (node  == 0) goto L_018a;
//          SELECT 3
          z  = &/*RHSval*/ar [node ].{field 3};
          k  = *z ;
          *z  = s ;
          s  = node ;
          node  = k ;
          }
L_018a:
          ss  = s ;
//          SELECT 1
          atom1  = /*RHSval*/ar [s ].{field 1};
          atom2  = 0;
          if (atom1  == 97) goto L_018b;
          if (atom1  != 98) goto L_018c;
L_018b:
          atom1  = 91;
L_018c:
          /*LHSaddr*/%record {ARFM} arp  = &/*RHSval*/ar [nmax ];
//          SELECT 7
          x  = /*RHSval*/*arp .{field 7};
//          SELECT 8
          pos1  = /*RHSval*/*arp .{field 8};
          pos2  = 0;
          app  = 0;
//          SELECT 2
          format  = /*RHSval*/tag [x ].{field 2};
//          SELECT 3
          flags  = /*RHSval*/tag [x ].{field 3};
          type  = (7 & (flags  >> 4));
          protection  = (256 & flags );
          if ((1024 & flags ) == 0) goto L_018d;
          protection  = 0;
L_018d:
          if ((2048 & flags ) == 0) goto L_018e;
          if (format  == 0) goto L_018e;
          if (formatselected () != 0) goto L_018f;
          goto U_00d8;
L_018f:
L_018e:
          goto U_00e4;
SLABEL_205(187):
          protection  = 256;
          goto U_00d7;
SLABEL_205(186):
          if ((256 & protection ) != 0) goto L_0190;
          goto U_00d7;
L_0190:
          proterr  = nmin ;
          goto U_00de;
SLABEL_205(191):
          k  = protection ;
          codeatom (0);
          if ((1024 & atomflags ) != 0) goto L_0191;
          protection  = k ;
L_0191:
          goto U_00d7;
SLABEL_205(192):
          if (parsedmachinecode () != 0) goto L_0192;
          goto U_00d8;
L_0192:
          goto U_00d7;
SLABEL_205(189):
          k  = gapp ();
          deletenames (1);
          tmax  = tbase ;
          tbase  = gram [gmin ];
          local  = tbase ;
          gmin  = (gmin  + 1);
//          SELECT 1
//          SELECT 2
          x  = /*RHSval*/ar [/*RHSval*/ar [nmax ].{field 1}].{field 2};
//          SELECT 1
          /*RHSval*/tag [x ].{field 1} = k ;
          goto U_00d7;
SLABEL_205(190):
          gmin  = (gmin  - 1);
          if (gmin  > gmax ) goto L_0193;
          abandon (2);
L_0193:
          gram [gmin ] = tbase ;
          tbase  = tmax ;
          local  = tbase ;
          goto U_00d7;
U_00e5:
          k  = (32768 + 10);
          goto U_00e6;
U_00dd:
          k  = (32768 + 7);
          goto U_00e6;
U_00dc:
          k  = (32768 + 5);
          pos2  = 0;
          goto U_00e6;
U_00e0:
          k  = (32768 + 3);
          goto U_00e6;
U_00d8:
          k  = atom1 ;
          pos2  = 0;
U_00e6:
          if ((32 & diag ) == 0) goto L_0194;
          printstring ("Atom1 =");
          write (atom1 , 3);
          printstring ("  Atom2 =");
          write (atom2 , 3);
          printstring ("  subatom =");
          write (subatom , 3);
          newline ();
          printstring ("Type =");
          write (type , 1);
          printstring ("   Ptype =");
          write (ptype , 1);
          newline ();
          printstring ("App =");
          write (app , 1);
          printstring ("   Papp =");
          write (papp , 1);
          newline ();
          printstring ("Format =");
          write (format , 1);
          printstring ("   Pformat =");
          write (pformat , 1);
          newline ();
          exit(0);
L_0194:
          for (;;) {
L_0195:
          if (sym  == 10) goto L_0196;
          if (sym  == 59) goto L_0196;
          quote  = 0;
          readsym ();
          }
L_0196:
          if ((32768 & k ) == 0) goto L_0197;
          fault ((255 & k ));
          goto L_0198;
L_0197:
          if (proterr  != nmin ) goto L_0199;
          fault (14);
          goto L_019a;
L_0199:
          fault (0);
L_019a:
L_0198:
          gg  = 0;
          ss  = 0;
          symtype  = 0;
L_012e:
          goto L_019b;
          void compile ()
{
          // bounds [0 : 180]
          %switch c ;
          // bounds [1 : 12]
          %switch litop ;
          // bounds [1 : 14]
          const char int  *operator ;
          // bounds [0 : 7]
          const char int  *cc ;
          // bounds [0 : 15]
          const char int  *anyform ;
          // bounds [0 : 15]
          const short int  *decmap ;
          // bounds [0 : 15]
          static char int  *cnest ;
          int lmode ;
          int clab ;
          int dupid ;
          int resln ;
          static int lastdef ;
          static int lb ;
          static int ub ;
          int cp ;
          int ord ;
          int next ;
          int link ;
          int j ;
          int k ;
          int n ;
          int done ;
          int class ;
          int lit2 ;
          int defs ;
          int decs ;
          int cident ;
          int pending ;
          // bounds [1 : 40]
          static int  *pstack ;
          static char [9] name ;
          static int count ;
          goto L_019b;
          void deflab (          int l )
{
          op (58, l );
          access  = 1;
L_019b:
          goto L_019c;
          void getnext ()
{
          struct ARFM p  *;
U_00e4:
          if (next  != 0) goto L_019d;
          if (link  != 0) goto L_019e;
          class  = 0;
          return;
L_019e:
          /*LHSaddr*/%record {ARFM} p  = &/*RHSval*/ar [link ];
//          SELECT 3
          next  = /*RHSval*/*p .{field 3};
//          SELECT 2
          link  = /*RHSval*/*p .{field 2};
L_019d:
          for (;;) {
L_019f:
          /*LHSaddr*/%record {ARFM} p  = &/*RHSval*/ar [next ];
//          SELECT 2
          x  = /*RHSval*/*p .{field 2};
//          SELECT 1
          class  = /*RHSval*/*p .{field 1};
          if (class  >= 180) goto L_01a0;
          goto L_01a1;
L_01a0:
          if (x  != 0) goto L_01a2;
//          SELECT 3
          next  = /*RHSval*/*p .{field 3};
          goto U_00e4;
L_01a2:
//          SELECT 3
          if (/*RHSval*/*p .{field 3} == 0) goto L_01a3;
//          SELECT 2
          /*RHSval*/*p .{field 2} = link ;
          link  = next ;
L_01a3:
          next  = x ;
          }
L_01a1:
//          SELECT 3
          next  = /*RHSval*/*p .{field 3};
          if ((2 & diag ) == 0) goto L_01a4;
          if ("AMEname!static char [9] name COUNT" == "") goto L_01a5;
          spaces ((8 - *length ("AMEname!static char [9] name COUNT")));
L_01a5:
          %string (8) name  = "EXTtext!const char [9]  *text 	Z"[class ];
          write (x , 2);
          space ();
          printstring ("AMEname!static char [9] name COUNT");
          space ();
          count  = (count  - 1);
          if (count  > 0) goto L_01a6;
          count  = 5;
          %string (8) name  = "";
          newline ();
L_01a6:
L_01a4:
L_019c:
          goto L_01a7;
          void setsubs (          int n )
{
          int p ;
          p  = tmax ;
          for (;;) {
L_01a8:
          if (n  <= 0) goto L_01a9;
          if (p  >= tbase ) goto L_01aa;
          exit(0);
L_01aa:
//          SELECT 1
          /*RHSval*/tag [p ].{field 1} = dimension ;
          p  = (p  - 1);
          n  = (n  - 1);
          }
L_01a9:
L_01a7:
          goto L_01ab;
          void setbp ()
{
          pending  = (pending  - 2);
          lb  = pstack [(pending  + 1)];
          ub  = pstack [(pending  + 2)];
          if (((ub  - lb ) + 1) >= 0) goto L_01ac;
          pos1  = 0;
          next  = link ;
          fault (11);
          ub  = lb ;
L_01ac:
          setconst (lb );
          setconst (ub );
          if (class  == 146) goto L_01ad;
          bp  = (bp  + 1);
          buff [bp ] = 98;
L_01ad:
L_01ab:
          goto L_01ae;
          void compileend (          int type )
{
          if (access  == 0) goto L_01af;
          open  = 0;
          if (blockform  <= 7) goto L_01b0;
          fault (19);
L_01b0:
L_01af:
          for (;;) {
L_01b1:
          if (dict [dmin ] < 0) goto L_01b2;
          fault ((17 + (1 & dict [dmin ])));
          dmin  = (dmin  + 1);
          }
L_01b2:
          bp  = (bp  + 1);
          buff [bp ] = 59;
          if (type  != 1) goto L_01b3;
          bp  = (bp  + 1);
          buff [bp ] = 59;
L_01b3:
          *bflags  = (open  | *bflags );
          if (blocktag  == 0) goto L_01b4;
          if (level  == 1) goto L_01b4;
          deflab (0);
L_01b4:
          if (type  == 2) goto L_01b5;
          if (level  == type ) goto L_01b6;
          fault (16);
L_01b6:
          goto L_01b7;
L_01b5:
          if (level  != 0) goto L_01b8;
          fault (15);
L_01b8:
L_01b7:
          endmark  = 11;
L_01ae:
          goto L_01b9;
          void def (          int p )
{
          int t ;
          int f ;
          int type ;
          struct TAGFM v  *;
          if (bp  == 0) goto L_01ba;
          flushbuffer ();
L_01ba:
          defs  = (defs  + 1);
          /*LHSaddr*/%record {TAGFM} v  = &/*RHSval*/tag [p ];
          t  = 0;
//          SELECT 4
          if (/*RHSval*/*v .{field 4} < 0) goto L_01bb;
//          SELECT 4
          if (/*RHSval*/*v .{field 4} != 0) goto L_01bc;
          id  = (id  + 1);
//          SELECT 4
          /*RHSval*/*v .{field 4} = id ;
L_01bc:
//          SELECT 4
          lastdef  = /*RHSval*/*v .{field 4};
          t  = lastdef ;
L_01bb:
          op (36, t );
          printident (p , 1);
//          SELECT 3
          t  = /*RHSval*/*v .{field 3};
          type  = t ;
          if (((7 << 4) & type ) < (6 << 4)) goto L_01bd;
          type  = ((\(7 << 4)) & type );
L_01bd:
          op (44, (127 & type ));
//          SELECT 2
          f  = /*RHSval*/*v .{field 2};
          if ((112 & t ) != (4 << 4)) goto L_01be;
//          SELECT 4
          f  = /*RHSval*/tag [f ].{field 4};
L_01be:
          if (f  >= 0) goto L_01bf;
//          SELECT 4
          f  = /*RHSval*/*v .{field 4};
L_01bf:
          op (44, f );
          f  = (otype  + (120 & (t  >> 4)));
          if (class  != 125) goto L_01c0;
          f  = (8 | f );
L_01c0:
//          SELECT 1
          dim  = /*RHSval*/*v .{field 1};
          if (0 >= dim ) goto L_01c1;
          if (dim  <= 6) goto L_01c2;
L_01c1:
          dim  = 0;
L_01c2:
          op (44, (f  + (dim  << 8)));
          if ((4096 & t ) != 0) goto L_01c3;
          defs  = 0;
L_01c3:
          f  = (15 & t );
//          SELECT 3
          if ((128 & /*RHSval*/*v .{field 3}) == 0) goto L_01c4;
          if (3 > f ) goto L_01c5;
          if (f  <= 10) goto L_01c6;
L_01c5:
//          SELECT 3
//          SELECT 3
          /*RHSval*/*v .{field 3} = ((\128) & /*RHSval*/*v .{field 3});
L_01c6:
          ocount  = (-1);
L_01c4:
          dimension  = 0;
          if (otype  != 2) goto L_01c7;
          if (f  == 2) goto L_01c8;
          if (f  == 12) goto L_01c8;
          if (f  != 14) goto L_01c7;
L_01c8:
//          SELECT 3
//          SELECT 3
          /*RHSval*/*v .{field 3} = (/*RHSval*/*v .{field 3} - 1);
L_01c7:
L_01b9:
          goto L_01c9;
          void defslab (          int n )
{
          int p ;
          int l ;
          int b ;
          int w ;
          int bit ;
//          SELECT 2
          p  = /*RHSval*/tag [x ].{field 2};
          l  = dict [p ];
          if (l  > n ) goto L_01ca;
          if (n  > dict [(p  + 1)]) goto L_01ca;
          b  = (n  - l );
          w  = ((b  >> 4) + p );
          bit  = (1 << (15 & b ));
          if ((bit  & dict [(w  + 2)]) == 0) goto L_01cb;
          if (pending  == 0) goto L_01cc;
          fault (4);
L_01cc:
          return;
L_01cb:
          if (pending  == 0) goto L_01cd;
          dict [(w  + 2)] = (bit  | dict [(w  + 2)]);
L_01cd:
          setconst (n );
//          SELECT 4
          op (95, /*RHSval*/tag [x ].{field 4});
          goto L_01ce;
L_01ca:
          fault (12);
L_01ce:
          access  = 1;
L_01c9:
          goto L_01cf;
          void call ()
{
          struct TAGFM t  *;
          /*LHSaddr*/%record {TAGFM} t  = &/*RHSval*/tag [x ];
//          SELECT 4
          op (64, /*RHSval*/*t .{field 4});
//          SELECT 3
          if ((16384 & /*RHSval*/*t .{field 3}) == 0) goto L_01d0;
          access  = 0;
L_01d0:
//          SELECT 1
          if (/*RHSval*/*t .{field 1} != 0) goto L_01d1;
          bp  = (bp  + 1);
          buff [bp ] = 69;
L_01d1:
L_01cf:
          goto L_01d2;
          void popdef ()
{
          setconst (pstack [pending ]);
          pending  = (pending  - 1);
L_01d2:
          goto L_01d3;
          void poplit ()
{
          if (pending  != 0) goto L_01d4;
          lit  = 0;
          goto L_01d5;
L_01d4:
          lit  = pstack [pending ];
          pending  = (pending  - 1);
L_01d5:
L_01d3:
          if (sstype  >= 0) goto L_01d6;
          if (level  != 0) goto L_01d7;
          fault (13);
          goto L_01d8;
L_01d7:
          if (access  != 0) goto L_01d9;
          access  = 1;
          fault ((-1));
L_01d9:
L_01d8:
L_01d6:
          if ((2 & diag ) == 0) goto L_01da;
          if (sym  == 10) goto L_01db;
          newline ();
L_01db:
          printstring ("ss =");
          write (ss , 1);
          newline ();
          count  = 5;
          %string (8) name  = "";
L_01da:
          next  = ss ;
          pending  = 0;
          lmode  = 0;
          link  = 0;
          decs  = 0;
          defs  = 0;
          resln  = 0;
          done  = 0;
          ord  = level ;
          if (this  < 0) goto L_01dc;
          ord  = 1;
L_01dc:
SLABEL_194(0):
U_00eb:
          if (next  == link ) goto L_01dd;
          getnext ();
          ->SJUMP_194(class )
L_01dd:
          if ((2 & diag ) == 0) goto L_01de;
          if (count  == 5) goto L_01de;
          newline ();
L_01de:
          if (((8 | (4 | 16)) & lmode ) == 0) goto L_01df;
          if ((16 & lmode ) == 0) goto L_01e0;
          op (66, (label  - 1));
L_01e0:
          if ((4 & lmode ) == 0) goto L_01e1;
          deflab (label );
L_01e1:
          if ((8 & lmode ) == 0) goto L_01e2;
          deflab ((label  - 1));
L_01e2:
L_01df:
          if (decs  != 0) goto L_01e3;
          return;
L_01e3:
          if (atom1  == 0) goto L_01e4;
          atom1  = 32768;
          return;
L_01e4:
          order  = ord ;
          decl  = (((\15) & decl ) + decmap [(15 & decl )]);
          atom1  = atoms [(15 & decl )];
          if (otype  == 0) goto L_01e5;
          if (atom1  == 7) goto L_01e6;
          atom1  = (atom1  + 1);
L_01e6:
          if (otype  != 2) goto L_01e7;
          n  = (15 & decl );
          if ((1 & n ) == 0) goto L_01e8;
          decl  = (256 | decl );
          if ((127 & decl ) != 17) goto L_01e9;
          decl  = (8192 | decl );
L_01e9:
L_01e8:
          goto L_01ea;
L_01e7:
          decl  = (512 | decl );
L_01ea:
L_01e5:
          if (sstype  != 0) goto L_01eb;
          if (atom1  != 7) goto L_01eb;
          sstype  = 1;
L_01eb:
          if ((128 & decl ) == 0) goto L_01ec;
          atom1  = (atom1  + 1);
L_01ec:
          if (atom1  != 5) goto L_01ed;
          ocount  = 0;
          cont  = 43;
L_01ed:
          if (anyform [(15 & decl )] != 0) goto L_01ee;
          if ((7 & (decl  >> 4)) != 4) goto L_01ef;
//          SELECT 3
          if ((128 & /*RHSval*/tag [fdef ].{field 3}) == 0) goto L_01f0;
          this  = fdef ;
L_01f0:
          if (fdef  != this ) goto L_01f1;
          atom1  = (32768 + 21);
L_01f1:
L_01ef:
          if (fdef  != 0) goto L_01f2;
          atom1  = (32768 + 10);
L_01f2:
L_01ee:
          return;
U_00ec:
          access  = 0;
          goto U_00eb;
SLABEL_194(88):
SLABEL_194(28):
          decl  = ((\7) & x );
          fdef  = (7 & x );
          if ((113 & x ) != ((2 << 4) + 1)) goto L_01f3;
          fdef  = realsln ;
L_01f3:
          decs  = 1;
          goto U_00eb;
SLABEL_194(34):
SLABEL_194(35):
          otype  = x ;
          ord  = 1;
          goto U_00eb;
SLABEL_194(152):
          decl  = (decl  + (x  << 1));
          goto U_00eb;
SLABEL_194(31):
SLABEL_194(32):
          specmode  = (level  + 1);
          if (x  != 9) goto L_01f4;
          decl  = (256 | decl );
L_01f4:
SLABEL_194(29):
          ord  = 1;
          dim  = 0;
SLABEL_194(30):
          decl  = (decl  + x );
          decs  = 1;
          goto U_00eb;
SLABEL_194(27):
          lit  = 0;
          if (pending  == 0) goto L_01f5;
          poplit ();
          if (0 >= lit ) goto L_01f6;
          if (lit  <= 6) goto L_01f7;
L_01f6:
          atom1  = (32768 + 11);
          return;
L_01f7:
L_01f5:
          dim  = lit ;
          decl  = (decl  + x );
          decs  = 1;
          goto U_00eb;
SLABEL_194(37):
          x  = (2048 | x );
SLABEL_194(36):
          lit  = 0;
          if (pending  == 0) goto L_01f8;
          poplit ();
          if (0 >= lit ) goto L_01f9;
          if (lit  <= 255) goto L_01fa;
L_01f9:
          atom1  = (32768 + 10);
          return;
L_01fa:
L_01f8:
          fdef  = lit ;
SLABEL_194(33):
          decl  = x ;
          decs  = 1;
          goto U_00eb;
SLABEL_194(39):
          decl  = (128 | decl );
          ocount  = (-1);
          specmode  = (-1);
          goto U_00eb;
SLABEL_194(38):
          decl  = (64 + 4);
          order  = 1;
          atom1  = x ;
          if (atom1  != 12) goto L_01fb;
          decl  = (128 | decl );
L_01fb:
          fdef  = (tmax  + 1);
          return;
SLABEL_194(175):
          id  = (id  + 1);
//          SELECT 4
          /*RHSval*/tag [x ].{field 4} = id ;
          return;
SLABEL_194(41):
          decs  = 1;
          decl  = (16384 | (128 | x ));
          goto U_00eb;
SLABEL_194(133):
          recid  = 0;
          rbase  = (tmin  - 1);
          this  = x ;
          fmbase  = fdef ;
          formatlist  = tmin ;
          def (this );
          goto U_00eb;
SLABEL_194(148):
          if (next  != 0) goto L_01fc;
          fdef  = 0;
          goto U_00eb;
L_01fc:
          getnext ();
          fdef  = x ;
          goto U_00eb;
SLABEL_194(127):
          bp  = (bp  + 1);
          buff [bp ] = 125;
          goto U_00eb;
SLABEL_194(126):
          bp  = (bp  + 1);
          buff [bp ] = 123;
          goto U_00eb;
SLABEL_194(174):
          setbp ();
SLABEL_194(171):
SLABEL_194(172):
SLABEL_194(173):
          bp  = (bp  + 1);
          buff [bp ] = 126;
          bp  = (bp  + 1);
          buff [bp ] = ((class  - 171) + 65);
          goto U_00eb;
SLABEL_194(168):
          rbase  = (-rbase );
          sstype  = 0;
          specmode  = 0;
SLABEL_194(147):
          searchbase  = 0;
//          SELECT 1
          /*RHSval*/tag [this ].{field 1} = tmin ;
//          SELECT 2
          /*RHSval*/tag [this ].{field 2} = rbase ;
          goto U_00eb;
SLABEL_194(45):
          if (x  != 36) goto L_01fd;
          bp  = (bp  + 1);
          buff [bp ] = 85;
L_01fd:
          goto U_00eb;
SLABEL_194(46):
          bp  = (bp  + 1);
          buff [bp ] = 92;
          goto U_00eb;
SLABEL_194(47):
SLABEL_194(48):
SLABEL_194(42):
SLABEL_194(43):
SLABEL_194(44):
          bp  = (bp  + 1);
          buff [bp ] = operator [x ];
          goto U_00eb;
          goto L_01fe;
          void push (          int x )
{
          if ((2 & cnest [cp ]) == x ) goto L_01ff;
          cnest [cp ] = (1 | cnest [cp ]);
          x  = (x  + 4);
L_01ff:
          if ((1 & cnest [cp ]) == 0) goto L_0200;
          clab  = (clab  + 1);
L_0200:
          cnest [(cp  + 1)] = x ;
          cp  = (cp  + 1);
L_01fe:
          goto L_0201;
          void poplabel (          int mode )
{
          lmode  = dict [dmin ];
          if (lmode  < 0) goto L_0202;
          if ((1 & lmode ) == mode ) goto L_0203;
L_0202:
          fault ((mode  + 8));
          goto L_0204;
L_0203:
          dmin  = (dmin  + 1);
          label  = (label  - 3);
L_0204:
L_0201:
SLABEL_194(56):
SLABEL_194(57):
          push (x );
          goto U_00eb;
SLABEL_194(58):
          cnest [cp ] = (2 ^ cnest [cp ]);
          goto U_00eb;
SLABEL_194(138):
          x  = (((128 + 32) + 16) + 4);
SLABEL_194(59):
SLABEL_194(60):
          if (class  != 138) goto L_0205;
          op (102, (label  - 1));
          goto L_0206;
L_0205:
          deflab ((label  - 1));
L_0206:
SLABEL_194(166):
SLABEL_194(62):
          lmode  = ((x  >> 3) | ((16 | 8) & lmode ));
          clab  = label ;
          cp  = 1;
          cnest [1] = (7 & x );
          goto U_00eb;
SLABEL_194(72):
          poplabel (0);
          if ((32 & lmode ) == 0) goto L_0207;
          deflab ((label  + 1));
L_0207:
          goto U_00ec;
SLABEL_194(69):
          poplabel (1);
          goto U_00eb;
SLABEL_194(163):
SLABEL_194(70):
          poplabel (1);
          if ((3 & lmode ) != 3) goto L_0208;
          fault (7);
L_0208:
SLABEL_194(68):
          lmode  = (3 | (8 & lmode ));
          if (access  == 0) goto L_0209;
          op (70, (label  - 1));
          lmode  = (3 | 8);
L_0209:
          deflab (label );
          if (next  == 0) goto L_020a;
          goto U_00eb;
L_020a:
SLABEL_194(120):
SLABEL_194(67):
SLABEL_194(71):
U_00ef:
          if (lmode  != 0) goto L_020b;
          deflab ((label  - 1));
          lmode  = 16;
L_020b:
          dmin  = (dmin  - 1);
          if (dmin  > dmax ) goto L_020c;
          abandon (3);
L_020c:
          dict [dmin ] = lmode ;
          label  = (label  + 3);
          return;
SLABEL_194(64):
          if (dict [dmin ] >= 0) goto L_020d;
          if (inhibit  == 0) goto L_020e;
L_020d:
          fault (13);
L_020e:
          inhibit  = 1;
          n  = 0;
          if (pending  != 0) goto L_020f;
          n  = 65535;
L_020f:
          for (;;) {
L_0210:
          if (pending  <= 0) goto L_0211;
          poplit ();
          if (((\15) & lit ) == 0) goto L_0212;
          fault (10);
L_0212:
          j  = (1 << lit );
          if ((j  & n ) == 0) goto L_0213;
          dubious  = 1;
L_0213:
          n  = (j  | n );
          }
L_0211:
          op (111, n );
          op (44, label );
          lmode  = (1 | 4);
          goto U_00ef;
SLABEL_194(104):
//          SELECT 4
          op (74, /*RHSval*/tag [x ].{field 4});
          inhibit  = 1;
          goto U_00ec;
SLABEL_194(149):
          stats  = (stats  - 1);
          access  = 1;
          inhibit  = 1;
//          SELECT 4
          op (76, /*RHSval*/tag [x ].{field 4});
          goto U_00eb;
SLABEL_194(63):
          j  = dmin ;
          l  = (label  - 3);
          for (;;) {
L_0214:
          if (dict [j ] >= 0) goto L_0215;
          fault (7);
          goto U_00eb;
L_0215:
          if ((1 & dict [j ]) != 0) goto L_0216;
          goto L_0217;
L_0216:
          j  = (j  + 1);
          l  = (l  - 3);
          }
L_0217:
          if (x  != 32) goto L_0218;
          l  = (l  + 1);
L_0218:
          op (70, l );
          dict [j ] = (x  | dict [j ]);
          goto U_00ec;
SLABEL_194(50):
          bp  = (bp  + 1);
          buff [bp ] = 67;
          goto U_00f0;
SLABEL_194(49):
          bp  = (bp  + 1);
          if (next  == 0) goto L_0219;
          buff [bp ] = 34;
          push (0);
          goto L_021a;
L_0219:
          buff [bp ] = 63;
L_021a:
U_00f0:
          if ((2 & cnest [cp ]) == 0) goto L_021b;
          x  = (1 ^ x );
L_021b:
          j  = cp ;
          l  = clab ;
          for (;;) {
L_021c:
          if ((4 & cnest [j ]) != 0) goto L_021d;
          j  = (j  - 1);
          l  = (l  - (1 & cnest [j ]));
          }
L_021d:
          op (cc [x ], l );
          if ((1 & cnest [cp ]) == 0) goto L_021e;
          deflab ((clab  + 1));
L_021e:
          cp  = (cp  - 1);
          clab  = (clab  - (1 & cnest [cp ]));
          goto U_00eb;
SLABEL_194(78):
SLABEL_194(79):
SLABEL_194(80):
          open  = 0;
SLABEL_194(82):
          access  = 0;
SLABEL_194(89):
SLABEL_194(81):
          bp  = (bp  + 1);
          buff [bp ] = x ;
          goto U_00eb;
SLABEL_194(65):
          poplit ();
          op (101, lit );
          goto U_00ec;
SLABEL_194(51):
          bp  = (bp  + 1);
          buff [bp ] = 83;
          goto U_00eb;
SLABEL_194(53):
          bp  = (bp  + 1);
          buff [bp ] = 106;
          goto U_00eb;
SLABEL_194(52):
          bp  = (bp  + 1);
          buff [bp ] = 90;
          goto U_00eb;
SLABEL_194(74):
          if (level  != 0) goto L_021f;
          if (progmode  > 0) goto L_0220;
          progmode  = 1;
          goto L_0221;
L_0220:
          fault (7);
L_0221:
L_021f:
          specmode  = (level  + 1);
          blockx  = 0;
          bp  = (bp  + 1);
          buff [bp ] = 72;
          return;
SLABEL_194(77):
          perm  = 0;
          lines  = 0;
          stats  = 0;
          closeinput ();
          selectinput (1);
          list  = (list  - 1);
          tbase  = tmax ;
          tstart  = tmax ;
          return;
SLABEL_194(76):
          if (include  == 0) goto L_0222;
          if (x  != 0) goto L_0222;
          lines  = include ;
          sstype  = 0;
          closeinput ();
          list  = includelist ;
          includelevel  = 0;
          include  = 0;
          selectinput (1);
          return;
L_0222:
          ss  = (-1);
SLABEL_194(75):
          compileend (x );
          return;
SLABEL_194(85):
          if (x  != 0) goto L_0223;
          control  = lit ;
          goto L_0224;
L_0223:
          if ((3 & (lit  >> 14)) != 1) goto L_0225;
          diag  = (16383 & lit );
L_0225:
L_0224:
          op ((122 - x ), lit );
          goto U_00eb;
SLABEL_194(83):
          list  = ((list  + x ) - 2);
          goto U_00eb;
SLABEL_194(84):
          realsln  = x ;
          goto U_00eb;
SLABEL_194(86):
          if (include  == 0) goto L_0226;
          fault (7);
          return;
L_0226:
          getnext ();
          %string (63) includefile  = "TRINGstring!extern char [1]  string Nn"(((x  - 16384) + stbase ));
int main(int argc, char **argv) {
          ON 0x2c00 L_0227
?          <4>
          abandon (9);
          for (;;) {
L_0228:
          openinput (3, "NCLUDEFILEincludefile!char [64] includefile INCLUDELIS");
          include  = lines ;
          lines  = 0;
          includelist  = list ;
          includelevel  = level ;
          selectinput (3);
          goto U_00eb;
SLABEL_194(154):
          dimension  = (dimension  + 1);
          if (dimension  != (6 + 1)) goto L_0228;
          fault (11);
L_0228:
          goto U_00eb;
SLABEL_194(145):
          setbp ();
          goto U_00eb;
SLABEL_194(146):
          setbp ();
SLABEL_194(142):
          if (dimension  != 0) goto L_0229;
          dimension  = 1;
L_0229:
          op (100, dimension );
          op (44, defs );
          if (class  == 146) goto L_022a;
          setsubs (defs );
          if (dict [dmin ] >= 0) goto L_022b;
          if (inhibit  != 0) goto L_022b;
          if (level  != 0) goto L_022c;
L_022b:
          fault (13);
L_022c:
L_022a:
          dimension  = 0;
          defs  = 0;
          goto U_00eb;
SLABEL_194(128):
          id  = dupid ;
          goto U_00eb;
SLABEL_194(130):
          blockx  = x ;
          if ((128 & decl ) != 0) goto L_022d;
          if (level  == 0) goto L_022d;
          op (70, 0);
L_022d:
SLABEL_194(125):
          dupid  = id ;
          if (level  >= 0) goto L_022e;
          return;
L_022e:
SLABEL_194(90):
          def (x );
          goto U_00eb;
SLABEL_194(131):
//          SELECT 3
          if (((127 + 8192) & /*RHSval*/tag [x ].{field 3}) != (17 + 8192)) goto L_022f;
//          SELECT 2
          /*RHSval*/tag [x ].{field 2} = lit ;
          goto L_0230;
L_022f:
          if (pending  == 0) goto L_0231;
          setconst (lit );
L_0231:
          def (x );
          op (65, 1);
L_0230:
          cident  = x ;
          goto U_00eb;
SLABEL_194(124):
//          SELECT 3
          if ((256 & /*RHSval*/tag [cident ].{field 3}) == 0) goto L_0232;
          dubious  = 1;
L_0232:
          goto U_00eb;
SLABEL_194(97):
SLABEL_194(98):
SLABEL_194(99):
SLABEL_194(96):
          call ();
          goto U_00eb;
SLABEL_194(165):
SLABEL_194(100):
SLABEL_194(101):
SLABEL_194(102):
SLABEL_194(103):
SLABEL_194(91):
SLABEL_194(92):
SLABEL_194(106):
SLABEL_194(107):
SLABEL_194(108):
SLABEL_194(109):
//          SELECT 4
          k  = /*RHSval*/tag [x ].{field 4};
          if (k  >= 0) goto L_0233;
          op (110, (-k ));
          goto L_0234;
L_0233:
          op (64, k );
L_0234:
          goto U_00eb;
SLABEL_194(121):
          setconst (0);
          goto U_00eb;
SLABEL_194(167):
          bp  = (bp  + 1);
          buff [bp ] = 71;
          goto U_00f1;
SLABEL_194(93):
          if (x  >= 0) goto L_0235;
//          SELECT 2
          setconst (/*RHSval*/tag [(-x )].{field 2});
          goto U_00eb;
L_0235:
          if ((16384 & x ) == 0) goto L_0236;
          bp  = (bp  + 1);
          buff [bp ] = 39;
U_00f1:
          x  = ((x  - 16384) + stbase );
          k  = *byteinteger (x );
          bp  = (bp  + 1);
          buff [bp ] = k ;
          k  = (k  + x );
          for (;;) {
L_0237:
          if (x  != k ) goto L_0238;
          goto U_00eb;
L_0238:
          x  = (x  + 1);
          bp  = (bp  + 1);
          buff [bp ] = *byteinteger (x );
          }
L_0236:
          if ((8192 & x ) == 0) goto L_0239;
          x  = ((x  - 8192) + stbase );
          k  = *byteinteger (x );
          op (68, k );
          bp  = (bp  + 1);
          buff [bp ] = 44;
          k  = (k  + x );
          for (;;) {
L_023a:
          if (x  != k ) goto L_023b;
          goto U_00eb;
L_023b:
          x  = (x  + 1);
          j  = *byteinteger (x );
          if (j  != 64) goto L_023c;
          op (64, litpool [*byteinteger ((x  + 1))]);
          goto U_00eb;
L_023c:
          bp  = (bp  + 1);
          buff [bp ] = j ;
          }
L_0239:
          setconst (litpool [x ]);
          goto U_00eb;
SLABEL_194(137):
          bp  = (bp  + 1);
          buff [bp ] = 105;
          goto U_00eb;
SLABEL_194(141):
          bp  = (bp  + 1);
          buff [bp ] = 97;
          goto U_00eb;
SLABEL_194(132):
          ocount  = ((ub  - lb ) + 1);
          def (x );
          dimension  = 1;
          setsubs (1);
          if (next  != 0) goto L_023d;
          if (ocount  <= 0) goto L_023e;
          op (65, ocount );
L_023e:
          ocount  = (-1);
          goto L_023f;
L_023d:
          getnext ();
L_023f:
          goto U_00eb;
SLABEL_194(162):
          lit  = ocount ;
          goto U_00f2;
SLABEL_194(143):
          poplit ();
U_00f2:
          if (lit  >= 0) goto L_0240;
          fault (10);
          lit  = 0;
L_0240:
          getnext ();
          goto U_00f3;
SLABEL_194(139):
SLABEL_194(153):
          lit  = 1;
U_00f3:
          if (pending  == 0) goto L_0241;
          popdef ();
L_0241:
          op (65, lit );
          ocount  = (ocount  - lit );
          if (ocount  < 0) goto L_0242;
          if (x  == 0) goto L_0243;
          goto U_00eb;
L_0243:
          if (ocount  != 0) goto L_0244;
          ocount  = (-1);
          return;
L_0244:
L_0242:
          fault (11);
          return;
SLABEL_194(105):
//          SELECT 4
          op (87, /*RHSval*/tag [x ].{field 4});
          inhibit  = 1;
          goto U_00ec;
SLABEL_194(134):
          def (x );
          n  = ((ub  - lb ) + 1);
          n  = ((n  + 15) >> 4);
          j  = dmax ;
          dmax  = ((dmax  + n ) + 2);
          if (dmax  < dmin ) goto L_0245;
          abandon (1);
L_0245:
//          SELECT 2
          /*RHSval*/tag [x ].{field 2} = j ;
          dict [j ] = lb ;
          dict [(j  + 1)] = ub ;
          for (;;) {
L_0246:
          n  = (n  - 1);
          if (n  >= 0) goto L_0247;
          goto U_00eb;
L_0247:
          j  = (j  + 1);
          dict [(j  + 1)] = 0;
          }
SLABEL_194(151):
          stats  = (stats  - 1);
          if (x  >= tbase ) goto L_0248;
          fault (7);
          return;
L_0248:
          if (pending  == 0) goto L_0249;
          defslab (pstack [1]);
          goto L_024a;
L_0249:
//          SELECT 1
          if (/*RHSval*/tag [x ].{field 1} == 0) goto L_024b;
          fault (4);
          return;
L_024b:
//          SELECT 1
          /*RHSval*/tag [x ].{field 1} = 1;
//          SELECT 2
          n  = /*RHSval*/tag [x ].{field 2};
          for (j  = dict [n ]; j  += 1; j  != dict [(n  + 1)]) {
          defslab (j );
          if (bp  < 128) goto L_0250;
          flushbuffer ();
L_0250:
          }
L_024f:
L_024a:
          inhibit  = 1;
          return;
SLABEL_194(140):
          bp  = (bp  + 1);
          buff [bp ] = 112;
          goto U_00eb;
SLABEL_194(144):
          buff [(bp  + 1)] = 112;
          buff [(bp  + 2)] = 69;
          bp  = (bp  + 2);
          goto U_00eb;
SLABEL_194(155):
          if (x  >= 0) goto L_0251;
//          SELECT 2
          lit  = /*RHSval*/tag [(-x )].{field 2};
          goto L_0252;
L_0251:
          lit  = litpool [x ];
L_0252:
          pending  = (pending  + 1);
          pstack [pending ] = lit ;
          goto U_00eb;
SLABEL_194(156):
          lit  = pstack [pending ];
          if (lit  >= 0) goto L_0253;
          lit  = (-lit );
L_0253:
          pstack [pending ] = lit ;
          goto U_00eb;
SLABEL_194(157):
          lit  = (-pstack [pending ]);
          pstack [pending ] = lit ;
          goto U_00eb;
SLABEL_194(158):
          lit  = (\pstack [pending ]);
          pstack [pending ] = lit ;
          goto U_00eb;
SLABEL_194(159):
SLABEL_194(160):
SLABEL_194(161):
          pending  = (pending  - 1);
          lit2  = pstack [(pending  + 1)];
          lit  = pstack [pending ];
          ->SJUMP_195((x  >> 2))
SLABEL_195(10):
          lit  = (lit2  * lit );
          goto U_00f4;
SLABEL_195(12):
SLABEL_195(3):
          n  = 1;
          if (lit2  >= 0) goto L_0254;
          fault (10);
L_0254:
          for (;;) {
L_0255:
          if (lit2  <= 0) goto L_0256;
          lit2  = (lit2  - 1);
          n  = (lit  * n );
          }
L_0256:
          lit  = n ;
          goto U_00f4;
SLABEL_195(1):
          lit  = (lit  << lit2 );
          goto U_00f4;
SLABEL_195(2):
          lit  = (lit  >> lit2 );
          goto U_00f4;
SLABEL_195(5):
          lit  = (lit2  & lit );
          goto U_00f4;
SLABEL_195(11):
SLABEL_195(4):
          if (lit2  != 0) goto L_0257;
          fault (10);
          goto L_0258;
L_0257:
          lit  = (lit  / lit2 );
L_0258:
          goto U_00f4;
SLABEL_195(8):
          lit  = (lit  + lit2 );
          goto U_00f4;
SLABEL_195(9):
          lit  = (lit  - lit2 );
          goto U_00f4;
SLABEL_195(6):
          lit  = (lit2  | lit );
          goto U_00f4;
SLABEL_195(7):
          lit  = (lit2  ^ lit );
U_00f4:
          pstack [pending ] = lit ;
          goto U_00eb;
SLABEL_194(170):
//          SELECT 8
          if (/*RHSval*/impcom .{field 8} == "") goto L_0259;
          fault (4);
L_0259:
//          SELECT 8
          /*RHSval*/impcom .{field 8} = "TRINGstring!extern char [1]  string Nn"(((x  - 16384) + stbase ));
          goto U_00eb;
SLABEL_194(135):
          resln  = 2;
          goto U_00eb;
SLABEL_194(136):
          resln  = (resln  + 1);
          goto U_00eb;
SLABEL_194(55):
          op (114, resln );
          resln  = 0;
          goto U_00eb;
SLABEL_194(164):
          op (114, (resln  + 4));
          resln  = 0;
SLABEL_194(122):
          x  = 6;
          goto U_00f0;
SLABEL_194(87):
          setconst (pstack [1]);
          bp  = (bp  + 1);
          buff [bp ] = 80;
          goto U_00eb;
          for (;;) {
L_025a:
L_025a:
          ON 0x2c00 L_0227
?          <4>
          abandon (5);
          for (;;) {
L_025b:
//          SELECT 2
          /*RHSval*/impcom .{field 2} = 0;
//          SELECT 8
          /*RHSval*/impcom .{field 8} = "";
//          SELECT 2
          if ((4096 & /*RHSval*/impcom .{field 2}) == 0) goto L_025b;
          list  = 15;
L_025b:
          openoutput (2, "LISTING");
          openinput (2, "prims.inc");
          selectinput (2);
          selectoutput (2);
          /*RHSval*/tag [800] = 0;
          /*RHSval*/tag [0] = 0;
//          SELECT 3
          /*RHSval*/tag [0].{field 3} = 7;
          for (x  = 0; x  += 1; x  != 2047) {
          hash [x ] = 0;
          }
L_025f:
          printstring ("         Edinburgh IMP77 Compiler - Version ");
          printstring ("ERSIONversion!const char [5] version SPARENAMESsparena");
          newlines (2);
          op (108, 0);
          compileblock (0, 0, 6000, 0, 0);
          bp  = (bp  + 1);
          buff [bp ] = 10;
          flushbuffer ();
//          SELECT 1
          /*RHSval*/impcom .{field 1} = stats ;
          if (faulty  == 0) goto L_0260;
//          SELECT 1
          /*RHSval*/impcom .{field 1} = (-faulty );
L_0260:
