]>
Commit | Line | Data |
---|---|---|
3aaedf88 | 1 | #/* |
a8e557d3 | 2 | ** constraintExprData.c |
3aaedf88 | 3 | */ |
4 | ||
3aaedf88 | 5 | # include "lclintMacros.nf" |
6 | # include "basic.h" | |
7 | # include "cgrammar.h" | |
8 | # include "cgrammar_tokens.h" | |
9 | ||
10 | # include "exprChecks.h" | |
11 | # include "aliasChecks.h" | |
12 | # include "exprNodeSList.h" | |
3aaedf88 | 13 | |
14 | ||
c3e695ff | 15 | constraintExprData constraintExprData_copyBinaryExpr(constraintExprData data) |
16 | { | |
17 | constraintExprData ret; | |
18 | llassert(constraintExprData_isDefined(data)); | |
19 | ret = dmalloc (sizeof (*ret) ); | |
20 | ret->binaryOp.binaryOp = data->binaryOp.binaryOp; | |
21 | ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1); | |
22 | ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2); | |
23 | return ret; | |
24 | } | |
3aaedf88 | 25 | |
c3e695ff | 26 | constraintExprData constraintExprData_copyUnaryExpr(constraintExprData data) |
3aaedf88 | 27 | { |
c3e695ff | 28 | constraintExprData ret; |
29 | llassert(constraintExprData_isDefined(data)); | |
3aaedf88 | 30 | ret = dmalloc (sizeof (*ret) ); |
c3e695ff | 31 | |
32 | ret->unaryOp.unaryOp = data->unaryOp.unaryOp; | |
33 | ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr); | |
3aaedf88 | 34 | |
35 | return ret; | |
36 | } | |
37 | ||
c3e695ff | 38 | constraintExprData constraintExprData_copyTerm (constraintExprData data) |
39 | { | |
40 | constraintExprData ret; | |
41 | llassert(constraintExprData_isDefined(data)); | |
42 | ret = dmalloc (sizeof (*ret) ); | |
43 | ret->term = constraintTerm_copy (data->term); | |
44 | return ret; | |
45 | } | |
46 | ||
47 | // constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind) | |
48 | // { | |
49 | // constraintExprData ret; | |
50 | // llassert(constraintExprData_isDefined(data)); | |
51 | // ret = dmalloc (sizeof (*ret) ); | |
52 | // switch (kind) | |
53 | // { | |
54 | // case binaryexpr: | |
55 | // ret->binaryOp.binaryOp = data->binaryOp.binaryOp; | |
56 | // ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1); | |
57 | // ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2); | |
58 | // break; | |
59 | // case unaryExpr: | |
60 | // ret->unaryOp.unaryOp = data->unaryOp.unaryOp; | |
61 | // ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr); | |
62 | // break; | |
63 | // case term: | |
64 | // ret->term = constraintTerm_copy (data->term); | |
65 | // } | |
66 | ||
67 | // return ret; | |
68 | // } | |
69 | ||
84c9ffbf | 70 | constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ constraintExprData data, constraintTerm term) |
3aaedf88 | 71 | { |
a8e557d3 | 72 | /*@-uniondef@*/ |
c3e695ff | 73 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 74 | /*@=uniondef@*/ |
3aaedf88 | 75 | data->term = constraintTerm_copy(term); |
76 | return data; | |
77 | } | |
78 | ||
79 | ||
80 | ||
a8e557d3 | 81 | constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) |
3aaedf88 | 82 | { |
c3e695ff | 83 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 84 | /*@i22*/return data->term; |
3aaedf88 | 85 | } |
86 | ||
87 | ||
88 | constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (constraintExprData data) | |
89 | { | |
c3e695ff | 90 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 91 | return (data->unaryOp.unaryOp); |
92 | } | |
93 | ||
94 | ||
95 | constraintExpr constraintExprData_unaryExprGetExpr (constraintExprData data) | |
96 | { | |
c3e695ff | 97 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 98 | /*@i232*/ return (data->unaryOp.expr); |
3aaedf88 | 99 | } |
100 | ||
101 | ||
102 | ||
84c9ffbf | 103 | constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) |
3aaedf88 | 104 | { |
a8e557d3 | 105 | /*@-uniondef@*/ |
c3e695ff | 106 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 107 | /*@=uniondef@*/ |
108 | ||
3aaedf88 | 109 | data->unaryOp.unaryOp = op; |
110 | return data; | |
111 | } | |
112 | ||
a8e557d3 | 113 | constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, constraintExpr expr) |
3aaedf88 | 114 | { |
c3e695ff | 115 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 116 | data->unaryOp.expr = constraintExpr_copy(expr); |
117 | return data; | |
118 | } | |
119 | ||
120 | // binaryExpr stuff | |
121 | ||
122 | ||
123 | constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data) | |
124 | { | |
c3e695ff | 125 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 126 | return (data->binaryOp.binaryOp); |
127 | } | |
128 | ||
129 | ||
130 | constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data) | |
131 | { | |
c3e695ff | 132 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 133 | /*@i23*/ return (data->binaryOp.expr1); |
3aaedf88 | 134 | } |
135 | ||
136 | ||
137 | constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data) | |
138 | { | |
c3e695ff | 139 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 140 | /*@i22*/ return (data->binaryOp.expr2); |
3aaedf88 | 141 | } |
142 | ||
143 | ||
84c9ffbf | 144 | constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExpr expr) |
3aaedf88 | 145 | { |
c3e695ff | 146 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 147 | data->binaryOp.expr1 = constraintExpr_copy(expr); |
148 | return data; | |
149 | } | |
150 | ||
84c9ffbf | 151 | constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExpr expr) |
3aaedf88 | 152 | { |
c3e695ff | 153 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 154 | data->binaryOp.expr2 = constraintExpr_copy(expr); |
155 | return data; | |
156 | } | |
157 | ||
158 | ||
84c9ffbf | 159 | constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExprBinaryOpKind op) |
3aaedf88 | 160 | { |
c3e695ff | 161 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 162 | data->binaryOp.binaryOp = op; |
163 | return data; | |
164 | } |