2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
8 ** A record that keeps information on a user-defined annotations including:
15 struct s_annotationInfo
{
17 /*@dependent@*/ /*@observer@*/ metaStateInfo state
;
18 /* associated metaStateInfo entry */
21 mtContextNode context
;
24 /* typedef struct _annotationInfo *annotationInfo; */
26 /*@constant null annotationInfo annotationInfo_undefined; @*/
27 # define annotationInfo_undefined ((annotationInfo) NULL)
29 extern /*@falsewhennull@*/ bool annotationInfo_isDefined (annotationInfo
) /*@*/ ;
30 # define annotationInfo_isDefined(p_info) ((p_info) != annotationInfo_undefined)
32 extern /*@nullwhentrue@*/ bool annotationInfo_isUndefined (annotationInfo
) /*@*/ ;
33 # define annotationInfo_isUndefined(p_info) ((p_info) == annotationInfo_undefined)
35 extern bool annotationInfo_equal (annotationInfo
, annotationInfo
) /*@*/ ;
36 # define annotationInfo_equal(p_info1, p_info2) ((p_info1) == (p_info2))
38 extern bool annotationInfo_matchesContext (annotationInfo
, uentry
) /*@*/ ;
39 extern bool annotationInfo_matchesContextRef (annotationInfo
, sRef
) /*@*/ ;
41 extern /*@observer@*/ metaStateInfo
annotationInfo_getState (annotationInfo
) /*@*/ ;
42 extern int annotationInfo_getValue (annotationInfo
) /*@*/ ;
43 extern /*@observer@*/ cstring
annotationInfo_getName (annotationInfo
) /*@*/ ;
45 extern /*@only@*/ annotationInfo
46 annotationInfo_create (/*@only@*/ cstring p_name
,
47 /*@dependent@*/ /*@exposed@*/ metaStateInfo p_state
,
48 /*@only@*/ mtContextNode p_context
,
49 int p_value
, /*@only@*/ fileloc p_loc
) /*@*/ ;
51 extern /*@observer@*/ cstring
annotationInfo_unparse (annotationInfo p_a
);
52 extern /*@observer@*/ fileloc
annotationInfo_getLoc (annotationInfo p_a
) /*@*/ ;
54 extern void annotationInfo_free (/*@only@*/ annotationInfo
) ;
56 extern /*@observer@*/ cstring
annotationInfo_dump (annotationInfo
) ;
57 extern /*@observer@*/ annotationInfo
annotationInfo_undump (char **p_s
) /*@modifies *p_s@*/ ;
60 # error "Multiple include"