DIRECTORY Interscript USING [Id, Universal], Bindings USING [BTHandle], Rope USING [ROPE], IO USING [STREAM]; ScriptScan: CEDAR DEFINITIONS = BEGIN Token: TYPE ~ REF TokenRec; TokenRec: TYPE ~ RECORD[ first, last: STREAMPosition, -- to record where a token came from vp: SELECT type: OfToken FROM id => [id: Interscript.Id], univ => [univ: Interscript.Universal], -- includes keywords also int => [int: INT], real => [real: REAL], string => [s: Rope.ROPE], op => [op: Operator], sep => [s: Separator], bracket => [b: Bracket], literal => [lit: Literal] ENDCASE ]; OfToken: TYPE ~ {id, univ, int, real, string, op, sep, bracket, literal}; Operator: TYPE ~ {plus, minus, times, slash}; Separator: TYPE ~ {semicolon, dot, percent, exclamation, verticalBar, localGets, globalGets, upArrow, colon}; Bracket: TYPE ~ {lParen, rParen, lBracket, rBracket, lBrace, rBrace, quote}; Literal: TYPE ~ {nil, true, false}; STREAMPosition: TYPE ~ INT; InitScan: PROCEDURE [stream: IO.STREAM, bindTbl: Bindings.BTHandle, z: ZONE]; GetToken: PROCEDURE RETURNS [t: Token]; END. `ScriptScan.mesa Last Edited by: Mitchell, February 7, 1983 3:22 pm -- lexical definitions Κ˜Jšœ Οc™Jšœ2™2unitšΟk ˜ Jšœ"˜"Jšœ˜Jšœžœžœ˜Jšžœžœžœ˜—Kšœ žœž œž˜%K™šœžœžœ ˜šœ žœžœ˜Icodešœ$˜Bšœžœž˜Jšœ˜Jšœ)˜BJšœžœ˜Jšœžœ˜Jšœžœ˜Jšœ˜J˜J˜Jšœ˜Jšž˜—Jšœ˜—Kšœ žœ<˜I—Kšœ žœ˜-Kšœ žœ^˜mKšœ žœ?˜LKšœ žœ˜#Kšœžœžœ˜Kš Οnœž œ žœžœ!žœ˜MKšŸœž œžœ ˜'Kšžœ˜K˜K˜J˜J˜—…—0