2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
9 ** based on set_template.h
15 /*@iter globSet_allElements (sef globSet s, yield exposed sRef el); @*/
16 # define globSet_allElements(x, m_el) sRefSet_allElements(x, m_el)
17 # define end_globSet_allElements end_sRefSet_allElements
19 extern int globSet_size (/*@sef@*/ globSet p_s
);
20 # define globSet_size(s) (sRefSet_size (s))
22 extern bool globSet_isEmpty (/*@sef@*/ globSet p_s
);
23 # define globSet_isEmpty(s) (globSet_size (s) == 0)
25 extern /*@only@*/ globSet
globSet_new (void) /*@*/ ;
27 extern globSet
globSet_single (/*@exposed@*/ sRef p_el
) ;
29 extern globSet
globSet_insert (/*@returned@*/ globSet p_s
, /*@exposed@*/ sRef p_el
)
31 extern bool globSet_member (globSet p_s
, sRef p_el
) /*@*/ ;
32 extern /*@exposed@*/ sRef
globSet_lookup (globSet p_s
, sRef p_el
) /*@*/ ;
33 extern void globSet_free (/*@only@*/ /*@only@*/ globSet p_s
);
34 extern /*@only@*/ cstring
globSet_unparse (globSet p_ll
) /*@*/ ;
35 extern /*@only@*/ cstring
globSet_dump (globSet
) /*@*/ ;
36 extern /*@only@*/ globSet
globSet_undump (char **p_s
) /*@modifies *p_s@*/ ;
38 extern /*@only@*/ globSet
globSet_unionFree (/*@only@*/ /*@returned@*/ globSet p_g1
, /*@only@*/ globSet p_g2
) /*@modifies p_g1@*/ ;
39 # define globSet_unionFree(g1,g2) sRefSet_unionFree(g1,g2)
42 extern void globSet_markImmutable (globSet p_g
) /*@modifies p_g@*/ ;
45 globSet_copyInto (/*@returned@*/ globSet p_s1
, /*@exposed@*/ globSet p_s2
)
48 extern /*@only@*/ globSet
globSet_newCopy (globSet p_s
) /*@*/ ;
50 extern void globSet_clear (globSet p_g
);
52 /*@constant null globSet globSet_undefined;@*/
53 # define globSet_undefined sRefSet_undefined
55 extern /*@falsewhennull@*/ bool globSet_isDefined (/*@null@*/ globSet p_s
) /*@*/ ;
56 extern /*@nullwhentrue@*/ bool globSet_isUndefined (/*@null@*/ globSet p_s
) /*@*/ ;
58 # define globSet_isDefined(s) (sRefSet_isDefined (s))
59 # define globSet_isUndefined(s) (sRefSet_isUndefined (s))
62 # error "Multiple include"