-- ParseTable.mesa -- Copyright Σ 1991 by Xerox Corporation. All rights reserved. -- an NPGS production from Pass1T.mesa, June 21, 1989 12:40:23 pm PDT ParseTable: CEDAR DEFINITIONS = { Symbol: TYPE = CARDINAL[0..255]; TSymbol: TYPE = Symbol[0..170]; NTSymbol: TYPE = Symbol[0..150]; -- Token indices for the scanner and parser tokenID: TSymbol = 1; tokenNUM: TSymbol = 2; tokenLNUM: TSymbol = 3; tokenFLNUM: TSymbol = 4; tokenSTR: TSymbol = 5; tokenLSTR: TSymbol = 6; tokenCHAR: TSymbol = 7; tokenATOM: TSymbol = 8; tokenMINUS: TSymbol = 24; tokenDOT: TSymbol = 29; tokenDOTS: TSymbol = 12; tokenPOWER: TSymbol = 26; tokenEQUAL: TSymbol = 15; tokenARROW: TSymbol = 13; tokenLESS: TSymbol = 17; tokenLE: TSymbol = 19; tokenGREATER: TSymbol = 18; tokenGE: TSymbol = 20; tokenNE: TSymbol = 16; tokenTILDE: TSymbol = 21; tokenBIND: TSymbol = 22; initialSymbol: TSymbol = 29; defaultMarker: TSymbol = TSymbol.FIRST; endMarker: TSymbol = TSymbol.LAST; HashIndex: TYPE = CARDINAL[0..251]; VIndex: TYPE = CARDINAL[0..772]; VocabHashEntry: TYPE = RECORD [ symbol: TSymbol, -- symbol index link: HashIndex]; -- link to next entry State: TYPE = CARDINAL[0..493]; NTState: TYPE = State[0..258]; TIndex: TYPE = CARDINAL[0..2260]; NTIndex: TYPE = CARDINAL[0..365]; Production: TYPE = CARDINAL[0..475]; Rule: TYPE = CARDINAL[0..241]; ActionTag: TYPE = RECORD [ reduce: BOOL, -- TRUE iff reduce entry pLength: [0..15]]; -- number of symbols in production rhs ActionEntry: TYPE = RECORD [ tag: ActionTag, -- [FALSE,0] if a shift entry transition: [0..2047]]; -- production number / next state ProductionInfo: TYPE = RECORD [ rule: Rule, -- reduction rule lhs: NTSymbol]; -- production lhs symbol ScanTable: TYPE = ARRAY CHAR['\040..'\177] OF TSymbol; HashTable: TYPE = ARRAY HashIndex OF VocabHashEntry; IndexTable: TYPE = ARRAY TSymbol OF CARDINAL; Vocabulary: TYPE = TEXT; ProdData: TYPE = ARRAY Production OF ProductionInfo; NStarts: TYPE = ARRAY NTState OF NTIndex; NLengths: TYPE = ARRAY NTState OF CARDINAL; NSymbols: TYPE = ARRAY NTIndex OF NTSymbol; NActions: TYPE = ARRAY NTIndex OF ActionEntry; NTDefaults: TYPE = ARRAY NTSymbol OF ActionEntry; TStarts: TYPE = ARRAY State OF TIndex; TLengths: TYPE = ARRAY State OF CARDINAL; TSymbols: TYPE = ARRAY TIndex OF TSymbol; TActions: TYPE = ARRAY TIndex OF ActionEntry; initialState: State = 1; finalState: State = 0; ScanTableRef: TYPE = REF ScanTable; InitScanTable: PROC RETURNS [ScanTableRef]; HashTableRef: TYPE = REF HashTable; InitHashTable: PROC RETURNS [HashTableRef]; IndexTableRef: TYPE = REF IndexTable; InitIndexTable: PROC RETURNS [IndexTableRef]; VocabularyRef: TYPE = REF Vocabulary; InitVocabulary: PROC RETURNS [VocabularyRef]; ProdDataRef: TYPE = REF ProdData; InitProdData: PROC RETURNS [ProdDataRef]; NStartsRef: TYPE = REF NStarts; InitNStarts: PROC RETURNS [NStartsRef]; NLengthsRef: TYPE = REF NLengths; InitNLengths: PROC RETURNS [NLengthsRef]; NSymbolsRef: TYPE = REF NSymbols; InitNSymbols: PROC RETURNS [NSymbolsRef]; NActionsRef: TYPE = REF NActions; InitNActions: PROC RETURNS [NActionsRef]; NTDefaultsRef: TYPE = REF NTDefaults; InitNTDefaults: PROC RETURNS [NTDefaultsRef]; TStartsRef: TYPE = REF TStarts; InitTStarts: PROC RETURNS [TStartsRef]; TLengthsRef: TYPE = REF TLengths; InitTLengths: PROC RETURNS [TLengthsRef]; TSymbolsRef: TYPE = REF TSymbols; InitTSymbols: PROC RETURNS [TSymbolsRef]; TActionsRef: TYPE = REF TActions; InitTActions: PROC RETURNS [TActionsRef]; }.  ΚE–(cedarcode) style•NewlineDelimiter ™J˜†—…—ˆΥ