-- SymbolTable.mesa
-- last edited by Suzuki: 23-Feb-82 11:01:30

DIRECTORY
  Rope;
  
SymbolTable: DEFINITIONS = {

Ref: TYPE = REF Table;
Table: TYPE;
Key: TYPE = Rope.Ref;
Value: TYPE = REF;

Create: PROC [hashSize:CARDINAL ← 50, tableSize:CARDINAL ← 100, nestLevel:CARDINAL ← 10, case: BOOLEAN ← TRUE] RETURNS [Ref];

Mark: PROC [Ref];

Add: PROC [Ref, Key, Value, BOOLEAN];

Get: PROC [Ref, Key] RETURNS [found: BOOLEAN, val: Value, port: BOOLEAN];

Pop: PROC [Ref];

Underflow: SIGNAL;

Overflow: SIGNAL;

}.