-- SemanticEntry.mesa  Last edited by Lewis on  2-Apr-81 10:12:43

DIRECTORY
  BcdDefs USING [CTIndex, MTIndex],
  SourceBcd USING [CTreeIndex],
  SymTabDefs USING [HTIndex],
  Table USING [Base, Index, Limit];

SemanticEntry: DEFINITIONS =
  BEGIN

 -- Semantic Table

  STIndex: TYPE = Table.Base RELATIVE POINTER [0..Table.Limit) TO STRecord;
    STNull: STIndex = LAST[STIndex];

  STRecord: TYPE = RECORD [
    hti: SymTabDefs.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];


 -- Interface
  BuildSemanticEntries: PROC;

  END.