typedef union
{
- exprNode expr;
- sRef sref;
- int intlit;
+ /*@exposed@*/ /*@dependent@*/ exprNode expr;
+ /*@only@*/ sRef sref;
+ long intlit;
} constraintTermValue;
-void constraintTermValue_copy (/*@out@*/ constraintTermValue src, constraintTermValue dst);
-
-/*@-macroassign*/
-
-#define constraintTermValue_copy(dst, src) ((dst) = (src))
-
-/*@=macroassign*/
-
typedef enum
{
- ERRORBADCONSTRAINTTERMTYPE,
- EXPRNODE, SREF,
- INTLITERAL
+ CTT_ERRORBADCONSTRAINTTERMTYPE,
+ CTT_EXPR,
+ CTT_SREF,
+ CTT_INTLITERAL
} constraintTermType;
-struct _constraintTerm {
- fileloc loc;
+struct s_constraintTerm {
+ /*@only@*/ fileloc loc;
constraintTermValue value;
constraintTermType kind;
-};
-
-
-abst_typedef struct _constraintTerm * constraintTerm;
-
-
-
-extern /*@falsenull@*/ bool constraintTerm_isDefined (constraintTerm p_e) /*@*/;
-extern /*@unused@*/ /*@truenull@*/ bool constraintTerm_isUndefined (constraintTerm p_e) /*@*/ ;
-extern /*@unused@*/ /*@truenull@*/ bool constraintTerm_isError (constraintTerm p_e) /*@*/ ;
-
-/*@constant null constraintTerm constraintTerm_undefined; @*/
+} ;
-# define constraintTerm_undefined ((constraintTerm)NULL)
+abst_typedef struct s_constraintTerm *constraintTerm;
-# define constraintTerm_isDefined(e) ((e) != constraintTerm_undefined)
-# define constraintTerm_isUndefined(e) ((e) == constraintTerm_undefined)
-# define constraintTerm_isError(e) ((e) == constraintTerm_undefined)
+/*@i311 shouldn't need this...never null */
+extern bool constraintTerm_isDefined (constraintTerm p_t) /*@*/ ;
+extern constraintTermType constraintTerm_getKind (constraintTerm) ;
+extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
+void constraintTerm_free (/*@only@*/ constraintTerm p_term);
+constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm p_term) /*@modifies p_term@*/ ;
+/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode p_e) /*@*/;
-constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
+constraintTerm constraintTerm_copy (constraintTerm p_term) /*@*/;
-constraintTerm constraintTerm_makeExprNode (/*@only@*/ exprNode e) /*@*/;
+bool constraintTerm_similar (constraintTerm p_term1, constraintTerm p_term2) /*@*/;
-constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
+bool constraintTerm_canGetValue (constraintTerm p_term)/*@*/;
+long constraintTerm_getValue (constraintTerm p_term) /*@*/;
-//constraintTerm exprNode_makeConstraintTerm ( exprNode e) /*@*/;
+fileloc constraintTerm_getFileloc (constraintTerm p_t) /*@*/;
-bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/;
-bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
+bool constraintTerm_isIntLiteral (constraintTerm p_term) /*@*/;
-bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
-int constraintTerm_getValue (constraintTerm term) /*@*/;
+constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef p_s) /*@*/;
-fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
+/*@unused@*/ bool constraintTerm_probSame (constraintTerm p_term1, constraintTerm p_term2) /*@*/;
-//constraintTerm constraintTerm_makeMaxSetexpr (exprNode e) /*@*/;
+constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm p_term, fileloc p_loc) /*@modifies p_term@*/;
-//constraintTerm constraintTerm_makeMinSetexpr (exprNode e) /*@*/;
+constraintTerm constraintTerm_makeIntLiteral (long p_i) /*@*/;
-//constraintTerm constraintTerm_makeMaxReadexpr (exprNode e) /*@*/;
+bool constraintTerm_isStringLiteral (constraintTerm p_c) /*@*/;
+cstring constraintTerm_getStringLiteral (constraintTerm p_c) /*@*/;
-//constraintTerm constraintTerm_makeMinReadexpr (exprNode e) /*@*/;
-//constraintTerm constraintTerm_makeValueexpr (exprNode e) /*@*/;
+constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm p_term, exprNodeList p_arglist) /*@modifies p_term@*/;
-//constraintTerm intLit_makeConstraintTerm (int i) /*@*/;
+extern cstring constraintTerm_unparse (constraintTerm) /*@*/ ;
-//constraintTerm constraintTerm_makeIntLitValue (int i) /*@*/;
+extern void constraintTerm_dump ( /*@observer@*/ constraintTerm p_t, FILE * p_f);
+extern /*@only@*/ constraintTerm constraintTerm_undump ( FILE * p_f);
+extern bool constraintTerm_isInitBlock (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
+extern int constraintTerm_getInitBlockLength (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
+extern bool constraintTerm_isExprNode (/*@observer@*/ /*@temp@*/ constraintTerm p_c) /*@*/;
+extern ctype constraintTerm_getCType (constraintTerm p_term);
-bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
-
-cstring constraintTerm_print (constraintTerm term) /*@*/;
-
-constraintTerm constraintTerm_makesRef (/*@only@*/ sRef s) /*@*/;
-
-bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
-
-constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
-
-constraintTerm constraintTerm_makeIntLiteral (int i) /*@*/;
-
-bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
-cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
-
-
-constraintTerm
-constraintTerm_doSRefFixBaseParam (constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
+extern /*@exposed@*/ exprNode constraintTerm_getExprNode (constraintTerm p_t);
+extern /*@exposed@*/ sRef constraintTerm_getsRef (constraintTerm p_t);
+/*drl added 12/19/2002*/
+extern bool constraintTerm_isConstantOnly (constraintTerm p_term);
+
#else
-
-#error Multiple Include
-
+#error "Multiple Include!"
#endif