OneCasabaParserData: MODULE = BEGIN TokenKind: CEDAR TYPE FROM IO = {tokenERROR, tokenID, tokenDECIMAL, tokenOCTAL, tokenHEX, tokenREAL, tokenROPE, tokenCHAR, tokenATOM, tokenSINGLE, tokenDOUBLE, tokenCOMMENT, tokenEOF}; State: CEDAR TYPE FROM OneCasabaParser = CARDINAL; ParserTable: CEDAR TYPE FROM OneCasabaParserPrivate = REF ParserTableBody; ParserTableBody: CEDAR TYPE FROM OneCasabaParserPrivate = 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 OneCasabaParserPrivate = REF SymbolTableBody; SymbolTableBody: CEDAR TYPE FROM OneCasabaParserPrivate = RECORD[ symbols: SEQUENCE nSlots: CARDINAL OF SymbolCell ]; SymbolCell: CEDAR TYPE FROM OneCasabaParserPrivate = REF SymbolCellBody; SymbolCellBody: CEDAR TYPE FROM OneCasabaParserPrivate = RECORD [ name: ROPE, code: CARDINAL, next: SymbolCell ]; TokenTable: CEDAR TYPE FROM OneCasabaParserPrivate = REF TokenTableBody; TokenTableBody: CEDAR TYPE FROM OneCasabaParserPrivate = RECORD[ idToken: TokenCell, tokens: SEQUENCE nSlots: CARDINAL OF TokenCell ]; TokenCell: CEDAR TYPE FROM OneCasabaParserPrivate = REF TokenCellBody; TokenCellBody: CEDAR TYPE FROM OneCasabaParserPrivate = RECORD [ name: ROPE, symbolCode: CARDINAL, kind: TokenKind, spelling: ROPE, case: TokenCase, next: TokenCell ]; TokenCase: CEDAR TYPE FROM OneCasabaParserPrivate = {unique, generic}; ActionTable: CEDAR TYPE FROM OneCasabaParserPrivate = REF ActionTableBody; ActionTableBody: CEDAR TYPE FROM OneCasabaParserPrivate = RECORD[ actions: SEQUENCE nSlots: CARDINAL OF ActionCell ]; ActionCell: CEDAR TYPE FROM OneCasabaParserPrivate = REF ActionCellBody; -- not the most compact representation ActionCellBody: CEDAR TYPE FROM OneCasabaParserPrivate = 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 OneCasabaParserPrivate = {shift, reduce, accept}; END. δOneCasabaParserData.kipper December 17, 1985 2:38:10 pm PST Copyright Σ 1985, 1986, 1987 by Xerox Corporation. All rights reserved. Sturgis, April 3, 1986 3:35:32 pm PST Bill Jackson (bj) January 27, 1987 5:31:35 pm PST Κw– "cedar" style˜codešœ8Οk™;KšœH™HKšœ"™%Kšœ1™1—K˜šΟnœœ˜#K˜Kš ž œœœœœ›˜ΈK˜Kš žœœœœœ˜2K˜Kš ž œœœœœ˜Jš žœœœœœ˜BK˜Kšœ œ˜K˜Kšœ œ˜K˜Kšœ œ˜K˜K˜K˜K˜K˜K˜—Kš ž œœœœœ˜Jš žœœœœœ˜BKšœ œ œœ ˜0Kšœ˜—K˜Kš ž œœœœœ˜Hš žœœœœœ˜AKšœœ˜ Kšœœ˜K˜K˜K˜—Kš ž œœœœœ˜Hš žœœœœœ˜AK˜Kšœœ œœ ˜.Kšœ˜—K˜Kš ž œœœœœ˜Fš ž œœœœœ˜@Kšœœ˜ Kšœ œ˜K˜Kšœ œ˜K˜K˜K˜—K˜šž œœœœ,˜FK˜—Kš ž œœœœœ˜Jš žœœœœœ˜BKšœ œ œœ ˜0Kšœ˜—K˜Kš ž œœœœœΟc&˜oš žœœœœœ˜AK˜ Kšœ œŸ˜"K˜KšœŸ ˜Kšœ œŸ˜'Kšœ œŸ)˜=Kšœ œŸ˜3K˜K˜—K˜Kšžœœœœ2˜IK˜Kšœ˜K˜——…—ϊ U