-- SemanticEntry.mesa
-- last edited by Lewis on 2-Apr-81 10:12:43
-- last edited by Satterthwaite, January 12, 1983 11:26 am
DIRECTORY
BcdDefs: TYPE USING [CTIndex, MTIndex],
HashTypes: TYPE USING [HTIndex, htNull],
SourceBcd: TYPE USING [CTreeIndex],
Table: TYPE USING [Base, Index, Limit];
Symbols, SemanticEntry: DEFINITIONS={
-- Hash Table
HTIndex: TYPE~HashTypes.HTIndex;
htNull: HTIndex~HashTypes.htNull;
-- Semantic Table
STIndex: TYPE~Table.Base RELATIVE POINTER[0..Table.Limit) TO STRecord;
STNull: STIndex~STIndex.LAST;
STRecord: TYPE~RECORD [
hti: HashTypes.HTIndex, -- name (main part of name if config or module)
treeNode: Table.Index, -- (actually Tree.Index) original parse tree node
kind: SELECT type: * FROM
unknown => [],
config => [
cti: BcdDefs.CTIndex, -- index in source bcd config table
cNode: SourceBcd.CTreeIndex], -- config's node in config tree
module => [
mti: BcdDefs.MTIndex, -- index in source bcd module table
mNode: SourceBcd.CTreeIndex], -- module's node in config tree
segment => [],
codePack => [],
framePack => []
ENDCASE];
-- for use of proto-modules
ISEIndex: TYPE~STIndex;
-- Interface
BuildSemanticEntries: PROC [--root: Tree.Link--];
}.