]> andersk Git - splint.git/blame - src/Headers/sigNodeSet.h
Updated copyrights
[splint.git] / src / Headers / sigNodeSet.h
CommitLineData
885824d3 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
885824d3 3** See ../LICENSE for license information.
4**
5*/
6/*
7** sigNodeSet.h
8**
9** based on set_template.h
10*/
11
12# ifndef SIGNODESET_H
13# define SIGNODESET_H
14
15typedef /*@owned@*/ sigNode o_sigNode;
16
28bf4b0b 17abst_typedef /*@null@*/ struct
885824d3 18{
19 int entries;
20 int nspace;
21 /*@reldef@*/ /*@relnull@*/ o_sigNode *elements;
22} *sigNodeSet ;
23
24/*@iter sigNodeSet_elements (sef sigNodeSet s, yield exposed sigNode el); @*/
25# define sigNodeSet_elements(x, m_el) \
26 { if (sigNodeSet_isDefined (x)) { \
27 int m_ind; \
28 for (m_ind = 0 ; m_ind < (x)->entries; m_ind++) \
29 { sigNode m_el = (x)->elements[m_ind];
30
31# define end_sigNodeSet_elements }}}
32
33/*@constant null sigNodeSet sigNodeSet_undefined; @*/
34# define sigNodeSet_undefined ((sigNodeSet) 0)
35
0e41eb0e 36extern /*@falsewhennull@*/ bool sigNodeSet_isDefined (sigNodeSet p_s) /*@*/ ;
885824d3 37# define sigNodeSet_isDefined(s) \
38 ((s) != sigNodeSet_undefined)
39
0e41eb0e 40extern /*@nullwhentrue@*/ bool sigNodeSet_isUndefined (sigNodeSet p_s) /*@*/ ;
885824d3 41# define sigNodeSet_isUndefined(s) \
42 ((s) == sigNodeSet_undefined)
43
44extern bool sigNodeSet_isEmpty (/*@sef@*/ sigNodeSet p_s) /*@*/ ;
45# define sigNodeSet_isEmpty(s) \
46 (sigNodeSet_isUndefined(s) || (s)->entries == 0)
47
48extern int sigNodeSet_size (/*@sef@*/ sigNodeSet p_s) /*@*/ ;
49# define sigNodeSet_size(s) (sigNodeSet_isDefined (s) ? (s)->entries : 0)
50
51extern /*@only@*/ sigNodeSet sigNodeSet_new(void) /*@*/ ;
52extern /*@only@*/ sigNodeSet sigNodeSet_singleton (/*@owned@*/ sigNode p_el) /*@*/ ;
53extern bool sigNodeSet_insert (sigNodeSet p_s, /*@owned@*/ sigNode p_el) /*@modifies p_s@*/ ;
54extern /*@only@*/ cstring sigNodeSet_unparse (sigNodeSet p_s) /*@*/ ;
55extern /*@only@*/ cstring sigNodeSet_unparsePossibleAritys (sigNodeSet p_s) /*@*/ ;
56extern void sigNodeSet_free (/*@only@*/ sigNodeSet p_s);
57extern /*@only@*/ cstring sigNodeSet_unparseSomeSigs (sigNodeSet p_s) /*@*/ ;
58
59/*@constant int sigNodeSetBASESIZE;@*/
60# define sigNodeSetBASESIZE MIDBASESIZE
61
62# else
63# error "Multiple include"
64# endif
This page took 2.178074 seconds and 5 git commands to generate.