xref: /inferno-os/module/sets32.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythSets: module {
2*46439007SCharles.Forsyth	A: con 2r1010;
3*46439007SCharles.Forsyth	B: con 2r1100;
4*46439007SCharles.Forsyth
5*46439007SCharles.Forsyth	PATH: con "/dis/lib/sets32.dis";
6*46439007SCharles.Forsyth
7*46439007SCharles.Forsyth	init:		fn();
8*46439007SCharles.Forsyth	set:		fn(): Set;
9*46439007SCharles.Forsyth	str2set:	fn(str: string): Set;
10*46439007SCharles.Forsyth	bytes2set:	fn(d: array of byte): Set;
11*46439007SCharles.Forsyth	Set: adt {
12*46439007SCharles.Forsyth		s:	int;
13*46439007SCharles.Forsyth
14*46439007SCharles.Forsyth		X:		fn(s1: self Set, o: int, s2: Set): Set;
15*46439007SCharles.Forsyth		add:		fn(s: self Set, n: int): Set;
16*46439007SCharles.Forsyth		addlist:	fn(s: self Set, ns: list of int): Set;
17*46439007SCharles.Forsyth		# dellist:	fn(s: self Set, ns: list of int): Set;
18*46439007SCharles.Forsyth		del:		fn(s: self Set, n: int): Set;
19*46439007SCharles.Forsyth		invert:	fn(s: self Set): Set;
20*46439007SCharles.Forsyth
21*46439007SCharles.Forsyth		eq:		fn(s1: self Set, s2: Set): int;
22*46439007SCharles.Forsyth		holds:	fn(s: self Set, n: int): int;
23*46439007SCharles.Forsyth		isempty:	fn(s: self Set): int;
24*46439007SCharles.Forsyth		msb:		fn(s: self Set): int;
25*46439007SCharles.Forsyth		limit:		fn(s: self Set): int;
26*46439007SCharles.Forsyth
27*46439007SCharles.Forsyth		str:		fn(s: self Set): string;
28*46439007SCharles.Forsyth		bytes:	fn(s: self Set, lim: int): array of byte;
29*46439007SCharles.Forsyth		debugstr:	fn(s: self Set): string;
30*46439007SCharles.Forsyth	};
31*46439007SCharles.Forsyth	All: con Set(~0);
32*46439007SCharles.Forsyth	None: con Set(0);
33*46439007SCharles.Forsyth};
34