1#ifndef CPROVER_STD_EXPR_H
2#define CPROVER_STD_EXPR_H
48 return static_cast<const transt &
>(expr);
54 return static_cast<transt &
>(expr);
82 return get(
"identifier");
561 assert(p->operands().size() != 0);
704 else if (op.size() == 1)
705 *
this =
static_cast<const and_exprt &
>(op.front());
749 else if (op.size() == 1)
750 *
this =
static_cast<const or_exprt &
>(op.front());
881 return static_cast<const if_exprt &
>(expr);
887 return static_cast<if_exprt &
>(expr);
991 return get(
"component_name");
1036 return get(
"component_name");
1099 set(
"#cformat", _cformat);
1113 return get(
"value");
unsigned bv_width(const typet &type)
Definition bitvector.cpp:4
Definition std_expr.h:757
const exprt & object() const
Definition std_expr.h:778
exprt & object()
Definition std_expr.h:773
address_of_exprt(const exprt &op)
Definition std_expr.h:759
address_of_exprt()
Definition std_expr.h:768
and_exprt(const exprt::operandst &op)
Definition std_expr.h:700
and_exprt()
Definition std_expr.h:690
and_exprt(const exprt &op0, const exprt &op1)
Definition std_expr.h:694
Definition std_expr.h:390
friend const array_of_exprt & to_array_of_expr(const exprt &expr)
Definition std_expr.h:412
friend array_of_exprt & to_array_of_expr(exprt &expr)
Definition std_expr.h:418
const exprt & what() const
Definition std_expr.h:407
array_of_exprt(const exprt &_what, const typet &_type)
Definition std_expr.h:396
array_of_exprt()
Definition std_expr.h:392
exprt & what()
Definition std_expr.h:402
binary_exprt(const exprt &_lhs, const irep_idt &_id, const exprt &_rhs)
Definition std_expr.h:211
binary_exprt()
Definition std_expr.h:201
binary_exprt(const irep_idt &id)
Definition std_expr.h:206
binary_exprt(const exprt &_lhs, const irep_idt &_id, const exprt &_rhs, const typet &_type)
Definition std_expr.h:217
const exprt & rhs() const
Definition std_expr.h:192
binary_relation_exprt()
Definition std_expr.h:159
const exprt & lhs() const
Definition std_expr.h:182
binary_relation_exprt(const exprt &_lhs, const irep_idt &_id, const exprt &_rhs)
Definition std_expr.h:169
binary_relation_exprt(const irep_idt &id)
Definition std_expr.h:164
exprt & lhs()
Definition std_expr.h:177
exprt & rhs()
Definition std_expr.h:187
Definition std_expr.h:1082
const irep_idt & get_value() const
Definition std_expr.h:1111
constant_exprt(const BigInt &value, const typet &type)
Definition std_expr.h:1103
constant_exprt(const irep_idt &_value, const irep_idt &_cformat, const typet &_type)
Definition std_expr.h:1093
void set_value(const irep_idt &value)
Definition std_expr.h:1116
constant_exprt()
Definition std_expr.h:1084
constant_exprt(const typet &type)
Definition std_expr.h:1088
dereference_exprt()
Definition std_expr.h:826
dereference_exprt(const exprt &op, const typet &tp)
Definition std_expr.h:818
dereference_exprt(const typet &type)
Definition std_expr.h:813
div_exprt()
Definition std_expr.h:270
div_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:274
Definition std_expr.h:596
exprt & valid()
Definition std_expr.h:622
dynamic_object_exprt(const typet &type)
Definition std_expr.h:605
const exprt & instance() const
Definition std_expr.h:617
friend dynamic_object_exprt & to_dynamic_object_expr(exprt &expr)
Definition std_expr.h:639
dynamic_object_exprt()
Definition std_expr.h:598
friend const dynamic_object_exprt & to_dynamic_object_expr(const exprt &expr)
Definition std_expr.h:633
const exprt & valid() const
Definition std_expr.h:627
exprt & instance()
Definition std_expr.h:612
Definition std_expr.h:294
equality_exprt()
Definition std_expr.h:296
equality_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:300
static irep_idt symbol
Definition expr.h:218
std::vector< exprt > operandst
Definition expr.h:39
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 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_not
Definition expr.h:235
static irep_idt i_and
Definition expr.h:232
static irep_idt objdesc
Definition expr.h:228
static irep_idt addrof
Definition expr.h:236
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 mult
Definition expr.h:221
static irep_idt minus
Definition expr.h:220
static irep_idt plus
Definition expr.h:219
static irep_idt constant
Definition expr.h:246
static irep_idt deref
Definition expr.h:237
exprt & op0()
Definition expr.h:77
exprt & op1()
Definition expr.h:82
bool is_constant() const
Definition expr.cpp:105
static irep_idt typecast
Definition expr.h:230
operandst & operands()
Definition expr.h:57
static irep_idt trans
Definition expr.h:217
exprt & op2()
Definition expr.h:93
static irep_idt dynobj
Definition expr.h:229
static irep_idt i_false
Definition expr.h:248
static irep_idt i_or
Definition expr.h:234
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
const irep_idt & value() const
Definition expr.h:67
static irep_idt member
Definition expr.h:240
false_exprt()
Definition std_expr.h:1161
Definition std_expr.h:833
const exprt & false_case() const
Definition std_expr.h:872
exprt & cond()
Definition std_expr.h:847
const exprt & cond() const
Definition std_expr.h:852
const exprt & true_case() const
Definition std_expr.h:862
exprt & false_case()
Definition std_expr.h:867
if_exprt()
Definition std_expr.h:842
exprt & true_case()
Definition std_expr.h:857
if_exprt(const exprt &cond, const exprt &t, const exprt &f)
Definition std_expr.h:835
implies_exprt(const exprt &op0, const exprt &op1)
Definition std_expr.h:719
implies_exprt()
Definition std_expr.h:714
Definition std_expr.h:319
friend const index_exprt & to_index_expr(const exprt &expr)
Definition std_expr.h:366
exprt & index()
Definition std_expr.h:356
friend index_exprt & to_index_expr(exprt &expr)
Definition std_expr.h:372
exprt & array()
Definition std_expr.h:346
index_exprt(const exprt &_array, const exprt &_index)
Definition std_expr.h:331
index_exprt()
Definition std_expr.h:321
const exprt & index() const
Definition std_expr.h:361
index_exprt(const typet &_type)
Definition std_expr.h:326
const exprt & array() const
Definition std_expr.h:351
index_exprt(const exprt &_array, const exprt &_index, const typet &_type)
Definition std_expr.h:337
const irep_idt & identifier() const
Definition irep.h:167
const irep_idt & get(const irep_idt &name) const
Definition irep.cpp:127
void set(const irep_idt &name, const irep_idt &value)
Definition irep.h:141
static const irep_idt a_comp_name
Definition irep.h:1287
typet & type()
Definition irep.h:153
const irep_idt & component_name() const
Definition irep.h:187
const irep_idt & id() const
Definition irep.h:109
static const irep_idt id_union
Definition irep.h:1323
static const irep_idt id_struct
Definition irep.h:1323
Definition std_expr.h:949
exprt & struct_op()
Definition std_expr.h:1004
member_exprt(const exprt &op, const irep_idt &component_name)
Definition std_expr.h:961
const exprt & struct_op() const
Definition std_expr.h:999
irep_idt get_component_name() const
Definition std_expr.h:989
member_exprt()
Definition std_expr.h:984
void set_component_name(const irep_idt &component_name)
Definition std_expr.h:994
member_exprt(const exprt &op, const irep_idt &component_name, const typet &_type)
Definition std_expr.h:968
member_exprt(const exprt &op)
Definition std_expr.h:951
member_exprt(const irep_idt &component_name, const typet &_type)
Definition std_expr.h:978
member_exprt(const typet &type)
Definition std_expr.h:956
Definition std_expr.h:1011
member_ref_exprt(const irep_idt &component_name, const typet &_type)
Definition std_expr.h:1023
member_ref_exprt(const typet &type)
Definition std_expr.h:1013
member_ref_exprt()
Definition std_expr.h:1029
irep_idt get_component_name() const
Definition std_expr.h:1034
void set_component_name(const irep_idt &component_name)
Definition std_expr.h:1039
member_ref_exprt(const irep_idt &component_name)
Definition std_expr.h:1018
minus_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:248
minus_exprt()
Definition std_expr.h:244
mod_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:287
mod_exprt()
Definition std_expr.h:283
mult_exprt()
Definition std_expr.h:257
mult_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:261
nil_exprt()
Definition std_expr.h:1170
not_exprt()
Definition std_expr.h:804
not_exprt(const exprt &op)
Definition std_expr.h:799
Definition std_expr.h:536
exprt & offset()
Definition std_expr.h:568
object_descriptor_exprt()
Definition std_expr.h:538
friend const object_descriptor_exprt & to_object_descriptor_expr(const exprt &expr)
Definition std_expr.h:579
const exprt & root_object() const
Definition std_expr.h:555
friend object_descriptor_exprt & to_object_descriptor_expr(exprt &expr)
Definition std_expr.h:585
const exprt & offset() const
Definition std_expr.h:573
const exprt & object() const
Definition std_expr.h:550
exprt & object()
Definition std_expr.h:545
or_exprt()
Definition std_expr.h:729
or_exprt(const exprt::operandst &op)
Definition std_expr.h:745
or_exprt(const exprt &op0, const exprt &op1)
Definition std_expr.h:733
or_exprt(const exprt &op0, const exprt &op1, const exprt &op2)
Definition std_expr.h:739
plus_exprt(const exprt &_lhs, const exprt &_rhs)
Definition std_expr.h:235
plus_exprt()
Definition std_expr.h:231
predicate_exprt(const irep_idt &_id)
Definition std_expr.h:139
predicate_exprt(const irep_idt &_id, const exprt &_op0, const exprt &_op1)
Definition std_expr.h:149
predicate_exprt(const irep_idt &_id, const exprt &_op)
Definition std_expr.h:143
predicate_exprt()
Definition std_expr.h:135
struct constructor from list of elements
Definition std_expr.h:496
struct_exprt(const typet &_type)
Definition std_expr.h:502
friend const struct_exprt & to_struct_expr(const exprt &expr)
Cast a generic exprt to a struct_exprt.
Definition std_expr.h:506
friend struct_exprt & to_struct_expr(exprt &expr)
Cast a generic exprt to a struct_exprt.
Definition std_expr.h:512
struct_exprt()
Definition std_expr.h:498
void set_identifier(const irep_idt &identifier)
Definition std_expr.h:75
symbol_exprt()
Definition std_expr.h:60
const irep_idt & get_identifier() const
Definition std_expr.h:80
symbol_exprt(const irep_idt &identifier)
Definition std_expr.h:64
symbol_exprt(const irep_idt &identifier, const typet &type)
Definition std_expr.h:69
const exprt & init() const
Definition std_expr.h:35
exprt & init()
Definition std_expr.h:22
exprt & invar()
Definition std_expr.h:18
const exprt & trans() const
Definition std_expr.h:39
exprt & trans()
Definition std_expr.h:26
transt()
Definition std_expr.h:12
const exprt & invar() const
Definition std_expr.h:31
true_exprt()
Definition std_expr.h:1152
type_exprt()
Definition std_expr.h:1072
type_exprt(const typet &type)
Definition std_expr.h:1076
Definition std_expr.h:650
exprt & op()
Definition std_expr.h:664
typecast_exprt(const exprt &op, const typet &_type)
Definition std_expr.h:658
const exprt & op() const
Definition std_expr.h:669
typecast_exprt(const typet &_type)
Definition std_expr.h:652
const typet & subtype() const
Definition type.h:17
Generic base class for unary expressions.
Definition std_expr.h:101
unary_exprt(const irep_idt &id)
Definition std_expr.h:108
unary_exprt(const irep_idt &_id, const exprt &_op)
Definition std_expr.h:113
unary_exprt()
Definition std_expr.h:103
unary_exprt(const irep_idt &_id, const exprt &_op, const typet &_type)
Definition std_expr.h:125
unary_exprt(const irep_idt &_id, const typet &_type)
Definition std_expr.h:119
union constructor from single element
Definition std_expr.h:431
union_exprt(const irep_idt &_component_name, const typet &_type)
Definition std_expr.h:441
void set_component_number(unsigned component_number)
Definition std_expr.h:471
union_exprt(const typet &_type)
Definition std_expr.h:437
union_exprt()
Definition std_expr.h:433
void set_component_name(const irep_idt &component_name)
Definition std_expr.h:466
friend const union_exprt & to_union_expr(const exprt &expr)
Cast a generic exprt to a union_exprt.
Definition std_expr.h:449
friend union_exprt & to_union_expr(exprt &expr)
Cast a generic exprt to a union_exprt.
Definition std_expr.h:455
irep_idt get_component_name() const
Definition std_expr.h:461
Definition std_expr.h:891
with_exprt(const exprt &_old, const exprt &_where, const exprt &_new_value)
Definition std_expr.h:893
const exprt & old() const
Definition std_expr.h:910
const exprt & where() const
Definition std_expr.h:920
exprt & new_value()
Definition std_expr.h:925
with_exprt()
Definition std_expr.h:900
exprt & where()
Definition std_expr.h:915
const exprt & new_value() const
Definition std_expr.h:930
exprt & old()
Definition std_expr.h:905
const irept & get_nil_irep()
Definition irep.cpp:18
const std::string integer2binary(const BigInt &n, std::size_t width)
Definition mp_arith.cpp:49
const std::string integer2string(const BigInt &n, unsigned base)
Definition mp_arith.cpp:86
const equality_exprt & to_equality_expr(const exprt &expr)
Definition std_expr.h:306
const struct_exprt & to_struct_expr(const exprt &expr)
Cast a generic exprt to a struct_exprt.
Definition std_expr.h:506
const array_of_exprt & to_array_of_expr(const exprt &expr)
Definition std_expr.h:412
const index_exprt & to_index_expr(const exprt &expr)
Definition std_expr.h:366
const transt & to_trans(const exprt &expr)
Definition std_expr.h:45
const object_descriptor_exprt & to_object_descriptor_expr(const exprt &expr)
Definition std_expr.h:579
const typecast_exprt & to_typecast_expr(const exprt &expr)
Definition std_expr.h:675
const unary_exprt & to_unary_expr(const exprt &expr)
Definition std_expr.h:382
const if_exprt & to_if_expr(const exprt &expr)
Definition std_expr.h:878
const member_exprt & to_member_expr(const exprt &expr)
Definition std_expr.h:1045
const address_of_exprt & to_address_of_expr(const exprt &expr)
Definition std_expr.h:784
const union_exprt & to_union_expr(const exprt &expr)
Cast a generic exprt to a union_exprt.
Definition std_expr.h:449
const constant_exprt & to_constant_expr(const exprt &expr)
Cast a generic exprt to a constant_exprt.
Definition std_expr.h:1132
const symbol_exprt & to_symbol_expr(const exprt &expr)
Definition std_expr.h:86
const with_exprt & to_with_expr(const exprt &expr)
Definition std_expr.h:936
const dynamic_object_exprt & to_dynamic_object_expr(const exprt &expr)
Definition std_expr.h:633
const member_ref_exprt & to_member_ref_expr(const exprt &expr)
Definition std_expr.h:1057