MobSymbols.Mesa
Copyright Ó 1985, 1989, 1991 by Xerox Corporation. All rights reserved.
Satterthwaite on January 10, 1983 12:36 pm
Russ Atkinson (RRA) March 7, 1985 0:00:54 am PST
Andy Litman March 4, 1988 7:49:49 pm PST
JKF July 22, 1989 3:56:28 pm PDT
DIRECTORY
MobDefs USING [CTIndex, EXPIndex, FTIndex, IMPIndex, MTIndex],
MobHashTypes USING [HTIndex, HTNull],
Table USING [Base, Index];
MobSymbols: DEFINITIONS={
Base: TYPE~Table.Base;
Symbols:
hash table
HTIndex: TYPE~MobHashTypes.HTIndex;
HTNull: HTIndex~MobHashTypes.HTNull;
semantic table
STRecord: TYPE~RECORD [
filename, assigned: BOOL,
hti: HTIndex,
imported, exported: BOOL,
link: STIndex,
impi: MobDefs.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: MobDefs.FTIndex],
ENDCASE]
ENDCASE];
STIndex: TYPE~Base RELATIVE LONG POINTER TO STRecord;
stNull: STIndex~STIndex.LAST;
to share proto- modules
ISEIndex, SEIndex: TYPE~STIndex;
STMap: TYPE~RECORD [
SELECT type: * FROM
unknown => [],
config => [cti: MobDefs.CTIndex],
module => [mti: MobDefs.MTIndex],
interface => [expi: MobDefs.EXPIndex]
ENDCASE];
Context Table
CXRecord: TYPE~RECORD [link: STIndex];
CXIndex: TYPE~Base RELATIVE LONG POINTER TO CXRecord;
cxNull: CXIndex~CXIndex.LAST;
}.