/*
** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
*/
/*
** stateClauseList.h
*/
# ifndef STATECLAUSELIST_H
# define STATECLAUSELIST_H
struct s_stateClauseList
{
int nelements;
int nspace;
/*@relnull@*/ /*@reldef@*/ o_stateClause *elements;
} ;
extern void stateClauseList_checkAll (uentry p_ue)
/*@modifies p_ue, g_warningstream@*/ ;
/*@constant null stateClauseList stateClauseList_undefined@*/
# define stateClauseList_undefined ((stateClauseList) 0)
extern /*@falsewhennull@*/ bool stateClauseList_isDefined (stateClauseList p_s) /*@*/ ;
# define stateClauseList_isDefined(s) ((s) != stateClauseList_undefined)
extern /*@nullwhentrue@*/ bool stateClauseList_isUndefined (stateClauseList p_s) /*@*/ ;
# define stateClauseList_isUndefined(s) ((s) == stateClauseList_undefined)
extern /*@unused@*/ int
stateClauseList_size (/*@sef@*/ stateClauseList p_s) /*@*/ ;
# define stateClauseList_size(s) (stateClauseList_isDefined (s) ? (s)->nelements : 0)
extern cstring stateClause_unparseKind (stateClause p_s) /*@*/ ;
extern stateClauseList
stateClauseList_add (/*@returned@*/ stateClauseList p_s,
/*@only@*/ stateClause p_el)
/*@modifies p_s@*/ ;
extern /*@unused@*/ cstring stateClauseList_unparse (stateClauseList p_s) /*@*/ ;
extern void stateClauseList_free (/*@only@*/ stateClauseList p_s) ;
extern /*@only@*/ stateClauseList stateClauseList_copy (stateClauseList p_s) /*@*/ ;
extern cstring stateClauseList_dump (stateClauseList p_s) /*@*/ ;
extern stateClauseList stateClauseList_undump (char **p_s) /*@modifies *p_s@*/ ;
extern int stateClauseList_compare (stateClauseList p_s1, stateClauseList p_s2) /*@*/ ;
/*@constant int stateClauseListBASESIZE;@*/
# define stateClauseListBASESIZE MIDBASESIZE
extern void stateClauseList_checkEqual (uentry p_old, uentry p_unew)
/*@modifies g_warningstream@*/ ;
/*@iter stateClauseList_elements (sef stateClauseList x, yield exposed stateClause el); @*/
# define stateClauseList_elements(x, m_el) \
{ if (!stateClauseList_isUndefined(x)) \
{ int m_ind; stateClause *m_elements = &((x)->elements[0]); \
for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
{ stateClause m_el = *(m_elements++);
# define end_stateClauseList_elements }}}
/*@iter stateClauseList_preElements (sef stateClauseList x, yield exposed stateClause el); @*/
# define stateClauseList_preElements(x, m_el) \
{ if (!stateClauseList_isUndefined(x)) \
{ int m_ind; stateClause *m_elements = &((x)->elements[0]); \
for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
{ stateClause m_el = *(m_elements++); if (stateClause_isBefore (m_el)) { \
# define end_stateClauseList_preElements }}}}
/*@iter stateClauseList_postElements (sef stateClauseList x, yield exposed stateClause el); @*/
# define stateClauseList_postElements(x, m_el) \
{ if (!stateClauseList_isUndefined(x)) \
{ int m_ind; stateClause *m_elements = &((x)->elements[0]); \
for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
{ stateClause m_el = *(m_elements++); if (stateClause_isAfter (m_el)) { \
# define end_stateClauseList_postElements }}}}
# else
# error "Multiple include"
# endif
syntax highlighted by Code2HTML, v. 0.9.1