]>
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 | ||
17 | ||
18 | #include "constraintExpr.h" | |
19 | ||
20 | constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind) | |
21 | { | |
22 | constraintExprData ret; | |
23 | llassert(data); | |
24 | ret = dmalloc (sizeof (*ret) ); | |
25 | switch (kind) | |
26 | { | |
27 | case binaryexpr: | |
28 | ret->binaryOp.binaryOp = data->binaryOp.binaryOp; | |
29 | ret->binaryOp.expr1 = constraintExpr_copy (data->binaryOp.expr1); | |
30 | ret->binaryOp.expr2 = constraintExpr_copy (data->binaryOp.expr2); | |
31 | break; | |
32 | case unaryExpr: | |
33 | ret->unaryOp.unaryOp = data->unaryOp.unaryOp; | |
34 | ret->unaryOp.expr = constraintExpr_copy (data->unaryOp.expr); | |
35 | break; | |
36 | case term: | |
37 | ret->term = constraintTerm_copy (data->term); | |
38 | } | |
39 | ||
40 | return ret; | |
41 | } | |
42 | ||
43 | constraintExprData constraintExprData_termSetTerm (/*@out@*/ constraintExprData data, constraintTerm term) | |
44 | { | |
45 | llassert (data); | |
46 | data->term = constraintTerm_copy(term); | |
47 | return data; | |
48 | } | |
49 | ||
50 | ||
51 | ||
52 | constraintTerm constraintExprData_termGetTerm (constraintExprData data) | |
53 | { | |
54 | llassert (data); | |
55 | return data->term; | |
56 | } | |
57 | ||
58 | ||
59 | constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (constraintExprData data) | |
60 | { | |
61 | llassert (data); | |
62 | return (data->unaryOp.unaryOp); | |
63 | } | |
64 | ||
65 | ||
66 | constraintExpr constraintExprData_unaryExprGetExpr (constraintExprData data) | |
67 | { | |
68 | llassert (data); | |
69 | return (data->unaryOp.expr); | |
70 | } | |
71 | ||
72 | ||
73 | ||
74 | constraintExprData constraintExprData_unaryExprSetOp (constraintExprData data, constraintExprUnaryOpKind op) | |
75 | { | |
76 | llassert (data); | |
77 | data->unaryOp.unaryOp = op; | |
78 | return data; | |
79 | } | |
80 | ||
81 | constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, constraintExpr expr) | |
82 | { | |
83 | llassert (data); | |
84 | data->unaryOp.expr = constraintExpr_copy(expr); | |
85 | return data; | |
86 | } | |
87 | ||
88 | // binaryExpr stuff | |
89 | ||
90 | ||
91 | constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data) | |
92 | { | |
93 | llassert (data); | |
94 | return (data->binaryOp.binaryOp); | |
95 | } | |
96 | ||
97 | ||
98 | constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data) | |
99 | { | |
100 | llassert (data); | |
101 | return (data->binaryOp.expr1); | |
102 | } | |
103 | ||
104 | ||
105 | constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data) | |
106 | { | |
107 | llassert (data); | |
108 | return (data->binaryOp.expr2); | |
109 | } | |
110 | ||
111 | ||
112 | constraintExprData constraintExprData_binaryExprSetExpr1 (constraintExprData data, constraintExpr expr) | |
113 | { | |
114 | llassert (data); | |
115 | data->binaryOp.expr1 = constraintExpr_copy(expr); | |
116 | return data; | |
117 | } | |
118 | ||
119 | constraintExprData constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr) | |
120 | { | |
121 | llassert (data); | |
122 | data->binaryOp.expr2 = constraintExpr_copy(expr); | |
123 | return data; | |
124 | } | |
125 | ||
126 | ||
127 | constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ constraintExprData data, constraintExprBinaryOpKind op) | |
128 | { | |
129 | llassert (data); | |
130 | data->binaryOp.binaryOp = op; | |
131 | return data; | |
132 | } |