7#define forall_operands(it, expr) \
8 if ((expr).has_operands()) \
9 for (exprt::operandst::const_iterator it = (expr).operands().begin(); \
10 it != (expr).operands().end(); \
13#define Forall_operands(it, expr) \
14 if ((expr).has_operands()) \
15 for (exprt::operandst::iterator it = (expr).operands().begin(); \
16 it != (expr).operands().end(); \
19#define forall_expr(it, expr) \
20 for (exprt::operandst::const_iterator it = (expr).begin(); \
24#define Forall_expr(it, expr) \
25 for (exprt::operandst::iterator it = (expr).begin(); it != (expr).end(); it++)
27#define forall_expr_list(it, expr) \
28 for (expr_listt::const_iterator it = (expr).begin(); it != (expr).end(); it++)
30#define Forall_expr_list(it, expr) \
31 for (expr_listt::iterator it = (expr).begin(); it != (expr).end(); it++)
107 return *(++ ++ ++
operands().begin());
145 return *(++ ++ ++
operands().begin());
static irep_idt i_bitnot
Definition expr.h:257
exprt & op3()
Definition expr.h:104
static irep_idt symbol
Definition expr.h:218
static irep_idt i_ashr
Definition expr.h:258
std::vector< exprt > operandst
Definition expr.h:39
void move_to_operands(exprt &expr)
Definition expr.cpp:8
static irep_idt implies
Definition expr.h:231
void make_false()
Definition expr.cpp:132
static irep_idt i_true
Definition expr.h:247
static irep_idt i_gt
Definition expr.h:250
bool is_one() const
Definition expr.cpp:191
static irep_idt with
Definition expr.h:239
static irep_idt i_if
Definition expr.h:238
bool has_operands() const
Definition expr.h:52
static irep_idt equality
Definition expr.h:224
static irep_idt i_ge
Definition expr.h:252
static irep_idt i_not
Definition expr.h:235
static irep_idt i_and
Definition expr.h:232
bool is_true() const
Definition expr.cpp:110
static irep_idt objdesc
Definition expr.h:228
static irep_idt addrof
Definition expr.h:236
void make_bool(bool value)
Definition expr.cpp:120
static irep_idt arrayof
Definition expr.h:227
static irep_idt member_ref
Definition expr.h:241
void copy_to_operands(const exprt &expr)
Definition expr.cpp:41
static irep_idt mod
Definition expr.h:223
void make_true()
Definition expr.cpp:126
static irep_idt isnan
Definition expr.h:243
static irep_idt o_location
Definition expr.h:270
static irep_idt mult
Definition expr.h:221
static irep_idt minus
Definition expr.h:220
void make_typecast(const typet &_type)
Definition expr.cpp:67
static irep_idt i_lt
Definition expr.h:249
static irep_idt plus
Definition expr.h:219
static irep_idt i_lshr
Definition expr.h:259
bool is_boolean() const
Definition expr.cpp:153
static irep_idt i_bitand
Definition expr.h:254
static irep_idt constant
Definition expr.h:246
static irep_idt deref
Definition expr.h:237
static irep_idt notequal
Definition expr.h:225
bool is_false() const
Definition expr.cpp:115
exprt(const irep_idt &_id, const typet &_type)
Definition expr.h:47
locationt & location()
Definition expr.h:201
static irep_idt ptr_mem
Definition expr.h:242
static irep_idt o_operands
Definition expr.h:269
bool is_zero() const
Definition expr.cpp:158
static irep_idt i_cmp_three_way
Definition expr.h:253
void reserve_operands(unsigned n)
Definition expr.h:153
static irep_idt a_value
Definition expr.h:265
static irep_idt i_xor
Definition expr.h:233
const exprt & op0() const
Definition expr.h:115
exprt & op0()
Definition expr.h:77
exprt & op1()
Definition expr.h:82
bool is_constant() const
Definition expr.cpp:105
const locationt & location() const
Definition expr.h:196
const exprt & find_expr(const std::string &name) const
Definition expr.h:211
static irep_idt typecast
Definition expr.h:230
exprt(const irep_idt &_id)
Definition expr.h:44
bool mul(const exprt &expr)
Definition expr.cpp:256
void value(irep_idt val)
Definition expr.h:72
static irep_idt ieee_floateq
Definition expr.h:244
operandst & operands()
Definition expr.h:57
const operandst & operands() const
Definition expr.h:62
static irep_idt i_shl
Definition expr.h:260
static irep_idt argument
Definition expr.h:262
const locationt & find_location() const
Definition expr.cpp:331
void negate()
Definition expr.cpp:143
static irep_idt trans
Definition expr.h:217
exprt & op2()
Definition expr.h:93
static irep_idt abs
Definition expr.h:261
exprt & add_expr(const std::string &name)
Definition expr.h:206
static irep_idt dynobj
Definition expr.h:229
static irep_idt i_false
Definition expr.h:248
bool subtract(const exprt &expr)
Definition expr.cpp:293
void make_not()
Definition expr.cpp:77
static irep_idt i_or
Definition expr.h:234
static irep_idt i_bitxor
Definition expr.h:256
const exprt & op3() const
Definition expr.h:142
static irep_idt index
Definition expr.h:226
static irep_idt i_type
Definition expr.h:245
static irep_idt div
Definition expr.h:222
bool sum(const exprt &expr)
Definition expr.cpp:219
const exprt & op2() const
Definition expr.h:131
const irep_idt & value() const
Definition expr.h:67
static irep_idt i_le
Definition expr.h:251
const exprt & op1() const
Definition expr.h:120
friend bool operator<(const exprt &X, const exprt &Y)
Definition expr.cpp:138
static irep_idt member
Definition expr.h:240
static irep_idt i_bitor
Definition expr.h:255
const irept & find(const irep_idt &name) const
Definition irep.cpp:167
const irep_idt & get(const irep_idt &name) const
Definition irep.cpp:127
irept(const irep_idt &_id)
Definition irep.cpp:31
void set(const irep_idt &name, const irep_idt &value)
Definition irep.h:141
subt & get_sub()
Definition irep.h:1242
typet & type()
Definition irep.h:153
const irept & cmt_location() const
Definition irep.h:432
irept & add(const irep_idt &name)
Definition irep.cpp:179
bool is_nil() const
Definition irep.h:46
const irep_idt & name() const
Definition irep.h:182
std::list< exprt > expr_listt
Definition expr.h:273