]> andersk Git - splint.git/blobdiff - src/Headers/constraintTerm.h
Committing after merging Evan's changes.
[splint.git] / src / Headers / constraintTerm.h
index bce68b15c9aee06c3fe1bb27222d157a61475c77..90d6764308d3ae216d9810782683e8df819f74f6 100644 (file)
@@ -4,95 +4,58 @@
 
 typedef union
 {
-  /*@dependent@*/ exprNode expr;
+  /*@exposed@*/ /*@dependent@*/ exprNode expr;
   /*@only@*/  sRef     sref;
-  int      intlit;
+  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;
+  /*@only@*/ fileloc loc;
   constraintTermValue value;
   constraintTermType kind;
-};
-
-
-abst_typedef struct _constraintTerm * constraintTerm;
+} ;
 
+abst_typedef struct _constraintTerm *constraintTerm;
 
+/*@i311 shouldn't need this...never null */
+extern bool constraintTerm_isDefined (constraintTerm t) /*@*/ ;
 
-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)
-
-# define constraintTerm_isDefined(e)        ((e) != constraintTerm_undefined)
-# define constraintTerm_isUndefined(e)      ((e) == constraintTerm_undefined)
-# define constraintTerm_isError(e)          ((e) == constraintTerm_undefined)
-
-
+extern constraintTermType constraintTerm_getKind (constraintTerm) ;
+extern /*@exposed@*/ sRef constraintTerm_getSRef (constraintTerm) ;
 
 void constraintTerm_free (/*@only@*/ constraintTerm term);
 
 constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ;
 
-constraintTerm constraintTerm_makeExprNode (/*@only@*/ exprNode e) /*@*/;
+/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/;
 
 constraintTerm constraintTerm_copy (constraintTerm term) /*@*/;
 
-//constraintTerm exprNode_makeConstraintTerm ( exprNode e) /*@*/;
-
-//bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/;
-
 bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/;
 
 bool constraintTerm_canGetValue (constraintTerm term)/*@*/;
-int constraintTerm_getValue (constraintTerm term) /*@*/;
+long constraintTerm_getValue (constraintTerm term) /*@*/;
 
 fileloc constraintTerm_getFileloc (constraintTerm t) /*@*/;
 
-//constraintTerm constraintTerm_makeMaxSetexpr (exprNode e) /*@*/;
-
-//constraintTerm constraintTerm_makeMinSetexpr (exprNode e) /*@*/;
-
-//constraintTerm constraintTerm_makeMaxReadexpr (exprNode e) /*@*/;
-
-//constraintTerm constraintTerm_makeMinReadexpr (exprNode e) /*@*/;
-
-//constraintTerm constraintTerm_makeValueexpr (exprNode e) /*@*/;
-
-//constraintTerm intLit_makeConstraintTerm (int i) /*@*/;
-
-//constraintTerm constraintTerm_makeIntLitValue (int i) /*@*/;
 
 bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/;
 
-cstring constraintTerm_print (constraintTerm term) /*@*/;
-
-constraintTerm constraintTerm_makesRef  (/*@only@*/ sRef s) /*@*/;
+constraintTerm constraintTerm_makesRef  (/*@temp@*/ /*@observer@*/ sRef s) /*@*/;
 
 /*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/;
 
 constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fileloc loc) /*@modifies term@*/;
 
-constraintTerm constraintTerm_makeIntLiteral (int i) /*@*/;
+constraintTerm constraintTerm_makeIntLiteral (long i) /*@*/;
 
 bool constraintTerm_isStringLiteral (constraintTerm c) /*@*/;
 cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
@@ -100,8 +63,21 @@ cstring constraintTerm_getStringLiteral (constraintTerm c) /*@*/;
 
 constraintTerm constraintTerm_doSRefFixBaseParam (/*@returned@*/ constraintTerm term, exprNodeList arglist) /*@modifies term@*/;
 
-#else
+extern cstring constraintTerm_unparse (constraintTerm)  /*@*/ ;
 
-#error Multiple Include
+extern void constraintTerm_dump ( /*@observer@*/ constraintTerm t,  FILE *f);
+extern /*@only@*/ constraintTerm constraintTerm_undump ( FILE *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 c) /*@*/;
+extern ctype constraintTerm_getCType (constraintTerm term);
 
+extern /*@exposed@*/ exprNode constraintTerm_getExprNode (constraintTerm t);
+extern /*@exposed@*/ sRef constraintTerm_getsRef (constraintTerm t);
+
+/*drl added 12/19/2002*/
+extern bool constraintTerm_isConstantOnly (constraintTerm p_term);
+     
+#else
+#error "Multiple Include!"
 #endif
This page took 0.035634 seconds and 4 git commands to generate.