2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
3 ** See ../LICENSE for license information.
5 # ifndef constraintLIST_H
6 # define constraintLIST_H
8 typedef /*@only@*/ constraint o_constraint;
10 struct _constraintList
14 /*@reldef@*/ /*@relnull@*/ o_constraint *elements;
17 /*@constant null constraintList constraintList_undefined;@*/
18 # define constraintList_undefined ((constraintList) 0)
20 /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/
21 # define constraintList_elements(x, m_el) \
22 { int m_ind; constraint *m_elements = &((x)->elements[0]); \
23 for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
24 { constraint m_el = *(m_elements++);
26 # define end_constraintList_elements }}
28 extern /*@only@*/ constraintList constraintList_new(void);
29 extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) ;
31 extern constraintList constraintList_addList (/*@returned@*/ constraintList s, /*@only@*/constraintList new);
34 extern constraintList constraintList_copy (constraintList p_s) /*@*/ ;
36 //extern /*@only@*/ cstring constraintList_unparse (constraintList p_s) ;
37 extern void constraintList_free (/*@only@*/ constraintList p_s) ;
42 extern cstring constraintList_print (constraintList s);
45 constraintList_printDetailed (constraintList s);
49 constraintList_logicalOr (constraintList l1, constraintList l2);
51 extern constraintList constraintList_preserveOrig (constraintList c);
53 /*@constant int constraintListBASESIZE;@*/
55 extern constraintList constraintList_doSRefFixBaseParam (constraintList preconditions, exprNodeList arglist);
57 extern constraintList constraintList_togglePost (constraintList c);
59 extern constraintList constraintList_doSRefFixConstraintParam (constraintList preconditions, exprNodeList arglist);
61 extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall);
63 constraintList constraintList_doFixResult (constraintList postconditions, exprNode fcnCall);
65 constraintList constraintList_addGeneratingExpr (constraintList c, exprNode e);
66 # define constraintListBASESIZE SMALLBASESIZE
69 # error "Multiple include"