RoseSets.Mesa
Last Edited by: Spreitzer, May 16, 1985 3:34:52 pm PDT
DIRECTORY RoseTypes;
RoseSets: CEDAR DEFINITIONS = {
OPEN RoseTypes;
Element: TYPE = REF ANY;
Set: TYPE = REF SetRep;
SetRep: TYPE = RECORD [
class: Class,
instanceData: REF ANY];
Class: TYPE = RECORD [
Enumerate: PROC [set: Set, to: Consumer],
TestMembership: PROC [set: Set, elt: Element]
];
Consumer: TYPE = RECORD [
data: REF ANY,
consume: PROC [data: REF ANY, elt: Element]
];
CellsOfType: PROC [pattern: ROPE, sim: Simulation ← NIL] RETURNS [Set];
CellsOfName: PROC [pattern: ROPE, sim: Simulation ← NIL] RETURNS [Set];
ChildCells: PROC [s: Set, namePattern: ROPENIL] RETURNS [Set];
ParentCells: PROC [s: Set, namePattern: ROPENIL] RETURNS [Set];
InterfaceNodes: PROC [s: Set] RETURNS [Set];
InternalNodes: PROC [s: Set] RETURNS [Set];
ContainingCells: PROC [s: Set] RETURNS [Set];
Intersect: PROC [a, b: Set] RETURNS [Set];
Union: PROC [a, b: Set] RETURNS [Set];
Difference: PROC [a, b: Set] RETURNS [Set];
SymmetricDifference: PROC [a, b: Set] RETURNS [Set];
EnumerateWithoutDuplicates: PROC [s: Set, to: Consumer];
}.