]>
Commit | Line | Data |
---|---|---|
28bf4b0b | 1 | /* |
2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. | |
3 | ** See ../LICENSE for license information. | |
4 | */ | |
5 | /* | |
6 | ** stateInfo.h | |
7 | */ | |
8 | ||
9 | # ifndef STATEINFO_H | |
10 | # define STATEINFO_H | |
11 | ||
12 | typedef /*@null@*/ struct | |
13 | { | |
14 | /*@only@*/ fileloc loc; | |
15 | /*@observer@*/ sRef ref; | |
16 | /*@observer@*/ uentry ue; | |
17 | } *stateInfo; | |
18 | ||
19 | /*@constant null stateInfo stateInfo_undefined@*/ | |
20 | # define stateInfo_undefined (NULL) | |
21 | ||
22 | extern /*@falsenull@*/ bool stateInfo_isDefined (stateInfo p_s) /*@*/ ; | |
23 | # define stateInfo_isDefined(p_s) ((p_s) != stateInfo_undefined) | |
24 | ||
25 | extern void stateInfo_free (/*@only@*/ stateInfo p_a); | |
26 | ||
27 | extern /*@only@*/ stateInfo stateInfo_update (/*@only@*/ stateInfo p_old, stateInfo p_newinfo); | |
28 | ||
29 | extern /*@only@*/ stateInfo stateInfo_updateLoc (/*@only@*/ stateInfo p_old, fileloc p_loc) ; | |
30 | ||
31 | extern /*@only@*/ stateInfo | |
32 | stateInfo_updateRefLoc (/*@only@*/ stateInfo p_old, /*@exposed@*/ sRef p_ref, fileloc p_loc) ; | |
33 | ||
34 | extern /*@only@*/ stateInfo stateInfo_copy (stateInfo p_a); | |
35 | ||
6970c11b | 36 | extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_currentLoc (void) ; |
28bf4b0b | 37 | extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_makeLoc (fileloc p_loc) ; |
38 | extern /*@only@*/ stateInfo stateInfo_makeRefLoc (/*@exposed@*/ sRef p_ref, fileloc p_loc) ; | |
39 | ||
40 | extern /*@observer@*/ fileloc stateInfo_getLoc (stateInfo p_info) ; | |
41 | extern /*@only@*/ cstring stateInfo_unparse (stateInfo p_s) /*@*/ ; | |
42 | ||
43 | # else | |
44 | # error "Multiple include" | |
45 | # endif |