BiRelsPrivate.Mesa
Last tweaked by Mike Spreitzer on December 14, 1987 1:04:38 pm PST
DIRECTORY AbSets, BiRels;
BiRelsPrivate: CEDAR DEFINITIONS = {OPEN Sets:AbSets, Sets, BiRels;
ArgType: TYPE ~ {None, BiRel, Dir, EndBools, limit, RelOrder, RelOrderFN, remove, Set, SetPair, Side, Want3, When};
ArgTyping: TYPE ~ ARRAY [1 .. 2] OF ArgType;
Primitive: PROC [br: BiRel, op: ATOM, arg1, arg2: REF ANYNIL] RETURNS [BOOL];
What: TYPE ~ {l, r, b};
SortOp: TYPE ~ {asIs, reverse, sort};
EasySort: TYPE ~ SortOp[asIs .. reverse];
HalfCost: TYPE ~ RECORD [qs: PACKED ARRAY What OF ImplQuality ← ALL[primitive]];
Cost: TYPE ~ RECORD [a, b: HalfCost ← [], sort: SortCost ← ALL[asIs]];
SortCost: TYPE ~ PACKED ARRAY Side OF SortOp;
Family: TYPE ~ {Empty, EnumSetsTestBR, EnumBRTestSets, REnumBRTestSet, EnumSetImageTestSet};
SubFamily: TYPE ~ {apply, image, scanRestriction, full};
Algorithm: TYPE ~ RECORD [family: Family, s1: Side ← left, sub: SubFamily ← apply];
Analysis: TYPE ~ RECORD [alg: Algorithm, cost: Cost];
AnalysisList: TYPE ~ LIST OF Analysis;
SideWhat: ARRAY Side OF What ~ [left: l, right: r];
AB: TYPE ~ {a, b};
PlanDefaultScanRestriction: PROC [br: BiRel, sets: SetPair, ro: RelOrder] RETURNS [can: BOOL, plan: Analysis];
}.