2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
12 typedef /*@null@*/ struct s_stateInfo *stateInfo ;
17 /* Any type of action */
22 /* Definition actions */
43 SA_XSTACK, /* SA_STACK is defined in some Linux headers (but ISO does not reserve this namespace) */
61 SA_BECOMESPOSSIBLYNULL,
65 /*@null@*/ struct s_stateInfo
67 /*@only@*/ fileloc loc;
69 /*@observer@*/ sRef ref;
70 /*@null@*/ stateInfo previous;
73 /*@constant null stateInfo stateInfo_undefined@*/
74 # define stateInfo_undefined (NULL)
76 extern /*@falsewhennull@*/ bool stateInfo_isDefined (stateInfo p_s) /*@*/ ;
77 # define stateInfo_isDefined(p_s) ((p_s) != stateInfo_undefined)
79 extern void stateInfo_free (/*@only@*/ stateInfo p_a);
81 extern /*@only@*/ stateInfo stateInfo_update (/*@only@*/ stateInfo p_old, stateInfo p_newinfo);
83 extern /*@only@*/ stateInfo stateInfo_updateLoc (/*@only@*/ stateInfo p_old,
87 extern /*@only@*/ stateInfo
88 stateInfo_updateRefLoc (/*@only@*/ stateInfo p_old, /*@exposed@*/ sRef p_ref,
92 extern /*@only@*/ stateInfo stateInfo_copy (stateInfo p_a);
94 extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_currentLoc (void) ;
96 extern /*@only@*/ /*@notnull@*/ stateInfo
97 stateInfo_makeLoc (fileloc p_loc, stateAction p_action) /*@*/ ;
99 extern /*@only@*/ /*@notnull@*/ stateInfo
100 stateInfo_makeRefLoc (/*@exposed@*/ sRef p_ref, fileloc p_loc, stateAction p_action) /*@*/ ;
102 extern /*@observer@*/ fileloc stateInfo_getLoc (stateInfo p_info) ;
103 extern /*@only@*/ cstring stateInfo_unparse (stateInfo p_s) /*@*/ ;
105 extern stateAction stateAction_fromSState (sstate p_ss) /*@*/ ;
106 extern stateAction stateAction_fromNState (nstate p_ns) /*@*/ ;
107 extern stateAction stateAction_fromExkind (exkind p_ex) /*@*/ ;
108 extern stateAction stateAction_fromAlkind (alkind p_ak) /*@*/ ;
110 extern void stateInfo_display (stateInfo p_s, /*@only@*/ cstring p_sname)
111 /*@modifies g_errorstream@*/ ;
114 # error "Multiple include"