]>
Commit | Line | Data |
---|---|---|
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 | # ifndef INITDECLNODELIST_H | |
8 | # define INITDECLNODELIST_H | |
9 | ||
10 | typedef /*@only@*/ initDeclNode o_initDeclNode; | |
11 | ||
28bf4b0b | 12 | abst_typedef struct |
885824d3 | 13 | { |
14 | int nelements; | |
15 | int nspace; | |
16 | /*@reldef@*/ /*@relnull@*/ o_initDeclNode *elements; | |
17 | } *initDeclNodeList ; | |
18 | ||
19 | /*@iter initDeclNodeList_elements (sef initDeclNodeList x, yield exposed initDeclNode el); @*/ | |
20 | # define initDeclNodeList_elements(x, m_el) \ | |
21 | { int m_ind; initDeclNode *m_elements = &((x)->elements[0]); \ | |
22 | for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ | |
23 | { initDeclNode m_el = *(m_elements++); | |
24 | ||
25 | # define end_initDeclNodeList_elements }} | |
26 | ||
27 | extern /*@only@*/ initDeclNodeList initDeclNodeList_new(void); | |
28 | extern initDeclNodeList | |
29 | initDeclNodeList_add (/*@returned@*/ initDeclNodeList p_s, | |
30 | /*@only@*/ initDeclNode p_el) ; | |
31 | ||
32 | extern /*@only@*/ cstring initDeclNodeList_unparse (initDeclNodeList p_s) ; | |
33 | extern void initDeclNodeList_free (/*@only@*/ initDeclNodeList p_s) ; | |
34 | ||
35 | /*@constant int initDeclNodeListBASESIZE;@*/ | |
36 | # define initDeclNodeListBASESIZE SMALLBASESIZE | |
37 | ||
38 | # else | |
39 | # error "Multiple include" | |
40 | # endif | |
41 | ||
42 | ||
43 | ||
44 |