-- NewParserData.kipper December 17, 1985 2:38:10 pm PST -- Sturgis, December 31, 1985 3:44:32 pm PST NewParserData: MODULE = BEGIN TokenKind: CEDAR TYPE FROM IO = {tokenERROR, tokenID, tokenDECIMAL, tokenOCTAL, tokenHEX, tokenREAL, tokenROPE, tokenCHAR, tokenATOM, tokenSINGLE, tokenDOUBLE, tokenCOMMENT, tokenEOF}; State: CEDAR TYPE FROM Parser = CARDINAL; ParserTable: CEDAR TYPE FROM NewParserPrivate = REF ParserTableBody; ParserTableBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ unAnalyzedSymbols: SymbolCell, nSymbols: CARDINAL, unAnalyzedTokens: TokenCell, nTokens: CARDINAL, unAnalyzedActions: ActionCell, nActions: CARDINAL, startState: State, symbolTable: SymbolTable, tokenTable: TokenTable, actionTable: ActionTable]; SymbolTable: CEDAR TYPE FROM NewParserPrivate = REF SymbolTableBody; SymbolTableBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ symbols: SEQUENCE nSlots: CARDINAL OF SymbolCell]; SymbolCell: CEDAR TYPE FROM NewParserPrivate = REF SymbolCellBody; SymbolCellBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ name: ROPE, code: CARDINAL, next: SymbolCell]; TokenTable: CEDAR TYPE FROM NewParserPrivate = REF TokenTableBody; TokenTableBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ idToken: TokenCell, tokens: SEQUENCE nSlots: CARDINAL OF TokenCell]; TokenCell: CEDAR TYPE FROM NewParserPrivate = REF TokenCellBody; TokenCellBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ name: ROPE, symbolCode: CARDINAL, kind: TokenKind, spelling: ROPE, case: TokenCase, next: TokenCell]; TokenCase: CEDAR TYPE FROM NewParserPrivate = {unique, generic}; ActionTable: CEDAR TYPE FROM NewParserPrivate = REF ActionTableBody; ActionTableBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ actions: SEQUENCE nSlots: CARDINAL OF ActionCell]; ActionCell: CEDAR TYPE FROM NewParserPrivate = REF ActionCellBody; -- not the most compact representation ActionCellBody: CEDAR TYPE FROM NewParserPrivate = RECORD[ state: State, terminal: CARDINAL, -- symbol code action: Action, nextState: State, -- for shifts ruleNumber: CARDINAL, -- for reductions leftSide: CARDINAL, -- symbol code for left side non terminal ruleSize: CARDINAL, -- number of right side symbols next: ActionCell]; Action: CEDAR TYPE FROM NewParserPrivate = {shift, reduce, accept}; END. Ę˙˜Jšœ8˜8J˜,J˜J˜J˜˜Jšœ˜J˜Jšœ¸˜¸J˜J˜)J˜J˜D˜;J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜—J˜D˜;J˜2—J˜J˜B˜:J˜ J˜J˜J˜—J˜B˜:J˜J˜0—J˜J˜@˜9J˜ J˜J˜J˜J˜J˜—J˜˜@J˜—J˜D˜;J˜2—J˜J˜i˜:J˜ J˜"J˜J˜J˜'J˜=J˜3J˜—J˜J˜CJ˜J˜——…—ä é