-- 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--]; }.