Sets.def 1.3 KB

1234567891011121314151617181920212223242526
  1. DEFINITION MODULE Sets;
  2. (* General set handling primitives / HM 1.11.89 *)
  3. IMPORT FileIO;
  4. CONST
  5. size = FileIO.BitSetSize;
  6. PROCEDURE Clear (VAR s: ARRAY OF BITSET); (* s := {} *)
  7. PROCEDURE Fill (VAR s: ARRAY OF BITSET); (* s := full set *)
  8. PROCEDURE In (VAR s: ARRAY OF BITSET; x: CARDINAL): BOOLEAN; (* x IN s ? *)
  9. PROCEDURE Incl (VAR s: ARRAY OF BITSET; x: CARDINAL); (* INCL(s, x) *)
  10. PROCEDURE Excl (VAR s: ARRAY OF BITSET; x: CARDINAL); (* EXCL(s, x) *)
  11. PROCEDURE Includes (VAR s1, s2: ARRAY OF BITSET): BOOLEAN; (* s2 <= s1 ? *)
  12. PROCEDURE Elements (VAR s: ARRAY OF BITSET; (* | s | *)
  13. VAR lastElem: INTEGER): INTEGER; (* *)
  14. PROCEDURE Empty (VAR s: ARRAY OF BITSET): BOOLEAN; (* s1 = {} ? *)
  15. PROCEDURE Equal (VAR s1, s2: ARRAY OF BITSET): BOOLEAN; (* s1 = s2 ? *)
  16. PROCEDURE Different (VAR s1, s2: ARRAY OF BITSET): BOOLEAN; (* s1 * s2 = 0 ? *)
  17. PROCEDURE Unite (VAR s1, s2: ARRAY OF BITSET); (* s1 := s1 + s2 *)
  18. PROCEDURE Differ (VAR s1, s2: ARRAY OF BITSET); (* s1 := s1 - s2 *)
  19. PROCEDURE Intersect (VAR s1, s2, s3: ARRAY OF BITSET); (* s3 := s1 * s2 *)
  20. PROCEDURE Print (f: FileIO.File; s: ARRAY OF BITSET; w, indent: INTEGER);
  21. END Sets.