-- file PPLeaves.Mesa
-- last modified by Satterthwaite, January 28, 1981  12:41 PM
-- last edit by Russ Atkinson,  1-Jun-81 16:25:22
-- last edited by Suzuki,  26-Aug-81 11:30:37

DIRECTORY
  PPCommentTable USING [Index, Text],
  Rope USING [Ref];
  
PPLeaves: DEFINITIONS =
  BEGIN OPEN PPCommentTable;

  Leaf: TYPE = REF ANY;		-- union of types below

  Index: TYPE = PPCommentTable.Index;
  Text: TYPE = PPCommentTable.Text;

  HTIndex: TYPE = REF HTNode;
    HTNode: TYPE = RECORD[index: Index, name: Text];
    HTNull: HTIndex = NIL;
  ISEIndex: TYPE = Rope.Ref;

  LTIndex: TYPE = REF LTNode;
    LTNode: TYPE = RECORD[
      index: Index,
      value: REF ANY,
      literal: Text];
  STIndex: TYPE = Text;		-- for now

 -- Creation of index
 
  IdFromRope: PROC [r: Rope.Ref, index: Index] RETURNS [HTIndex];
  
 -- semantic entry table declarations

  TypeClass: TYPE = {
    mode,
    basic,
    enumerated,
    record,
    ref,
    array,
    arraydesc,
    transfer,
    definition,
    union,
    sequence,
    relative,
    subrange,
    long,
    real,
    opaque,
    zone,
    any,
    nil};

  TransferMode: TYPE = {proc, port, signal, error, process, program, none};

  END.