]> andersk Git - splint.git/blame - src/Headers/constraintExpr.h
EXtensive code clean up. Almost passes LCLint.
[splint.git] / src / Headers / constraintExpr.h
CommitLineData
d1eb43aa 1#ifndef __constraintExpr_h__
2
3#define __constraintExpr_h__
4
d1eb43aa 5typedef enum
6{
7 binaryexpr,
8 unaryExpr,
90bc41f7 9 term
d1eb43aa 10}
11constraintExprKind;
12
a8e557d3 13struct _constraintExpr {
6e88de2d 14 constraintExprKind kind;
15 constraintExprData data;
16};
d1eb43aa 17
18
6e88de2d 19/*@constant null constraintExpr constraintExpr_undefined; @*/
20# define constraintExpr_undefined ((constraintExpr)NULL)
d1eb43aa 21
6e88de2d 22extern /*@falsenull@*/ bool constraintExpr_isDefined (constraintExpr p_e) /*@*/ ;
23extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isUndefined (constraintExpr p_e) /*@*/ ;
84c9ffbf 24extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isError (constraintExpr p_e) /*@*/ ;
d1eb43aa 25
6e88de2d 26# define constraintExpr_isDefined(e) ((e) != constraintExpr_undefined)
27# define constraintExpr_isUndefined(e) ((e) == constraintExpr_undefined)
28# define constraintExpr_isError(e) ((e) == constraintExpr_undefined)
d1eb43aa 29
30
d1eb43aa 31
dc92450f 32int constraintExpr_getValue (constraintExpr expr) /*@*/;
d1eb43aa 33
6e88de2d 34constraintExpr constraintExpr_setFileloc (constraintExpr expr, fileloc loc) /*@modifies expr@*/;
d1eb43aa 35
6e88de2d 36constraintExpr constraintExpr_copy (constraintExpr expr) /*@*/;
d1eb43aa 37
dc92450f 38cstring constraintExpr_unparse (constraintExpr ex) /*@*/;
39extern cstring constraintExpr_print (constraintExpr expr) /*@*/;
d1eb43aa 40
41
6e88de2d 42bool constraintExpr_similar (constraintExpr expr1, constraintExpr expr2) /*@*/;
43bool constraintExpr_same (constraintExpr expr1, constraintExpr expr2) /*@*/;
44constraintExpr constraintExpr_searchandreplace (constraintExpr c, constraintExpr old, constraintExpr new ) /*@modifies c@*/;
45bool constraintExpr_canGetValue (constraintExpr expr) /*@*/;
d1eb43aa 46
6e88de2d 47int constraintExpr_compare (constraintExpr expr1, constraintExpr expr2) /*@*/;
d1eb43aa 48
6e88de2d 49//constraintExpr constraintExpr_makeValueInt (int i);
d1eb43aa 50
51constraintExpr constraintExpr_makeIntLiteral (int i);
52
53constraintExpr constraintExpr_makeValueExpr (exprNode expr);
54
55constraintExpr constraintExpr_makeMaxSetExpr (exprNode expr);
56
57constraintExpr constraintExpr_makeMaxReadExpr (exprNode expr);
58
d1eb43aa 59constraintExpr constraintExpr_makeIncConstraintExpr (constraintExpr expr);
60
61constraintExpr constraintExpr_makeDecConstraintExpr (constraintExpr expr);
62
6e88de2d 63constraintExpr constraintExpr_simplify (constraintExpr c) /*@modifies c@*/;
d1eb43aa 64
6e88de2d 65constraintExpr constraintExpr_solveBinaryExpr (constraintExpr lexpr, constraintExpr expr) /*@modifies lexpr@*/;
d1eb43aa 66
6e88de2d 67bool constraintExpr_search (constraintExpr c, constraintExpr old) /*@*/;
d1eb43aa 68
d1eb43aa 69fileloc constraintExpr_getFileloc (constraintExpr expr);
70
71constraintExpr constraintExpr_makeBinaryOpConstraintExprIntLiteral (constraintExpr expr, int literal);
72
73constraintExpr constraintExpr_makeSRefMaxset (sRef s);
74
75constraintExpr constraintExpr_makeTermsRef (sRef s);
76constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr expr, exprNodeList arglist);
77constraintExpr constraintExpr_makeExprNode (exprNode e);
d1eb43aa 78
79constraintExpr constraintExpr_doFixResult (/*@returned@*/ constraintExpr expr, exprNode fcnCall);
80bool constraintExpr_isLit (constraintExpr expr);
81constraintExpr constraintExpr_makeAddConstraintExpr (constraintExpr expr, constraintExpr add);
82
83constraintExpr constraintExpr_parseMakeUnaryOp (lltok op, constraintExpr cexpr);
84
85constraintExpr constraintExpr_parseMakeBinaryOp (constraintExpr expr1, lltok op, constraintExpr expr2);
86
87bool constraintExpr_hasMaxSet (constraintExpr expr);
88
6e88de2d 89//static constraintExpr constraintExpr_propagateConstants (constraintExpr expr,
90// /*@out@*/ bool * propagate,
91// /*@out@*/ int *literal);
470b7798 92
90bc41f7 93constraintExpr constraintExpr_makeSRefMaxRead(sRef s);
94
6e88de2d 95constraintTerm constraintTerm_doSRefFixBaseParam (constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
96
97constraintExpr
a8e557d3 98constraintExpr_doSRefFixConstraintParam (/*@returned@*/ constraintExpr e, exprNodeList arglist) /*@modifies e@*/;
6e88de2d 99
100
101#else
102
103# error "Multiple include"
104
d1eb43aa 105#endif
This page took 0.165423 seconds and 5 git commands to generate.