]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
2 | ** qualList.h (from slist_templace.h) | |
3 | */ | |
4 | ||
5 | # ifndef QUALLIST_H | |
6 | # define QUALLIST_H | |
7 | ||
28bf4b0b | 8 | abst_typedef /*@null@*/ struct |
885824d3 | 9 | { |
10 | int nelements; | |
11 | int free; | |
12 | /*@reldef@*/ /*@relnull@*/ qual *elements; | |
13 | } *qualList ; | |
14 | ||
0e41eb0e | 15 | extern /*@falsewhennull@*/ bool qualList_isDefined (qualList p_s); |
16 | extern /*@unused@*/ /*@nullwhentrue@*/ bool qualList_isUndefined (qualList p_s); | |
885824d3 | 17 | |
18 | /*@constant null qualList qualList_undefined; @*/ | |
19 | # define qualList_undefined ((qualList) NULL) | |
20 | ||
21 | # define qualList_isDefined(q) ((q) != qualList_undefined) | |
22 | # define qualList_isUndefined(q) ((q) == qualList_undefined) | |
23 | ||
24 | /*@iter qualList_elements (sef qualList x, yield qual el); @*/ | |
25 | # define qualList_elements(x, m_el) \ | |
26 | { if (qualList_isDefined(x)) { \ | |
27 | int m_ind; qual *m_elements = &((x)->elements[0]); \ | |
28 | for (m_ind = 0; m_ind < (x)->nelements; m_ind++) \ | |
29 | { qual m_el = *(m_elements++); | |
30 | ||
31 | # define end_qualList_elements }}} | |
32 | ||
33 | extern int qualList_size (/*@sef@*/ qualList p_s); | |
34 | # define qualList_size(s) (qualList_isDefined(s) ? (s)->nelements : 0) | |
35 | ||
36 | extern bool qualList_isEmpty (/*@sef@*/ qualList p_s); | |
37 | # define qualList_isEmpty(s) (qualList_size(s) == 0) | |
38 | ||
39 | extern qualList qualList_new (void) /*@*/ ; | |
f9264521 | 40 | |
41 | extern qualList qualList_single (qual p_el) /*@*/ ; | |
42 | ||
885824d3 | 43 | extern qualList qualList_add (/*@returned@*/ qualList p_s, qual p_el) |
44 | /*@modifies p_s@*/; | |
45 | ||
46 | extern /*@only@*/ cstring qualList_unparse (qualList p_s) /*@*/ ; | |
47 | extern void qualList_free (/*@only@*/ qualList p_s) ; | |
48 | extern qualList qualList_appendList (/*@returned@*/ qualList p_s, qualList p_t); | |
49 | ||
885824d3 | 50 | extern qualList qualList_copy (qualList p_s); |
51 | extern /*@only@*/ cstring qualList_toCComments (qualList p_s); | |
885824d3 | 52 | |
53 | extern void qualList_clear (qualList p_q); | |
54 | ||
55 | /*@constant int qualListBASESIZE;@*/ | |
56 | # define qualListBASESIZE 8 | |
57 | ||
58 | extern bool qualList_hasAliasQualifier (qualList p_s); | |
59 | extern bool qualList_hasExposureQualifier (qualList p_s); | |
60 | ||
1ac6313d | 61 | /* start modifications */ |
62 | extern bool qualList_hasNullTerminatedQualifier(qualList p_s); | |
28bf4b0b | 63 | |
64 | extern bool qualList_hasBufQualifiers(qualList p_s); | |
1ac6313d | 65 | |
66 | # define qualList_hasBufQualifiers(p_s) \ | |
67 | (qualList_hasNullTerminatedQualifier(p_s)) | |
68 | ||
69 | /* end modification/s */ | |
70 | ||
885824d3 | 71 | # else |
72 | # error "Multiple include" | |
73 | # endif | |
74 | ||
75 | ||
76 | ||
77 |