<<>> <> <> <> <> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE]; BitTableLookup: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Create: PROC [size: INT] RETURNS [table: Table]; <> <> NumberHashFunctions: PROC [] RETURNS [numberHashFunctions: INT]; <> <<>> Read: PROC [in: STREAM] RETURNS [table: Table]; <> <> Write: PROC [table: Table, out: STREAM]; <> Insert: PROC [table: Table, word: REF TEXT]; <> Lookup: PROC [table: Table, word: REF TEXT] RETURNS [member: BOOLEAN]; <> <<>> <<>> <> <<>> RowContents: TYPE = PACKED ARRAY [0..4096) OF BOOL; RowPointer: TYPE = REF RowContents; RowPrime: CARDINAL = 4093; -- Prime less than 4096. Table: TYPE = REF TableContents; TableContents: TYPE = MACHINE DEPENDENT RECORD[ bits: SEQUENCE rowSize: CARDINAL OF RowPointer]; <> <<>> FailureTypes: TYPE = {TooLarge, BadTable}; Failed: ERROR[ why: FailureTypes ]; <> <> <> END. CHANGE LOG Created by Nix on September 15, 1983 10:36 am