& PL-516 COMPILER, REQUIRES A PRE- DECLARATION
& FOR "START" AND "BASE" OF THE FORM
& .COMPCONST START = '24000, BASE = '540;
& ON A SEPARATE TAPE
.GLOBAL '775;
.CONSTANT PERMANENTDECLARATIONS = -69;
.FORWARD .PROCEDURE
SDEBUG,
ADEBUG;
.GLOBAL BASE;
.COMPCONST &FAILURE MESSAGES
ARRTWICE ='401,
BADEXCHANGE = '464,
BADRANGE = '463,
BADSTART = '402,
BADGOTO = '403,
BADSUBSCRIPT = '404,
DIFFPROCTYPE = '405,
DECTWICE = '406,
ENDMISSING = '407,
FCONDITION = '410,
FORNOTINT = '411,
FORDARRNOTMET = '100412,
FORWPROCNOTMET = '100413,
FFINISH = '414,
GLNOTMET = '100415,
GLOB2LABEL = '416,
INVMCODE = '417,
INVLHS = '420,
LOCNEXTSEC = '421,
LOCORGDEC = '422,
LHSTYPE = '423,
LABELNOTMET = '100424,
LOC2LABEL = '425,
NOTCONST = '426,
NESTLATER = '427,
NULLSTRING = '430,
NOBEGIN = '431,
NOTAPROC = '432,
NESTEDPROC = '433,
OVERSECTOR = '435,
PTRNOTINT = '436,
PDECTWICE = '437,
PTRNINT = '440,
SWELNOTLABEL = '441,
SECOFLO = '443,
SETNARRAY = '444,
TOOMANYVALUES = '445,
WRONGTYPE = '446,
NOTALETTER = '447,
FCOMPSYMBOL = '450,
BADEXIT = '451,
STFULL = '452,
IDNOTDEC = '453,
CELLTYPE = '454,
NONNUMERIC = '455,
POOLTOOBIG = '456,
GETWRONGTYPE = '457,
CORRUPTINDEX = '460,
TOOMUCHLHS = '461,
RHSLABEL = '462;
.INTEGER
ADD,
ADDBS,
ALLOWSPACE,
ARRTYPE,
BS,
CPPT,
CLEVEL,
CHAR1,
CYCLE,
DECPOINTER,
ERRORS,
EXPLICITCONST,
FJADD,
GA,
GETMARKER,
I,
INST,
ID,
IDFLAG,
IDENT1,
IDENT2,
INDEVICE,
INVERT,
J,
K,
KEPT,
LA,
LEVEL,
LSTART,
LHSPT,
LINEPOINTER,
LISTNO,
LOCDP,
MAXWORK,
NSTART,
OPCOUNT,
OUTCODE,
POS,
PROCPOSITION,
RETAIN,
SIZE,
TYPEFIRST,
STATELHS,
STMARK,
STACKPOINTER,
WORKING,
WORKFLAG,
TEMPVALUE,
TESTSTART,
TYPE,
TAB,
VALUE,
VADD;
.GLOBAL .GLOBAL;
& MARKER
.FORWARD .PROCEDURE
ARRAYVALUES,
ASSIGNMENTSTATEMENT,
CELL,
CLEARPOOL,
CLEARWORKSPACE,
CODESTATEMENT,
COMPSTATEMENT,
CONDITION,
CONSTANT,
CONSTEXPRESSION,
DECTEST,
CONSIMPLE,
DECLARATIONS,
ENTER,
EXPRESSION,
GENMACRO,
GETADD,
GLOBCOLLAPSE,
IDENTIFIER,
IDNBS,
IFSTATEMENT,
INCHAR,
LEAVE,
LHS,
LOCAL,
LOCALCOLLAPSE,
MAKECONST,
MAKEDEC,
MAKELABEL,
MAKEWORD,
NBS,
NEWLINE,
NOTDECLAREDCHECK,
NUMBER,
PRINTIDENT,
PRINTNAMELISTENTRY,
PROCCALL,
READLINE,
SETFJADD,
SETIDENT,
SETKWITHPROCTYPE,
SETWORD,
STATEMENT,
SUBSCRIPT,
TERM,
TYPEIDENT,
UNSTACK,
WORKAREA,
XASSIGNMENTSTATEMENT;
.FORWARD @
.PROCEDURE
BACKPLUG,
DAPDECODE,
DAPPRINT,
FAIL,
FAILIFNOT,
GENWORD,
GENERATE,
GETCODE,
GENVADDINST,
LHSPUT,
OCTAL3,
OUTSIX,
OUT1,
OUT2,
OUT3X,
PLUGJUMP,
PUTARRAYVALUE,
PUTADD,
STACK;
.FORWARD .CONDITIONAL .PROCEDURE BSCOMMA;
.FORWARD @
.CONDITIONAL .PROCEDURE
BASIC,
BSIS;
.FORWARD .CONDITIONAL .PROCEDURE
DIGIT,
IDSYMBOL,
LOCLEVEL,
LETTER,
NUMERICAL;
.COMPCONST
ADDSYMBOL = '140,
ADDINSTRUCTION = '14000,
ANDSYMBOL = '170,
ARRAYSYMBOL = '110,
ACSYMBOL = '300,
ARRAY = 5,
ACCOND = -41,
ASYMBOL = '301,
BECOMES = '137,
BEGINSYMBOL = '141,
BINARY = -28,
BLOCKSYMBOL = '133,
BSCOUNT = -289,
BREGISTER = '100,
CAS = '22000,
CASESYMBOL = '101,
CODESYMBOL = '245,
COMMASYMBOL = '254,
CODEWORDSYMBOL = '142,
CHARSYMBOL = '244,
CONST = 2,
COMPCONST = 4,
CONSTSYMBOL = '113,
CCONSTSYMBOL = '111,
CONDSYMBOL = '112,
CRSYMBOL = '215,
COND = -71,
COMPCHAR = '256,
COMMENT = '246,
COLONSYMBOL = '272,
CPOOLSIZE = -140,
CRA = '140040,
DBLSYMBOL = '132,
DOSYMBOL = '143,
DOUBLEQUOTES = '242,
DCONSTANT = '226,
DDCONSTANT = '240,
DUMPSYMBOL = '163,
EMSYMBOL = '156,
ELSEACCSYMBOL = '105,
EOMSYMBOL = '203,
ENDBLOCKSYMBOL = '134,
ENDSYMBOL = '145,
EQUALSSYMBOL = '275,
ELSESYMBOL = '144,
EXCLAIMSYMBOL = '241,
EXITFALSE = '146,
EXITTRUE = '147,
EXITSYMBOL = '157,
FLAGSYMBOL = '37,
FILESYMBOL = '135,
FORSYMBOL = '155,
FORWARDSYMBOL = '114,
FIVESYMBOL = '265,
GETSYMBOL = '162,
GLOBALSYMBOL = '115,
GOTOSYMBOL = '150,
HLT = 0,
IAB = '201,
IMA = '26000,
IFSYMBOL = '151,
INTSYMBOL = '116,
INT = 1,
JSTI = '120000,
LABRACKET = '274,
LATERSYMBOL = '120,
LABELSYMBOL = '117,
LABEL = 6,
LINESIZE = -80,
LISTSYMBOL = '121,
LCONSTANT = '300,
LHSINDEX = -20,
LDX = '72000,
LDXI = '172000,
LDA = '4000,
LSBSYMBOL = '333,
MCODESIZE = -176,
MINUSSYMBOL = '255,
NEXTSECTORSYMBOL = '122,
NINESYMBOL = '271,
NOP = '101000,
NOFBASICS = -23,
NUMOFTYPES = -20,
OFSYMBOL = '102,
ORSYMBOL = '167,
ONEBS = '77,
ORIGINSYMBOL = '123,
ONESYMBOL = '261,
OCTALSYMBOL = '247,
PLUSSYMBOL = '253,
PAPERTAPE = '136,
PROCSYMBOL = '124,
PROC = '10,
RELOP = -54,
RABRACKET = '276,
RANGESYMBOL = '165,
REPEATSYMBOL = '164,
RSBSYMBOL = '335,
SBUGSYMBOL = '76,
SEMICOLONSYMBOL = '273,
STEPSYMBOL = '103,
STEPDOWNSYMBOL = '104,
SWITCHSYMBOL = '127,
SWTCH = 3,
STRINGSYMBOL = '126,
SETSYMBOL = '125,
SHIFT = -133,
SEVENSYMBOL = '267,
SKP = '100000,
STACKHEIGHT = -60,
STX1 = '032001,
TABLE = 7,
THENSYMBOL = '152,
TABLESYMBOL = '130,
TOSYMBOL = '166,
TRIANGLE = '131,
UNARY = -108,
UNTILSYMBOL = '160,
UNLESSSYMBOL = '161,
WHENSYMBOL = '153,
WHILEX = '154,
WORKSIZE = -15,
WAYS OF BEGINNING = -8,
XSYMBOL = '243,
ZEROSYMBOL = '260,
ZEROIZE = '75,
ZSYMBOL = '332;
.CONSTANT
CYCLESIZE = -20,
IRS = '24000,
JMPSO = '3000,
JMPI = '102000,
LRBSYMBOL = '250,
RRBSYMBOL = '251,
STARSYMBOL = '252,
SPACE = '240,
STA = '10000,
STI = '110000;
.LABEL
ESCAPE;
.ARRAY
CODE[0],
BASICS .LATER,
TYPES .LATER,
TERMTYPES .LATER,
WORKSPACE .LATER,
CPOOL .LATER,
LHSINST .LATER,
LINE .LATER,
ST .LATER,
TRACE .LATER,
MCODE .LATER,
OPTABLE .LATER,
COMPLIST .LATER;