1 #ifndef __constraintTerm_h__
3 #define __constraintTerm_h__
7 /*@exposed@*/ exprNode expr;
8 /*@exposed@*/ sRef sref;
10 } constraintTermValue;
12 void constraintTermValue_copy (/*@out@*/ constraintTermValue src, constraintTermValue dst);
16 #define constraintTermValue_copy(dst, src) ((dst) = (src))
22 ERRORBADCONSTRAINTTERMTYPE,
27 struct _constraintTerm {
28 /*@only@*/ fileloc loc;
29 constraintTermValue value;
30 constraintTermType kind;
34 abst_typedef struct _constraintTerm * constraintTerm;
36 extern constraintTermType constraintTerm_getKind (constraintTerm) ;
37 extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
39 extern /*@falsenull@*/ bool constraintTerm_isDefined (constraintTerm p_e) /*@*/;
40 extern /*@unused@*/ /*@truenull@*/ bool constraintTerm_isUndefined (constraintTerm p_e) /*@*/ ;
41 extern /*@unused@*/ /*@truenull@*/ bool constraintTerm_isError (constraintTerm p_e) /*@*/ ;
43 /*@constant null constraintTerm constraintTerm_undefined; @*/
45 # define constraintTerm_undefined ((constraintTerm)NULL)
47 # define constraintTerm_isDefined(e) ((e) != constraintTerm_undefined)
48 # define constraintTerm_isUndefined(e) ((e) == constraintTerm_undefined)
49 # define constraintTerm_isError(e) ((e) == constraintTerm_undefined)
53 void constraintTerm_free (/*@only@*/ constraintTerm term);
55 constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
57 /*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@exposed@*/ exprNode e) /*@*/;
59 constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
61 //constraintTerm exprNode_makeConstraintTerm ( exprNode e) /*@*/;
63 //bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/;
65 bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
67 bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
68 int constraintTerm_getValue (constraintTerm term) /*@*/;
70 fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
72 //constraintTerm constraintTerm_makeMaxSetexpr (exprNode e) /*@*/;
74 //constraintTerm constraintTerm_makeMinSetexpr (exprNode e) /*@*/;
76 //constraintTerm constraintTerm_makeMaxReadexpr (exprNode e) /*@*/;
78 //constraintTerm constraintTerm_makeMinReadexpr (exprNode e) /*@*/;
80 //constraintTerm constraintTerm_makeValueexpr (exprNode e) /*@*/;
82 //constraintTerm intLit_makeConstraintTerm (int i) /*@*/;
84 //constraintTerm constraintTerm_makeIntLitValue (int i) /*@*/;
86 bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
88 cstring constraintTerm_print (constraintTerm term) /*@*/;
90 constraintTerm constraintTerm_makesRef (/*@exposed@*/ sRef s) /*@*/;
92 /*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
94 constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
96 constraintTerm constraintTerm_makeIntLiteral (int i) /*@*/;
98 bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
99 cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
102 constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
106 #error Multiple Include