2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
15 typedef /*@owned@*/ sRef ow_sRef;
17 abst_typedef /*@null@*/ struct
21 /*@reldef@*/ /*@relnull@*/ ow_sRef *elements;
24 /*@constant int sRefTableBASESIZE; @*/
25 # define sRefTableBASESIZE HUGEBASESIZE
27 /*@constant null sRefTable sRefTable_undefined; @*/
28 # define sRefTable_undefined ((sRefTable) NULL)
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) /*@*/ ;
35 # define sRefTable_isNull(s) ((s) == sRefTable_undefined)
36 # define sRefTable_isDefined(s) ((!sRefTable_isNull(s)))
38 # define sRefTable_isEmpty(s) ((s) == sRefTable_undefined || ((s)->entries == 0))
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@*/ ;
44 sRefTable_add (/*@returned@*/ sRefTable p_s,
45 /*@special@*/ /*@owned@*/ sRef p_el)
49 # error "Multiple include"