home *** CD-ROM | disk | FTP | other *** search
- |##########|
- |#MAGIC #|BLOCLNFN
- |#PROJECT #|""
- |#PATHS #|"StdProject"
- |#FLAGS #|xx---x--x---xxx-----------------
- |#USERSW #|--------------------------------
- |#USERMASK#|--------------------------------
- |#SWITCHES#|xx---xxxxx-xx---
- |##########|
- DEFINITION MODULE OSets;
-
- FROM Resources IMPORT ContextPtr,NoContext;
-
- EXCEPTION SetFull : "Set is full";
-
- DEFINITION MODULE GeneralSets(elem : ANYPTR);
-
- TYPE
- Iterator = PROCEDURE(e : elem);
-
- Hash = CLASSPTR TO ARRAY OF elem;
- Set = POINTER TO SetObj;
- SetObj = OBJECT
- hash : Hash;
- nills,
- num : INTEGER;
- con : ContextPtr;
- ppos : INTEGER;
-
- CONSTRUCTOR Create(con : ContextPtr := NoContext);
- DESTRUCTOR Delete;
-
- METHOD Clear;
-
- METHOD Include(elems : LIST OF elem);
- METHOD Exclude(elems : LIST OF elem);
-
- METHOD Unite(s : Set);
- METHOD Intersect(s : Set);
- METHOD Difference(s : Set);
-
- METHOD Contains(e : elem):BOOLEAN;
-
- METHOD Iterate(it : Iterator);
-
- METHOD Optimize;
-
- METHOD Destruct;
- END;
-
- END GeneralSets;
-
- DEFINITION MODULE Sets(SetElem : POINTER TO SetElemObj);
-
- TYPE
- SetElemObj = OBJECT
- DESTRUCTOR Delete;
- METHOD Hash():CARDINAL;
- METHOD Equal(with : SetElem):BOOLEAN
- END;
- Iterator = PROCEDURE(e : SetElem);
-
- Hash = CLASSPTR TO ARRAY OF SetElem;
- Set = POINTER TO SetObj;
- SetObj = OBJECT
- hash : Hash;
- nills,
- num : INTEGER;
- con : ContextPtr;
- ppos : INTEGER;
-
- CONSTRUCTOR Create(con : ContextPtr := NoContext);
- DESTRUCTOR Delete;
-
- METHOD Clear;
-
- METHOD Include(elems : LIST OF SetElem);
- METHOD Exclude(elems : LIST OF SetElem);
- METHOD Filter(elems : LIST OF SetElem);
-
- METHOD Unite(s : Set);
- METHOD Intersect(s : Set);
- METHOD Difference(s : Set);
-
- METHOD Contains(e : SetElem):BOOLEAN;
-
- METHOD Iterate(it : Iterator);
-
- METHOD Optimize;
-
- METHOD Destruct;
- END;
-
- END Sets;
-
- DEFINITION MODULE TrackedSets(SetElem : POINTER TO SetElemObj);
-
- TYPE
- SetElemObj = OBJECT
- useCount : INTEGER;
-
- DESTRUCTOR Delete;
- METHOD Hash():CARDINAL;
- METHOD Equal(with : SetElem):BOOLEAN
- END;
- Iterator = PROCEDURE(e : SetElem);
-
- Hash = CLASSPTR TO ARRAY OF SetElem;
- Set = POINTER TO SetObj;
- SetObj = OBJECT
- hash : Hash;
- nills,
- num : INTEGER;
- con : ContextPtr;
- ppos : INTEGER;
-
- CONSTRUCTOR Create(con : ContextPtr := NoContext);
- DESTRUCTOR Delete;
-
- METHOD Clear;
-
- METHOD Include(elems : LIST OF SetElem);
- METHOD Exclude(elems : LIST OF SetElem);
-
- METHOD Unite(s : Set);
- METHOD Intersect(s : Set);
- METHOD Difference(s : Set);
-
- METHOD Contains(e : SetElem):BOOLEAN;
-
- METHOD Iterate(it : Iterator);
-
- METHOD Optimize;
-
- METHOD Destruct;
- END;
-
- END TrackedSets;
-
- END OSets.
-