9 #ifndef CPROVER_UTIL_EXPR_H 10 #define CPROVER_UTIL_EXPR_H 17 #define forall_operands(it, expr) \ 18 if((expr).has_operands()) \ 19 for(exprt::operandst::const_iterator it=(expr).operands().begin(), \ 20 it##_end=(expr).operands().end(); \ 23 #define Forall_operands(it, expr) \ 24 if((expr).has_operands()) \ 25 for(exprt::operandst::iterator it=(expr).operands().begin(); \ 26 it!=(expr).operands().end(); ++it) 28 #define forall_expr(it, expr) \ 29 for(exprt::operandst::const_iterator it=(expr).begin(); \ 30 it!=(expr).end(); ++it) 32 #define Forall_expr(it, expr) \ 33 for(exprt::operandst::iterator it=(expr).begin(); \ 34 it!=(expr).end(); ++it) 59 return static_cast<const typet &
>(
find(ID_type));
137 return static_cast<exprt &
>(
add(name));
142 return static_cast<const exprt &
>(
find(name));
175 #endif // CPROVER_UTIL_EXPR_H The type of an expression.
virtual void operator()(const exprt &)
const_unique_depth_iteratort unique_depth_cbegin() const
const_depth_iteratort depth_cbegin() const
const exprt & op3() const
const exprt & op2() const
void copy_to_operands(const exprt &expr)
void move_to_operands(exprt &expr)
exprt(const irep_idt &_id)
const exprt & find_expr(const irep_idt &name) const
unsignedbv_typet size_type()
depth_iteratort depth_begin()
void make_bool(bool value)
void visit(class expr_visitort &visitor)
const source_locationt & find_source_location() const
exprt(const irep_idt &_id, const typet &_type)
const operandst & operands() const
Base class for tree-like data structures with sharing.
const typet & type() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings...
bool has_operands() const
std::vector< exprt > operandst
const_unique_depth_iteratort unique_depth_cend() const
const exprt & op1() const
const exprt & op0() const
Base class for all expressions.
virtual void operator()(exprt &)
const source_locationt & source_location() const
const_depth_iteratort depth_cend() const
irept & add(const irep_namet &name)
source_locationt & add_source_location()
const_unique_depth_iteratort unique_depth_begin() const
depth_iteratort depth_end()
exprt & add_expr(const irep_idt &name)
virtual ~const_expr_visitort()
void make_typecast(const typet &_type)
const irept & find(const irep_namet &name) const
const_unique_depth_iteratort unique_depth_end() const
void reserve_operands(operandst::size_type n)