]> andersk Git - splint.git/blame_incremental - src/Headers/constraintExpr.h
Merged code tree with Dave Evans's version. Many changes to numberous to list....
[splint.git] / src / Headers / constraintExpr.h
... / ...
CommitLineData
1#ifndef __constraintExpr_h__
2
3#define __constraintExpr_h__
4
5typedef enum
6{
7 binaryexpr,
8 unaryExpr,
9 term
10}
11constraintExprKind;
12
13struct s_constraintExpr {
14 constraintExprKind kind;
15 constraintExprData data;
16};
17
18
19
20/*@constant null constraintExpr constraintExpr_undefined; @*/
21# define constraintExpr_undefined ((constraintExpr)NULL)
22
23extern /*@falsenull@*/ bool constraintExpr_isDefined (constraintExpr p_e) /*@*/ ;
24extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isUndefined (constraintExpr p_e) /*@*/ ;
25extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isError (constraintExpr p_e) /*@*/ ;
26
27# define constraintExpr_isDefined(e) ((e) != constraintExpr_undefined)
28# define constraintExpr_isUndefined(e) ((e) == constraintExpr_undefined)
29# define constraintExpr_isError(e) ((e) == constraintExpr_undefined)
30
31
32void constraintExpr_free ( /*@only@*/ constraintExpr p_expr);
33
34int constraintExpr_getValue (constraintExpr p_expr) /*@*/;
35
36constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr p_c, fileloc p_loc) /*@modifies p_c@*/;
37
38constraintExpr constraintExpr_copy (constraintExpr p_expr) /*@*/;
39
40/*@only@*/ cstring constraintExpr_unparse (/*@temp@*/ /*@observer@*/ constraintExpr p_ex) /*@*/;
41extern cstring constraintExpr_print (constraintExpr p_expr) /*@*/;
42
43
44bool constraintExpr_similar (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/;
45bool constraintExpr_same (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/;
46/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr p_c, /*@temp@*/ /*@observer@*/ constraintExpr p_old, /*@temp@*/ /*@observer@*/ constraintExpr p_newExpr ) /*@modifies p_c@*/;
47bool constraintExpr_canGetValue (constraintExpr p_expr) /*@*/;
48
49int constraintExpr_compare (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/;
50
51//constraintExpr constraintExpr_makeValueInt (int i);
52
53/*@only@*/ constraintExpr constraintExpr_makeIntLiteral (int p_i);
54
55/*@only@*/ constraintExpr constraintExpr_makeValueExpr (/*@exposed@*/ exprNode p_expr);
56
57/*@only@*/ constraintExpr constraintExpr_makeMaxSetExpr (/*@exposed@*/ exprNode p_expr);
58
59/*@only@*/ constraintExpr constraintExpr_makeMaxReadExpr (/*@exposed@*/ exprNode p_expr);
60
61/*@only@*/ constraintExpr constraintExpr_makeIncConstraintExpr (/*@only@*/ constraintExpr p_expr);
62
63/*@only@*/ constraintExpr constraintExpr_makeDecConstraintExpr (/*@only@*/ constraintExpr p_expr);
64
65/*@only@*/ constraintExpr constraintExpr_simplify (/*@only@*/ constraintExpr p_c);
66
67/*@only@*/ constraintExpr constraintExpr_solveBinaryExpr (constraintExpr p_lexpr, /*@only@*/ constraintExpr p_expr) /*@modifies p_lexpr, p_expr @*/;
68
69bool constraintExpr_search (/*@observer@*/ /*@temp@*/ constraintExpr p_c, /*@observer@*/ /*@temp@*/ constraintExpr p_old);
70
71/*@only@*/ fileloc constraintExpr_getFileloc (constraintExpr p_expr);
72
73
74/*@only@*/ constraintExpr constraintExpr_makeSRefMaxset ( /*@temp@*/ /*@oberver@*/ sRef p_s);
75
76/*@only@*/ constraintExpr constraintExpr_makeSRefMaxRead(/*@temp@*/ /*@observer@*/ sRef p_s);
77
78/*@only@*/ constraintExpr constraintExpr_makeTermsRef (/*@temp@*/ sRef p_s);
79
80constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr p_expr, exprNodeList p_arglist);
81
82/*@only@*/ constraintExpr constraintExpr_makeExprNode (/*@dependent@*/ exprNode p_e);
83
84/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr p_expr, /*@observer@*/ exprNode p_fcnCall);
85
86bool constraintExpr_isLit (constraintExpr p_expr);
87
88/*@only@*/ constraintExpr constraintExpr_makeAddExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent);
89
90/*@only@*/ constraintExpr constraintExpr_makeSubtractExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent);
91
92/*@only@*/ constraintExpr constraintExpr_parseMakeUnaryOp (lltok p_op,/*@only@*/ constraintExpr p_cexpr);
93
94constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr p_expr1, lltok p_op, /*@only@*/ constraintExpr p_expr2);
95
96bool constraintExpr_hasMaxSet (/*@observer@*/ /*@temp@*/ constraintExpr p_expr);
97
98
99
100/*@only@*/ constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ /*@only@*/ constraintExpr p_expr, exprNodeList p_arglist) /*@modifies p_expr@*/;
101
102/*@only@*/
103constraintExpr constraintExpr_propagateConstants (/*@only@*/ constraintExpr p_expr,
104 /*@out@*/ bool * p_propagate,
105 /*@out@*/ int *p_literal);
106
107bool constraintExpr_isBinaryExpr (/*@observer@*/ /*@temp@*/ constraintExpr p_c);
108
109extern void constraintExpr_dump (/*@observer@*/ /*@temp@*/ constraintExpr p_expr, FILE *p_f);
110
111extern /*@only@*/ constraintExpr constraintExpr_undump (FILE *p_f);
112
113#else
114
115
116# error "Multiple include"
117
118#endif
This page took 0.02685 seconds and 5 git commands to generate.