2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
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 /*@falsenull@*/ bool metaStateExpression_isDefined (metaStateExpression) /*@*/ ;
21 # define metaStateExpression_isDefined(p_info) ((p_info) != NULL)
23 extern /*@truenull@*/ 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"