]>
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 | ||
6fcd0b1e | 12 | typedef /*@null@*/ struct s_stateInfo *stateInfo ; |
13 | ||
14 | ||
15 | /*@null@*/ struct s_stateInfo | |
28bf4b0b | 16 | { |
17 | /*@only@*/ fileloc loc; | |
18 | /*@observer@*/ sRef ref; | |
6fcd0b1e | 19 | /*@null@*/ stateInfo previous; |
20 | } ; | |
28bf4b0b | 21 | |
22 | /*@constant null stateInfo stateInfo_undefined@*/ | |
23 | # define stateInfo_undefined (NULL) | |
24 | ||
0e41eb0e | 25 | extern /*@falsewhennull@*/ bool stateInfo_isDefined (stateInfo p_s) /*@*/ ; |
28bf4b0b | 26 | # define stateInfo_isDefined(p_s) ((p_s) != stateInfo_undefined) |
27 | ||
28 | extern void stateInfo_free (/*@only@*/ stateInfo p_a); | |
29 | ||
30 | extern /*@only@*/ stateInfo stateInfo_update (/*@only@*/ stateInfo p_old, stateInfo p_newinfo); | |
31 | ||
32 | extern /*@only@*/ stateInfo stateInfo_updateLoc (/*@only@*/ stateInfo p_old, fileloc p_loc) ; | |
33 | ||
34 | extern /*@only@*/ stateInfo | |
35 | stateInfo_updateRefLoc (/*@only@*/ stateInfo p_old, /*@exposed@*/ sRef p_ref, fileloc p_loc) ; | |
36 | ||
37 | extern /*@only@*/ stateInfo stateInfo_copy (stateInfo p_a); | |
38 | ||
6970c11b | 39 | extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_currentLoc (void) ; |
28bf4b0b | 40 | extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_makeLoc (fileloc p_loc) ; |
41 | extern /*@only@*/ stateInfo stateInfo_makeRefLoc (/*@exposed@*/ sRef p_ref, fileloc p_loc) ; | |
42 | ||
43 | extern /*@observer@*/ fileloc stateInfo_getLoc (stateInfo p_info) ; | |
44 | extern /*@only@*/ cstring stateInfo_unparse (stateInfo p_s) /*@*/ ; | |
45 | ||
6fcd0b1e | 46 | extern void stateInfo_display (stateInfo p_s, /*@only@*/ cstring p_sname) /*@modifies g_errorstream@*/ ; |
47 | ||
28bf4b0b | 48 | # else |
49 | # error "Multiple include" | |
50 | # endif |