]> andersk Git - splint.git/blob - src/Headers/lsymbolSet.h
Renamed truenull nullwhentrue and falsenull falsewhennull
[splint.git] / src / Headers / lsymbolSet.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** lsymbolSet.h
8 **
9 ** based on set_template.h
10 */
11
12 # ifndef LSYMBOLSET_H
13 # define LSYMBOLSET_H
14
15 abst_typedef /*@null@*/ struct
16 {
17   int entries;
18   int nspace;
19   /*@reldef@*/ /*@relnull@*/ lsymbol  *elements;
20 } *lsymbolSet ;
21
22 /*@constant null lsymbolSet lsymbolSet_undefined; @*/
23 # define lsymbolSet_undefined (NULL)
24
25 extern /*@falsewhennull@*/ bool lsymbolSet_isDefined (lsymbolSet p_l) /*@*/ ;
26 # define lsymbolSet_isDefined(l) ((l) != lsymbolSet_undefined)
27  
28 /*@iter lsymbolSet_elements (sef lsymbolSet s, yield lsymbol el); @*/
29 # define lsymbolSet_elements(x, m_el) \
30      if (lsymbolSet_isDefined (x)) \
31       { int m_ind; \
32         for (m_ind = 0 ; m_ind < (x)->entries; m_ind++) \
33          { lsymbol m_el = (x)->elements[m_ind]; 
34
35 # define end_lsymbolSet_elements }}
36
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);
42
43 /*@constant int lsymbolSetBASESIZE;@*/
44 # define lsymbolSetBASESIZE MIDBASESIZE
45
46 # else
47 # error "Multiple include"
48 # endif
This page took 0.067862 seconds and 5 git commands to generate.