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