1 #ifndef __constraintTerm_h__
3 #define __constraintTerm_h__
7 /*@exposed@*/ /*@dependent@*/ exprNode expr;
10 } constraintTermValue;
14 CTT_ERRORBADCONSTRAINTTERMTYPE,
20 struct s_constraintTerm {
21 /*@only@*/ fileloc loc;
22 constraintTermValue value;
23 constraintTermType kind;
26 abst_typedef struct s_constraintTerm *constraintTerm;
29 extern bool constraintTerm_isDefined (constraintTerm p_t) /*@*/ ;
31 extern constraintTermType constraintTerm_getKind (constraintTerm) ;
32 extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
34 void constraintTerm_free (/*@only@*/ constraintTerm p_term);
36 constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm p_term) /*@modifies p_term@*/ ;
38 /*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode p_e) /*@*/;
40 constraintTerm constraintTerm_copy (constraintTerm p_term) /*@*/;
42 bool constraintTerm_similar (constraintTerm p_term1, constraintTerm p_term2) /*@*/;
44 bool constraintTerm_canGetValue (constraintTerm p_term)/*@*/;
45 long constraintTerm_getValue (constraintTerm p_term) /*@*/;
47 fileloc constraintTerm_getFileloc (constraintTerm p_t) /*@*/;
50 bool constraintTerm_isIntLiteral (constraintTerm p_term) /*@*/;
52 constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef p_s) /*@*/;
54 /*@unused@*/ bool constraintTerm_probSame (constraintTerm p_term1, constraintTerm p_term2) /*@*/;
56 constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm p_term, fileloc p_loc) /*@modifies p_term@*/;
58 constraintTerm constraintTerm_makeIntLiteral (long p_i) /*@*/;
60 bool constraintTerm_isStringLiteral (constraintTerm p_c) /*@*/;
61 cstring constraintTerm_getStringLiteral (constraintTerm p_c) /*@*/;
64 constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm p_term, exprNodeList p_arglist) /*@modifies p_term@*/;
66 extern cstring constraintTerm_unparse (constraintTerm) /*@*/ ;
68 extern void constraintTerm_dump ( /*@observer@*/ constraintTerm p_t, FILE * p_f);
69 extern /*@only@*/ constraintTerm constraintTerm_undump ( FILE * p_f);
70 extern bool constraintTerm_isInitBlock (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
71 extern int constraintTerm_getInitBlockLength (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
72 extern bool constraintTerm_isExprNode (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
73 extern ctype constraintTerm_getCType (constraintTerm p_term);
75 extern /*@exposed@*/ exprNode constraintTerm_getExprNode (constraintTerm p_t);
76 extern /*@exposed@*/ sRef constraintTerm_getsRef (constraintTerm p_t);
78 /*drl added 12/19/2002*/
79 extern bool constraintTerm_isConstantOnly (constraintTerm p_term);
82 #error "Multiple Include!"