]>
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 | ||
d46ce6a4 | 15 | void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data) |
16 | { | |
17 | constraintExpr_free (data->binaryOp.expr1); | |
18 | constraintExpr_free (data->binaryOp.expr2); | |
19 | free(data); | |
20 | } | |
21 | ||
4ab867d6 | 22 | constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data) |
c3e695ff | 23 | { |
4ab867d6 | 24 | constraintExprData ret; |
c3e695ff | 25 | llassert(constraintExprData_isDefined(data)); |
26 | ret = dmalloc (sizeof (*ret) ); | |
27 | ret->binaryOp.binaryOp = data->binaryOp.binaryOp; | |
28 | ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1); | |
29 | ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2); | |
30 | return ret; | |
31 | } | |
3aaedf88 | 32 | |
bb25bea6 | 33 | void constraintExprData_freeUnaryExpr (/*@only@*/constraintExprData data) |
d46ce6a4 | 34 | { |
35 | constraintExpr_free (data->unaryOp.expr); | |
36 | free(data); | |
37 | } | |
38 | ||
4ab867d6 | 39 | constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data) |
3aaedf88 | 40 | { |
c3e695ff | 41 | constraintExprData ret; |
42 | llassert(constraintExprData_isDefined(data)); | |
3aaedf88 | 43 | ret = dmalloc (sizeof (*ret) ); |
c3e695ff | 44 | |
45 | ret->unaryOp.unaryOp = data->unaryOp.unaryOp; | |
46 | ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr); | |
3aaedf88 | 47 | |
48 | return ret; | |
49 | } | |
50 | ||
d46ce6a4 | 51 | void constraintExprData_freeTerm (/*@only@*/constraintExprData data) |
52 | { | |
53 | constraintTerm_free (data->term); | |
54 | free(data); | |
55 | } | |
56 | ||
57 | ||
4ab867d6 | 58 | constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data) |
c3e695ff | 59 | { |
60 | constraintExprData ret; | |
61 | llassert(constraintExprData_isDefined(data)); | |
62 | ret = dmalloc (sizeof (*ret) ); | |
63 | ret->term = constraintTerm_copy (data->term); | |
64 | return ret; | |
65 | } | |
66 | ||
67 | // constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind) | |
68 | // { | |
69 | // constraintExprData ret; | |
70 | // llassert(constraintExprData_isDefined(data)); | |
71 | // ret = dmalloc (sizeof (*ret) ); | |
72 | // switch (kind) | |
73 | // { | |
74 | // case binaryexpr: | |
75 | // ret->binaryOp.binaryOp = data->binaryOp.binaryOp; | |
76 | // ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1); | |
77 | // ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2); | |
78 | // break; | |
79 | // case unaryExpr: | |
80 | // ret->unaryOp.unaryOp = data->unaryOp.unaryOp; | |
81 | // ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr); | |
82 | // break; | |
83 | // case term: | |
84 | // ret->term = constraintTerm_copy (data->term); | |
85 | // } | |
86 | ||
87 | // return ret; | |
88 | // } | |
89 | ||
d46ce6a4 | 90 | /*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term) |
3aaedf88 | 91 | { |
a8e557d3 | 92 | /*@-uniondef@*/ |
c3e695ff | 93 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 94 | /*@=uniondef@*/ |
d46ce6a4 | 95 | data->term = term; |
3aaedf88 | 96 | return data; |
97 | } | |
98 | ||
99 | ||
100 | ||
d46ce6a4 | 101 | /*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) |
3aaedf88 | 102 | { |
c3e695ff | 103 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 104 | /*@i22*/return data->term; |
3aaedf88 | 105 | } |
106 | ||
107 | ||
4ab867d6 | 108 | constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*/ constraintExprData data) |
3aaedf88 | 109 | { |
c3e695ff | 110 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 111 | return (data->unaryOp.unaryOp); |
112 | } | |
113 | ||
114 | ||
4ab867d6 | 115 | constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintExprData data) |
3aaedf88 | 116 | { |
c3e695ff | 117 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 118 | /*@i232*/ return (data->unaryOp.expr); |
3aaedf88 | 119 | } |
120 | ||
121 | ||
122 | ||
84c9ffbf | 123 | constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) |
3aaedf88 | 124 | { |
a8e557d3 | 125 | /*@-uniondef@*/ |
c3e695ff | 126 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 127 | /*@=uniondef@*/ |
128 | ||
3aaedf88 | 129 | data->unaryOp.unaryOp = op; |
130 | return data; | |
131 | } | |
132 | ||
d46ce6a4 | 133 | constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, /*@only@*/ constraintExpr expr) |
3aaedf88 | 134 | { |
c3e695ff | 135 | llassert (constraintExprData_isDefined(data)); |
d46ce6a4 | 136 | data->unaryOp.expr = expr; |
3aaedf88 | 137 | return data; |
138 | } | |
139 | ||
140 | // binaryExpr stuff | |
141 | ||
142 | ||
143 | constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data) | |
144 | { | |
c3e695ff | 145 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 146 | return (data->binaryOp.binaryOp); |
147 | } | |
148 | ||
149 | ||
150 | constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data) | |
151 | { | |
c3e695ff | 152 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 153 | /*@i23*/ return (data->binaryOp.expr1); |
3aaedf88 | 154 | } |
155 | ||
156 | ||
157 | constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data) | |
158 | { | |
c3e695ff | 159 | llassert (constraintExprData_isDefined(data)); |
a8e557d3 | 160 | /*@i22*/ return (data->binaryOp.expr2); |
3aaedf88 | 161 | } |
162 | ||
163 | ||
d46ce6a4 | 164 | constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) |
3aaedf88 | 165 | { |
c3e695ff | 166 | llassert (constraintExprData_isDefined(data)); |
d46ce6a4 | 167 | data->binaryOp.expr1 = expr; |
3aaedf88 | 168 | return data; |
169 | } | |
170 | ||
84c9ffbf | 171 | constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExpr expr) |
3aaedf88 | 172 | { |
c3e695ff | 173 | llassert (constraintExprData_isDefined(data)); |
d46ce6a4 | 174 | data->binaryOp.expr2 = expr; |
3aaedf88 | 175 | return data; |
176 | } | |
177 | ||
178 | ||
84c9ffbf | 179 | constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExprBinaryOpKind op) |
3aaedf88 | 180 | { |
c3e695ff | 181 | llassert (constraintExprData_isDefined(data)); |
3aaedf88 | 182 | data->binaryOp.binaryOp = op; |
183 | return data; | |
184 | } |