/* plm81.f -- translated by f2c (version 20060506). You must link the resulting object file with libf2c: on Microsoft Windows system, link with libf2c.lib; on Linux or Unix systems, link with .../path/to/libf2c.a -lm or, if you install libf2c.a in a standard place, with -lf2c -lm -- in that order, at the end of the command line, as in cc *.o -lf2c -lm Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., http://www.netlib.org/f2c/libf2c.zip */ #include "f2c.h" /* Common Block Declarations */ struct titl_1_ { integer title[10], vers; }; #define titl_1 (*(struct titl_1_ *) &titl_) struct stacks_1_ { integer sp, mp, mpp1, mstack, mvar, vartop, pstack[75], var[75], varc[256] , fixv[75], fixc[75], prmask[5]; logical failsf, compil; }; #define stacks_1 (*(struct stacks_1_ *) &stacks_) struct syntax_1_ { integer v[446], vloc[107], vindx[13], c1[364], c1tri[243], prtb[129], prdtb[129], hdtb[129], prlen[129], contc[129], leftc[5], lefti[57] , contt[1], tripi[57], prind[107], nsy, nt, vlen, vil, c1w, c1l, nc1tri, prtbl, prdtbl, hdtbl, prlenl, concl, leftcl, leftil, contl, tripl, pril, pack, token, identv, numbv, strv, divide, eofile, procv, semiv, decl, dov, endv, groupv, stmtv, slistv; }; #define syntax_1 (*(struct syntax_1_ *) &syntax_) struct files_1_ { integer ibuff[80], obuff[120], ibp, obp, inptr, instk[7], itran[256], otran[64]; }; #define files_1 (*(struct files_1_ *) &files_) struct cntrl_1_ { integer contrl[64]; }; #define cntrl_1 (*(struct cntrl_1_ *) &cntrl_) struct messag_1_ { integer mssg[77]; }; #define messag_1 (*(struct messag_1_ *) &messag_) struct scanc_1_ { integer acclen, accum[32], type__, stype, eoflag, ident, numb, specl, str, cont, value; }; #define scanc_1 (*(struct scanc_1_ *) &scanc_) struct macro_1_ { integer macros[2000], maxmac, curmac, mactop; }; #define macro_1 (*(struct macro_1_ *) ¯o_) struct types_1_ { integer varb, intr, proc, label, liter; }; #define types_1 (*(struct types_1_ *) &types_) struct blk_1_ { integer block[30], dopar[30], macblk[30], curblk, maxblk, blksym, proctp[ 30]; }; #define blk_1 (*(struct blk_1_ *) &blk_) struct sym_1_ { integer symbol[4000], symtop, maxsym, symloc, symlen, symcnt, symabs, acnt; }; #define sym_1 (*(struct sym_1_ *) &sym_) struct pole_1_ { integer polish[30], maxpol, poltop, polcnt, polchr[18]; }; #define pole_1 (*(struct pole_1_ *) &pole_) struct opcod_1_ { integer opcval[51], opr, adr, vlu, def, lit, lin, nop, add, adc, sub, sbc, mul, div, rem, neg, and, ior, xor, not, eql, lss, gtr, neq, leq, geq, inx, tra, trc, pro, ret, sto, std, xch, del, dat, lod, bif, inc, cse, end, enb, enp, hal, rtl, rtr, sfl, sfr, hiv, lov, cva, org, drt, ena, dis, ax1, ax2, ax3; }; #define opcod_1 (*(struct opcod_1_ *) &opcod_) struct hash_1_ { integer hentry[127], hcode; }; #define hash_1 (*(struct hash_1_ *) &hash_) struct inter_1_ { integer intpro[8]; }; #define inter_1 (*(struct inter_1_ *) &inter_) struct asc_1_ { integer ascii[64]; }; #define asc_1 (*(struct asc_1_ *) &asc_) struct terrm_1_ { integer terr[22]; }; #define terrm_1 (*(struct terrm_1_ *) &terrm_) /* Initialized data */ struct { integer e_1[11]; } titl_ = { 27, 23, 24, 3, 1, 33, 16, 29, 30, 1, 20 }; struct { integer e_1[123]; } blk_ = { 1, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; struct { integer e_1[4002]; integer fill_2[2]; integer e_3[3]; } sym_ = { 5439488, 65536, 4101, 17, 221103907, 6815744, 131074, 4100, 17, 608028224, 5046272, 196615, 4100, 17, 491591168, 7471104, 262156, 8198, 17, 439207134, 587202560, 7995392, 327697, 8198, 17, 389903964, 587202560, 851968, 393239, 8200, 33, 494449493, 444186624, 3866624, 458781, 4099, 530, 476405760, 8126464, 524323, 4099, 530, 476430336, 5373952, 589864, 4099, 530, 491347968, 1310720, 655405, 4099, 530, 491372544, 131072, 720946, 4099, 530, 490037248, 4390912, 786487, 4099, 530, 490061824, 5373996, 852028, 4100, 258, 508392384, 7405568, 917569, 4100, 274, 307041408, 7143424, 983110, 4099, 274, 375787520, 5308416, 1048651, 4101, 274, 325167070, 3276800, 1114192, 8198, 274, 427681439, 503316480, 1114112, 1179733, 8198, 274, 373130334, 301989888, 1703936, 1245275, 4100, 274, 372103040, 1900544, 1310817, 4100, 770, 392561600, 589824, 1376358, 8198, 290, 241562390, 251658240, 458752, 1441899, 4099, 274, 238866432, 1507441, 0, 1, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 4000, {0}, 23, 4000, 0 }; struct { integer fill_1[30]; integer e_2[21]; } pole_ = { {0}, 30, 0, 0, 26, 27, 29, 12, 15, 29, 33, 12, 23, 15, 16, 17, 23, 20, 31, 23, 20, 25 }; struct { integer e_1[108]; } opcod_ = { 104091, 50127, 50126, 124941, 123726, 100375, 62753, 119832, 103442, 50767, 83613, 145053, 104095, 67351, 96158, 75741, 103452, 95260, 74780, 83555, 128844, 128846, 112474, 119839, 124890, 124879, 144275, 62487, 62239, 95887, 54545, 83534, 59280, 67151, 67149, 67163, 78615, 120791, 120797, 123991, 123997, 79137, 95905, 59468, 108370, 63327, 67148, 62750, 51395, 51396, 51397, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }; struct { integer fill_1[1]; integer e_2[5]; integer fill_3[561]; logical e_4[2]; } stacks_ = { {0}, 0, 1, 75, 256, 1, {0}, FALSE_, TRUE_ }; struct { integer e_1[127]; integer fill_2[1]; } hash_ = { 0, 54, 0, 0, 0, 0, 112, 0, 106, 0, 0, 0, 28, 0, 0, 0, 90, 0, 0, 49, 0, 0, 0, 0, 0, 96, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 79, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 74, 0, 0, 0, 69, 16, 0, 0, 0, 0, 0, 0, 0, 22, 0, 39, 0, 0, 0 }; struct { integer e_1[2077]; } syntax_ = { 18, 49, 16, 29, 29, 26, 29, 51, 1, 31, 26, 22, 16, 25, 1, 39, 1, 2, 50, 1, 52, 1, 43, 1, 42, 1, 48, 1, 51, 1, 39, 1, 49, 1, 50, 1, 44, 1, 45, 1, 47, 1, 41, 1, 40, 2, 20, 17, 2, 15, 26, 2, 18, 26, 2, 31, 26, 2, 26, 29, 2, 13, 36, 3, 16, 26, 17, 3, 16, 25, 15, 3, 35, 26, 29, 3, 12, 25, 15, 3, 25, 26, 31, 3, 24, 26, 15, 4, 19, 12, 23, 31, 4, 31, 19, 16, 25, 4, 16, 23, 30, 16, 4, 14, 12, 30, 16, 4, 14, 12, 23, 23, 4, 18, 26, 31, 26, 4, 15, 12, 31, 12, 4, 13, 36, 31, 16, 4, 27, 23, 32, 30, 5, 23, 12, 13, 16, 23, 5, 13, 12, 30, 16, 15, 5, 24, 20, 25, 32, 30, 5, 34, 19, 20, 23, 16, 6, 16, 25, 12, 13, 23, 16, 6, 29, 16, 31, 32, 29, 25, 7, 15, 20, 30, 12, 13, 23, 16, 7, 15, 16, 14, 23, 12, 29, 16, 7, 12, 15, 15, 29, 16, 30, 30, 7, 20, 25, 20, 31, 20, 12, 23, 8, 49, 25, 32, 24, 13, 16, 29, 50, 8, 49, 30, 31, 29, 20, 25, 18, 50, 9, 20, 25, 31, 16, 29, 29, 32, 27, 31, 9, 27, 29, 26, 14, 16, 15, 32, 29, 16, 9, 23, 20, 31, 16, 29, 12, 23, 23, 36, 12, 49, 20, 15, 16, 25, 31, 20, 17, 20, 16, 29, 50, 813276224, 808598592, 813315727, 822083584, 813233943, 822083584, 809879135, 449052672, 814032086, 264503296, 809865246, 432275456, 809337747, 407310336, 812238417, 472742976, 812709526, 188021824, 812238039, 192035904, 813741843, 187786225, 808818205, 506300337, 812709259, 508401201, 813032158, 257750558, 822083584, 810352653, 372111183, 822083584, 813287375, 6862622, 822083584, 809023371, 5846878, 822083584, 809023371, 4780750, 822083584, 811136030, 6862622, 822083584, 808310611, 291599320, 516161536, 809379484, 259380441, 415498240, 809879135, 436282315, 247726080, 808556504, 234955723, 247726080, 810352669, 506323927, 258075712, 814032086, 251712907, 527760448, 810386654, 321740822, 326495296, 810386654, 321740818, 254602304, 808761167, 7665039, 226072369, 813741843, 187786176, 405631985, 808818205, 506300288, 305968049, 813032158, 257750558, 5846878, 822083584, 808760726, 7725790, 257750558, 822083584, 812238413, 255457039, 4780750, 822083584, 812238413, 255457039, 6337999, 822083584, 812168971, 389931996, 5846878, 822083584, 812168971, 389931996, 4780750, 822083584, 808499023, 235012828, 321701263, 822083584, 811177043, 221077520, 188081756, 822083584, 813036317, 225523358, 4780750, 822083584, 808499027, 218224523, 507343832, 516161536, 809865246, 419551115, 507343832, 516161536, 813032410, 3732499, 407758041, 415498240, 810345432, 508363983, 469853405, 516161536, 811177043, 221077530, 474837724, 600047616, 812709791, 476055390, 192476623, 410718208, 811119375, 369157072, 325138323, 425922560, 813315727, 3732310, 191936403, 425922560, 810410972, 192493144, 3511838, 476408896, 811177043, 221077533, 255170062, 192035904, 811177043, 221077519, 577356765, 491623985, 809038678, 191936403, 425722838, 257750558, 822083584, 812238413, 255457039, 3732499, 407758041, 415498240, 809038678, 191936403, 425723742, 192476623, 410718208, 808305886, 308082579, 218167450, 473814867, 425922560, 810345432, 508363983, 469882511, 223151309, 192493144, 822083584, 1, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 49, 52, 55, 58, 61, 64, 68, 72, 76, 80, 84, 88, 93, 98, 103, 108, 113, 118, 123, 128, 133, 139, 145, 151, 157, 164, 171, 179, 187, 195, 203, 212, 221, 231, 241, 251, 131336, 131337, 196874, 196876, 229646, 229648, 229650, 262420, 295190, 295192, 295194, 327964, 327966, 327968, 360738, 360741, 360744, 360747, 360750, 360753, 393524, 393527, 393530, 393533, 459072, 459075, 459078, 459081, 491852, 491855, 491858, 524629, 524633, 524637, 524641, 524645, 524649, 524653, 524657, 524661, 557433, 557437, 557441, 557445, 557449, 590221, 590225, 590229, 623001, 623005, 655777, 688549, 721322, 754095, 754100, 852409, 1, 14, 20, 26, 35, 39, 41, 45, 47, 50, 50, 50, 51, 0, 0, 0, 32768, 688288, 35815424, 713162890, 715827202, 673744896, 991953792, 196620, 201326640, 0, 15740976, 2129920, 8388608, 2563, 134283266, 671219840, 671091360, 545786880, 204472320, 805306368, 245952, 541360640, 0, 40, 33686536, 134217728, 0, 10493968, 16384, 0, 1281, 4194308, 0, 0, 335807488, 1048576, 0, 81984, 268435712, 0, 20, 16842752, 0, 0, 5246992, 1064960, 4194304, 1281, 67108864, 1, 4096, 262144, 4096, 0, 0, 536904192, 131072, 40, 33619972, 67108880, 0, 5247008, 2129920, 8388608, 2562, 67108865, 335544384, 335545680, 268730368, 0, 0, 64, 268452096, 65536, 20, 16842756, 67108880, 0, 5246992, 1064960, 0, 1281, 4194308, 0, 0, 335822848, 0, 0, 8, 168, 8232, 174112, 35651584, 44040194, 10485802, 545267728, 1064960, 4194304, 1281, 0, 0, 0, 262144, 0, 0, 131200, 268435456, 0, 0, 2129920, 0, 0, 33554448, 16384, 0, 1281, 136314880, 0, 2, 0, 0, 0, 128, 268435712, 0, 20, 16908296, 134217760, 0, 10494208, 0, 0, 0, 138412292, 1024, 0, 335822848, 0, 0, 0, 268435456, 0, 0, 18907136, 0, 0, 33554448, 0, 0, 0, 254192288, 44081696, 2129920, 41514, 713042442, 142606856, 0, 0, 0, 16, 2228224, 0, 139264, 134742016, 0, 0, 256, 201239200, 44081696, 27885576, 1049600, 68157440, 268435456, 81984, 268452096, 65536, 20, 19955712, 0, 0, 33555080, 715456680, 168951816, 134217728, 67108864, 0, 0, 1024, 68157440, 268435456, 81984, 0, 0, 16, 18874368, 0, 0, 0, 2, 0, 0, 4194564, 1024, 0, 335847978, 713042442, 142606856, 10, 233482242, 673744896, 136314880, 2935466, 537559688, 536904192, 16, 1064960, 0, 1281, 134217730, 671744128, 671091360, 537411584, 344064, 16859136, 356581444, 84, 4116, 87056, 18907136, 0, 0, 0, 0, 0, 1280, 0, 0, 0, 311296, 0, 0, 9, 67108865, 67109888, 0, 1048576, 22021121, 5242901, 272633856, 0, 0, 1024, 134217730, 671744128, 671091360, 537411584, 0, 0, 8, 134217728, 0, 128, 0, 0, 0, 5243136, 0, 0, 0, 26214400, 0, 8912904, 0, 0, 0, 81924, 84, 37752852, 87056, 17825792, 0, 0, 256, 5376, 263424, 5571585, 71303168, 0, 4456452, 16793600, 0, 1088, 1048576, 0, 0, 0, 16777216, 0, 0, 4744, 168, 151126016, 0, 4194564, 1024, 0, 335839232, 688288, 36864000, 713162884, 0, 0, 0, 1048576, 0, 0, 0, 0, 0, 1, 169869312, 44081184, 0, 16384, 0, 0, 4, 84, 4198420, 87056, 287342592, 0, 0, 16777728, 0, 0, 0, 169869312, 44081184, 0, 41472, 9732, 8388608, 8, 134217728, 0, 0, 1048576, 0, 0, 260, 0, 0, 0, 169956608, 44081184, 1064960, 1024, 0, 1088, 1048576, 197379, 197386, 197389, 197400, 197421, 197422, 197426, 209411, 329219, 329226, 329229, 329240, 329261, 329262, 329266, 393987, 393994, 393997, 394008, 394029, 394030, 394034, 406019, 590595, 590602, 590605, 590616, 590637, 590638, 590642, 602627, 656131, 656138, 656141, 656152, 656173, 656174, 656178, 668163, 721667, 721674, 721677, 721688, 721709, 721710, 721714, 733699, 787203, 787210, 787213, 787224, 787245, 787246, 787250, 799235, 864771, 918275, 918282, 918285, 918296, 918317, 918318, 918322, 930307, 995843, 998918, 1180419, 1180426, 1180429, 1180440, 1180461, 1180462, 1180466, 1192451, 1323523, 1323525, 1326596, 1326598, 1328897, 1442563, 1442570, 1442573, 1442584, 1442605, 1442606, 1442610, 1454595, 1508099, 1508106, 1508109, 1508120, 1508141, 1508142, 1508146, 1520131, 1573635, 1573642, 1573645, 1573656, 1573677, 1573678, 1573682, 1585667, 1639171, 1639178, 1639181, 1639192, 1639213, 1639214, 1639218, 1651203, 1901315, 1901322, 1901325, 1901336, 1901357, 1901358, 1901362, 1913347, 1978883, 2228995, 2229002, 2229005, 2229016, 2229037, 2229038, 2229042, 2241027, 2425603, 2425610, 2425613, 2425624, 2425645, 2425646, 2425650, 2437635, 2622211, 2622218, 2622221, 2622232, 2622253, 2622254, 2622258, 2634243, 2949665, 2949667, 2949675, 3091713, 3343107, 3343114, 3343117, 3343128, 3343149, 3343150, 3343154, 3355139, 3408643, 3408650, 3408653, 3408664, 3408685, 3408686, 3408690, 3420675, 3670787, 3670794, 3670797, 3670808, 3670829, 3670830, 3670834, 3682819, 3932931, 3932938, 3932941, 3932952, 3932973, 3932974, 3932978, 3944963, 4195075, 4195082, 4195085, 4195096, 4195117, 4195118, 4195122, 4207107, 4338179, 4338181, 4341252, 4341254, 4343553, 4348700, 4403715, 4403717, 4406788, 4406790, 4409089, 4538114, 4538116, 4600323, 4603396, 4603398, 4796931, 4796933, 4800004, 4800006, 4802305, 4861186, 5127938, 5127940, 5324546, 5324548, 5386755, 5386757, 5389828, 5389830, 5392129, 5517827, 5517829, 5520900, 5520902, 5523201, 5584129, 5649665, 5714434, 5714436, 5899011, 5899018, 5899021, 5899032, 5899053, 5899054, 5899058, 5911043, 6369795, 6369797, 6372868, 6372870, 6375169, 6816771, 6816818, 0, 5592629, 5582637, 21813, 21846, 3933, 3916, 3919, 85, 15, 71, 55, 103, 96, 83, 92, 104, 26, 39, 41, 0, 17727, 20031, 22322, 24144, 20799, 840, 23112, 32, 106, 44, 13, 50, 0, 0, 22322, 17727, 24144, 20031, 20799, 23112, 62, 50, 45, 7, 8, 0, 0, 0, 7, 0, 16, 0, 0, 0, 3656, 91, 0, 0, 0, 50, 0, 0, 0, 57, 0, 12849, 0, 97, 21, 57, 88, 0, 0, 4861186, 106, 26889, 26890, 26914, 26917, 10, 0, 21586, 97, 73, 13835, 13836, 13849, 0, 30, 13, 0, 13, 0, 16963, 82, 73, 66, 0, 50, 70, 3360820, 15932, 51, 56, 29, 40, 97, 0, 98, 0, 0, 25874, 25878, 0, 97, 0, 24, 0, 0, 4078664, 22807, 0, 4064518, 0, 26628, 42, 26944, 0, 0, 38, 39, 36, 37, 25, 26, 27, 35, 24, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 61, 78, 41, 72, 114, 117, 121, 62, 70, 79, 118, 122, 42, 73, 43, 63, 74, 80, 119, 123, 84, 47, 48, 100, 101, 96, 83, 97, 99, 98, 54, 126, 127, 44, 21, 22, 55, 67, 69, 77, 128, 49, 68, 53, 125, 59, 124, 40, 45, 52, 76, 75, 120, 65, 64, 103, 104, 105, 106, 107, 102, 34, 46, 23, 109, 110, 111, 108, 51, 116, 115, 113, 112, 19, 3, 28, 18, 2, 60, 82, 31, 81, 30, 32, 33, 50, 20, 5, 66, 71, 1, 88, 89, 87, 17, 4, 93, 92, 58, 29, 91, 90, 86, 85, 57, 56, 95, 94, 0, 84, 84, 84, 84, 73, 73, 73, 84, 73, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 68, 77, 86, 106, 61, 61, 62, 69, 74, 78, 81, 90, 87, 94, 87, 69, 94, 78, 81, 90, 70, 97, 97, 64, 64, 64, 60, 64, 64, 64, 57, 51, 52, 58, 66, 67, 57, 53, 53, 88, 56, 96, 53, 92, 63, 102, 63, 85, 58, 92, 80, 80, 62, 98, 98, 105, 105, 105, 105, 105, 105, 103, 58, 55, 54, 54, 54, 54, 83, 61, 61, 61, 61, 75, 82, 73, 75, 82, 102, 71, 99, 71, 99, 76, 79, 96, 75, 65, 98, 106, 59, 101, 101, 101, 91, 65, 100, 100, 102, 93, 89, 89, 72, 72, 104, 104, 95, 95, 0, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 3, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 3, 1, 2, 2, 2, 2, 1, 1, 4, 2, 3, 3, 3, 3, 2, 1, 3, 2, 2, 3, 3, 3, 1, 2, 2, 1, 2, 1, 3, 2, 2, 2, 1, 2, 2, 4, 3, 2, 2, 2, 2, 2, 1, 2, 1, 1, 3, 3, 1, 2, 1, 2, 1, 1, 4, 3, 1, 4, 1, 3, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 4, 42, 94, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 21, 28, 35, 42, 44, 48, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 53, 54, 54, 55, 55, 55, 55, 55, 55, 56, 57, 57, 57, 58, 58, 59, 59, 60, 61, 61, 62, 62, 63, 63, 63, 64, 64, 66, 68, 68, 69, 69, 74, 74, 74, 76, 82, 82, 82, 82, 85, 85, 85, 89, 92, 94, 94, 99, 99, 99, 100, 100, 100, 101, 107, 107, 107, 109, 109, 110, 110, 110, 111, 111, 112, 112, 112, 112, 112, 112, 112, 115, 115, 117, 117, 117, 117, 119, 119, 119, 120, 121, 123, 125, 127, 127, 127, 129, 129, 106, 50, 445, 12, 102, 363, 242, 128, 128, 128, 128, 128, 4, 56, 0, 56, 106, 5, 0, 50, 45, 46, 0, 20, 48, 1, 42, 15, 21, 55, 65, 82 }; struct { integer e_1[8]; } inter_ = { 0, 0, 0, 0, 0, 0, 0, 0 }; struct { integer fill_1[200]; integer e_2[3]; integer fill_3[263]; char e_4[208]; integer e_5[12]; } files_ = { {0}, 81, 0, 0, {0}, " 0 1 2 3 4 5 6 7 8 " " 9 A B C D E F G H I J K L M N O " " P Q R S T U V W X Y Z $ = . / ( " " ) + - ' * , < > : ; ", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; struct { integer e_1[64]; } asc_ = { 32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 36, 61, 46, 47, 40, 41, 43, 45, 39, 42, 44, 60, 62, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; struct { integer e_1[64]; } cntrl_ = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ; struct { integer e_1[22]; } terrm_ = { 14, 26, 24, 27, 20, 23, 12, 31, 20, 26, 25, 1, 31, 16, 29, 24, 20, 25, 12, 31, 16, 15 }; struct { integer e_1[77]; } messag_ = { 27, 12, 30, 30, 45, 25, 26, 27, 29, 26, 18, 29, 12, 24, 1, 16, 29, 29, 26, 29, 42, 43, 25, 16, 12, 29, 12, 31, 27, 12, 29, 30, 16, 1, 30, 31, 12, 14, 22, 51, 1, 30, 36, 24, 13, 26, 23, 1, 1, 12, 15, 15, 29, 1, 34, 15, 30, 1, 14, 19, 29, 30, 1, 1, 1, 23, 16, 25, 18, 31, 19, 1, 27, 29, 1, 31, 36 }; struct { integer fill_1[34]; integer e_2[7]; integer fill_3[1]; } scanc_ = { {0}, 0, 1, 2, 3, 4, 5, 1 }; struct { integer e_1[2003]; } macro_ = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 2001, 1 }; struct { integer e_1[5]; } types_ = { 1, 2, 3, 4, 5 }; /* Table of constant values */ static integer c__2 = 2; static integer c__0 = 0; static integer c__4 = 4; static integer c__8080 = 8080; static integer c__10 = 10; static integer c__1 = 1; static integer c__40 = 40; static integer c__6 = 6; static integer c__7 = 7; static integer c__41 = 41; static integer c_n5 = -5; static integer c__8 = 8; static integer c__20 = 20; static integer c__30 = 30; static integer c__12 = 12; static integer c__5 = 5; static integer c__16 = 16; static integer c__42 = 42; static integer c__77 = 77; static integer c_n3 = -3; static integer c_n4 = -4; static integer c__46 = 46; static integer c__3 = 3; static integer c__15 = 15; static integer c__11 = 11; static integer c__14 = 14; static integer c__13 = 13; static integer c__39 = 39; static integer c__17 = 17; static integer c__45 = 45; static integer c__44 = 44; static integer c__18 = 18; static integer c__19 = 19; static integer c__21 = 21; static integer c__22 = 22; static integer c__23 = 23; static integer c__24 = 24; static integer c__25 = 25; static integer c__26 = 26; static integer c__27 = 27; static integer c__28 = 28; static integer c__29 = 29; static integer c__47 = 47; static integer c__38 = 38; static integer c__43 = 43; static integer c__37 = 37; static integer c__31 = 31; static integer c__32 = 32; static integer c__33 = 33; static integer c__80 = 80; static integer c__34 = 34; static integer c_n10 = -10; static integer c__35 = 35; static integer c__36 = 36; static integer c__48 = 48; static integer c__51 = 51; /* *********************************************************************** */ /* 8 0 8 0 P L / M C O M P I L E R , P A S S - 1 */ /* PLM81 */ /* VERSION 2.0 */ /* JANUARY, 1975 */ /* COPYRIGHT (C) 1975 */ /* INTEL CORPORATION */ /* 3065 BOWERS AVENUE */ /* SANTA CLARA, CALIFORNIA 95051 */ /* MODIFIED BY JEFF OGDEN (UM), DECEMBER 1977 */ /* *********************************************************************** */ /* P A S S - 1 E R R O R M E S S A G E S */ /* ERROR MESSAGE */ /* NUMBER */ /* ------ ------------------------------------------------------------- */ /* 1 THE SYMBOLS PRINTED BELOW HAVE BEEN USED IN THE CURRENT BLOCK */ /* BUT DO NOT APPEAR IN A DECLARE STATEMENT, OR LABEL APPEARS IN */ /* A GO TO STATEMENT BUT DOES NOT APPEAR IN THE BLOCK. */ /* 2 PASS-1 COMPILER SYMBOL TABLE OVERFLOW. TOO MANY SYMBOLS IN */ /* THE SOURCE PROGRAM. EITHER REDUCE THE NUMBER OF VARIABLES IN */ /* THE PROGRAM, OR RE-COMPILE PASS-1 WITH A LARGER SYMBOL TABLE. */ /* 3 INVALID PL/M STATEMENT. THE PAIR OF SYMBOLS PRINTED BELOW */ /* CANNOT APPEAR TOGETHER IN A VALID PL/M STATEMENT (THIS ERROR */ /* MAY HAVE BEEN CAUSED BE A PREVIOUS ERROR IN THE PROGRAM). */ /* 4 INVALID PL/M STATEMENT. THE STATEMENT IS IMPROPERLY FORMED-- */ /* THE PARSE TO THIS POINT FOLLOWS (THIS MAY HAVE OCCURRED BE- */ /* CAUSE OF A PREVIOUS PROGRAM ERROR). */ /* 5 PASS-1 PARSE STACK OVERFLOW. THE PROGRAM STATEMENTS ARE */ /* RECURSIVELY NESTED TOO DEEPLY. EITHER SIMPLIFY THE PROGRAM */ /* STRUCTURE, OR RE-COMPILE PASS-1 WITH A LARGER PARSE STACK. */ /* 6 NUMBER CONVERSION ERROR. THE NUMBER EITHER EXCEEDS 65535 OR */ /* CONTAINS DIGITS WHICH CONFLICT WITH THE RADIX INDICATOR. */ /* 7 PASS-1 TABLE OVERFLOW. PROBABLE CAUSE IS A CONSTANT STRING */ /* WHICH IS TOO LONG. IF SO, THE STRING SHOULD BE WRITTEN AS A */ /* SEQUENCE OF SHORTER STRINGS, SEPARATED BY COMMAS. OTHERWISE, */ /* RE-COMPILE PASS-1 WITH A LARGER VARC TABLE. */ /* 8 MACRO TABLE OVERFLOW. TOO MANY LITERALLY DECLARATIONS. */ /* EITHER REDUCE THE NUMBER OF LITERALLY DECLARATIONS, OR RE- */ /* COMPILE PASS-1 WITH A LARGER 'MACROS' TABLE. */ /* 9 INVALID CONSTANT IN INITIAL, DATA, OR IN-LINE CONSTANT. */ /* PRECISION OF CONSTANT EXCEEDS TWO BYTES (MAY BE INTERNAL */ /* PASS-1 COMPILER ERROR). */ /* 10 INVALID PROGRAM. PROGRAM SYNTAX INCORRECT FOR TERMINATION */ /* OF PROGRAM. MAY BE DUE TO PREVIOUS ERRORS WHICH OCCURRED */ /* WITHIN THE PROGRAM. */ /* 11 INVALID PLACEMENT OF A PROCEDURE DECLARATION WITHIN THE PL/M */ /* PROGRAM. PROCEDURES MAY ONLY BE DECLARED IN THE OUTER BLOCK */ /* (MAIN PART OF THE PROGRAM) OR WITHIN DO-END GROUPS (NOT */ /* ITERATIVE DO'S, DO-WHILE'S, OR DO-CASE'S). */ /* 12 IMPROPER USE OF IDENTIFIER FOLLOWING AN END STATEMENT. */ /* IDENTIFIERS CAN ONLY BE USED IN THIS WAY TO CLOSE A PROCEDURE */ /* DEFINITION. */ /* 13 IDENTIFIER FOLLOWING AN END STATEMENT DOES NOT MATCH THE NAME */ /* OF THE PROCEDURE WHICH IT CLOSES. */ /* 14 DUPLICATE FORMAL PARAMETER NAME IN A PROCEDURE HEADING. */ /* 15 IDENTIFIER FOLLOWING AN END STATEMENT CANNOT BE FOUND IN THE */ /* PROGRAM. */ /* 16 DUPLICATE LABEL DEFINITION AT THE SAME BLOCK LEVEL. */ /* 17 NUMERIC LABEL EXCEEDS CPU ADDRESSING SPACE. */ /* 18 INVALID CALL STATEMENT. THE NAME FOLLOWING THE CALL IS NOT */ /* A PROCEDURE. */ /* 19 INVALID DESTINATION IN A GO TO. THE VALUE MUST BE A LABEL */ /* OR SIMPLE VARIABLE. */ /* 20 MACRO TABLE OVERFLOW (SEE ERROR 8 ABOVE). */ /* 21 DUPLICATE VARIABLE OR LABEL DEFINITION. */ /* 22 VARIABLE WHICH APPEARS IN A DATA DECLARATION HAS BEEN PRE- */ /* VIOUSLY DECLARED IN THIS BLOCK */ /* 23 PASS-1 SYMBOL TABLE OVERFLOW (SEE ERROR 2 ABOVE). */ /* 24 INVALID USE OF AN IDENTIFIER AS A VARIABLE NAME. */ /* 25 PASS-1 SYMBOL TABLE OVERFLOW (SEE ERROR 2 ABOVE). */ /* 26 IMPROPERLY FORMED BASED VARIABLE DECLARATION. THE FORM IS */ /* I BASED J, WHERE I IS AN IDENTIFIER NOT PREVIOUSLY DECLARED */ /* IN THIS BLOCK, AND J IS AN ADDRESS VARIABLE. */ /* 27 SYMBOL TABLE OVERFLOW IN PASS-1 (SEE ERROR 2 ABOVE). */ /* 28 INVALID ADDRESS REFERENCE. THE DOT OPERATOR MAY ONLY */ /* PRECEDE SIMPLE AND SUBSCRIPTED VARIABLES IN THIS CONTEXT. */ /* 29 UNDECLARED VARIABLE. THE VARIABLE MUST APPEAR IN A DECLARE */ /* STATEMENT BEFORE ITS USE. */ /* 30 SUBSCRIPTED VARIABLE OR PROCEDURE CALL REFERENCES AN UN- */ /* DECLARED IDENTIFIER. THE VARIABLE OR PROCEDURE MUST BE */ /* DECLARED BEFORE IT IS USED. */ /* 31 THE IDENTIFIER IS IMPROPERLY USED AS A PROCEDURE OR SUB- */ /* SCRIPTED VARIABLE. */ /* 32 TOO MANY SUBSCRIPTS IN A SUBSCRIPTED VARIABLE REFERENCE. */ /* PL/M ALLOWS ONLY ONE SUBSCRIPT. */ /* 33 ITERATIVE DO INDEX IS INVALID. IN THE FORM 'DO I = E1 TO E2' */ /* THE VARIABLE I MUST BE SIMPLE (UNSUBSCRIPTED). */ /* 34 ATTEMPT TO COMPLEMENT A $ CONTROL TOGGLE WHERE THE TOGGLE */ /* CURRENTLY HAS A VALUE OTHER THAN 0 OR 1. USE THE '= N' */ /* OPTION FOLLOWING THE TOGGLE TO AVOID THIS ERROR. */ /* 35 INPUT FILE NUMBER STACK OVERFLOW. RE-COMPILE PASS-1 WITH */ /* A LARGER INSTK TABLE. */ /* 36 TOO MANY BLOCK LEVELS IN THE PL/M PROGRAM. EITHER SIMPLIFY */ /* YOUR PROGRAM (30 BLOCK LEVELS ARE CURRENTLY ALLOWED) OR */ /* RE-COMPILE PASS-1 WITH A LARGER BLOCK TABLE. */ /* 37 THE NUMBER OF ACTUAL PARAMETERS IN THE CALLING SEQUENCE */ /* IS GREATER THAN THE NUMBER OF FORMAL PARAMETERS DECLARED */ /* FOR THIS PROCEDURE. */ /* 38 THE NUMBER OF ACTUAL PARAMETERS IN THE CALLING SEQUENCE */ /* IS LESS THAN THE NUMBER OF FORMAL PARAMETERS DECLARED */ /* FOR THIS PROCEDURE. */ /* 39 INVALID INTERRUPT NUMBER (MUST BE BETWEEN 0 AND 7) */ /* 40 DUPLICATE INTERRUPT PROCEDURE NUMBER. A PROCEDURE */ /* HAS BEEN PREVIOUSLY SPECIFIED WITH AN IDENTICAL */ /* INTERRUPT ATTRIBUTE. */ /* 41 PROCEDURE APPEARS ON LEFT-HAND-SIDE OF AN ASSIGNMENT. */ /* 42 ATTEMPTED 'CALL' OF A TYPED PROCEDURE. */ /* 43 ATTEMPTED USE OF AN UNTYPED PROCEDURE AS A FUNCTION */ /* OR A VARIABLE. */ /* 44 THIS PROCEDURE IS UNTYPED AND SHOULD NOT RETURN A VALUE. */ /* 45 THIS PROCEDURE IS TYPED AND SHOULD RETURN A VALUE. */ /* 46 'RETURN' IS INVALID OUTSIDE A PROCEDURE DEFINITION. */ /* 47 ILLEGAL USE OF A LABEL AS AN IDENTIFIER. */ /* ------ ------------------------------------------------------------- */ /* I M P L E M E N T A T I O N N O T E S */ /* - - - - - - - - - - - - - - - - - - - */ /* THE PL/M COMPILER IS INTENDED TO BE WRITTEN IN ANSI STANDARD */ /* FORTRAN - IV, AND THUS IT SHOULD BE POSSIBLE TO COMPILE AND */ /* EXECUTE THIS PROGRAM ON ANY MACHINE WHICH SUPPORTS THIS FORTRAN */ /* STANDARD. BOTH PASS-1 AND PASS-2, HOWEVER, ASSUME THE HOST */ /* MACHINE WORD SIZE IS AT LEAST 31 BITS, EXCLUDING THE SIGN BIT */ /* (I.E., 32 BITS IF THE SIGN IS INCLUDED). */ /* THE IMPLEMENTOR MAY FIND IT NECESSARY TO CHANGE THE SOURCE PROGRAM */ /* IN ORDER TO ACCOUNT FOR SYSTEM DEPENDENCIES. THESE CHANGES ARE */ /* AS FOLLOWS */ /* 1) THE FORTRAN LOGICAL UNIT NUMBERS FOR VARIOUS DEVICES */ /* MAY HAVE TO BE CHANGED IN THE 'GNC' AND 'WRITEL' SUBROU- */ /* TINES (SEE THE FILE DEFINITIONS BELOW). */ /* 2) THE HOST MACHINE MAY NOT HAVE THE PL/M 52 CHARACTER SET */ /* 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$=./()+-'*,<>:; */ /* (THE LAST 15 SPECIAL CHARACTERS ARE */ /* DOLLAR, EQUAL, PERIOD, SLASH, LEFT PAREN, */ /* RIGHT PAREN, PLUS, MINUS, QUOTE, ASTERISK, */ /* COMMA, LESS-THAN, GREATER-THAN, COLON, SEMI-COLON) */ /* IN THIS CASE, IT IS NECESSARY TO CHANGE THE 'OTRAN' VECTOR IN */ /* BLOCK DATA TO A CHARACTER SET WHICH THE HOST MACHINE SUPPORTS */ /* 3) THE COMPUTED GO TO IN 'SYNTH' MAY BE TOO LONG FOR SOME */ /* COMPILERS. IF YOU GET A COMPILATION ERROR, BREAK THE */ /* 'GO TO' INTO TWO SECTIONS. */ /* 4) THE HOST FORTRAN SYSTEM MAY HAVE A LIMITATION ON THE NUMBER */ /* OF CONTIGUOUS COMMENT RECORDS (E.G. S/360 LEVEL G). IF SO, */ /* INTERSPERSE THE DECLARATION STATEMENTS INTEGER I1000, INTEGER */ /* I1001, ETC., AS NECESSARY TO BREAK UP THE LENGTH OF COMMENTS. */ /* THE SYMBOLS I1XXX ARE RESERVED FOR THIS PURPOSE. */ /* THERE ARE A NUMBER OF COMPILER PARAMETERS WHICH MAY HAVE TO */ /* BE CHANGED FOR YOUR INSTALLATION. THESE PARAMETERS ARE DEFINED */ /* BELOW (SEE 'SCANNER COMMANDS'), AND THE CORRESPONDING DEFAULT */ /* VALUES ARE SET FOLLOWING THEIR DEFINITION. FOR EXAMPLE, THE */ /* $RIGHTMARGIN = I */ /* PARAMETER DETERMINES THE RIGHT MARGIN OF THE INPUT SOURCE LINE. */ /* THE PARAMETER IS SET EXTERNALLY BY A SINGLE LINE STARTING WITH */ /* '$R' IN COLUMNS ONE AND TWO (THE REMAINING CHARACTERS UP TO */ /* THE '=' ARE IGNORED). THE INTERNAL COMPILER REPRESENTATION */ /* OF THE CHARACTER 'R' IS 29 (SEE CHARACTER CODES BELOW), AND THUS */ /* THE VALUE OF THE $RIGHTMARGIN PARAMETER CORRESPONDS TO ELEMENT 29 */ /* OF THE 'CONTRL' VECTOR. */ /* 1) THE PARAMETERS $T, $P, $W, $I, $O, AND $R */ /* CONTROL THE OPERATING MODE OF PL/M. FOR BATCH PROCESSING, */ /* ASSUMING 120 CHARACTER (OR LARGER) PRINT LINE AND 80 CHARAC- */ /* TER CARD IMAGE, THE PARAMETERS SHOULD DEFAULT AS FOLLOWS */ /* $TERMINAL = 0 */ /* $PRINT = 1 */ /* $WIDTH = 120 */ /* $INPUT = 2 */ /* $OUTPUT = 2 */ /* $RIGHTMARGIN= 80 */ /* NOTE THAT IT MAY BE DESIRABLE TO LEAVE $R=72 TO ALLOW ROOM */ /* FOR AN 8-DIGIT SEQUENCE NUMBER IN COLUMNS 73-80 OF THE PL/M */ /* SOURCE CARD. */ /* 2) FOR INTERACTIVE PROCESSING, ASSUMING A CONSOLE WITH WIDTH */ /* OF 72 CHARACTERS (E.G., A TTY), THESE PARAMETERS SHOULD */ /* DEFAULT AS FOLLOWS */ /* $TERMINAL = 1 */ /* $PRINT = 1 */ /* $WIDTH = 72 */ /* $INPUT = 1 */ /* $OUTPUT = 1 */ /* $RIGHTMARGIN= 72 */ /* 3) THE CHARACTERISTICS OF THE INTERMEDIATE LANGUAGE FILES */ /* PRODUCED BY PASS-1 ARE GOVERNED BY THE $J, $K, $U, $V, AND */ /* $Y PARAMETERS. THESE PARAMETERS CORRESPOND TO THE DESTINATION */ /* AND WIDTH OF THE INTERMEDIATE CODE FILE ($J AND $K), AND */ /* DESTINATION AND WIDTH OF THE INTERMEDIATE SYMBOL TABLE ($U */ /* AND $V). SOME FORTRAN SYSTEMS DELETE THE LEADING CHARACTER */ /* OF THE FILES PRODUCED BY OTHER FORTRAN PROGRAMS. THE $Y */ /* PARAMETER CAN BE USED TO PAD EXTRA BLANKS AT THE BEGINNING OF */ /* THE INTERMEDIATE FILES IF THIS BECOMES A PROBLEM ON THE HOST */ /* SYSTEM. */ /* UNDER NORMAL CIRCUMSTANCES, THESE PARAMETERS WILL NOT */ /* HAVE TO BE CHANGED. IN ANY CASE, EXPERIMENT WITH VARIOUS */ /* VALUES OF THE $ PARAMETERS BY SETTING THEM EXTERNALLY BE- */ /* FORE ACTUALLY CHANGING THE DEFAULTS. */ /* THE IMPLEMENTOR MAY ALSO WISH TO INCREASE OR DECREASE THE SIZE */ /* OF PASS-1 OR PASS-2 TABLES. THE TABLES IN PASS-1 WHICH MAY BE */ /* CHANGED IN SIZE ARE 'MACROS' AND 'SYMBOL' WHICH CORRESPOND TO */ /* THE AREAS WHICH HOLD 'LITERALLY' DEFINITIONS AND PROGRAM SYMBOLS */ /* AND ATTRIBUTES, RESPECTIVELY. IT IS IMPOSSIBLE TO PROVIDE AN */ /* EXACT FORMULA WHICH RELATES THE NUMBER OF SYMBOLS HELD BY EITHER */ /* OF THESE TABLES TO THE TABLE LENGTH, SINCE TABLE SPACE IS DY- */ /* NAMICALLY ALLOCATED ACCORDING TO SYMBOL NAME LENGTH AND NUMBER */ /* OF ATTRIBUTES REQUIRED FOR THE PARTICULAR SYMBOL. */ /* 1) IN THE CASE OF THE MACROS TABLE, THE LENGTH IS RELATED TO THE */ /* TOTAL NUMBER OF CHARACTERS IN THE MACRO NAMES PLUS THE TOTAL */ /* NUMBER OF CHARACTERS IN THE MACRO DEFINITIONS - AT THE DEEP- */ /* EST BLOCK LEVEL DURING COMPILATION. TO CHANGE THE MACRO */ /* TABLE SIZE, ALTER ALL OCCURRENCES OF */ /* MACROS(500) */ /* IN EACH SUBROUTINE TO MACROS(N), WHERE N REPRESENTS THE NEW */ /* INTEGER CONSTANT SIZE. IN ADDITION, THE 'DATA' STATEMENT */ /* BLOCK DATA (LAST PROGRAM SEGMENT) MUST BE CHANGED FOR THE */ /* MACRO PARAMETERS BASED UPON THE CONSTANT VALUE N TO */ /* DATA MACROS /N*0/, CURMAC /N+1/, MAXMAC /N/, */ /* 1 MACTOP /1/ */ /* 2) IF THE IMPLEMENTOR WISHES TO INCREASE OR DECREASE THE SIZE */ /* OF THE SYMBOL TABLE, THEN ALL OCCURRENCES OF */ /* SYMBOL(4000) */ /* MUST BE CHANGED TO SYMBOL(M), WHERE M IS THE DESIRED INTEGER */ /* CONSTANT SIZE. THE 'DATA' STATEMENTS FOR SYMBOL TABLE PARA- */ /* METERS MUST ALSO BE ALTERED AS DESCRIBED IN THE CORRESPONDING */ /* COMMENT IN BLOCK DATA. IN PARTICULAR, THE LAST ITEM OF */ /* THE DATA STATEMENT FOR 'SYMBOL' FILLS THE UNINITIALIZED POR- */ /* TION OF THE TABLE WITH ZEROES, AND HENCE MUST BE THE EVALUATION */ /* OF THE ELEMENT */ /* (M-120)*0 */ /* (IT IS CURRENTLY (4000-120)*0 = 3880*0). THE DATA STATEMENT */ /* FOR MAXSYM AND SYMABS MUST BE CHANGED TO INITIALIZE THESE */ /* VARIABLES TO THE VALUE M. */ /* GOOD LUCK... */ /* F I L E D E F I N I T I O N S */ /* INPUT OUTPUT */ /* FILE FORTRAN MTS DEFAULT FORTRAN MTS DEFAULT */ /* NUM I/O UNIT I/O UNIT FDNAME I/O UNIT I/O UNIT FDNAME */ /* 1 1 GUSER *MSOURCE* 11 SERCOM *MSINK* */ /* 2 2 SCARDS *SOURCE* 12 SPRINT *SINK* */ /* 3 3 3 13 13 */ /* 4 4 4 14 14 */ /* 5 5 5 15 15 */ /* 6 6 6 16 16 -PLM16## */ /* 7 7 7 17 17 -PLM17## */ /* ALL INPUT RECORDS ARE 80 CHARACTERS OR LESS. ALL */ /* OUTPUT RECORDS ARE 120 CHARACTERS OR LESS. */ /* THE FORTRAN UNIT NUMBERS CAN BE CHANGED IN THE */ /* SUBROUTINES GNC AND WRITEL (THESE ARE THE ONLY OC- */ /* CURRENCES OF REFERENCES TO THESE UNITS). */ /* 0 1 2 3 4 5 6 7 8 9 */ /* 0 0 0 0 0 0 0 0 1 1 */ /* 2 3 4 5 6 7 8 9 0 1 */ /* $ = . / ( ) + - ' * , < > : ; */ /* 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 */ /* 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 */ /* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */ /* 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 */ /* 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 */ /* SEQNO SUB/FUNC NAME */ /* 15410000 SUBROUTINE EXITB */ /* 16300000 INTEGER FUNCTION LOOKUP(IV) */ /* 17270000 INTEGER FUNCTION ENTER(INFOV) */ /* 18050000 SUBROUTINE DUMPSY */ /* 20030000 SUBROUTINE RECOV */ /* 20420000 LOGICAL FUNCTION STACK(Q) */ /* 20930000 LOGICAL FUNCTION PROK(PRD) */ /* 21550000 SUBROUTINE REDUCE */ /* 22100000 SUBROUTINE CLOOP */ /* 22740000 SUBROUTINE PRSYM(CC,SYM) */ /* 23120000 INTEGER FUNCTION GETC1(I,J) */ /* 23330000 SUBROUTINE SCAN */ /* 25280000 INTEGER FUNCTION WRDATA(SY) */ /* 26460000 SUBROUTINE DUMPCH */ /* 26960000 SUBROUTINE SYNTH(PROD,SYM) */ /* 36310000 INTEGER FUNCTION GNC(Q) */ /* 37980000 SUBROUTINE WRITEL(NSPACE) */ /* 38520000 FUNCTION ICON(I) */ /* 38710000 SUBROUTINE DECIBP */ /* 38850000 SUBROUTINE CONV(PREC) */ /* 39090000 SUBROUTINE FORM(CC,CHARS,START,FINISH,LENGTH) */ /* 39370000 SUBROUTINE CONOUT(CC,K,N,BASE) */ /* 39690000 SUBROUTINE PAD(CC,CHR,I) */ /* 39800000 SUBROUTINE STACKC(I) */ /* 39950000 SUBROUTINE ENTERB */ /* 40180000 SUBROUTINE DUMPIN */ /* 40880000 SUBROUTINE ERROR(I,LEVEL) */ /* 41320000 INTEGER FUNCTION SHR(I,J) */ /* 41360000 INTEGER FUNCTION SHL(I,J) */ /* 41400000 INTEGER FUNCTION RIGHT(I,J) */ /* 41440000 SUBROUTINE SDUMP */ /* 41670000 SUBROUTINE REDPR(PROD,SYM) */ /* 41900000 SUBROUTINE EMIT(VAL,TYP) */ /* *********************************************************************** */ /* Main program */ int MAIN__(void) { /* System generated locals */ integer i__1; /* Builtin functions */ integer pow_ii(integer *, integer *); /* Subroutine */ int s_stop(char *, ftnlen); /* Local variables */ static integer i__, j, k; extern /* Subroutine */ int pad_(integer *, integer *, integer *), scan_( void); extern integer icon_(integer *); extern /* Subroutine */ int emit_(integer *, integer *), form_(integer *, integer *, integer *, integer *, integer *), cloop_(void), dumpch_(void), dumpin_(void), conout_(integer *, integer *, integer *, integer *), writel_(integer *), dumpsy_(void); /* SYNTAX ANALYZER TABLES */ /* GLOBAL TABLES */ /* GLOBAL VARIABLES */ /* THE FOLLOWING SCANNER COMMANDS ARE DEFINED */ /* ANALYZE = I (12) PRINT SYNTAX ANALYSIS TRACE */ /* BYPASS (13) BYPASS STACK DUMP ON ERROR */ /* COUNT = I (14) BEGIN LINE COUNT AT I */ /* DELETE = I (15) */ /* EOF (16) */ /* GENERATE (18) */ /* INPUT = I (20) */ /* JFILE (CODE)= I (21) */ /* KWIDTH (CD)= I (22) */ /* LEFTMARGIN = I (23) */ /* MEMORY = I (24) */ /* OUTPUT = I (26) */ /* PRINT (T OR F) (27) */ /* RIGHTMARG = I (29) */ /* SYMBOLS (30) */ /* TERMINAL (31) (0=BATCH, 1=TERM, 2=INTERLIST) */ /* USYMBOL = I (32) */ /* VWIDTH (SYM) = I (33) */ /* WIDTH = I (34) */ /* YPAD = N (36) BLANK PAD ON OUTPUT */ /* CONTRL(1) IS THE ERROR COUNT */ for (i__ = 1; i__ <= 64; ++i__) { /* L2: */ cntrl_1.contrl[i__ - 1] = -1; } cntrl_1.contrl[0] = 0; cntrl_1.contrl[11] = 0; cntrl_1.contrl[12] = 1; cntrl_1.contrl[13] = 0; cntrl_1.contrl[14] = 120; cntrl_1.contrl[15] = 0; cntrl_1.contrl[17] = 0; cntrl_1.contrl[19] = 2; cntrl_1.contrl[20] = 6; cntrl_1.contrl[21] = 72; cntrl_1.contrl[22] = 1; cntrl_1.contrl[23] = 1; cntrl_1.contrl[25] = 2; cntrl_1.contrl[26] = 1; cntrl_1.contrl[28] = 80; cntrl_1.contrl[29] = 0; cntrl_1.contrl[30] = 1; cntrl_1.contrl[31] = 7; cntrl_1.contrl[32] = 72; cntrl_1.contrl[33] = 120; cntrl_1.contrl[35] = 1; for (i__ = 1; i__ <= 5; ++i__) { /* L4: */ i__1 = (i__ << 3) - 8; stacks_1.prmask[i__ - 1] = pow_ii(&c__2, &i__1) - 1; } for (i__ = 1; i__ <= 256; ++i__) { files_1.itran[i__ - 1] = 1; /* L8: */ } for (i__ = 53; i__ <= 64; ++i__) { files_1.otran[i__ - 1] = files_1.otran[0]; /* L5: */ } for (i__ = 1; i__ <= 52; ++i__) { j = files_1.otran[i__ - 1]; j = icon_(&j); /* L10: */ files_1.itran[j - 1] = i__; } conout_(&c__0, &c__4, &c__8080, &c__10); pad_(&c__1, &c__1, &c__1); form_(&c__1, titl_1.title, &c__1, &c__10, &c__10); i__1 = titl_1.vers / 10; conout_(&c__1, &c__1, &i__1, &c__10); pad_(&c__1, &c__40, &c__1); i__1 = titl_1.vers % 10; conout_(&c__1, &c__1, &i__1, &c__10); writel_(&c__1); for (i__ = 1; i__ <= 3; ++i__) { /* L20: */ stacks_1.pstack[i__ - 1] = 0; } stacks_1.pstack[3] = syntax_1.eofile; stacks_1.sp = 4; scan_(); cloop_(); emit_(&opcod_1.nop, &opcod_1.opr); L100: if (pole_1.poltop == 0) { goto L200; } emit_(&opcod_1.nop, &opcod_1.opr); goto L100; L200: /* PRINT ERROR COUNT */ i__ = cntrl_1.contrl[0]; j = cntrl_1.contrl[25]; k = j; L300: writel_(&c__0); cntrl_1.contrl[25] = j; if (i__ == 0) { form_(&c__0, messag_1.mssg, &c__6, &c__7, &c__41); } if (i__ != 0) { conout_(&c__2, &c_n5, &i__, &c__10); } pad_(&c__1, &c__1, &c__1); form_(&c__1, messag_1.mssg, &c__8, &c__20, &c__41); if (i__ != 1) { pad_(&c__1, &c__30, &c__1); } pad_(&c__0, &c__1, &c__1); writel_(&c__0); /* CHECK FOR TERMINAL CONTROL OF A BATCH RUN */ if (j == 1 || cntrl_1.contrl[30] == 0) { goto L400; } /* ARRIVE HERE IF TERMINAL TOGGLE GT 0, AND OUTPUT NOT CONSOLE */ j = 1; goto L300; L400: cntrl_1.contrl[25] = k; dumpsy_(); /* MAY WANT A SYMBOL TABLE FOR THE SIMULATOR */ if (cntrl_1.contrl[23] == 0) { sym_1.symbol[1] = 0; } dumpch_(); dumpin_(); s_stop("", (ftnlen)0); return 0; } /* MAIN__ */ /* Subroutine */ int exitb_(void) { /* System generated locals */ integer i__1, i__2, i__3; /* Local variables */ static integer i__, j, k, l, n, jp, kp, lp, np; extern /* Subroutine */ int pad_(integer *, integer *, integer *); extern integer shr_(integer *, integer *); static logical erred; extern integer right_(integer *, integer *); static integer ltemp; extern /* Subroutine */ int error_(integer *, integer *), writel_(integer *); /* GOES THROUGH HERE UPON BLOCK EXIT */ /* GLOBAL TABLES */ erred = FALSE_; if (blk_1.curblk <= 0) { goto L9999; } i__ = blk_1.block[blk_1.curblk - 1]; n = blk_1.macblk[blk_1.curblk - 1]; macro_1.curmac = right_(&n, &c__12); macro_1.mactop = shr_(&n, &c__12); --blk_1.curblk; j = sym_1.symbol[sym_1.symtop - 1]; L100: if (j < i__) { goto L300; } if (sym_1.symbol[j] < 0) { goto L200; } k = (i__1 = sym_1.symbol[j + 1], abs(i__1)); kp = right_(&k, &c__4); lp = shr_(&kp, &c__8); if (kp >= types_1.liter) { goto L200; } if (kp != types_1.varb && kp != types_1.label) { goto L150; } i__1 = shr_(&k, &c__4); k = right_(&i__1, &c__4); if (k != 0) { goto L150; } if (kp == types_1.label && blk_1.curblk > 1) { goto L200; } if (erred) { goto L130; } error_(&c__1, &c__1); erred = TRUE_; L130: pad_(&c__0, &c__1, &c__5); n = sym_1.symbol[j]; n = shr_(&n, &c__12); if (n == 0) { goto L150; } i__1 = n; for (kp = 1; kp <= i__1; ++kp) { ltemp = j + 2 + kp; l = sym_1.symbol[ltemp - 1]; i__2 = syntax_1.pack; for (lp = 1; lp <= i__2; ++lp) { jp = 30 - lp * 6; i__3 = shr_(&l, &jp); jp = right_(&i__3, &c__6) + 1; pad_(&c__1, &jp, &c__1); /* L120: */ } } writel_(&c__0); L150: sym_1.symbol[j] = -sym_1.symbol[j]; /* MAY WANT TO FIX THE HASH CODE CHAIN */ if (lp <= 0) { goto L200; } /* FIND MATCH ON THE ENTRY */ k = j - 1; kp = sym_1.symbol[k - 1]; hash_1.hcode = shr_(&kp, &c__16); kp = right_(&kp, &c__16); n = hash_1.hentry[hash_1.hcode - 1]; if (n != k) { goto L160; } /* THIS ENTRY IS DIRECTLY CONNECTED */ hash_1.hentry[hash_1.hcode - 1] = kp; goto L200; /* LOOK THROUGH SOME LITERALS IN THE SYMBOL TABLE ABOVE */ L160: np = right_(&sym_1.symbol[n - 1], &c__16); if (np == k) { goto L170; } n = np; goto L160; L170: sym_1.symbol[n - 1] = shr_(&hash_1.hcode, &c__16) + kp; L200: j = right_(&sym_1.symbol[j - 1], &c__16); goto L100; L300: blk_1.blksym = blk_1.block[blk_1.curblk - 1]; L9999: return 0; } /* exitb_ */ integer lookup_(integer *iv) { /* System generated locals */ integer ret_val, i__1; /* Local variables */ #define i__ ((integer *)&sym_1 + 4002) static integer j, k; #define l ((integer *)&sym_1 + 4003) static integer m, jp, kp, lp; extern integer shl_(integer *, integer *), shr_(integer *, integer *); static integer nval; static logical sflag; extern integer right_(integer *, integer *); static integer ltemp; /* SYNTAX ANALYZER TABLES */ /* GLOBAL TABLES */ nval = stacks_1.fixv[*iv - 1]; sflag = stacks_1.pstack[*iv - 1] != syntax_1.numbv; *i__ = stacks_1.var[*iv - 1]; *l = shr_(i__, &c__12); *i__ = right_(i__, &c__12); j = *i__; kp = syntax_1.pack * 6; k = kp; jp = 0; m = 0; L100: if (jp >= *l) { goto L300; } k += -6; if (k >= 0) { goto L200; } stacks_1.varc[j - 1] = m; ++j; m = 0; k = kp - 6; L200: ltemp = jp + *i__; i__1 = stacks_1.varc[ltemp - 1] - 1; m = shl_(&i__1, &k) + m; ++jp; goto L100; L300: stacks_1.varc[j - 1] = m; /* VARC IS NOW IN PACKED FORM READY FOR LOOKUP */ /* COMPUTE HASH CODE (REDUCE NUMBERS MOD 127, USE FIRST 5 CHARS OF */ /* IDENTIFIERS AND STRINGS ) */ hash_1.hcode = nval; if (sflag) { hash_1.hcode = stacks_1.varc[*i__ - 1]; } hash_1.hcode = hash_1.hcode % 127 + 1; /* HCODE IS IN THE RANGE 1 TO 127 */ lp = (*l - 1) / syntax_1.pack + 1; k = hash_1.hentry[hash_1.hcode - 1]; L400: if (k <= 0) { goto L9990; } if (sflag) { goto L450; } /* COMPARE NUMBERS IN INTERNAL FORM RATHER THAN CHARACTERS */ j = sym_1.symbol[k + 2]; if (right_(&j, &c__4) <= types_1.liter) { goto L600; } j = shr_(&j, &c__8); if (j == nval) { goto L510; } goto L600; L450: j = sym_1.symbol[k + 1]; jp = right_(&j, &c__12); if (jp != *l) { goto L600; } j = k + 3; jp = *i__; i__1 = lp; for (m = 1; m <= i__1; ++m) { ltemp = j + m; if (stacks_1.varc[jp - 1] != sym_1.symbol[ltemp - 1]) { goto L600; } /* L500: */ ++jp; } /* SYMBOL FOUND */ /* MAKE SURE THE TYPES MATCH. */ jp = stacks_1.pstack[*iv - 1]; m = sym_1.symbol[k + 2]; m = right_(&m, &c__4); if (jp == syntax_1.strv && m == types_1.liter) { goto L510; } if (jp != syntax_1.identv || m >= types_1.liter) { goto L600; } /* JP IS IDENTIFIER, M IS VARIABLE, LABEL, OR PROCEDURE. */ L510: ret_val = k + 2; return ret_val; L600: k = sym_1.symbol[k - 1]; k = right_(&k, &c__16); goto L400; L9990: ret_val = 0; return ret_val; } /* lookup_ */ #undef l #undef i__ integer enter_(integer *infov) { /* System generated locals */ integer ret_val, i__1; /* Local variables */ static integer i__, j, l, q, ip, iq; extern integer shl_(integer *, integer *); static integer info, ihash, ltemp; extern /* Subroutine */ int error_(integer *, integer *); static integer ltemp1; /* SYNTAX ANALYZER TABLES */ /* GLOBAL TABLES */ /* ENTER ASSUMES A PREVIOUS CALL TO LOOKUP (EITHER THAT, OR SET UP */ /* THE VALUES OF SYMLOC AND SYMLEN IN THE VARC ARRAY). */ /* ALSO SET-UP HASH CODE VALUE (SEE LOOKUP), IF NECESSARY */ info = *infov; i__ = sym_1.symtop; if (info >= 0) { goto L10; } /* ENTRY WITH NO EXTERNAL NAME */ ihash = 0; hash_1.hcode = 0; info = -info; sym_1.symlen = 0; q = 0; goto L20; L10: ihash = 1; q = (sym_1.symlen - 1) / syntax_1.pack + 1; L20: sym_1.symtop = sym_1.symtop + q + ihash + 3; iq = i__; i__ += ihash; if (sym_1.symtop <= sym_1.maxsym) { goto L100; } i__ = ihash; sym_1.symtop = q + ihash + 3; error_(&c__2, &c__5); L100: sym_1.symbol[sym_1.symtop - 1] = i__; ++sym_1.symcnt; sym_1.symbol[i__ - 1] = shl_(&sym_1.symcnt, &c__16) + sym_1.symbol[iq - 1] ; ++i__; sym_1.symbol[i__ - 1] = shl_(&q, &c__12) + sym_1.symlen; ip = i__ + 1; sym_1.symbol[ip - 1] = info; l = sym_1.symloc - 1; if (q == 0) { goto L210; } i__1 = q; for (j = 1; j <= i__1; ++j) { ltemp = ip + j; ltemp1 = l + j; /* L200: */ sym_1.symbol[ltemp - 1] = stacks_1.varc[ltemp1 - 1]; } L210: ret_val = i__; /* COMPUTE HASH TABLE ENTRY */ if (ihash == 0) { goto L300; } /* FIX COLLISION CHAIN */ sym_1.symbol[iq - 1] = shl_(&hash_1.hcode, &c__16) + hash_1.hentry[ hash_1.hcode - 1]; hash_1.hentry[hash_1.hcode - 1] = iq; L300: return ret_val; } /* enter_ */ /* Subroutine */ int dumpsy_(void) { /* System generated locals */ integer i__1, i__2, i__3; /* Local variables */ static integer i__, j, k, l, m, n, ic, mc, ip, jp, kp, lp, it; extern /* Subroutine */ int pad_(integer *, integer *, integer *); extern integer shr_(integer *, integer *); static integer ifin; extern /* Subroutine */ int form_(integer *, integer *, integer *, integer *, integer *); extern integer right_(integer *, integer *); static integer ltemp; extern /* Subroutine */ int writel_(integer *), conout_(integer *, integer *, integer *, integer *); /* GLOBAL TABLES */ ic = cntrl_1.contrl[29]; if (ic == 0) { goto L2000; } writel_(&c__0); if (ic > 1) { form_(&c__0, messag_1.mssg, &c__42, &c__77, &c__77); } i__ = sym_1.symbol[sym_1.symtop - 1]; it = sym_1.symtop; L210: if (i__ <= 0) { goto L1000; } k = sym_1.symbol[i__ - 1]; kp = shr_(&k, &c__16); /* QUICK CHECK FOR ZERO LENGTH NAME */ if (ic >= 2) { goto L215; } n = (i__1 = sym_1.symbol[i__], abs(i__1)); if (shr_(&n, &c__12) == 0) { goto L218; } L215: pad_(&c__0, &c__30, &c__1); conout_(&c__1, &c__5, &kp, &c__10); L218: k = sym_1.symbol[i__]; if (ic < 2) { goto L220; } j = 1; if (k < 0) { j = 47; } pad_(&c__1, &j, &c__1); pad_(&c__1, &c__1, &c__1); L220: k = abs(k); kp = shr_(&k, &c__12); n = kp; k = right_(&k, &c__12); mc = k; if (ic < 2) { goto L230; } i__1 = i__ + 1; conout_(&c__1, &c__4, &i__1, &c__10); pad_(&c__1, &c__1, &c__1); conout_(&c__1, &c_n3, &kp, &c__10); pad_(&c__1, &c__1, &c__1); conout_(&c__1, &c_n4, &k, &c__10); pad_(&c__1, &c__1, &c__1); L230: k = sym_1.symbol[i__ + 1]; j = 29; if (ic < 2) { goto L240; } if (k < 0) { j = 13; } pad_(&c__1, &j, &c__1); pad_(&c__1, &c__1, &c__1); L240: k = abs(k); m = right_(&k, &c__4); if (ic < 2) { goto L250; } kp = shr_(&k, &c__8); conout_(&c__1, &c__6, &kp, &c__10); i__1 = shr_(&k, &c__4); kp = right_(&i__1, &c__4); conout_(&c__1, &c_n3, &kp, &c__10); kp = right_(&k, &c__4); conout_(&c__1, &c_n3, &kp, &c__10); L250: pad_(&c__1, &c__1, &c__1); ip = i__ + 2; if (n == 0) { goto L310; } if (m == types_1.liter) { pad_(&c__1, &c__46, &c__1); } i__1 = n; for (kp = 1; kp <= i__1; ++kp) { ltemp = kp + ip; l = sym_1.symbol[ltemp - 1]; i__2 = syntax_1.pack; for (lp = 1; lp <= i__2; ++lp) { if ((kp - 1) * syntax_1.pack + lp > mc) { goto L305; } jp = 30 - lp * 6; i__3 = shr_(&l, &jp); jp = right_(&i__3, &c__6) + 1; pad_(&c__1, &jp, &c__1); /* L300: */ } } L305: if (m == types_1.liter) { pad_(&c__1, &c__46, &c__1); } L310: ip += n; if (ic < 2) { goto L330; } L320: ++ip; if (ip >= it) { goto L330; } pad_(&c__1, &c__1, &c__1); k = sym_1.symbol[ip - 1]; j = 1; if (k < 0) { j = 45; } pad_(&c__1, &j, &c__1); k = abs(k); conout_(&c__1, &c__8, &k, &c__16); goto L320; L330: it = i__; i__ = right_(&sym_1.symbol[i__ - 1], &c__16); goto L210; L1000: writel_(&c__0); L2000: writel_(&c__0); k = cntrl_1.contrl[25]; cntrl_1.contrl[25] = cntrl_1.contrl[31]; kp = cntrl_1.contrl[33]; cntrl_1.contrl[33] = cntrl_1.contrl[32]; /* WRITE THE INTERRUPT PROCEDURE NAMES */ pad_(&c__1, &c__41, &c__1); for (i__ = 1; i__ <= 8; ++i__) { j = inter_1.intpro[i__ - 1]; if (j <= 0) { goto L2050; } /* WRITE INTNUMBER SYMBOLNUM (4 BASE-32 DIGITS) */ i__2 = i__ + 1; pad_(&c__1, &i__2, &c__1); for (l = 1; l <= 3; ++l) { i__2 = right_(&j, &c__5) + 2; pad_(&c__1, &i__2, &c__1); /* L2020: */ j = shr_(&j, &c__5); } pad_(&c__1, &c__41, &c__1); L2050: ; } pad_(&c__1, &c__41, &c__1); writel_(&c__0); /* REVERSE THE SYMBOL TABLE POINTERS */ /* SET THE LENGTH FIELD OF COMPILER-GENERATED LABELS TO 1 */ l = 0; i__ = sym_1.symtop; j = sym_1.symbol[i__ - 1]; sym_1.symbol[i__ - 1] = 0; L2100: if (j == 0) { goto L2200; } ++l; /* CHECK FOR A LABEL VARIABLE */ k = sym_1.symbol[j + 1]; if (k % 16 != types_1.label) { goto L2110; } /* CHECK FOR CHARACTER LENGTH = 0 */ k = (i__2 = sym_1.symbol[j], abs(i__2)); if (k % 4096 != 0) { goto L2110; } /* SET LENGTH TO 1 AND PREC TO 5 (FOR COMP GENERATED LABELS) */ sym_1.symbol[j + 1] = types_1.label + 336; /* 336 = 1 * 256 + 5 * 16 */ L2110: m = sym_1.symbol[j - 1]; sym_1.symbol[j - 1] = i__; i__ = j; j = right_(&m, &c__16); goto L2100; L2200: jp = 0; ifin = 1; ip = 1; j = 1; L2500: if (j != jp) { goto L2610; } j += ip; L2610: if (j < ifin) { goto L2700; } /* OTHERWISE GET ANOTHER ENTRY FROM TABLE */ pad_(&c__1, &c__41, &c__1); j = i__ + 1; i__ = sym_1.symbol[i__ - 1]; if (i__ == 0) { goto L2800; } ip = (i__2 = sym_1.symbol[j - 1], abs(i__2)); i__2 = shr_(&ip, &c__12); ip = right_(&i__2, &c__12); ++j; jp = j + 1; /* CHECK FOR BASED VARIABLE -- COMPUTE LAST ENTRY */ ifin = jp + ip; if (sym_1.symbol[j - 1] < 0) { ++ifin; } goto L2500; L2700: l = 1; lp = sym_1.symbol[j - 1]; if (lp < 0) { l = 45; } lp = abs(lp); pad_(&c__1, &l, &c__1); L2710: i__2 = right_(&lp, &c__5) + 2; pad_(&c__1, &i__2, &c__1); lp = shr_(&lp, &c__5); if (lp > 0) { goto L2710; } ++j; goto L2500; L2800: pad_(&c__1, &c__41, &c__1); writel_(&c__0); cntrl_1.contrl[25] = k; cntrl_1.contrl[33] = kp; return 0; } /* dumpsy_ */ /* Subroutine */ int recov_(void) { static integer i__; extern /* Subroutine */ int scan_(void); extern integer getc1_(integer *, integer *), right_(integer *, integer *); /* GLOBAL TABLES */ /* FIND SOMETHING SOLID IN THE TEXT */ L100: if (syntax_1.token == syntax_1.decl || syntax_1.token == syntax_1.procv || syntax_1.token == syntax_1.endv || syntax_1.token == syntax_1.dov || syntax_1.token == syntax_1.semiv || syntax_1.token == syntax_1.eofile) { goto L300; } L200: scan_(); goto L100; /* AND IN THE STACK */ L300: i__ = stacks_1.pstack[stacks_1.sp - 1]; if (stacks_1.failsf && getc1_(&i__, &syntax_1.token) != 0) { goto L500; } if (i__ == syntax_1.eofile && syntax_1.token == syntax_1.eofile) { goto L400; } if ((i__ == syntax_1.groupv || i__ == syntax_1.slistv || i__ == syntax_1.stmtv || i__ == syntax_1.dov || i__ == syntax_1.procv) && syntax_1.token != syntax_1.eofile) { goto L200; } /* BUT DON'T GO TOO FAR */ if (stacks_1.sp <= 4) { goto L200; } stacks_1.vartop = right_(&stacks_1.var[stacks_1.sp - 1], &c__12); --stacks_1.sp; goto L300; L400: stacks_1.compil = FALSE_; L500: stacks_1.failsf = FALSE_; return 0; } /* recov_ */ logical stack_(integer *q) { /* System generated locals */ integer i__1; logical ret_val; /* Local variables */ static integer i__, j, k, il, jp, iu; extern /* Subroutine */ int pad_(integer *, integer *, integer *); extern integer shl_(integer *, integer *), shr_(integer *, integer *), getc1_(integer *, integer *); extern /* Subroutine */ int recov_(void), error_(integer *, integer *), sdump_(void), prsym_(integer *, integer *); /* GLOBAL TABLES */ L100: i__ = getc1_(&stacks_1.pstack[stacks_1.sp - 1], &syntax_1.token) + 1; switch (i__) { case 1: goto L1000; case 2: goto L2000; case 3: goto L3000; case 4: goto L4000; } /* ILLEGAL SYMBOL PAIR */ L1000: error_(&c__3, &c__1); prsym_(&c__0, &stacks_1.pstack[stacks_1.sp - 1]); pad_(&c__1, &c__1, &c__1); prsym_(&c__1, &syntax_1.token); sdump_(); recov_(); /* RECOVER MAY HAVE SET COMPILING FALSE */ if (! stacks_1.compil) { goto L2000; } goto L100; /* RETURN TRUE */ L2000: ret_val = TRUE_; goto L9999; /* RETURN FALSE */ L3000: ret_val = FALSE_; goto L9999; /* CHECK TRIPLES */ L4000: j = shl_(&stacks_1.pstack[stacks_1.sp - 2], &c__16) + shl_(& stacks_1.pstack[stacks_1.sp - 1], &c__8) + syntax_1.token; iu = syntax_1.nc1tri + 2; il = 1; L4100: i__1 = iu + il; k = shr_(&i__1, &c__1); jp = syntax_1.c1tri[k - 1]; if (j < jp) { iu = k; } if (j >= jp) { il = k; } if (iu - il > 1) { goto L4100; } /* CHECK FOR MATCH */ ret_val = j == syntax_1.c1tri[il - 1]; L9999: return ret_val; } /* stack_ */ logical prok_(integer *prd) { /* System generated locals */ integer i__1; logical ret_val; /* Local variables */ static integer i__, j, k, l, lp; extern integer shl_(integer *, integer *), getc1_(integer *, integer *); static integer ltemp; /* GLOBAL TABLES */ /* CONTEXT CHECK OF EQUAL OR IMBEDDED RIGHT PARTS */ i__ = syntax_1.contc[*prd - 1] + 1; switch (i__) { case 1: goto L1000; case 2: goto L2000; case 3: goto L3000; case 4: goto L4000; } /* NO CHECK REQUIRED */ L1000: ret_val = TRUE_; goto L9999; /* RIGHT CONTEXT CHECK */ L2000: ret_val = getc1_(&syntax_1.hdtb[*prd - 1], &syntax_1.token) != 0; goto L9999; /* LEFT CONTEXT CHECK */ L3000: k = syntax_1.hdtb[*prd - 1] - syntax_1.nt; l = syntax_1.prlen[*prd - 1]; ltemp = stacks_1.sp - l; i__ = stacks_1.pstack[ltemp - 1]; l = syntax_1.lefti[k - 1] + 1; lp = syntax_1.lefti[k]; if (l > lp) { goto L3200; } i__1 = lp; for (j = l; j <= i__1; ++j) { if (syntax_1.leftc[j - 1] != i__) { goto L3100; } ret_val = TRUE_; goto L9999; L3100: ; } L3200: ret_val = FALSE_; goto L9999; /* CHECK TRIPLES */ L4000: k = syntax_1.hdtb[*prd - 1] - syntax_1.nt; l = syntax_1.prlen[*prd - 1]; ltemp = stacks_1.sp - l; i__ = shl_(&stacks_1.pstack[ltemp - 1], &c__8) + syntax_1.token; l = syntax_1.tripi[k - 1] + 1; lp = syntax_1.tripi[k]; if (l < lp) { goto L4200; } i__1 = lp; for (j = l; j <= i__1; ++j) { if (syntax_1.contt[j - 1] != i__) { goto L4100; } ret_val = TRUE_; goto L9999; L4100: ; } L4200: ret_val = FALSE_; L9999: return ret_val; } /* prok_ */ /* Subroutine */ int reduce_(void) { /* System generated locals */ integer i__1; static integer equiv_0[1], equiv_1[1]; /* Local variables */ static integer i__; #define j (equiv_0) static integer k, l; #define m (equiv_1) #define jl ((logical *)equiv_0) #define ml ((logical *)equiv_1) static integer prd; extern integer shl_(integer *, integer *); extern logical prok_(integer *); extern integer right_(integer *, integer *); extern /* Subroutine */ int recov_(void); static integer ltemp; extern /* Subroutine */ int error_(integer *, integer *), sdump_(void), synth_(integer *, integer *); /* GLOBAL TABLES */ /* PACK STACK TOP */ k = stacks_1.sp - 4; l = stacks_1.sp - 1; *j = 0; i__1 = l; for (i__ = k; i__ <= i__1; ++i__) { /* L100: */ *j = shl_(j, &c__8) + stacks_1.pstack[i__ - 1]; } ltemp = stacks_1.pstack[stacks_1.sp - 1]; k = syntax_1.prind[ltemp - 1] + 1; l = syntax_1.prind[ltemp]; i__1 = l; for (prd = k; prd <= i__1; ++prd) { *m = syntax_1.prlen[prd - 1]; *m = *m - 1 << 3; *m = right_(j, m); if (*m != syntax_1.prtb[prd - 1]) { goto L200; } if (! prok_(&prd)) { goto L200; } stacks_1.mp = stacks_1.sp - syntax_1.prlen[prd - 1] + 1; stacks_1.mpp1 = stacks_1.mp + 1; *j = syntax_1.hdtb[prd - 1]; synth_(&syntax_1.prdtb[prd - 1], j); stacks_1.sp = stacks_1.mp; stacks_1.pstack[stacks_1.sp - 1] = *j; stacks_1.vartop = right_(&stacks_1.var[stacks_1.sp - 1], &c__12); goto L9999; L200: ; } /* L300: */ /* NO APPLICABLE PRODUCTION */ error_(&c__4, &c__1); stacks_1.failsf = FALSE_; sdump_(); recov_(); L9999: return 0; } /* reduce_ */ #undef ml #undef jl #undef m #undef j /* Subroutine */ int cloop_(void) { /* System generated locals */ integer i__1; /* Local variables */ static integer i__, j; extern integer shl_(integer *, integer *); extern /* Subroutine */ int scan_(void), conv_(integer *); extern logical stack_(integer *); extern /* Subroutine */ int error_(integer *, integer *), reduce_(void); /* GLOBAL TABLES */ stacks_1.compil = TRUE_; L100: if (! stacks_1.compil) { goto L9999; } if (! stack_(&c__0)) { goto L400; } /* STACK MAY HAVE SET COMPILING FALSE */ if (! stacks_1.compil) { goto L9999; } ++stacks_1.sp; if (stacks_1.sp < stacks_1.mstack) { goto L300; } error_(&c__5, &c__5); goto L9999; L300: stacks_1.pstack[stacks_1.sp - 1] = syntax_1.token; /* INSERT ACCUM INTO VARC HERE */ if (syntax_1.token != syntax_1.numbv) { goto L302; } conv_(&c__16); if (scanc_1.value >= 0) { goto L301; } error_(&c__6, &c__1); scanc_1.value = 0; L301: stacks_1.fixv[stacks_1.sp - 1] = scanc_1.value; L302: stacks_1.var[stacks_1.sp - 1] = stacks_1.vartop; L305: if (scanc_1.acclen == 0) { goto L315; } i__1 = scanc_1.acclen; for (j = 1; j <= i__1; ++j) { stacks_1.varc[stacks_1.vartop - 1] = scanc_1.accum[j - 1]; ++stacks_1.vartop; if (stacks_1.vartop <= stacks_1.mvar) { goto L310; } error_(&c__7, &c__5); stacks_1.vartop = 1; L310: ; } L315: if (syntax_1.token != syntax_1.strv) { goto L360; } if (scanc_1.stype != scanc_1.cont) { goto L360; } scan_(); goto L305; L360: i__ = stacks_1.vartop - stacks_1.var[stacks_1.sp - 1]; if (i__ < 0) { i__ = 1; } stacks_1.var[stacks_1.sp - 1] = shl_(&i__, &c__12) + stacks_1.var[ stacks_1.sp - 1]; scan_(); goto L100; L400: reduce_(); goto L100; L9999: return 0; } /* cloop_ */ /* Subroutine */ int prsym_(integer *cc, integer *sym) { /* System generated locals */ integer i__1, i__2, i__3; /* Local variables */ static integer i__, j, k, l, ip, jp, kp, lp; extern integer shr_(integer *, integer *); extern /* Subroutine */ int form_(integer *, integer *, integer *, integer *, integer *); static integer pbuff[30]; extern integer right_(integer *, integer *); /* GLOBAL TABLES */ k = syntax_1.vloc[*sym]; if (*sym > syntax_1.nt) { goto L100; } l = syntax_1.v[k - 1]; i__1 = k + 1; i__2 = k + l; i__3 = syntax_1.nsy + 1; form_(cc, syntax_1.v, &i__1, &i__2, &i__3); goto L9999; L100: l = right_(&k, &c__15) - 1; k = shr_(&k, &c__15); kp = 0; i__1 = k; i__2 = syntax_1.pack; for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) { ++l; lp = syntax_1.v[l - 1]; jp = syntax_1.pack * 6; i__3 = syntax_1.pack; for (j = 1; j <= i__3; ++j) { jp += -6; ++kp; ip = shr_(&lp, &jp); pbuff[kp - 1] = right_(&ip, &c__6) + 1; /* L300: */ } } form_(cc, pbuff, &c__1, &k, &c__30); L9999: return 0; } /* prsym_ */ integer getc1_(integer *i__, integer *j) { /* System generated locals */ integer ret_val, i__1; /* Local variables */ static integer k, l, m; extern integer shl_(integer *, integer *), shr_(integer *, integer *), right_(integer *, integer *); /* GLOBAL TABLES */ k = (syntax_1.nt + 1) * *i__ + *j; l = k / 15 + 1; l = syntax_1.c1[l - 1]; i__1 = 14 - k % 15; m = shl_(&i__1, &c__1); i__1 = shr_(&l, &m); ret_val = right_(&i__1, &c__2); return ret_val; } /* getc1_ */ /* Subroutine */ int scan_(void) { /* System generated locals */ integer i__1, i__2; /* Local variables */ static integer i__, j, k, l, m, n, lp; extern integer gnc_(integer *), shl_(integer *, integer *); extern /* Subroutine */ int error_(integer *, integer *), decibp_(void); /* GLOBAL TABLES */ /* SCAN FINDS THE NEXT ENTITY IN THE INPUT STREAM */ /* THE RESULTING ITEM IS PLACED INTO ACCUM (OF LENGTH */ /* ACCLEN). TYPE AND STYPE IDENTIFY THE ITEM AS SHOWN */ /* BELOW -- */ /* TYPE STYPE ITEM VARIABLE */ /* 1 NA END OF FILE EOFLAG */ /* 2 CONT IDENTIFIER IDENT */ /* 3 RADIX NUMBER NUMB */ /* 4 NA SPEC CHAR SPECL */ /* 5 CONT STRING STR */ stacks_1.failsf = TRUE_; L10: i__ = gnc_(&c__0); scanc_1.acclen = 0; if (scanc_1.stype != scanc_1.cont) { goto L51; } switch (scanc_1.type__) { case 1: goto L100; case 2: goto L200; case 3: goto L51; case 4: goto L51; case 5: goto L499; } /* DEBLANK INPUT */ L50: i__ = gnc_(&c__0); L51: if (i__ == 0) { goto L100; } switch (i__) { case 1: goto L50; case 2: goto L300; case 3: goto L300; case 4: goto L300; case 5: goto L300; case 6: goto L300; case 7: goto L300; case 8: goto L300; case 9: goto L300; case 10: goto L300; case 11: goto L300; case 12: goto L200; case 13: goto L200; case 14: goto L200; case 15: goto L200; case 16: goto L200; case 17: goto L200; case 18: goto L200; case 19: goto L200; case 20: goto L200; case 21: goto L200; case 22: goto L200; case 23: goto L200; case 24: goto L200; case 25: goto L200; case 26: goto L200; case 27: goto L200; case 28: goto L200; case 29: goto L200; case 30: goto L200; case 31: goto L200; case 32: goto L200; case 33: goto L200; case 34: goto L200; case 35: goto L200; case 36: goto L200; case 37: goto L200; case 38: goto L400; case 39: goto L400; case 40: goto L400; case 41: goto L400; case 42: goto L400; case 43: goto L400; case 44: goto L400; case 45: goto L400; case 46: goto L400; case 47: goto L400; case 48: goto L400; case 49: goto L400; case 50: goto L400; case 51: goto L400; case 52: goto L400; case 53: goto L400; case 54: goto L400; case 55: goto L400; case 56: goto L400; case 57: goto L400; case 58: goto L400; case 59: goto L400; case 60: goto L400; case 61: goto L400; case 62: goto L400; case 63: goto L400; case 64: goto L400; } /* END OF FILE */ L100: scanc_1.type__ = scanc_1.eoflag; goto L999; /* IDENTIFIER */ L200: scanc_1.type__ = scanc_1.ident; L210: ++scanc_1.acclen; scanc_1.accum[scanc_1.acclen - 1] = i__; if (scanc_1.acclen >= 32) { goto L220; } L215: i__ = gnc_(&c__0); /* CHECK FOR $ WITHIN AN IDENTIFIER */ if (i__ == 38) { goto L215; } if (i__ >= 2 && i__ <= 37) { goto L210; } decibp_(); scanc_1.stype = 0; goto L999; L220: scanc_1.stype = scanc_1.cont; goto L999; /* NUMBER */ L300: scanc_1.type__ = scanc_1.numb; scanc_1.stype = 0; L310: ++scanc_1.acclen; scanc_1.accum[scanc_1.acclen - 1] = i__; if (scanc_1.acclen == 32) { goto L350; } L312: i__ = gnc_(&c__0); /* CHECK FOR $ IN NUMBER */ if (i__ == 38) { goto L312; } if (i__ >= 2 && i__ <= 17) { goto L310; } /* CHECK RADIX */ if (i__ == 19) { scanc_1.stype = 16; } if (i__ == 28) { scanc_1.stype = 8; } if (i__ == 26) { scanc_1.stype = 8; } if (scanc_1.stype != 0) { goto L325; } if (scanc_1.accum[scanc_1.acclen - 1] == 13) { goto L315; } if (scanc_1.accum[scanc_1.acclen - 1] == 15) { goto L318; } scanc_1.stype = 10; goto L320; L315: scanc_1.stype = 2; --scanc_1.acclen; goto L320; L318: scanc_1.stype = 10; --scanc_1.acclen; L320: decibp_(); L325: i__1 = scanc_1.acclen; for (i__ = 1; i__ <= i__1; ++i__) { j = scanc_1.accum[i__ - 1] - 2; if (j >= scanc_1.stype) { goto L340; } /* L330: */ } goto L999; L340: scanc_1.stype = 1; goto L999; L350: scanc_1.stype = 1; L351: i__ = gnc_(&c__0); if (i__ >= 2 && i__ <= 17) { goto L351; } decibp_(); goto L999; /* SPECIAL CHARACTER (TEST FOR QUOTE) */ L400: if (i__ == 46) { goto L500; } scanc_1.type__ = scanc_1.specl; scanc_1.acclen = 1; scanc_1.accum[0] = i__; if (i__ != 41) { goto L999; } i__ = gnc_(&c__0); /* LOOK FOR COMMENT */ if (i__ == 47) { goto L410; } decibp_(); goto L999; /* COMMENT FOUND */ L410: i__ = gnc_(&c__0); if (i__ == 0) { goto L100; } if (i__ != 47) { goto L410; } i__ = gnc_(&c__0); if (i__ == 41) { goto L420; } decibp_(); goto L410; L420: scanc_1.acclen = 0; goto L50; /* CONTINUE WITH STRING */ L499: decibp_(); /* STRING QUOTE */ L500: scanc_1.type__ = scanc_1.str; scanc_1.accum[0] = 1; L510: i__ = gnc_(&c__0); if (i__ == 46) { goto L530; } L520: ++scanc_1.acclen; scanc_1.accum[scanc_1.acclen - 1] = i__; if (scanc_1.acclen < 32) { goto L510; } scanc_1.stype = scanc_1.cont; goto L999; /* STRING QUOTE FOUND (ENDING, MAYBE) */ L530: i__ = gnc_(&c__0); if (i__ == 46) { goto L520; } decibp_(); scanc_1.stype = 0; /* THE CODE BELOW IS HERE TO SATISFY THE SYNTAX ANALYZER */ L999: if (scanc_1.type__ == scanc_1.eoflag) { goto L2000; } syntax_1.token = syntax_1.strv; if (scanc_1.type__ == scanc_1.str) { return 0; } syntax_1.token = 0; if (scanc_1.acclen > syntax_1.vil) { goto L3000; } /* SEARCH FOR TOKEN IN VOCABULARY */ j = syntax_1.vindx[scanc_1.acclen - 1] + 1; k = syntax_1.vindx[scanc_1.acclen]; i__1 = k; for (i__ = j; i__ <= i__1; ++i__) { l = syntax_1.vloc[i__ - 1]; lp = l + syntax_1.v[l - 1]; ++l; n = 1; i__2 = lp; for (m = l; m <= i__2; ++m) { if (scanc_1.accum[n - 1] != syntax_1.v[m - 1]) { goto L1300; } /* L1200: */ ++n; } syntax_1.token = i__ - 1; goto L1400; L1300: ; } goto L3000; L1400: return 0; L2000: syntax_1.token = syntax_1.eofile; return 0; L3000: if (scanc_1.type__ != scanc_1.ident) { goto L4000; } syntax_1.token = syntax_1.identv; l = macro_1.mactop; L3100: l = macro_1.macros[l - 1]; if (l == 0) { goto L3400; } k = macro_1.macros[l]; if (k != scanc_1.acclen) { goto L3100; } i__ = l + 2; i__1 = k; for (j = 1; j <= i__1; ++j) { if (scanc_1.accum[j - 1] != macro_1.macros[i__ - 1]) { goto L3100; } /* L3200: */ ++i__; } /* MACRO FOUND, SET-UP MACRO TABLE AND RESCAN */ --macro_1.curmac; if (macro_1.curmac > macro_1.mactop) { goto L3300; } error_(&c__8, &c__5); macro_1.curmac = macro_1.maxmac; L3300: j = i__ + macro_1.macros[i__ - 1]; macro_1.macros[macro_1.curmac - 1] = shl_(&i__, &c__12) + j; goto L10; L3400: L4000: if (scanc_1.type__ == scanc_1.numb) { syntax_1.token = syntax_1.numbv; } return 0; } /* scan_ */ integer wrdata_(integer *sy) { /* System generated locals */ integer ret_val, i__1, i__2; /* Local variables */ static integer i__, j, k, l, m, n, ip, kp, lp, np; extern integer shr_(integer *, integer *); extern /* Subroutine */ int pad_(integer *, integer *, integer *), emit_( integer *, integer *); static logical dflag; extern integer right_(integer *, integer *); static integer nbytes; /* IF SY IS NEGATIVE, THE CALL COMES FROM SYNTH -- DATA IS INSERTED */ /* INLINE BY CALLING LIT WITH EACH BYTE VALUE. */ /* IF SY IS POSITIVE, THE CALL COMES FROM DUMPIN -- */ /* WRDATA WRITES DATA INTO THE OUTPUT FILE FROM SYMBOL AT LOCATION */ /* 'SY' EACH BYTE VALUE IS WRITTEN AS A PAIR OF BASE 32 DIGITS. */ /* THE HIGH ORDER BIT OF THE FIRST DIGIT IS 1, AND ALL REMAINING HIGH */ /* ORDER DIGITS ARE ZERO. THE VALUE RETURNED BY WRDATA IS THE TOTAL */ /* NUMBER OF BYTES WRITTEN. */ /* GLOBAL TABLES */ nbytes = 0; j = abs(*sy); /* CHECK PRECISION OF VALUE */ k = sym_1.symbol[j]; /* SET DFLAG TO TRUE IF WE ARE DUMPING A VARIABLE OR LABEL NAME */ l = right_(&k, &c__4); dflag = l == types_1.label || l == types_1.varb || l == types_1.proc; i__1 = shr_(&k, &c__4); l = right_(&i__1, &c__4); if (l > 2 || dflag) { goto L400; } /* SINGLE OR DOUBLE BYTE CONSTANT */ kp = shr_(&k, &c__8); k = 16; nbytes = l; L200: if (l <= 0) { goto L9999; } /* PROCESS NEXT BYTE */ --l; i__2 = l << 3; i__1 = shr_(&kp, &i__2); n = right_(&i__1, &c__8); if (*sy < 0) { goto L350; } /* N IS THEN WRITTEN IN TWO PARTS */ for (i__ = 1; i__ <= 2; ++i__) { i__2 = 2 - i__ << 2; i__1 = shr_(&n, &i__2); k = right_(&i__1, &c__4) + k + 2; pad_(&c__1, &k, &c__1); /* L300: */ k = 0; } goto L200; /* OTHERWISE EMIT DATA INLINE */ L350: emit_(&n, &opcod_1.lit); goto L200; /* WRITE OUT STRING DATA */ L400: i__2 = (i__1 = sym_1.symbol[j - 1], abs(i__1)); l = right_(&i__2, &c__12); ++j; k = 16; n = -1; np = (syntax_1.pack - 1) * 6; lp = 1; L500: if (lp > l) { goto L9999; } if (n >= 0) { goto L600; } n = np; ++j; m = sym_1.symbol[j - 1]; L600: ++nbytes; i__1 = shr_(&m, &n); kp = right_(&i__1, &c__6) + 1; if (dflag) { goto L900; } kp = asc_1.ascii[kp - 1]; /* WRITE OUT BOTH HEX VALUES */ if (*sy < 0) { goto L800; } for (ip = 1; ip <= 2; ++ip) { i__2 = 2 - ip << 2; i__1 = shr_(&kp, &i__2); k = right_(&i__1, &c__4) + k + 2; pad_(&c__1, &k, &c__1); /* L700: */ k = 0; } L710: n += -6; ++lp; goto L500; /* EMIT STRING DATA INLINE */ L800: emit_(&kp, &opcod_1.lit); goto L710; /* WRITE OUT THE VARIABLE OR LABEL NAME */ L900: pad_(&c__1, &kp, &c__1); goto L710; L9999: ret_val = nbytes; return ret_val; } /* wrdata_ */ /* Subroutine */ int dumpch_(void) { /* System generated locals */ integer i__1; /* Local variables */ static integer i__, j, k, l, m, kq, kt; extern /* Subroutine */ int pad_(integer *, integer *, integer *); extern integer shr_(integer *, integer *), wrdata_(integer *); extern /* Subroutine */ int writel_(integer *); /* DUMP THE SYMBOLIC NAMES FOR THE SIMULATOR */ writel_(&c__0); kt = cntrl_1.contrl[25]; cntrl_1.contrl[25] = cntrl_1.contrl[31]; kq = cntrl_1.contrl[33]; cntrl_1.contrl[33] = cntrl_1.contrl[32]; k = 0; i__ = 2; if (sym_1.symbol[1] == 0) { i__ = 0; } pad_(&c__1, &c__41, &c__1); L200: if (i__ == 0) { goto L1000; } ++k; j = sym_1.symbol[i__ + 1]; if (j < 0) { goto L400; } j %= 16; if (j != types_1.label && j != types_1.varb && j != types_1.proc) { goto L400; } /* CHECK FOR NO CHARACTERS */ j = (i__1 = sym_1.symbol[i__], abs(i__1)); /* CHECK FOR NO WORDS ALLOCATED */ if (shr_(&j, &c__12) == 0) { goto L400; } /* WRITE SYMBOL NUMBER */ m = k; for (l = 1; l <= 3; ++l) { i__1 = m % 32 + 2; pad_(&c__1, &i__1, &c__1); m /= 32; /* L300: */ } /* NOW WRITE THE STRING */ i__1 = i__ + 1; m = wrdata_(&i__1); pad_(&c__1, &c__41, &c__1); L400: i__ = sym_1.symbol[i__ - 1]; goto L200; L1000: pad_(&c__1, &c__41, &c__1); writel_(&c__0); cntrl_1.contrl[25] = kt; cntrl_1.contrl[33] = kq; return 0; } /* dumpch_ */ /* Subroutine */ int synth_(integer *prod, integer *symm) { /* System generated locals */ integer i__1, i__2; /* Local variables */ static integer i__, j, k, l, m, n, ip, kp; extern integer shl_(integer *, integer *), shr_(integer *, integer *); extern /* Subroutine */ int emit_(integer *, integer *); extern integer right_(integer *, integer *), enter_(integer *); extern /* Subroutine */ int redpr_(integer *, integer *), exitb_(void), error_(integer *, integer *); static integer ltemp; extern /* Subroutine */ int enterb_(void); extern integer wrdata_(integer *), lookup_(integer *); /* MP == LEFT , SP == RIGHT */ /* GLOBAL TABLES */ if (cntrl_1.contrl[11] != 0) { redpr_(prod, symm); } /* 1 1 2 3 4 5 6 7 8 9 10 */ /* 2 11 12 13 14 15 16 17 18 19 20 */ /* 3 21 22 23 24 25 26 27 28 29 30 */ /* 4 31 32 33 34 35 36 37 38 39 40 */ /* 5 41 42 43 44 45 46 47 48 49 50 */ /* 6 51 52 53 54 55 56 57 58 59 60 */ /* 7 61 62 63 64 65 66 67 68 69 70 */ /* 8 71 72 73 74 75 76 77 78 79 80 */ /* 9 81 82 83 84 85 86 87 88 89 90 */ /* A 91 92 93 94 95 96 97 98 99 100 */ /* B 101 102 103 104 105 106 107 108 109 110 */ /* C 111 112 113 114 115 116 117 118 119 120 */ /* D 121 122 123 124 125 126 127 128 129 130 */ switch (*prod) { case 1: goto L100; case 2: goto L99999; case 3: goto L99999; case 4: goto L99999; case 5: goto L99999; case 6: goto L600; case 7: goto L99999; case 8: goto L800; case 9: goto L99999; case 10: goto L99999; case 11: goto L99999; case 12: goto L800; case 13: goto L1300; case 14: goto L1340; case 15: goto L1360; case 16: goto L99999; case 17: goto L99999; case 18: goto L1500; case 19: goto L1600; case 20: goto L99999; case 21: goto L1800; case 22: goto L1900; case 23: goto L2000; case 24: goto L2100; case 25: goto L2200; case 26: goto L2300; case 27: goto L2400; case 28: goto L2500; case 29: goto L2600; case 30: goto L2700; case 31: goto L2800; case 32: goto L2900; case 33: goto L99999; case 34: goto L3100; case 35: goto L3200; case 36: goto L3300; case 37: goto L3400; case 38: goto L3500; case 39: goto L3540; case 40: goto L3600; case 41: goto L3700; case 42: goto L3800; case 43: goto L3700; case 44: goto L4000; case 45: goto L4100; case 46: goto L4200; case 47: goto L4300; case 48: goto L4350; case 49: goto L4400; case 50: goto L4500; case 51: goto L4600; case 52: goto L4700; case 53: goto L5000; case 54: goto L99999; case 55: goto L99999; case 56: goto L99999; case 57: goto L99999; case 58: goto L99999; case 59: goto L5300; case 60: goto L5600; case 61: goto L5610; case 62: goto L5620; case 63: goto L5610; case 64: goto L5400; case 65: goto L5500; case 66: goto L99999; case 67: goto L5700; case 68: goto L5800; case 69: goto L5900; case 70: goto L99999; case 71: goto L6100; case 72: goto L6400; case 73: goto L6300; case 74: goto L6400; case 75: goto L6500; case 76: goto L6600; case 77: goto L6500; case 78: goto L6800; case 79: goto L6900; case 80: goto L6800; case 81: goto L7100; case 82: goto L7100; case 83: goto L99999; case 84: goto L99999; case 85: goto L99999; case 86: goto L7500; case 87: goto L99999; case 88: goto L7600; case 89: goto L7700; case 90: goto L99999; case 91: goto L7900; case 92: goto L99999; case 93: goto L8100; case 94: goto L99999; case 95: goto L8300; case 96: goto L8400; case 97: goto L8400; case 98: goto L8400; case 99: goto L8400; case 100: goto L8400; case 101: goto L8400; case 102: goto L99999; case 103: goto L9300; case 104: goto L9300; case 105: goto L9300; case 106: goto L9300; case 107: goto L9400; case 108: goto L99999; case 109: goto L10000; case 110: goto L10000; case 111: goto L10000; case 112: goto L10300; case 113: goto L10310; case 114: goto L10320; case 115: goto L10400; case 116: goto L10500; case 117: goto L99999; case 118: goto L10550; case 119: goto L10560; case 120: goto L10600; case 121: goto L10700; case 122: goto L10800; case 123: goto L10900; case 124: goto L11000; case 125: goto L11100; case 126: goto L11200; case 127: goto L11300; case 128: goto L11400; } /* P R O D U C T I O N S */ /* ::= */ /* ::= */ L100: if (stacks_1.mp != 5) { error_(&c__10, &c__1); } stacks_1.compil = FALSE_; exitb_(); goto L99999; /* ::= */ /* ::= */ /* ::= */ /* ::= ; */ L600: if (sym_1.acnt <= 0) { goto L630; } ltemp = sym_1.maxsym - sym_1.acnt; i__ = sym_1.symbol[ltemp - 1]; --sym_1.acnt; if (i__ > 0) { goto L610; } emit_(&opcod_1.xch, &opcod_1.opr); goto L620; L610: j = sym_1.symbol[i__ - 2]; i__1 = shr_(&j, &c__16); emit_(&i__1, &opcod_1.adr); L620: if (sym_1.acnt > 0) { emit_(&opcod_1.sto, &opcod_1.opr); } goto L600; L630: i__ = opcod_1.std; goto L88888; /* ::= ; */ /* ::= ; */ L800: i__ = blk_1.dopar[blk_1.curblk - 1]; i__ = right_(&i__, &c__2); if (i__ == 0) { goto L99999; } error_(&c__11, &c__1); goto L99999; /* ::= ; */ /* ::= ; */ /* ::= ; */ /* ::= ; */ /* ::= HALT */ L1300: i__ = opcod_1.hal; goto L88888; /* ::= ENABLE; */ L1340: i__ = opcod_1.ena; goto L88888; /* ::= DISABLE; */ L1360: i__ = opcod_1.dis; goto L88888; /* ::= ; */ /* ::=