2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
6 ** metaStateExpression.h
9 # ifndef METASTATEEXPRESSION_H
10 # define METASTATEEXPRESSION_H
12 struct s_metaStateExpression
{
13 metaStateSpecifier spec
;
14 /*@null@*/ metaStateExpression rest
;
17 /*@constant null metaStateExpression metaStateExpression_undefined; @*/
18 # define metaStateExpression_undefined ((metaStateExpression) NULL)
20 extern /*@falsewhennull@*/ bool metaStateExpression_isDefined (metaStateExpression
) /*@*/ ;
21 # define metaStateExpression_isDefined(p_info) ((p_info) != NULL)
23 extern /*@nullwhentrue@*/ bool metaStateExpression_isUndefined (metaStateExpression
) /*@*/ ;
24 # define metaStateExpression_isUndefined(p_info) ((p_info) == NULL)
26 extern /*@notnull@*/ metaStateExpression
27 metaStateExpression_create (/*@only@*/ metaStateSpecifier
) ;
29 extern /*@notnull@*/ metaStateExpression
30 metaStateExpression_createMerge (/*@only@*/ metaStateSpecifier
, /*@only@*/ metaStateExpression
) ;
32 extern /*@observer@*/ metaStateSpecifier
33 metaStateExpression_getSpecifier (metaStateExpression
) /*@*/ ;
35 extern bool metaStateExpression_isMerge (metaStateExpression
) /*@*/ ;
36 extern /*@observer@*/ metaStateExpression
metaStateExpression_getRest (metaStateExpression
) /*@*/ ;
38 extern metaStateExpression
metaStateExpression_copy (metaStateExpression
) ;
40 extern cstring
metaStateExpression_unparse (metaStateExpression
) /*@*/ ;
42 extern void metaStateExpression_free (/*@only@*/ metaStateExpression
) ;
45 # error "Multiple include"