OpPrecParse: CEDAR DEFINITIONS = BEGIN LORA: TYPE = LIST OF REF ANY; Parse: PROC [context: REF ANY, GetToken: TokenProc] RETURNS [ans: REF ANY]; TokenProc: TYPE = PROC [context: REF ANY, expectingArg: BOOLEAN] RETURNS [token: Token]; Reducer: TYPE = PROC [context: REF ANY, ops: TokenList, args: LORA] RETURNS [reduced: REF ANY]; Token: TYPE = RECORD [class: TokenClass, asArg: REF ANY _ NIL]; TokenClass: TYPE = REF TokenClassRep; TokenClassRep: TYPE = RECORD [ leftPrec, rightPrec: CARDINAL _ 0, --0 = don't want, >1 = want. Reduce: Reducer _ NIL, leftFix: Token _ [NIL, NIL] ]; end: Token; argClass: TokenClass; TokenList: TYPE = LIST OF Token; CantReduce: SIGNAL [ops: TokenList, args: LORA] RETURNS [use: REF ANY]; CantFix: SIGNAL [token: Token] RETURNS [fix: Token]; DoesntFix: ERROR [token: Token, expectingArg, willGetArg: BOOLEAN]; TerminateErr: ERROR [argStack: LORA, opStack: TokenList]; LastReduceErr: ERROR [args: LORA, ops: TokenList]; InvalidToken: ERROR [token: Token]; END. JOpPrecParse.Mesa Last Edited by: Spreitzer, March 4, 1983 11:17 am Κυ˜J™J™1J˜Icode˜KšΠbx œΟkœž œ˜ K˜Kšž˜K˜Kš žœžœžœžœžœžœ˜K˜šΟnœžœ žœžœžœžœžœ˜KK˜šŸ œžœžœ žœžœžœžœ˜XK˜KšŸœžœžœ žœžœžœžœ žœžœ˜_K˜Kš œžœžœžœžœžœ˜?K˜Kšœ žœžœ˜%šœžœžœ˜KšœžœΟc˜?Kšœžœ˜Kšœžœžœ˜Kšœ˜—K˜Kšœ ˜ Kšœ˜K˜Kšœ žœžœžœ˜ K˜—Kš œ žœžœžœžœžœ˜GK˜Kšœ žœžœ˜4K˜Kšœ žœ*žœ˜CK˜Kšœžœ žœ˜9K˜Kšœžœžœ˜2K˜Kšœžœ˜#—K˜Kšžœ˜—…—ς1