| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- DEFINITION MODULE Scanner; (* gf 05.01.89 (pl0) *)
- (* EXPORT QUALIFIED SYMBOL, IDENT, STRING, POSITION,
- dummyPosition,
- sym, id, num, pos, strp,
- GetSymbol,
- printCode, traceParser, printListing, optimize,
- InitScanner;
- *)
- TYPE SYMBOL = (sNull, sPeriod,
- sRBracket, sLBracket,
- sTimes, sDiv,
- sPlus, sMinus,
- sEQ, sNE, sLT, sLE, sGT, sGE,
- sAnd, sOr,
- sComma, sRParen, sThen, sDo, sBecomes,
- (* start formula --------------------------------*)
- sLParen, sOdd, sNot, sNumber, sString,
- (* start Statement ------------------------------*)
- sIdent, sCall, sIf, sWhile, sRead, sWrite,
- (* end Statement ------------------------------*)
- sEnd, sElsif, sElse, sSemicolon,
- (* sArray, sOf, *) sColon,
- (* start declarations or statementpart ----------*)
- sBegin, sType, sConst, sVar, sProcedure,
- sEof);
- TYPE IDENT = INTEGER;
- TYPE STRING = POINTER TO ARRAY[0..99] OF CHAR;
- TYPE POSITION = RECORD (* position in source text *)
- line, column : CARDINAL
- END;
- VAR sym : SYMBOL; (* last symbol read *)
- id : IDENT; (* identifier number *)
- num : CARDINAL; (* last number read *)
- strp: STRING; (* pointer to string read *)
- pos : POSITION; (* current position in source text *)
- dummyPosition : POSITION;
- VAR printCode,
- traceParser,
- optimize,
- printListing : BOOLEAN;
- noPosition : POSITION;
- PROCEDURE GetSymbol; (* get next symbol;
- * results: sym, id, num, strp, pos
- *)
- PROCEDURE InitScanner;
- END Scanner.
|