]> andersk Git - splint.git/blob - src/constraintExprData.c
Added files
[splint.git] / src / constraintExprData.c
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 }
This page took 0.286157 seconds and 5 git commands to generate.