35 D(NAME) D(ICONST) D(CONST) D(ONAME) D(N) D(S) D(TEXT) D(BIGHOLE) D(N255) D(HOLE) D(MARK) D(READLINE?) D(CHKIMPS) D(DUMMYAPP) D(DOWN) D(UP) D(LISTON) D(LISTOFF) D(COLON) D(NOTECONST) D(TRACE) D(SETNEM) D(PRIMFORM) D(SECNFORM) D(TERTFORM) D(OP) D(CHUI) D(+') D(CHTYPE2) D(,') D(CHTYPE) D(CHCOMP) D(ASSOP) D(NOTESTART) D(NOTEFINISH) D(PLUS') D(OPERAND) D(COPERAND) D(APP) D(%IU) D(%WU) D(BTYPE) D(TYPE) D(NLIST') D(ADECLN) D(RESTOFARRAYLIST) D(RESTOFFPLIST) D(RESTOFUI) D(%SPEC') D(RESTOFNLIST) D(RESTOFSWLIST) D(RESTOFBPLIST) D(RESTOFEXPR) D(RESTOFCEXPR) D(RESTOFCOND) D(RESTOFANDC) D(RESTOFORC) D(RESTOFSC) D(RT) D(FM) D(DECLN) D(%FORMAT') D(AUI) D(RESTOFIU) D(RESTOFWU) D(OPEXPR) D(ENDLIST) D(RSTMNT) D(%EVENT') D(%ARRAY') D(%NAME') D(%QNAME') D(FPP) D(FMQNAME) D(FPDEL) D(SC) D(COMP) D(RESTOFSS1) D(RESTOFREPEAT) D(ELSE') D(RESTOFUCS) D(UCI) D(RESTOFUCI) D(PRIMOP) D(TERTOP) D(INDIRECTABLE) D(=') D(REG) D(DRORN) D(NN) D(OPTINC) D(OPTMOD) D(ENAME'') D(ENAME') D(BPAIR) D(%LN) D(CONST') D(%SEX) D(RESTOFRFDECLN) D(RESTOFAINRDEC) D(RFDEC) D(CYCPARM) D(OWNSTMT) D(CONSTLIST) D(ROCL) D(REPFACT) D(RESTOFAPP) D(EXPR) D(CEXPR) D(XOWN) D(OWNDEC) D(RESTOFOWNDEC) D(UI) D(SS) P(PLUS') ='+','-',0; P(OPERAND) =(NAME)(APP)(ENAME'),(CONST)(NOTECONST), '('(EXPR)')'; P(COPERAND) =(NAME)(DUMMYAPP),(CONST),'('(CEXPR)')'; P(CEXPR) =(HOLE)(+')(COPERAND)(MARK)(RESTOFCEXPR); P(EXPR) =(HOLE)(+')(OPERAND)(MARK)(RESTOFEXPR); P(RESTOFEXPR) =(OP)(OPERAND)*,0; P(RESTOFCEXPR) =(OP)(COPERAND)*,0; P(APP) ='('(EXPR)(RESTOFAPP)')',0; P(RESTOFAPP) =','(EXPR)*,0; P(%IU) ='%IF','%UNLESS'; P(%WU) ='%WHILE','%UNTIL'; P(NLIST') =','(NAME)*,0; P(BTYPE) ='%REAL','%INTEGER','%LONGREAL'; P(TYPE) ='%INTEGER','%REAL', '%LONG'(BTYPE), '%BYTEINTEGER', '%STRING'(RESTOFUCS), '%HALFINTEGER'; P(RT) ='%ROUTINE',(CHTYPE2)(TYPE)(FM); P(FM) ='%FN','%MAP'; P(FMQNAME) =(FM)(%NAME'),(%QNAME'); P(FPDEL) =(TYPE)(FMQNAME), '%RECORD'(%ARRAY')'%NAME', '%ROUTINE'(%NAME'), '%NAME'; P(%ARRAY') ='%ARRAY',0; P(%NAME') ='%NAME',0; P(%QNAME') = '%ARRAYNAME','%NAME',0; P(FPP) ='('(FPDEL)(NAME)(NLIST')(RESTOFFPLIST)')',0; P(RESTOFFPLIST)=(,')(FPDEL)(NAME)(NLIST')*,0; P(ENDLIST) ='%OFPROGRAM'(UP),'%OFFILE','%OFLIST'(LISTOFF),(UP); P(%FORMAT') ='%FORMAT',0; P(RSTMNT) ='%FORMAT'(NAME)'('(RFDEC)(RESTOFRFDECLN)')', '%SPEC'(HOLE)(NAME)(ENAME'')(MARK)'('(NAME)')', (HOLE)(DECLN)(MARK)'('(NAME)')'; P(SC) =(EXPR)(COMP)(EXPR)(RESTOFSC), '('(SC)(RESTOFCOND)')'; P(RESTOFSC) =(CHCOMP)(COMP)(EXPR),0; P(RESTOFCOND) ='%AND'(SC)(RESTOFANDC),'%OR'(SC)(RESTOFORC),0; P(RESTOFANDC) ='%AND'(SC)*,0; P(RESTOFORC) ='%OR'(SC)*,0; P(RESTOFUI) =(ASSOP)(EXPR),':',0; P(%SPEC') ='%SPEC'(BIGHOLE),(DOWN); P(%LN) ='%LONG','%NORMAL'; P(RESTOFBPLIST)=','(EXPR)':'(EXPR)(RESTOFBPLIST),0; P(DECLN) =(%QNAME')(NAME)(NLIST'),'%ARRAY'(%FORMAT')(ADECLN); P(ADECLN) =(NAME)(NLIST')(BPAIR)(RESTOFARRAYLIST); P(RESTOFARRAYLIST)=','(ADECLN),0; P(OWNDEC) =(%QNAME')(HOLE)(NAME)(NLIST')(CONST') (MARK)(RESTOFOWNDEC)(S), '%ARRAY'(%FORMAT')(NAME)(BPAIR)(CONSTLIST) ; P(RESTOFOWNDEC)=','(HOLE)(NAME)(NLIST')(CONST')(MARK)(RESTOFOWNDEC),0; P(XOWN) ='%OWN','%EXTERNAL','%EXTRINSIC','%CONST'; P(OWNSTMT) =(TYPE)(OWNDEC),'%RECORD'(%QNAME')(HOLE) (NAME)(NLIST')(MARK)'('(NAME)')'(S), '%RECORD' '%ARRAY'(%FORMAT')(HOLE)(NAME)(BPAIR)(MARK) '('(NAME)')'(S); P(CONSTLIST) ='='(+')(COPERAND)(RESTOFCEXPR)(REPFACT)(ROCL),0; P(ROCL) =','(READLINE?)(+')(COPERAND)(RESTOFCEXPR)(REPFACT)*,0; P(REPFACT) ='('(+')(COPERAND)(RESTOFCEXPR)')',0; P(RESTOFNLIST) =','(N255)*,0; P(%EVENT') ='%EVENT',0; P(OPEXPR) =','(EXPR),0; P(RESTOFSWLIST)=','(NAME)(NLIST')'('(EXPR)':'(EXPR)')'*,0; P(COMP) ='=','>=','>','#','<=','<','\=','->'; P(RESTOFREPEAT)='%UNTIL'(SC)(RESTOFCOND),0; P(RESTOFSS1) =(COLON),(S),(%IU)(SC)(RESTOFCOND)(S), (%WU)(SC)(RESTOFCOND)(S); P(RESTOFIU) ='%START'(NOTESTART),'%THENSTART'(NOTESTART), '%THEN'(HOLE)(UI)(MARK)(ELSE'); P(RESTOFWU) ='%CYCLE','%THENCYCLE','%THEN'(UI); P(AUI) ='%AND'(UI),0; P(ELSE') ='%ELSESTART'(NOTESTART),'%ELSE'(UI),0; P(ENAME'') ='_'(NAME),0; P(ENAME') ='_'(NAME)(APP)(ENAME'),0; P(BPAIR) ='('(EXPR)':'(EXPR)(RESTOFBPLIST)')'; P(CONST') ='='(+')(COPERAND)(RESTOFCEXPR),0; P(%SEX) ='%SYSTEM'(CHKIMPS),'%EXTERNAL','%DYNAMIC',0; P(CYCPARM) =(NAME)'='(EXPR)','(EXPR)','(EXPR),0; P(RESTOFRFDECLN)=','(RFDEC)*,0; P(RFDEC) =(TYPE)(%QNAME')(NAME)(NLIST'), (TYPE)'%ARRAY'(NAME)(NLIST')(BPAIR)(RESTOFAINRDEC), '%RECORD'(%ARRAY')'%NAME'(NAME)(NLIST'), '%RECORD'(HOLE)(NAME)(NLIST')(MARK)'('(NAME)')', '%RECORD' '%ARRAY' (HOLE) (NAME)(NLIST') (BPAIR) (RESTOFAINRDEC) (MARK) '('(NAME)')'; P(RESTOFAINRDEC)=','(NAME)(NLIST')(BPAIR)*,0; P(RESTOFUCS) ='('(N255)')',0; P(UCI) ='*='(NAME),'*'(NAME),'PUT_'(ICONST),(SETNEM)(RESTOFUCI), 'CNOP_'(N255)','(N255); P(RESTOFUCI) =(PRIMFORM)(PRIMOP),(SECNFORM)'%L='(DRORN)(NN), (TERTFORM)(N)','(TERTOP); P(PRIMOP) ='<'(NAME)'>',(INDIRECTABLE), '('(INDIRECTABLE)(OPTMOD)')', '(%DR+'(INDIRECTABLE)')', '(''%DR'(OPTMOD)')','%B'; P(TERTOP) ='<'(NAME)'>',(INDIRECTABLE),'(''%DR'(OPTMOD)')', '(%DR+'(N)')'; P(DRORN) ='%DR',(N); P(NN) =','(N)','(N),0; P(OPTINC) ='+'(N),'-'(N),0; P(OPTMOD) ='+' '%B',0; P(=') ='=',0; P(INDIRECTABLE)=(=')(PLUS')(CONST), (NAME)(OPTINC),'('(REG)(OPTINC)')','%TOS'; P(REG) ='%LNB','%XNB','%PC','%CTB'; P(UI) =(HOLE)(NAME)(APP)(ENAME')(MARK)(RESTOFUI)(AUI), '->'(NAME)(APP), '%RETURN', '%RESULT'(ASSOP)(EXPR), '%MONITOR'(AUI), '%STOP', '%SIGNAL'(%EVENT')(N255)(OPEXPR), '%EXIT', '%CONTINUE'; P(SS) =(CHUI)(HOLE)(UI)(MARK)(RESTOFSS1), (TEXT), (%IU)(HOLE)(SC)(RESTOFCOND)(MARK)(RESTOFIU)(S), '%FINISH'(NOTEFINISH)(ELSE')(S), '%CYCLE'(CYCPARM)(S), '%REPEAT'(RESTOFREPEAT)(S), (%WU)(HOLE)(SC)(RESTOFCOND)(MARK)(RESTOFWU)(S), (CHTYPE)(BIGHOLE)(TYPE)(DECLN)(S), '%END'(ENDLIST)(S), '%RECORD'(RSTMNT)(S), (HOLE)(%SEX)(RT)(MARK)(%SPEC')(NAME)(FPP)(S), (XOWN)(OWNSTMT), '%REALS'(%LN)(S), '%BEGIN'(DOWN)(S), '%ON'(TRACE)(%EVENT')(N255)(RESTOFNLIST)'%START' (NOTESTART)(S), '%SWITCH'(NAME)(NLIST')'('(EXPR)':'(EXPR)')' (RESTOFSWLIST)(S), '%LIST'(S)(LISTON), '%SPEC'(NAME)(FPP)(S), '%SPECIAL''%NAME'(NAME)(S), '*'(UCI)(S), '%TRUSTEDPROGRAM'(S), '%MAINEP'(NAME)(S), '%CONTROL'(CONST)(S), (S); E