BcdSymbols.Mesa
last edited by Satterthwaite on January 10, 1983 12:36 pm
DIRECTORY
BcdDefs: TYPE USING [CTIndex, EXPIndex, FTIndex, IMPIndex, MTIndex],
HashTypes: TYPE USING [HTIndex, htNull],
Table: TYPE USING [Base, Index, Limit];
Symbols, Literals: DEFINITIONS={
Base: TYPE~Table.Base;
Limit: CARDINAL~Table.Limit;
Symbols:
hash table
HTIndex: TYPE~HashTypes.HTIndex;
htNull: HTIndex~HashTypes.htNull;
semantic table
STRecord: TYPE~RECORD [
filename, assigned: BOOL,
hti: HTIndex,
imported, exported: BOOL,
link: STIndex,
impi: BcdDefs.IMPIndex,
impgfi: CARDINAL,
body: SELECT type: * FROM
unknown => [],
local => [
map: STMap,
info: Table.Index, -- Tree.Index,
context: CXIndex],
external => [
map: STMap,
pointer: SELECT ptype: * FROM
instance => [sti: STIndex],
file => [fti: BcdDefs.FTIndex],
ENDCASE]
ENDCASE];
STIndex: TYPE~Base RELATIVE POINTER[0..Limit) TO STRecord;
stNull: STIndex~STIndex.LAST;
to share proto- modules
ISEIndex, SEIndex: TYPE~STIndex;
STMap: TYPE~RECORD [
SELECT type: * FROM
unknown => [],
config => [cti: BcdDefs.CTIndex],
module => [mti: BcdDefs.MTIndex],
interface => [expi: BcdDefs.EXPIndex]
ENDCASE];
Context Table
CXRecord: TYPE~RECORD [link: STIndex];
CXIndex: TYPE~Base RELATIVE POINTER[0..Limit) TO CXRecord;
cxNull: CXIndex~CXIndex.LAST;
Literals: (to share proto- modules)
LitIndex: TYPE~HashTypes.HTIndex;
}.