MODULE BitSets; IMPORT SYSTEM; CONST Elements = ((MAX(SET) - MIN(SET)) + 1); TYPE Data = POINTER TO ARRAY OF SET; BitSet* = OBJECT VAR size: LONGINT; data: Data; PROCEDURE ^ & InitBitSet*(size: LONGINT); PROCEDURE ^ Zero*; PROCEDURE ^ Resize*(size: LONGINT); PROCEDURE ^ GetSize*(): LONGINT; PROCEDURE ^ SetBit*(pos: SIZE; value: BOOLEAN); PROCEDURE ^ GetBit*(pos: SIZE): BOOLEAN; PROCEDURE ^ SetBits*(startPos, bits: SIZE; value: HUGEINT); PROCEDURE ^ SetBytes*(startPos, bytes: SIZE; CONST values: ARRAY OF CHAR); PROCEDURE ^ GetBits*(startPos, bits: SIZE): WORD; PROCEDURE ^ CopyTo*(address: ADDRESS; bits: SIZE); END BitSet; PROCEDURE ^ CopyBits*(source: BitSet; sourcePos: SIZE; dest: BitSet; destPos, count: SIZE); BEGIN END BitSets.