Triples: CEDAR DEFINITIONS = BEGIN Item: TYPE = REF ANY; Triple: TYPE = REF READONLY TripleRec; TripleRec: TYPE = RECORD[att, obj, val: Item]; nullTripleRec: TripleRec = [Any, Any, Any]; Any: Item = NIL; Make, Erase: PROC[att, obj, val: Item]; Is: PROC[att, obj, val: Item _ Any] RETURNS[BOOLEAN]; Select: PROC[att, obj, val: Item _ Any] RETURNS[Item]; SelectCandidate: PROC[att: Item, objCandidate: LONG CARDINAL] RETURNS [ obj, val: Item ]; Foreach: PROC[att, obj, val: Item, proc: ForeachProc]; ForeachProc: TYPE = PROC[trip: TripleRec] RETURNS [continue: BOOLEAN_TRUE]; ArgFault: ERROR[att, obj, val: Item]; END. œTriples.Mesa Last Modified by Paul Rovner on 7-Mar-81 16:14:27 Last Edited by: Swinehart, January 6, 1983 2:59 pm TYPEs CONSTANTS PROCs Special function allows values that MIGHT be REFs to be validated by their appearance in the triples structure. It is assumed that there is but one val corresponding to att and objCandidate. Returns NIL if no such triple really exists. Demikludge. Enumerator SIGNALS Ê›˜J˜Jšœ ™ Jšœ1™1Jšœ2™2J˜šœ Ïkœ˜Jš˜J˜Jšœ™˜Jšœœœœ˜Jšœœœœ ˜&Jšœ œœ˜.J˜+J˜J˜—Jšœ ™ ˜Jšœ œ˜J˜J˜—Jšœ™˜JšÏnœžœœ˜'J˜Jšžœœœœ˜5J˜Jšžœœœ˜6J˜—JšœU™UJšœ[™[JšœH™H˜šžœœœœ˜=Jšœ˜J˜——šœ ™ J˜Jšžœœ)˜6J˜Jš ž œœœœ œ˜KJ˜—Jšœ™˜Jšžœœ˜%J˜—Jšœ˜J˜J˜J˜——…—‚¹