SymbolTablePrivate.mesa
Copyright Ó 1986, 1987, 1991 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) October 12, 1987 6:55:13 pm PDT
DIRECTORY
Literals USING [Base],
Symbols USING [Base, CTXIndex, HashVector, MDIndex],
SymbolSegment USING [Base, ExtIndex, FGTEntry, STHeader],
Tree USING [Base];
SymbolTablePrivate: DEFINITIONS = {
This module was derived from SymbolPack. To avoid the use of multiple global frames we put the global data definitions in this file, and the implementations in SymbolOpsImpl.
SymbolTableBase: TYPE = REF SymbolTableBaseRep;
SymbolTableBaseRep: TYPE = RECORD [
link: SymbolTableBase,
cacheInfo: LONG POINTER,
hashVec: HashVectorPtr, -- hash index
htb: Symbols.Base, -- hash table
ssb: LONG STRING, -- id string
seb: Symbols.Base, -- se table
ctxb: Symbols.Base, -- context table
mdb: Symbols.Base, -- module directory base
bb: Symbols.Base, -- body table
tb: Tree.Base, -- tree area
ltb: Literals.Base, -- literal area
stb: Literals.Base, -- string literal area
extb: SymbolSegment.Base, -- extension map
mdLimit: Symbols.MDIndex, -- module directory size
extLimit: SymbolSegment.ExtIndex, -- extension size
mainCtx: Symbols.CTXIndex,
stHandle: STHeaderPtr ¬ NIL,
sourceFile: LONG STRING ¬ NIL,
fgTable: FGTEntryArrayDesc ¬ DESCRIPTOR[NIL, 0],
notifier: PROC [SymbolTableBase] ¬ NIL
];
HashVectorPtr: TYPE = LONG POINTER TO Symbols.HashVector;
STHeaderPtr: TYPE = LONG POINTER TO SymbolSegment.STHeader;
FGTEntryArray: TYPE = ARRAY OF SymbolSegment.FGTEntry;
FGTEntryArrayDesc: TYPE = LONG DESCRIPTOR FOR FGTEntryArray;
}.