DIRECTORY RedBlackTree; RedBlackTreeExtras: CEDAR DEFINITIONS = {OPEN RedBlackTree; GetIDKey: GetKey; NewRefTable: PROC RETURNS [Table]; NewRopeTable: PROC [case: BOOL _ TRUE] RETURNS [Table]; StatelessEnumerateIncreasing: PROC [self: Table, procToApply: EachNode, getKey: GetKey]; StatelessEnumerateDecreasing: PROC [self: Table, procToApply: EachNode, getKey: GetKey]; DeleteData: PROC [self: Table, deleteKey: Key] RETURNS [deletedData: UserData]; REFPair: TYPE = REF REFPairPrivate; REFPairPrivate: TYPE = RECORD [ key, value: REF ANY]; GetRPKey: GetKey; NewRefMap: PROC RETURNS [Table]; NewRopeMap: PROC [case: BOOL _ TRUE] RETURNS [Table]; Fetch: PROC [table: Table, key: REF ANY] RETURNS [found: BOOLEAN, value: REF ANY]; Store: PROC [table: Table, key, value: REF ANY] RETURNS [new: BOOLEAN]; }. ςRedBlackTreeExtras.Mesa Spreitzer, October 23, 1985 5:16:05 pm PDT Simply returns its argument. Any REF is a suitable entry. The REF is the key as well as the data. Ordered by loopholing the REF into a number. Entries are ROPEs. The ROPE is the key, as well as the data. Ordered by Rope.Compare[case: case]. `procToApply' is relatively unrestricted: it only needs to refrain from trashing the key of its `data'. In particular, it is NOT prohibited from doing other RedBlackTree operations on `self'. Removes the (unique) node x in table such that Compare[deleteKey, x] = equal, and returns its data, or returns NIL if no such node exists. Returns the key of a REFPair. Entries are REFPairs, with each key being a REF ANY. Ordered by loopholing the key into a number. Entries are REFPairs, with each key being a ROPE. Ordered by Rope.Compare[case: case]. value will be NIL when NOT found. returns TRUE after inserting new pair returns FALSE after overwriting old value for existing key-value pair ΚΉ˜code™K™*—K˜KšΟk œ˜K˜šΠbxœœ œœ˜;K˜šœ˜K™—K˜šΟn œœœ ˜"K™s—K˜š Ÿ œœœœœ ˜7K™c—K˜KšŸœœ6˜XšŸœœ6˜XKšœΐ™ΐ—K˜šŸ œœœ˜OKšœZΟzœ œ™Š—K˜Kšœ œœ˜#šœœœ˜Kšœ œœ˜—K˜˜Kšœ™—K˜šŸ œœœ ˜ K™b—K˜š Ÿ œœœœœ ˜5K™W—K˜šŸœœœœœ œ œœ˜RK™!—K˜š Ÿœœœœœœ˜GKšœ%™%KšœE™E—K˜K˜——…—4ί