]> andersk Git - splint.git/blob - src/Headers/sRefTable.h
Initial revision
[splint.git] / src / Headers / sRefTable.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** sRefTable.h
8 **
9 ** based on sRefSet.h
10 */
11
12 # ifndef sRefTABLE_H
13 # define sRefTABLE_H
14
15 typedef /*@owned@*/ sRef ow_sRef;
16
17 abst_typedef /*@null@*/ struct _sRefTable
18 {
19   int entries;
20   int nspace;
21   /*@reldef@*/ /*@relnull@*/ ow_sRef *elements;
22 } *sRefTable;
23
24 /*@constant int sRefTableBASESIZE; @*/
25 # define sRefTableBASESIZE HUGEBASESIZE
26
27 /*@constant null sRefTable sRefTable_undefined; @*/
28 # define sRefTable_undefined ((sRefTable) NULL)
29
30 extern /*@truenull@*/ bool sRefTable_isNull (sRefTable p_s) /*@*/ ;
31 extern /*@truenull@*/ bool sRefTable_isEmpty (/*@sef@*/ sRefTable p_s) /*@*/ ;
32 extern /*@unused@*/ /*@falsenull@*/ bool 
33   sRefTable_isDefined (sRefTable p_s) /*@*/ ;
34
35 # define sRefTable_isNull(s) ((s) == sRefTable_undefined)
36 # define sRefTable_isDefined(s) ((!sRefTable_isNull(s)))
37
38 # define sRefTable_isEmpty(s) ((s) == sRefTable_undefined || ((s)->entries == 0))
39
40 extern /*@unused@*/ /*@only@*/ cstring sRefTable_unparse (sRefTable p_s) /*@*/ ;
41 extern void sRefTable_free (/*@only@*/ sRefTable p_s) /*@modifies p_s@*/;
42 extern void sRefTable_clear (sRefTable p_s) /*@modifies p_s@*/ ;
43 extern sRefTable 
44   sRefTable_add (/*@returned@*/ sRefTable p_s, 
45                  /*@special@*/ /*@owned@*/ sRef p_el)
46   /*@modifies p_s@*/ ;
47
48 # else
49 # error "Multiple include"
50 # endif
51
52
53
This page took 0.060106 seconds and 5 git commands to generate.