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