-- BrandYSymbolDefs.mesa
-- concrete definitions of TYPEs and constants for symbol tables and related elements.
-- Last Modified By Paul Rovner On January 5, 1983 10:46 pm

DIRECTORY
Symbols USING
[MDIndex, CTXIndex, ISEIndex, RecordSEIndex, SEIndex, HTIndex,
SENull, CSEIndex, BTNull, RootBti, BTIndex, BodyRecord, MDNull, codeCHAR,
CBTIndex, ICBTIndex, ExtensionType, typeTYPE, StandardContext,
ContextLevel, lL, CTXNull, HTNull, typeANY, OwnMdi, lZ, codeINT],
SymbolSegment USING [FGTEntry, FGHeader],
SymbolTable USING[Base, Handle, nullHandle],
Tree USING[Index, Link];

BrandYSymbolDefs: DEFINITIONS
= BEGIN OPEN NewSymbols: Symbols, NewSymbolSegment: SymbolSegment,
NewSymbolTable: SymbolTable, NewTree: Tree;


--TYPEs--
SymbolTableHandle: TYPE = NewSymbolTable.Handle;
SymbolTableBase: TYPE = NewSymbolTable.Base;

SymbolIndex: TYPE = NewSymbols.SEIndex;
SymbolIdIndex: TYPE = NewSymbols.ISEIndex;
SymbolConstructorIndex: TYPE = NewSymbols.CSEIndex;
SymbolRecordIndex: TYPE = NewSymbols.RecordSEIndex;

SymbolContextIndex: TYPE = NewSymbols.CTXIndex;
StandardSymbolContextIndex: TYPE = NewSymbols.StandardContext;

SymbolNameIndex: TYPE = NewSymbols.HTIndex;

SymbolModuleIndex: TYPE = NewSymbols.MDIndex;

BodyIndex: TYPE = NewSymbols.BTIndex;
CallableBodyIndex: TYPE = NewSymbols.CBTIndex;
InnerCallableBodyIndex: TYPE = NewSymbols.ICBTIndex;
BodyTableEntry: TYPE = NewSymbols.BodyRecord;

FineGrainTableEntry: TYPE = NewSymbolSegment.FGTEntry;
FineGrainTableHeader: TYPE = NewSymbolSegment.FGHeader;

ExtensionClass: TYPE = NewSymbols.ExtensionType;

TreeIndex: TYPE = NewTree.Index;
TreeLink: TYPE = NewTree.Link;

BlockContextLevel: TYPE = NewSymbols.ContextLevel;

PreDefinedSEI: TYPE = CARDINAL[0..249];


--Constants--

nullHandle: SymbolTableHandle = NewSymbolTable.nullHandle;
nullSymbolIndex: SymbolIndex = NewSymbols.SENull;
nullSymbolContextIndex: SymbolContextIndex = NewSymbols.CTXNull;
nullSymbolNameIndex: SymbolNameIndex = NewSymbols.HTNull;
nullModuleIndex: SymbolModuleIndex = NewSymbols.MDNull;
nullBodyIndex: BodyIndex = NewSymbols.BTNull;

rootBodyIndex: BodyIndex = NewSymbols.RootBti;

symbolIndexForTYPE: SymbolConstructorIndex = NewSymbols.typeTYPE;
symbolIndexForANY: SymbolConstructorIndex = NewSymbols.typeANY;

thisModuleIndex: SymbolModuleIndex = NewSymbols.OwnMdi;

contextLevelZero: BlockContextLevel = NewSymbols.lZ;
outerContextLevel: BlockContextLevel = NewSymbols.lL;

typeCodeForINT: CARDINAL = NewSymbols.codeINT;
typeCodeForCHAR: CARDINAL = NewSymbols.codeCHAR;

END.