DIRECTORY Express, ExpressParser, ExpressProc, ExpressToken, ExpressTree, IO USING [RIS]; ExpressImpl: CEDAR PROGRAM IMPORTS ExpressParser, ExpressProc, ExpressToken, IO EXPORTS Express ~ { OPEN Express, EP: ExpressProc, ET: ExpressTree; XTree: TYPE ~ ET.XTree; FreeFcn: PUBLIC PROC [fcn: Fcn] ~ { EP.FreeProcedure[fcn]; }; RopeToFcn: PUBLIC PROC [expression: ROPE, symbols: Symbols, cProcs: ClientProcList _ NIL, oldFcn: Fcn _ NIL] RETURNS [fcn: Fcn] ~ { ts: ExpressToken.TokenStream _ ExpressToken.TokenStreamFromIOStream[IO.RIS[expression]]; exp: XTree _ ExpressParser.ParseExpression[ts, symbols, cProcs]; fcn _ LOOPHOLE[ExpressProc.GetProc[exp, oldFcn]]; }; }. ΖExpressImpl.mesa Express provides the client a way to evaluate an arithmetic expression given in a rope (generally from the user), typically faster than Interpreter or JaM, especially if the same function is used repeatedly. Created Thursday, June 28, 1984 10:25 am PDT Last edited by Eric Nickell, July 18, 1984 4:04:21 pm PDT Throwing away used functions Function Parsing Definitions Main Routine for RopeToFcn[]...At last! End of Main Routine Κ=˜šœ™J™ΟJšœ,™,J™9J™—šΟk ˜ J˜J˜J˜ J˜ J˜ Jšœœœ˜J˜—šœ œ˜Jšœ+˜4Jšœ˜Jšœ˜Jšœ œœ˜/—J˜šœœœ˜J˜—subtitle™defaultšΟnœœœ˜#Jšœ˜J˜——™šž œœœœ-œœœ˜ƒ™ JšœDœœ˜XJ˜—™'J˜@Jšœœ#˜1J™—J˜——J˜J˜—…— £