C"+" C"-" C"*" C"/" C"//" C"&" C"!" C">>" C"\" C"<<" C"**" C"(" C")" C"," C"?" C"!!" C":" C"." C"[" C"]" C"=" C">=" C">" C"#" C"<" C"<=" C"->" C"<-" C"\=" C"_" C"%IF" C"%UNLESS" C"%INTEGER" C"%REAL" C"%FN" C"%MAP" C"%NAME" C"%ROUTINE" C"%ARRAY" C"%AND" C"%OR" C"%PRINTTEXT'" C"%RESULT" C"ADDR(" C"%RETURN" C"%STOP" C"%THEN" C"%CYCLE" C"%REPEAT" C"%SPEC" C"%BEGIN" C"%COMMENT" C"%END" C"%PROGRAM" C"%SWITCH" C"%COMPILE" C"%QUERIES" C"%DEFINE" C"%R" C"%PERM" C"%MCODE" C"%OF" C"%FAULT" C"%MONITOR" C"%BYTE" C"%SHORT" C"%LONG" C"%ON" C"%OFF" C"%OWN" C"%PACK" C"%LIST" C"%ELSE" C"%START" C"%FINISH" C"%STRING" C"%RECORD" C"%FORMAT" C"`" C"J" C"SET" C"JS" C"EXIT" C"M" C"SH" C"Q" C"TOQ" C"C" C"I" C"R" C"NC" C"DC" C"LINK" C"H" C"ROUND" C"D" C"ERASE" C"REV" C"ZERO" C"DUP" C"NEG" C"ABS" C"MAX" C"SIGN" C"CAB" C"/I" C"X" C"=TR" C"BITS" C"DUMMY" C"PERM" C"OR" C"VR" C"NEV" C"NOT" C"STR" C"CONT" C"AND" C"OUT" C"S" C"NZ" C"Z" C"V" C"NV" C"EN" C"NEN" C"EJ" C"NEJ" C"TR" C"NTR" C"QHN" C"QH" C"QN" C"HN" C"N" C"A" C"L" C"CC" C"P" C"B" C"O" C"E" C"F" C"TLOQ" C"PARQ" C"BUSYQ" C"MANUALQ" C"ADVCA" C"PUT" D[NAME] D[SQBR] D[CONST] D[CONSTLIST] D[N] D[S] D[TEXT] D[TEXTTEXT] D[OCTAL] D[SETMARKER1] D[SETMARKER2] D[+'] D[OPERAND] D[APP] D[OP] D[QUERY'] D[,'] D[%IU] D[TYPE] D[RESTOFARRAYLIST] D[RESTOFFP-LIST] D[RESTOFEXPR-LIST] D[RESTOFUI] D[RESTOFNAMELIST] D[RESTOFNAMELIST'] D[%SPEC'] D[RESTOFSWITCHLIST] D[RESTOFBP-LIST] D[RESTOFEXPR] D[RESTOFCOND] D[RESTOFAND-C] D[RESTOFOR-C] D[RESTOFSC] D[RT] D[FM] D[LENGTH'] D[LABEL] D[COMS] D[ONOFF] D[ASSOP] D[%ARRAY'] D[%NAME'] D[FPP] D[FP-DELIMITER] D[SC] D[COMP] D[RESTOFSS1] D[SOMETHING] D[ENAME'] D[BPAIR] D[RESTOFRALIST] D[RDDELIMITER] D[RESTOFRDLIST] D[CMARK] D[UCI] D[J-INSTR] D[MS-INSTR] D[SH-INSTR] D[QS-INSTR] D[+] D[='] D[P'] D[QSTR] D[D'] D[COL'] D[IOM] D[ATOF] D[E-INSTR] D[CONST'] D[ELSE'] D[STR'] D[UI] D[SS] P[+']= "+","-","\",0; P[OPERAND]= [NAME][APP][ENAME'],[CONST],"("[+'][OPERAND][RESTOFEXPR]")", "!"[+'][OPERAND][RESTOFEXPR]"!"; P[RESTOFEXPR]= [OP][OPERAND][RESTOFEXPR],0; P[APP]= "("[+'][OPERAND][RESTOFEXPR][RESTOFEXPR-LIST]")",0; P[RESTOFEXPR-LIST]= ","[+'][OPERAND][RESTOFEXPR][RESTOFEXPR-LIST],0; P[OP]= "**","+","-","!!","!","*","//","/","&",">>","<<","."; P[QUERY']= "?",0; P[,']= ",",0; P[%IU]= "%IF","%UNLESS"; P[TYPE]= "%INTEGER","%STRING"; P[RT]= "%ROUTINE",[LENGTH'][TYPE][%ARRAY'][FM]; P[FM]= "%FN","%MAP"; P[LENGTH']="%BYTE","%SHORT","%LONG",0; P[FP-DELIMITER]= [RT],[LENGTH'][TYPE][%ARRAY'][%NAME'],[%ARRAY']"%NAME"; P[LABEL]= [N],[NAME]; P[COMS]="%COMPILE","%STOP"; P[ONOFF]="%ON","%OFF"; P[%ARRAY']="%ARRAY",0; P[%NAME']="%NAME",0; P[FPP]= "("[FP-DELIMITER][NAME][RESTOFNAMELIST'][RESTOFFP-LIST] ")",0; P[RESTOFFP-LIST]= [,'][FP-DELIMITER][NAME][RESTOFNAMELIST'][RESTOFFP-LIST],0; P[RESTOFNAMELIST]= ","[NAME][RESTOFNAMELIST],0; P[RESTOFNAMELIST']= ","[NAME][RESTOFNAMELIST'], "("[N]")"[RESTOFNAMELIST'],0; P[SC]= [+'][OPERAND][RESTOFEXPR][COMP][+'][OPERAND][RESTOFEXPR] [RESTOFSC], "("[SC][RESTOFCOND]")"; P[RESTOFSC]= [COMP][+'][OPERAND][RESTOFEXPR],0; P[RESTOFCOND]= "%AND"[SC][RESTOFAND-C],"%OR"[SC][RESTOFOR-C],0; P[RESTOFAND-C]= "%AND"[SC][RESTOFAND-C],0; P[RESTOFOR-C]= "%OR"[SC][RESTOFOR-C],0; P[RESTOFUI]= [ASSOP][+'][OPERAND][RESTOFEXPR][QUERY'],0; P[ASSOP]="=","<-","->"; P[%SPEC']= "%SPEC",0; P[RESTOFBP-LIST]= ","[+'][OPERAND][RESTOFEXPR]":"[+'][OPERAND][RESTOFEXPR] [RESTOFBP-LIST],0; P[RESTOFARRAYLIST]= ","[NAME][RESTOFNAMELIST]"("[+'][OPERAND][RESTOFEXPR] ":" [+'][OPERAND][RESTOFEXPR][RESTOFBP-LIST]")"[RESTOFARRAYLIST],0; P[RESTOFSWITCHLIST]= ","[NAME][RESTOFNAMELIST]"("[+'][CONST]":"[+'][CONST]")" [RESTOFSWITCHLIST],0; P[COMP]= "=",">=",">","#","<=","<","\=","->"; P[RESTOFSS1]= [S],[%IU][SC][RESTOFCOND][S]; P[SOMETHING]= "%PROGRAM","%PERM","%MCODE","%LIST","%PACK"; P[ENAME']= "_"[NAME][APP][ENAME'],0; P[BPAIR]= "("[+'][OPERAND][RESTOFEXPR]":"[+'][OPERAND][RESTOFEXPR]")"; P[RDDELIMITER]= "%STRING"[NAME][RESTOFNAMELIST'], [LENGTH']"%INTEGER""%ARRAY"[NAME][RESTOFNAMELIST][BPAIR] [RESTOFRALIST], [LENGTH'][TYPE][%ARRAY'][%NAME'][NAME][RESTOFNAMELIST]; P[RESTOFRDLIST]= ","[RDDELIMITER][RESTOFRDLIST],0; P[RESTOFRALIST]= ","[NAME][RESTOFNAMELIST][BPAIR][RESTOFRALIST],0; P[CMARK]="!","%COMMENT","%SHORT""%ROUTINE"; P[UCI]= "*""`"[NAME][APP][ENAME'],"*"[='][NAME][APP][ENAME'],"J"[N][P'][J-INSTR], "SET""B"[OCTAL],"SET"[+'][N][P'][COL'],"JS"[N][P'],"EXIT"[N], [=']"M"[N]"M"[N][MS-INSTR],"SH"[SH-INSTR], "=TR","ZERO", "ROUND","ERASE","ABS","MAX","SIGN","CAB","/I","BITS", "DUMMY","PERM","OR", "VR","NEV","NOT","STR","CONT","AND", "REV"[D'],"DUP"[D'],"NEG"[D'], "/"[D'],"+"[D'],"-"[D'],"X"[D'], "EXIT","OUT","="[QS-INSTR],[QSTR][N]"TOQ"[N],"I" [N]"="[+'][N],[QSTR][N],"NC"[N],"DC"[N],"LINK","M"[+]"I" [N],"P"[IOM][ATOF]"Q"[N],"TLOQ"[N],"PARQ"[N],"BUSYQ"[N], "MANUALQ"[N],"ADVCA"[N],[OCTAL]"/"[OCTAL]"/"[OCTAL],[=']"E" [N][E-INSTR],"JS""E"[N],"J""E"[N],"PUT"[OCTAL],0; P[J-INSTR]= "C"[N]"NZ""S","C"[N]"NZ","C"[N]"Z",[COMP]"Z","=","#", "V","NV","EN","NEN","EJ","NEJ","TR","NTR",0; P[MS-INSTR]= "QHN","QH","QN","Q","HN","H","N",0; P[SH-INSTR]= "A"[D'][+'][N],"L"[D'][+'][N],"C"[+'][N],"A"[D']"C"[N], "L"[D']"C"[N],"CC"[N]; P[QS-INSTR]= "LINK","R"[QSTR][N],[+'][QSTR][N]; P[+]= "+","-"; P[=']= "=",0; P[P']= "P",0; P[IOM]= "I","O","M"; P[ATOF]= "A","B","C","D","E","F"; P[E-INSTR]= "M"[N]"Q","M"[N],0; P[QSTR]="M","I","C","Q"; P[D']="D",0; P[COL']=":",0; P[CONST']= "="[+'][CONST],0; P[ELSE']="%ELSE"[UI],0; P[STR']="("[N]")",0; P[UI]= [NAME][APP][ENAME'][SETMARKER1][RESTOFUI], "->"[NAME]"("[+'][OPERAND][RESTOFEXPR]")", "->"[LABEL], "%PRINTTEXT'"[TEXTTEXT], "%RETURN", "%RESULT""=""ADDR("[NAME][APP][ENAME']")", "%RESULT"[ASSOP][+'][OPERAND][RESTOFEXPR], "%STOP", "%MONITOR""%STOP", "%MONITOR"[N], "%START"; P[SS]= [UI][SETMARKER2][RESTOFSS1], "%CYCLE"[NAME][APP][ENAME']"="[+'][OPERAND][RESTOFEXPR]","[+'] [OPERAND] [RESTOFEXPR]","[+'][OPERAND][RESTOFEXPR][S], "%REPEAT"[S], [LABEL]":", [%IU][SC][RESTOFCOND]"%THEN"[UI][ELSE'][S], [CMARK][TEXT], [LENGTH']"%INTEGER"[NAME][RESTOFNAMELIST][S], "%END"[S], [RT][%SPEC'][NAME][FPP][S], "%STRING"[NAME][RESTOFNAMELIST'][S], [LENGTH']"%INTEGER""%ARRAY"[NAME][RESTOFNAMELIST]"("[+'][OPERAND] [RESTOFEXPR]":" [+'][OPERAND][RESTOFEXPR][RESTOFBP-LIST]")"[RESTOFARRAYLIST] [S], "%BEGIN"[S], "%END""%OF"[SOMETHING][S], [NAME]"("[+'][CONST]")"":", "%SWITCH"[NAME][RESTOFNAMELIST]"("[+'][CONST]":" [+'][CONST] ")"[RESTOFSWITCHLIST][S], [COMS]"%QUERIES"[S], "%QUERIES"[ONOFF][S], "%OWN"[LENGTH'][TYPE][NAME][STR'][CONST'][S], "%OWN"[LENGTH'][TYPE]"%ARRAY"[NAME] "("[+'][CONST]":"[+'][CONST]")"[='][CONSTLIST], "%MCODE"[S], [N]"P"":", "*"[UCI][S], "%FAULT""->"[LABEL][S], "%RECORD""%FORMAT"[NAME]"("[RDDELIMITER][RESTOFRDLIST]")"[S], "%RECORD"[NAME][RESTOFNAMELIST][SETMARKER1]"("[NAME]")"[S], "%DEFINE""%COMPILE""%R"[S], "%SPEC"[NAME][FPP][S], "%RECORD""%ARRAY"[NAME][RESTOFNAMELIST][SETMARKER2] [BPAIR][SETMARKER1]"("[NAME]")"[S], "%LIST"[S], "%FINISH"[ELSE'][S], "%STRING""%ARRAY"[NAME][RESTOFNAMELIST] [SETMARKER2][BPAIR]"("[N]")"[S], [S]; E