2 ** constraintExprData.c
5 # include "lclintMacros.nf"
8 # include "cgrammar_tokens.h"
10 # include "exprChecks.h"
11 # include "exprNodeSList.h"
13 static /*@out@*/ constraintExprData constraintExprData_alloc (void)
15 constraintExprData ret;
17 ret = dmalloc (sizeof (*ret) );
22 static /*@out@*/ constraintExprData constraintExprData_allocBinaryOp (void)
24 constraintExprData ret;
26 ret = constraintExprData_alloc();
28 ret->binaryOp.expr1 = constraintExpr_undefined;
29 ret->binaryOp.expr2 = constraintExpr_undefined;
34 static /*@out@*/ constraintExprData constraintExprData_allocUnaryOp (void)
36 constraintExprData ret;
38 ret = constraintExprData_alloc();
40 ret->unaryOp.expr = constraintExpr_undefined;
45 static /*@out@*/ constraintExprData constraintExprData_allocTerm (void)
47 constraintExprData ret;
49 ret = constraintExprData_alloc();
56 void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data)
58 constraintExpr_free (data->binaryOp.expr1);
59 constraintExpr_free (data->binaryOp.expr2);
63 constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data)
65 constraintExprData ret;
66 llassert(constraintExprData_isDefined(data));
68 ret = constraintExprData_allocBinaryOp();
70 ret->binaryOp.binaryOp = data->binaryOp.binaryOp;
71 ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1);
72 ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2);
76 void constraintExprData_freeUnaryExpr (/*@only@*/constraintExprData data)
78 constraintExpr_free (data->unaryOp.expr);
82 constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data)
84 constraintExprData ret;
85 llassert(constraintExprData_isDefined(data));
87 ret = constraintExprData_allocUnaryOp();
89 ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
90 ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
95 void constraintExprData_freeTerm (/*@only@*/constraintExprData data)
97 constraintTerm_free (data->term);
102 constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data)
104 constraintExprData ret;
105 llassert(constraintExprData_isDefined(data));
107 ret = constraintExprData_allocTerm();
109 ret->term = constraintTerm_copy (data->term);
113 // constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind)
115 // constraintExprData ret;
116 // llassert(constraintExprData_isDefined(data));
117 // ret = dmalloc (sizeof (*ret) );
121 // ret->binaryOp.binaryOp = data->binaryOp.binaryOp;
122 // ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1);
123 // ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2);
126 // ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
127 // ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
130 // ret->term = constraintTerm_copy (data->term);
136 constraintExprData constraintExprData_termSetTerm (/*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term)
138 llassert (constraintExprData_isDefined(data));
140 if (constraintTerm_isDefined(data->term) )
141 constraintTerm_free(data->term);
149 /*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data)
151 llassert (constraintExprData_isDefined(data));
152 /*@i22*/return data->term;
156 constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*/ constraintExprData data)
158 llassert (constraintExprData_isDefined(data));
159 return (data->unaryOp.unaryOp);
163 constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintExprData data)
165 llassert (constraintExprData_isDefined (data));
166 return (data->unaryOp.expr);
171 constraintExprData constraintExprData_unaryExprSetOp ( /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op)
173 llassert (constraintExprData_isDefined (data));
175 data->unaryOp.unaryOp = op;
179 constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, /*@only@*/ constraintExpr expr)
181 llassert (constraintExprData_isDefined(data));
183 if (constraintExpr_isDefined(data->unaryOp.expr) )
184 constraintExpr_free(data->unaryOp.expr);
186 data->unaryOp.expr = expr;
193 constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data)
195 llassert (constraintExprData_isDefined(data));
197 return (data->binaryOp.binaryOp);
201 constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)
203 llassert (constraintExprData_isDefined(data));
206 return (data->binaryOp.expr1);
210 constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)
212 llassert (constraintExprData_isDefined(data));
213 /*@i22*/ return (data->binaryOp.expr2);
217 constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr)
219 llassert (constraintExprData_isDefined(data));
221 if (constraintExpr_isDefined(data->binaryOp.expr1) )
222 constraintExpr_free(data->binaryOp.expr1);
224 data->binaryOp.expr1 = expr;
228 constraintExprData constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr)
230 llassert (constraintExprData_isDefined(data));
231 if (constraintExpr_isDefined(data->binaryOp.expr2) )
232 constraintExpr_free(data->binaryOp.expr2);
234 data->binaryOp.expr2 = expr;
239 constraintExprData constraintExprData_binaryExprSetOp (constraintExprData data, constraintExprBinaryOpKind op)
241 llassert (constraintExprData_isDefined(data));
242 data->binaryOp.binaryOp = op;