SymbolTableDefs: DEFINITIONS = { SymbolType: TYPE = {unused, none, short, long, pointer, array, arrayArray, structure, boolean, real, double, enumeration, union}; echoSymbolTables: BOOLEAN; -- echo symbol tables to executive -- at the end of each block SymbolEntry: TYPE = RECORD [ type: SymbolType, baseType: SymbolType, name: LONG STRING, typeName: LONG STRING, pointerCount: CARDINAL, blockLevel: CARDINAL ]; InitializeSymbolTable: PROCEDURE []; EnterBlock: PROCEDURE []; ExitBlock: PROCEDURE []; EnterSymbol: PROCEDURE [symName: LONG STRING, symType: SymbolType, symBaseType: SymbolType, symTypeName: LONG STRING, symPointerCount: CARDINAL, blockHeader: BOOLEAN ← FALSE]; LookUpSymbol: PROCEDURE[symName: LONG STRING] RETURNS [symType: SymbolType, symBaseType: SymbolType, symTypeName: LONG STRING, symPointerCount: CARDINAL]; PrintSymbolTable: PROCEDURE []; FinalizeSymbolTable: PROCEDURE []; }.