]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
28bf4b0b | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** idDecl.h | |
8 | */ | |
9 | ||
10 | # ifndef idDecl_H | |
11 | # define idDecl_H | |
12 | ||
28bf4b0b | 13 | struct s_idDecl |
885824d3 | 14 | { |
15 | cstring id; | |
16 | qtype typ; | |
28bf4b0b | 17 | functionClauseList clauses; |
885824d3 | 18 | } ; |
19 | ||
20 | /*@constant null idDecl idDecl_undefined; @*/ | |
21 | # define idDecl_undefined ((idDecl) NULL) | |
22 | ||
23 | extern /*@falsenull@*/ bool idDecl_isDefined (idDecl p_t) /*@*/ ; | |
24 | # define idDecl_isDefined(t) ((t) != idDecl_undefined) | |
25 | ||
26 | extern void idDecl_free (/*@only@*/ idDecl p_t); | |
27 | extern /*@only@*/ idDecl | |
28 | idDecl_create (/*@only@*/ cstring p_s, /*@only@*/ qtype p_t); | |
28bf4b0b | 29 | |
30 | extern /*@only@*/ idDecl | |
31 | idDecl_createClauses (/*@only@*/ cstring p_s, /*@only@*/ qtype p_t, | |
32 | /*@only@*/ functionClauseList p_clauses); | |
33 | ||
885824d3 | 34 | extern /*@only@*/ cstring idDecl_unparse (idDecl p_d); |
28bf4b0b | 35 | extern /*@only@*/ cstring idDecl_unparseC (idDecl p_d); |
885824d3 | 36 | extern /*@exposed@*/ qtype idDecl_getTyp (idDecl p_d); |
37 | extern void idDecl_setTyp (idDecl p_d, /*@only@*/ qtype p_c); | |
38 | extern idDecl idDecl_expectFunction (/*@returned@*/ idDecl p_d); | |
39 | extern idDecl idDecl_replaceCtype (/*@returned@*/ idDecl p_d, ctype p_c); | |
40 | extern idDecl idDecl_fixBase (/*@returned@*/ idDecl p_t, qtype p_b); | |
41 | extern idDecl idDecl_fixParamBase (/*@returned@*/ idDecl p_t, qtype p_b); | |
28bf4b0b | 42 | |
43 | extern void idDecl_addClauses (idDecl p_d, /*@only@*/ functionClauseList) /*@modifies p_d@*/ ; | |
44 | ||
885824d3 | 45 | extern ctype idDecl_getCtype (idDecl p_d) /*@*/ ; |
46 | extern /*@exposed@*/ qualList idDecl_getQuals (idDecl p_d) /*@*/ ; | |
28bf4b0b | 47 | extern /*@exposed@*/ functionClauseList idDecl_getClauses (idDecl p_d) /*@*/ ; |
885824d3 | 48 | |
49 | extern /*@dependent@*/ /*@observer@*/ cstring idDecl_getName (idDecl p_t) /*@*/ ; | |
50 | extern /*@observer@*/ cstring idDecl_observeId (idDecl p_d) /*@*/ ; | |
51 | extern void idDecl_addQual (idDecl p_d, qual p_q); | |
52 | ||
53 | # define idDecl_getName(t) idDecl_observeId(t) | |
54 | ||
55 | # else | |
56 | # error "Multiple include" | |
57 | # endif | |
58 | ||
59 |