]> andersk Git - splint.git/blame - src/Headers/constraintExpr.h
Added header files.
[splint.git] / src / Headers / constraintExpr.h
CommitLineData
d1eb43aa 1#ifndef __constraintExpr_h__
2
3#define __constraintExpr_h__
4
5typedef union constraintTermValue_
6{
7 exprNode expr;
8 sRef sref;
9 int intlit;
10} constraintTermValue;
11
12typedef enum
13{
14 EXPRNODE, SREF,
15 INTLITERAL
16} constraintTermType;
17
18struct _constraintTerm {
19 fileloc loc;
20 constraintTermValue value;
21 constraintTermType kind;
22};
23
24
25typedef enum
26{
27 PLUS,
28 MINUS
29}
30constraintExprBinaryOpKind;
31
32typedef enum
33{
34 VALUE, CALLSAFE,
35 MAXSET, MINSET, MAXREAD, MINREAD,
36 NULLTERMINATED,
37 UNDEFINED
38}
39constraintExprUnaryOpKind;
40
41typedef enum
42{
43 binaryexpr,
44 unaryExpr,
45 term,
46}
47constraintExprKind;
48
49typedef struct constraintExprBinaryOp_
50{
51 constraintExpr expr1;
52 constraintExprBinaryOpKind binaryOp;
53 constraintExpr expr2;
54} constraintExprBinaryOp;
55
56
57typedef struct constraintExprUnaryOp_
58{
59 constraintExpr expr;
60 constraintExprUnaryOpKind unaryOp;
61} constraintExprUnaryOp;
62
63
64typedef union constraintExprData_
65{
66 constraintExprBinaryOp binaryOp;
67 constraintExprUnaryOp unaryOp;
68 constraintTerm term;
69} *constraintExprData;
70
71
72struct constraintExpr_ {
73 constraintExprKind kind;
74 constraintExprData data;
75};
76
77# define constraintExpr_undefined ((constraintExpr)NULL)
78
79//constraintTerm constraintTerm_copy (constraintTerm term);
80
81int constraintExpr_getValue (constraintExpr expr);
82
83constraintExpr constraintExpr_setFileloc (constraintExpr expr, fileloc loc);
84
85constraintExpr constraintExpr_copy (constraintExpr expr);
86
87cstring constraintExpr_unparse (constraintExpr ex);
88extern cstring constraintExpr_print (constraintExpr expr);
89
90
91bool constraintExpr_similar (constraintExpr expr1, constraintExpr expr2);
92bool constraintExpr_same (constraintExpr expr1, constraintExpr expr2);
93constraintExpr constraintExpr_searchandreplace (constraintExpr c, constraintExpr old, constraintExpr new );
94bool constraintExpr_canGetValue (constraintExpr expr);
95
96int constraintExpr_compare (constraintExpr expr1, constraintExpr expr2);
97
98constraintExpr constraintExpr_makeValueInt (int i);
99
100constraintExpr constraintExpr_makeIntLiteral (int i);
101
102constraintExpr constraintExpr_makeValueExpr (exprNode expr);
103
104constraintExpr constraintExpr_makeMaxSetExpr (exprNode expr);
105
106constraintExpr constraintExpr_makeMaxReadExpr (exprNode expr);
107
108constraintExpr constraintExpr_makeMinSetExpr (exprNode expr);
109
110constraintExpr constraintExpr_makeMinReadExpr (exprNode expr);
111
112constraintExpr constraintExpr_makeIncConstraintExpr (constraintExpr expr);
113
114constraintExpr constraintExpr_makeDecConstraintExpr (constraintExpr expr);
115
116constraintExpr constraintExpr_simplify (constraintExpr c);
117
118
119constraintExpr constraintExpr_solveBinaryExpr (constraintExpr lexpr, constraintExpr expr);
120
121bool constraintExpr_search (constraintExpr c, constraintExpr old);
122/* jjjkkkk */
123
124constraintExprData constraintExprData_copy (constraintExprData data, constraintExprKind kind);
125
126
127constraintExprData constraintExprData_termSetTerm (/*@out@*/ constraintExprData data, constraintTerm term);
128
129constraintTerm constraintExprData_termGetTerm (constraintExprData data) /*@*/;
130
131constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (constraintExprData data) /*@*/;
132
133constraintExpr constraintExprData_unaryExprGetExpr (constraintExprData data) /*@*/;
134
135constraintExprData constraintExprData_unaryExprSetOp (constraintExprData data, constraintExprUnaryOpKind op);
136
137
138constraintExprData constraintExprData_unaryExprSetExpr (constraintExprData data, constraintExpr expr);
139
140
141constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (constraintExprData data);
142
143constraintExpr constraintExprData_binaryExprGetExpr1 (constraintExprData data)/*@*/;
144
145constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data)/*@*/;
146
147constraintExprData constraintExprData_binaryExprSetExpr1 (constraintExprData data, constraintExpr expr);
148
149constraintExprData constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr);
150
151constraintExprData constraintExprData_binaryExprSetOp (constraintExprData data, constraintExprBinaryOpKind op);
152fileloc constraintExpr_getFileloc (constraintExpr expr);
153
154constraintExpr constraintExpr_makeBinaryOpConstraintExprIntLiteral (constraintExpr expr, int literal);
155
156constraintExpr constraintExpr_makeSRefMaxset (sRef s);
157
158constraintExpr constraintExpr_makeTermsRef (sRef s);
159constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr expr, exprNodeList arglist);
160constraintExpr constraintExpr_makeExprNode (exprNode e);
161constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ constraintExpr expr, exprNodeList arglist);
162
163constraintExpr constraintExpr_doFixResult (/*@returned@*/ constraintExpr expr, exprNode fcnCall);
164bool constraintExpr_isLit (constraintExpr expr);
165constraintExpr constraintExpr_makeAddConstraintExpr (constraintExpr expr, constraintExpr add);
166
167constraintExpr constraintExpr_parseMakeUnaryOp (lltok op, constraintExpr cexpr);
168
169constraintExpr constraintExpr_parseMakeBinaryOp (constraintExpr expr1, lltok op, constraintExpr expr2);
170
171bool constraintExpr_hasMaxSet (constraintExpr expr);
172
173#endif
This page took 0.108151 seconds and 5 git commands to generate.