2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
9 ** based on set_template.h
15 abst_typedef /*@null@*/ struct
19 /*@reldef@*/ /*@relnull@*/ lsymbol *elements;
22 /*@constant null lsymbolSet lsymbolSet_undefined; @*/
23 # define lsymbolSet_undefined (NULL)
25 extern /*@falsenull@*/ bool lsymbolSet_isDefined (lsymbolSet p_l) /*@*/ ;
26 # define lsymbolSet_isDefined(l) ((l) != lsymbolSet_undefined)
28 /*@iter lsymbolSet_elements (sef lsymbolSet s, yield lsymbol el); @*/
29 # define lsymbolSet_elements(x, m_el) \
30 if (lsymbolSet_isDefined (x)) \
32 for (m_ind = 0 ; m_ind < (x)->entries; m_ind++) \
33 { lsymbol m_el = (x)->elements[m_ind];
35 # define end_lsymbolSet_elements }}
37 extern /*@only@*/ lsymbolSet lsymbolSet_new(void) /*@*/ ;
38 extern bool lsymbolSet_insert (lsymbolSet p_s, lsymbol p_el) /*@modifies p_s@*/ ;
39 extern bool lsymbolSet_member (lsymbolSet p_s, lsymbol p_el) /*@*/ ;
40 extern /*@unused@*/ /*@only@*/ cstring lsymbolSet_unparse (lsymbolSet p_s) /*@*/ ;
41 extern void lsymbolSet_free (/*@only@*/ lsymbolSet p_s);
43 /*@constant int lsymbolSetBASESIZE;@*/
44 # define lsymbolSetBASESIZE MIDBASESIZE
47 # error "Multiple include"