DIRECTORY TJaMBasic USING [DictBody, Object, Tuple, TuplePtr]; TJaMDict: DEFINITIONS = { DD: TYPE = TJaMBasic.DictBody; -- dictionary descriptor Slot: TYPE = TJaMBasic.TuplePtr; -- location of tuple in dictionary slotNIL: Slot = NIL; -- Slot returned if no room Loc: TYPE = CARDINAL; -- location of tuple in cache locNIL: Loc = LAST[Loc]; -- Loc returned if no room freeHash: CARDINAL = LAST[CARDINAL]; -- never returned by Hash Hash: PROC[key: TJaMBasic.Object] RETURNS[CARDINAL] = INLINE { WITH key:key SELECT FROM name => RETURN[key.id.index]; ENDCASE => RETURN[HashObject[key]] }; HashObject: PROC[TJaMBasic.Object] RETURNS[CARDINAL]; HashString: PROC[string TJaMBasic.Object] RETURNS[CARDINAL]; HashText: PROC[LONG STRING] RETURNS[CARDINAL]; LookUpDict: PROC[dd: POINTER TO READONLY DD, hash: CARDINAL, key: TJaMBasic.Object] RETURNS[BOOLEAN,Slot]; InsertInDict: PROC[dd: POINTER TO DD, hash: CARDINAL, tuple: TJaMBasic.Tuple, slot: Slot]; }. μTJaMDict.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last edit by Doug Wyatt, 1-Oct-81 14:51:34 Michael Plass, February 14, 1985 12:26:04 pm PST Types and Constants Hashing Low level dictionary operations ΚΎ˜šœ ™ Icodešœ Οmœ1™š Οnœžœžœžœžœ˜>šžœ žœžœ žœ˜6Jšžœžœ˜#—J˜J˜—Jš  œžœžœžœ˜5Jš  œžœžœžœ˜