* * PHRASE STRUCTURE DEFINITOIN OF ARTHUR * * DEFINE BUILT-IN PHRASES * B[CONSTANT]=3 B[NAME]=4 B[NAMELIST]=5 B[SPDEFN']=6 B[TEXT]=7 B[SEPERATOR]=8 B[CONSTANT LIST]=9 * * DEFINE NAMED LITERAL VALUES * L = 0 L = 1 L = 0 * * DEFINE COMPOUND BUILT-IN PHRASES * D[OLD NAME]=[NAME=1] D[OLD NAME LIST] = [NAMELIST=1] * * THE FIRST PHRASE IS THE DEFAULT ENTRY POINT * P(STAT) (SS) [SEPERATOR]; P(SS) <15>(LABEL)':'(SS): <2> (LOCATION) (ASSOP) (EXPRN) (AND'): <1> [OLD NAME] (ACTP'): <3> (CONTROL TRANSFER) (OPTIONAL CONDITION'): '%WAIT' <4> (WHILE-UNTIL) <0> (GPAREG NAME) (BITDEF'): * WAS FLAGNAME - RESTRICTION NEEDED THIS CHANGE. <5> (FLAG OPERATION) [OLD NAMELIST] (AND'): <6> (TYPE) [NAMELIST]: <7> (ROM-MEMORY) [NAMELIST] (SIZE) (RMEM'): '%BREG' <24> [NAME] (PIN DEFINITION'): '%TREG' <8> [NAME] (PIN DEFINITION'): '%SPM' <9> [NAME] [SPDEFN']: * '%CGEN' <19> [NAME] '=' [CONSTANT LIST]: '%DEFINE' <10> (EQITEM) (RDEFINE'): '%ROUTINE' <11> [NAME]: '%END' <12> (FILE'): * '%MACRO' <13> [NAME] (MACRO PARAMETERS'): '%BRANCH' <14> [NAME] '(' (LEVEL) ',' (LEVEL) ',' (LEVEL) ')': '%BREAKPOINT' <16> [NAME]: * '%EXTERNAL' [NAME LIST]: '%CONTROL' <18> [CONSTANT]: * '%MODULE' <20> [NAME]: '%CLEAR' '%BUS'<21>: '%NOP'<22>: '%REGFORMAT' <23> [NAME] '(' [CONSTANT] (PINLIST') ')': '%RADIX'<25>[CONSTANT]: '%ENABLE' <26> [OLD NAME](AND'): ; P(ASSOP) '<-': '='; P(PIN DEFINITION') '(' (DEF OR FORM) ')': ; P(DEF OR FORM) <1> [NAME]: <2> [CONSTANT] (PINLIST'); P(PINLIST') ',' [CONSTANT] (PINLIST'): ; P(ROM-MEMORY) '%MEMORY' <3>: '%ROM' <13>; P(TYPE) '%FLAG' <2>: '%GPINT' <9>: '%ININT' <10>: '%OUTINT' <11>: '%SINT' <12>: '%GPA' <1>; '%BUS'<25>: P(LOCATION) '[' <0> [OLD NAME] ']': <1> [OLD NAME] (FQUAL'): <2>'BUS'; P(FQUAL') '_' <1> (PREDECLARED NAME): '#' <2> [CONSTANT]: '<' <3> [CONSTANT] ':' [CONSTANT] '>': <0>; P(EXPRN) '('<16>(B-EXP) ')/2': <0>(B-EXP); P(B-EXP) <1> (PLUS) (GPAREG NAME) : <2> (GPAREG NAME) (OPERATION) : <3> [CONSTANT]: <4>(LOCATION); P(PLUS) '\' <3> : '2*' <5> : '1+' <6>; P(OPERATION) '*2' <5> : '+1' <6> : '-1' <7> : <0> (OPERATOR) (GPAREG NAME); P(OPERATOR) '+' <8> : '-' <9> : '&' <10> : '!!' <11> : '!' <12>; P(WHILE-UNTIL) '%WHILE' <1>: '%UNTIL' <2>; P(LEVEL) <0> (FLAGNAME): '%HIGH' <2>: '%LOW' <1>; P(GPAREG NAME) [OLD NAME] (ENAME'); P(ENAME') '_' <1> (PREDECLARED NAME): <0>; P(M FLAGS) 'OVF'<9>: 'DZ'<10>: 'DP'<12>: 'DN'<11>: 'BUS'<1>'<'[CONSTANT]'>'; P(FLAGNAME) <0>(GPAREG NAME) (BITDEF'): 'ZERO'<10>: 'POSITIVE'<12>: 'NEGATIVE'<11>: 'OVERFLOW'<9>: (M FLAGS); P(BITDEF') '<' <1> [CONSTANT] '>': <0>; P(FLAG OPERATION) '%SET' <3>: '%CLEAR' <4>: '%COMPLEMENT' <5>; P(CONTROL TRANSFER) '->' <0> [NAME]: '%RETURN' <1>: '%STOP' <2> ; P(OPTIONAL CONDITION') (IF-UNLESS) (FLAGNAME): <0>; P(IF-UNLESS) '%IF' <1>: '%UNLESS' <2>; P(AND') '%AND' <1> (FLAG OPERATION) [OLD NAMELIST] (AND'): <0> ; P(SIZE) '(' [CONSTANT] (KB') ')'; P(KB') 'K' <1024> : 'B' <1> : <1>; P(RMEM') ',' [NAMELIST] (SIZE) (RMEM'): ; P(EQITEM) [NAME] '=' (DTYPE): [OLD NAME] '_' <4> (SI) '=' (LEVEL); P(DTYPE) * '*'<2> (HWNAME) '<' [CONSTANT] (RBIT) '>': <1><0>(GPA REG NAME)'<' <1> [CONSTANT] '>': <0>[OLD NAME](FQUAL'): 'BUS'<3>(BIT DEF'); P(SI) 'LSI' <0>: 'RSI' <1>; *P(HWNAME) * <28> 'SWITCH': * <29> 'DATA': * <30> 'LIGHT(' [CONSTANT] ')' ; P(RBIT) ':' [CONSTANT]: ; P(RDEFINE') ',' (EQITEM) (RDEFINE'): ; P(LABEL) [NAME](QUAL'); P(QUAL') '('<8>[CONSTANT]')': <14>; P(FILE') '%OFFILE' : ; P(ACTP') '(' [TEXT] (RTEXTLST') ')': ; P(RTEXTLST') ',' [TEXT] (RTEXTLST'): ; *P(MACRO PARAMETERS') * '(' [NAMELIST] ')': * ; P(PREDECLARED NAME) 'A' <18>: 'B' <19>: 'KF' <21>: 'PF' <22>: 'IN' <26>: 'OUT' <27>: 'OVERUN' <31>; @ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@