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