2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
13 ** Keeps track of the value of a state variable, as well as tracking
14 ** information about its history.
20 /*@only@*/ stateInfo info;
23 extern stateValue stateValue_create (int p_value, /*@only@*/ stateInfo p_info) /*@*/ ;
25 /*@constant null stateValue stateValue_undefined@*/
26 # define stateValue_undefined (NULL)
28 extern /*@truenull@*/ bool stateValue_isUndefined (stateValue) /*@*/ ;
29 # define stateValue_isUndefined(p_s) ((p_s) == stateValue_undefined)
31 extern /*@falsenull@*/ bool stateValue_isDefined (stateValue) /*@*/ ;
32 # define stateValue_isDefined(p_s) ((p_s) != NULL)
34 extern int stateValue_getValue (stateValue p_s) /*@*/ ;
36 extern void stateValue_update (stateValue p_res, stateValue p_val) /*@modifies p_res@*/ ;
38 extern /*@observer@*/ fileloc stateValue_getLoc (stateValue p_s) /*@*/ ;
39 # define stateValue_getLoc(p_s) (stateInfo_getLoc (stateValue_getInfo (p_s)))
41 extern bool stateValue_hasLoc (stateValue p_s) /*@*/ ;
43 extern /*@observer@*/ stateInfo stateValue_getInfo (stateValue p_s) /*@*/ ;
45 extern void stateValue_updateValue (/*@sef@*/ stateValue p_s, int p_value, /*@only@*/ stateInfo p_info) /*@modifies p_s@*/ ;
47 extern void stateValue_updateValueLoc (stateValue p_s, int p_value, fileloc p_loc) /*@modifies p_s@*/ ;
49 extern void stateValue_show (stateValue p_s, metaStateInfo p_msinfo) ;
51 extern stateValue stateValue_copy (stateValue p_s) /*@*/ ;
53 extern /*@observer@*/ cstring
54 stateValue_unparseValue (stateValue p_s, metaStateInfo p_msinfo) /*@*/ ;
56 extern cstring stateValue_unparse (stateValue p_s) /*@*/ ;
58 extern bool stateValue_sameValue (stateValue p_s1, stateValue p_s2) /*@*/ ;
60 extern bool stateValue_isError (stateValue p_s) /*@*/ ;
61 # define stateValue_isError(p_s) (stateValue_getValue (p_s) == stateValue_error)
63 /*@constant int stateValue_error@*/
64 # define stateValue_error -1
67 # error "Multiple include"