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 /*@observer@*/ fileloc
stateInfo_getLoc (stateInfo p_info
) ;
100 extern /*@only@*/ cstring
stateInfo_unparse (stateInfo p_s
) /*@*/ ;
102 extern stateAction
stateAction_fromSState (sstate p_ss
) /*@*/ ;
103 extern stateAction
stateAction_fromNState (nstate p_ns
) /*@*/ ;
104 extern stateAction
stateAction_fromExkind (exkind p_ex
) /*@*/ ;
105 extern stateAction
stateAction_fromAlkind (alkind p_ak
) /*@*/ ;
107 extern void stateInfo_display (stateInfo p_s
, /*@only@*/ cstring p_sname
)
108 /*@modifies g_errorstream@*/ ;
111 # error "Multiple include"