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