]> andersk Git - splint.git/blame - src/constraintExprData.c
*** empty log message ***
[splint.git] / src / constraintExprData.c
CommitLineData
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"
3aaedf88 11# include "exprNodeSList.h"
3aaedf88 12
a779b61e 13static /*@out@*/ constraintExprData constraintExprData_alloc (void)
14{
15 constraintExprData ret;
16
17 ret = dmalloc (sizeof (*ret) );
18
19 return ret;
20}
21
22static /*@out@*/ constraintExprData constraintExprData_allocBinaryOp (void)
23{
24 constraintExprData ret;
25
26 ret = constraintExprData_alloc();
27
28 ret->binaryOp.expr1 = constraintExpr_undefined;
29 ret->binaryOp.expr2 = constraintExpr_undefined;
30
31 return ret;
32}
33
34static /*@out@*/ constraintExprData constraintExprData_allocUnaryOp (void)
35{
36 constraintExprData ret;
37
38 ret = constraintExprData_alloc();
39
40 ret->unaryOp.expr = constraintExpr_undefined;
41
42 return ret;
43}
44
45static /*@out@*/ constraintExprData constraintExprData_allocTerm (void)
46{
47 constraintExprData ret;
48
49 ret = constraintExprData_alloc();
50
51 ret->term = NULL;
52 return ret;
53}
54
55
d46ce6a4 56void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data)
57{
58 constraintExpr_free (data->binaryOp.expr1);
59 constraintExpr_free (data->binaryOp.expr2);
60 free(data);
61}
62
4ab867d6 63constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data)
c3e695ff 64{
4ab867d6 65 constraintExprData ret;
c3e695ff 66 llassert(constraintExprData_isDefined(data));
a779b61e 67
68 ret = constraintExprData_allocBinaryOp();
69
c3e695ff 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);
73 return ret;
74}
3aaedf88 75
2934b455 76void constraintExprData_freeUnaryExpr (/*@only@*/constraintExprData data)
d46ce6a4 77{
78 constraintExpr_free (data->unaryOp.expr);
79 free(data);
80}
81
4ab867d6 82constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data)
3aaedf88 83{
c3e695ff 84 constraintExprData ret;
85 llassert(constraintExprData_isDefined(data));
a779b61e 86
87 ret = constraintExprData_allocUnaryOp();
c3e695ff 88
89 ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
90 ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
3aaedf88 91
92 return ret;
93}
94
d46ce6a4 95void constraintExprData_freeTerm (/*@only@*/constraintExprData data)
96{
97 constraintTerm_free (data->term);
98 free(data);
99}
100
101
4ab867d6 102constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data)
c3e695ff 103{
104 constraintExprData ret;
105 llassert(constraintExprData_isDefined(data));
a779b61e 106
107 ret = constraintExprData_allocTerm();
108
c3e695ff 109 ret->term = constraintTerm_copy (data->term);
110 return ret;
111}
112
113// constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind)
114// {
115// constraintExprData ret;
116// llassert(constraintExprData_isDefined(data));
117// ret = dmalloc (sizeof (*ret) );
118// switch (kind)
119// {
120// case binaryexpr:
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);
124// break;
125// case unaryExpr:
126// ret->unaryOp.unaryOp = data->unaryOp.unaryOp;
127// ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr);
128// break;
129// case term:
130// ret->term = constraintTerm_copy (data->term);
131// }
132
133// return ret;
134// }
135
28bf4b0b 136 constraintExprData constraintExprData_termSetTerm (/*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term)
3aaedf88 137{
c3e695ff 138 llassert (constraintExprData_isDefined(data));
a779b61e 139
140 if (constraintTerm_isDefined(data->term) )
141 constraintTerm_free(data->term);
142
d46ce6a4 143 data->term = term;
3aaedf88 144 return data;
145}
146
147
148
d46ce6a4 149/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data)
3aaedf88 150{
c3e695ff 151 llassert (constraintExprData_isDefined(data));
a8e557d3 152 /*@i22*/return data->term;
3aaedf88 153}
154
155
4ab867d6 156constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*/ constraintExprData data)
3aaedf88 157{
c3e695ff 158 llassert (constraintExprData_isDefined(data));
3aaedf88 159 return (data->unaryOp.unaryOp);
160}
161
162
4ab867d6 163constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintExprData data)
3aaedf88 164{
60eced23 165 llassert (constraintExprData_isDefined (data));
a779b61e 166 return (data->unaryOp.expr);
3aaedf88 167}
168
169
170
60eced23 171constraintExprData constraintExprData_unaryExprSetOp ( /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op)
3aaedf88 172{
60eced23 173 llassert (constraintExprData_isDefined (data));
174
3aaedf88 175 data->unaryOp.unaryOp = op;
176 return data;
177}
178
d46ce6a4 179constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, /*@only@*/ constraintExpr expr)
3aaedf88 180{
c3e695ff 181 llassert (constraintExprData_isDefined(data));
a779b61e 182
183 if (constraintExpr_isDefined(data->unaryOp.expr) )
184 constraintExpr_free(data->unaryOp.expr);
185
d46ce6a4 186 data->unaryOp.expr = expr;
3aaedf88 187 return data;
188}
189
190// binaryExpr stuff
191
192
193constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data)
194{
c3e695ff 195 llassert (constraintExprData_isDefined(data));
a779b61e 196
3aaedf88 197 return (data->binaryOp.binaryOp);
198}
199
200
201constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)
202{
c3e695ff 203 llassert (constraintExprData_isDefined(data));
a779b61e 204
205
206 return (data->binaryOp.expr1);
3aaedf88 207}
208
209
210constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)
211{
c3e695ff 212 llassert (constraintExprData_isDefined(data));
a8e557d3 213 /*@i22*/ return (data->binaryOp.expr2);
3aaedf88 214}
215
216
28bf4b0b 217constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr)
3aaedf88 218{
c3e695ff 219 llassert (constraintExprData_isDefined(data));
a779b61e 220
221 if (constraintExpr_isDefined(data->binaryOp.expr1) )
222 constraintExpr_free(data->binaryOp.expr1);
223
d46ce6a4 224 data->binaryOp.expr1 = expr;
3aaedf88 225 return data;
226}
227
28bf4b0b 228constraintExprData constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr)
3aaedf88 229{
c3e695ff 230 llassert (constraintExprData_isDefined(data));
a779b61e 231 if (constraintExpr_isDefined(data->binaryOp.expr2) )
232 constraintExpr_free(data->binaryOp.expr2);
233
d46ce6a4 234 data->binaryOp.expr2 = expr;
3aaedf88 235 return data;
236}
237
238
28bf4b0b 239constraintExprData constraintExprData_binaryExprSetOp (constraintExprData data, constraintExprBinaryOpKind op)
3aaedf88 240{
c3e695ff 241 llassert (constraintExprData_isDefined(data));
3aaedf88 242 data->binaryOp.binaryOp = op;
243 return data;
244}
a779b61e 245
This page took 0.200948 seconds and 5 git commands to generate.