]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003. | |
3 | ** See ../LICENSE for license information. | |
4 | */ | |
5 | /* | |
6 | ** metaStateExpression.h | |
7 | */ | |
8 | ||
9 | # ifndef METASTATEEXPRESSION_H | |
10 | # define METASTATEEXPRESSION_H | |
11 | ||
12 | struct s_metaStateExpression { | |
13 | metaStateSpecifier spec; | |
14 | /*@null@*/ metaStateExpression rest; | |
15 | } ; | |
16 | ||
17 | /*@constant null metaStateExpression metaStateExpression_undefined; @*/ | |
18 | # define metaStateExpression_undefined ((metaStateExpression) NULL) | |
19 | ||
20 | extern /*@falsewhennull@*/ bool metaStateExpression_isDefined (metaStateExpression) /*@*/ ; | |
21 | # define metaStateExpression_isDefined(p_info) ((p_info) != NULL) | |
22 | ||
23 | extern /*@nullwhentrue@*/ bool metaStateExpression_isUndefined (metaStateExpression) /*@*/ ; | |
24 | # define metaStateExpression_isUndefined(p_info) ((p_info) == NULL) | |
25 | ||
26 | extern /*@notnull@*/ metaStateExpression | |
27 | metaStateExpression_create (/*@only@*/ metaStateSpecifier) ; | |
28 | ||
29 | extern /*@notnull@*/ metaStateExpression | |
30 | metaStateExpression_createMerge (/*@only@*/ metaStateSpecifier, /*@only@*/ metaStateExpression) ; | |
31 | ||
32 | extern /*@observer@*/ metaStateSpecifier | |
33 | metaStateExpression_getSpecifier (metaStateExpression) /*@*/ ; | |
34 | ||
35 | extern bool metaStateExpression_isMerge (metaStateExpression) /*@*/ ; | |
36 | extern /*@observer@*/ metaStateExpression metaStateExpression_getRest (metaStateExpression) /*@*/ ; | |
37 | ||
38 | extern metaStateExpression metaStateExpression_copy (metaStateExpression) ; | |
39 | ||
40 | extern cstring metaStateExpression_unparse (metaStateExpression) /*@*/ ; | |
41 | ||
42 | extern void metaStateExpression_free (/*@only@*/ metaStateExpression) ; | |
43 | ||
44 | # else | |
45 | # error "Multiple include" | |
46 | # endif | |
47 | ||
48 | ||
49 | ||
50 |