-- Compiler RelationDefs
-- Tiberi November 13, 1979 11:39 AM
-- Ordered pairs; building and searching
-- Last Edited by: Stone, January 28, 1983 12:03 am

RelationDefs: DEFINITIONS =
BEGIN
RelationHead: TYPE = RECORD[first, last: LONG POINTER TO Pair];
Relation: TYPE = LONG POINTER TO RelationHead;
Pair: TYPE = RECORD[link: LONG POINTER TO Pair, left, right: CARDINAL];
notFound: CARDINAL = 177777B;

CreateRelation: PROCEDURE RETURNS [Relation];
AddPair: PROCEDURE [relation: Relation, left, right: CARDINAL];
Left: PROCEDURE[relation: Relation, right: CARDINAL]
RETURNS [CARDINAL];
Right: PROCEDURE[relation: Relation, left: CARDINAL]
RETURNS [CARDINAL];
ForAllPairs: PROCEDURE[relation: Relation,
 do: PROCEDURE[leftPart, rightPart: CARDINAL]];
DestroyRelation: PROCEDURE[relation: Relation];
END.