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