]>
Commit | Line | Data |
---|---|---|
76c3243f | 1 | /* |
c0de361f | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003. |
76c3243f | 3 | ** See ../LICENSE for license information. |
4 | */ | |
5 | # ifndef POINTERS_H | |
6 | # define POINTERS_H | |
7 | ||
8 | struct s_pointers { | |
9 | qualList quals; | |
10 | /*@null@*/ pointers rest; | |
11 | } ; | |
12 | ||
13 | /*@constant null pointers pointers_undefined; @*/ | |
14 | # define pointers_undefined ((pointers) NULL) | |
15 | ||
16 | extern /*@nullwhentrue@*/ bool pointers_isUndefined (/*@special@*/ pointers p_e) /*@*/ ; | |
17 | extern /*@falsewhennull@*/ bool pointers_isDefined (/*@special@*/ pointers p_e) /*@*/ ; | |
18 | ||
19 | # define pointers_isUndefined(e) ((e) == pointers_undefined) | |
20 | # define pointers_isDefined(e) ((e) != pointers_undefined) | |
21 | ||
22 | extern pointers pointers_create (lltok p_tok) /*@*/ ; | |
23 | extern pointers pointers_createMods (lltok p_tok, /*@only@*/ qualList p_quals) /*@*/ ; | |
24 | extern pointers pointers_createMt (mttok p_tok) /*@*/ ; | |
25 | extern pointers pointers_createLt (ltoken p_tok) /*@*/ ; | |
26 | extern pointers pointers_createModsLt (ltoken p_tok, /*@only@*/ qualList p_quals) /*@*/ ; | |
27 | extern pointers pointers_createModsMt (mttok p_tok, /*@only@*/ qualList p_quals) /*@*/ ; | |
28 | extern pointers pointers_extend (/*@returned@*/ pointers p_p1, /*@only@*/ pointers p_p2) /*@modifies p_p1@*/ ; | |
29 | extern /*@observer@*/ pointers pointers_getRest (pointers) /*@*/ ; | |
30 | ||
31 | extern int pointers_depth (pointers p_p) /*@*/ ; | |
32 | extern cstring pointers_unparse (pointers) /*@*/ ; | |
33 | extern void pointers_free (/*@only@*/ pointers) ; | |
34 | ||
35 | # else | |
36 | # error "Multiple include" | |
37 | # endif | |
38 | ||
39 | ||
40 |