]>
Commit | Line | Data |
---|---|---|
a8e557d3 | 1 | #ifndef __constraintExprData_h__ |
2 | ||
3 | #define __constraintExprData_h__ | |
4 | ||
5 | ||
6 | typedef enum | |
7 | { | |
84c9ffbf | 8 | BINARYOP_UNDEFINED, |
a8e557d3 | 9 | PLUS, |
10 | MINUS | |
11 | } | |
12 | constraintExprBinaryOpKind; | |
13 | ||
14 | typedef enum | |
15 | { | |
16 | UNARYOP_UNDEFINED, | |
bb25bea6 | 17 | MAXSET, MINSET, MAXREAD, MINREAD |
a8e557d3 | 18 | } |
19 | constraintExprUnaryOpKind; | |
20 | ||
21 | ||
22 | typedef struct constraintExprBinaryOp_ | |
23 | { | |
24 | constraintExpr expr1; | |
25 | constraintExprBinaryOpKind binaryOp; | |
26 | constraintExpr expr2; | |
27 | } constraintExprBinaryOp; | |
28 | ||
29 | ||
30 | typedef struct constraintExprUnaryOp_ | |
31 | { | |
32 | constraintExpr expr; | |
33 | constraintExprUnaryOpKind unaryOp; | |
34 | } constraintExprUnaryOp; | |
35 | ||
36 | ||
37 | typedef union _constraintExprData | |
38 | { | |
39 | constraintExprBinaryOp binaryOp; | |
40 | constraintExprUnaryOp unaryOp; | |
41 | constraintTerm term; | |
42 | } * constraintExprData; | |
43 | ||
44 | /*@constant null constraintExprData constraintExprData_undefined; @*/ | |
45 | # define constraintExprData_undefined ((constraintExprData)NULL) | |
46 | ||
47 | extern /*@falsenull@*/ bool constraintExprData_isDefined (/*@observer@*/ /*@reldef@*/constraintExprData p_e) /*@*/ ; | |
48 | extern /*@unused@*/ /*@truenull@*/ bool constraintExprData_isUndefined (constraintExprData p_e) /*@*/ ; | |
84c9ffbf | 49 | extern/*@unused@*/ /*@truenull@*/ bool constraintExprData_isError (constraintExprData p_e) /*@*/ ; |
a8e557d3 | 50 | |
51 | # define constraintExprData_isDefined(e) ((e) != constraintExprData_undefined) | |
52 | # define constraintExprData_isUndefined(e) ((e) == constraintExprData_undefined) | |
53 | # define constraintExprData_isError(e) ((e) == constraintExprData_undefined) | |
54 | ||
a8e557d3 | 55 | |
d46ce6a4 | 56 | /*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintTerm term); |
57 | ||
58 | /*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) /*@*/; | |
a8e557d3 | 59 | |
84c9ffbf | 60 | constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/; |
a8e557d3 | 61 | |
d46ce6a4 | 62 | /*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@reldef@*/constraintExprData data) /*@*/; |
a8e557d3 | 63 | |
64 | ||
65 | // /*@special@*/ constraintExprData constraintExprData_unaryExprSetOp ( /*@out@*/ /*@special@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) /*@sets result->unaryOp.unaryOp@*/; | |
66 | ||
67 | ||
84c9ffbf | 68 | constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op); |
a8e557d3 | 69 | |
d46ce6a4 | 70 | constraintExprData constraintExprData_unaryExprSetExpr (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr); |
a8e557d3 | 71 | |
72 | ||
84c9ffbf | 73 | constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/; |
a8e557d3 | 74 | |
d46ce6a4 | 75 | /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@reldef@*/constraintExprData data)/*@*/; |
a8e557d3 | 76 | |
d46ce6a4 | 77 | /*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@reldef@*/constraintExprData data)/*@*/; |
a8e557d3 | 78 | |
d46ce6a4 | 79 | constraintExprData constraintExprData_binaryExprSetExpr1 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) ; |
a8e557d3 | 80 | |
d46ce6a4 | 81 | constraintExprData constraintExprData_binaryExprSetExpr2 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr); |
a8e557d3 | 82 | |
84c9ffbf | 83 | constraintExprData constraintExprData_binaryExprSetOp (/*@reldef@*/ /*@returned@*/ /*@out@*/constraintExprData data, constraintExprBinaryOpKind op); |
a8e557d3 | 84 | |
d46ce6a4 | 85 | /*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(constraintExprData data); |
a8e557d3 | 86 | |
d46ce6a4 | 87 | /*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(constraintExprData data); |
a8e557d3 | 88 | |
d46ce6a4 | 89 | /*@only@*/ constraintExprData constraintExprData_copyTerm (constraintExprData data); |
a8e557d3 | 90 | |
91 | #else | |
92 | ||
93 | #error "Multiple Include" | |
94 | ||
95 | #endif |