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