1 #ifndef __constraintTerm_h__
3 #define __constraintTerm_h__
7 /*@exposed@*/ /*@dependent@*/ exprNode expr;
10 } constraintTermValue;
16 ERRORBADCONSTRAINTTERMTYPE,
21 struct _constraintTerm {
22 /*@only@*/ fileloc loc;
23 constraintTermValue value;
24 constraintTermType kind;
27 abst_typedef struct _constraintTerm *constraintTerm;
29 /*@i311 shouldn't need this...never null */
30 extern bool constraintTerm_isDefined (constraintTerm t) /*@*/ ;
32 extern constraintTermType constraintTerm_getKind (constraintTerm) ;
33 extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
35 void constraintTerm_free (/*@only@*/ constraintTerm term);
37 constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
39 /*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/;
41 constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
43 bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
45 bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
46 long constraintTerm_getValue (constraintTerm term) /*@*/;
48 fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
51 bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
53 cstring constraintTerm_print (constraintTerm term) /*@*/;
55 constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) /*@*/;
57 /*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
59 constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
61 constraintTerm constraintTerm_makeIntLiteral (long i) /*@*/;
63 bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
64 cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
67 constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
69 void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f);
71 /*@only@*/ constraintTerm constraintTerm_undump ( FILE *f);
73 bool constraintTerm_isInitBlock (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
75 int constraintTerm_getInitBlockLength (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
77 bool constraintTerm_isExprNode (/*@observer@*/ /*@temp@*/ constraintTerm c) /*@*/;
80 extern ctype constraintTerm_getCType (constraintTerm term);
82 /*@exposed@*/ exprNode constraintTerm_getExprNode (constraintTerm t);
84 /*@exposed@*/ sRef constraintTerm_getsRef (constraintTerm t);
91 #error Multiple Include