<> <> <> <> <<>> DIRECTORY Basics USING [Comparison]; OrderedSymbolTableRef: CEDAR DEFINITIONS = BEGIN Table: TYPE = REF TableObject; TableObject: TYPE; Key, Item: TYPE = REF ANY; Comparison: TYPE = Basics.Comparison; CompareProc: TYPE = PROC [r1, r2: Item] RETURNS [Comparison]; <> CreateTable: PROC [compareProc: CompareProc, nodeZone: ZONE _ NIL, tableZone: ZONE _ NIL] RETURNS [t: Table]; <> DestroyTable: PROC [t: Table]; <> DeleteAllItems: PROC [t: Table]; <> Size: PROC [t: Table] RETURNS [nItems: INT]; <> Insert: PROC [t: Table, insertItem: Item]; <> DuplicateKey: ERROR; Delete: PROC [t: Table, deleteKey: Item] RETURNS [deletedItem: Item]; <> Lookup: PROC [t: Table, lookupKey: Key] RETURNS [equalItem: Item]; <> LookupSmallest: PROC [t: Table] RETURNS [smallestItem: Item]; <> LookupNextLarger: PROC [t: Table, lookupKey: Key] RETURNS [largerItem: Item]; <> LookupLargest: PROC [t: Table] RETURNS [largestItem: Item]; <> LookupNextSmaller: PROC [t: Table, lookupKey: Key] RETURNS [smallerItem: Item]; <> Lookup3: PROC [t: Table, lookupKey: Key] RETURNS [leftItem, equalItem, rightItem: Item]; <> <<>> EnumerateIncreasing: PROC [t: Table, procToApply: PROC [Item] RETURNS [BOOLEAN]]; <> <> CheckTable: PROC [t: Table]; <> BadTable: ERROR; RootItem: PROC [t: Table] RETURNS [rootItem: Item]; <> END. <> <> <Top>RedBlackTreeRef.df to obtain the interface OrderedSymbolTableRef.bcd and the implementation RedBlackTreeRefImpl.bcd. If you bind the implementation into your own configuration, you'll have to import SafeStorage for its use.>> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>