22 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
24 os <<
u8"\u275d" << object_address_expr.object_identifier() <<
u8"\u275e";
29 ID_object_size, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
31 os <<
"object_size(" <<
format(object_size_expr.op()) <<
')';
37 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
39 os <<
"pointer_offset(" <<
format(pointer_offset_expr.op()) <<
')';
45 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
47 os <<
"object_size(" <<
format(object_size_expr.op0()) <<
", "
48 <<
format(object_size_expr.op1()) <<
')';
54 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
56 os <<
format(field_address_expr.base()) <<
u8".\u275d"
57 << field_address_expr.component_name() <<
u8"\u275e";
62 ID_evaluate, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
64 if(evaluate_expr.op0().id() == ID_symbol)
65 os <<
format(evaluate_expr.op0());
67 os <<
'(' <<
format(evaluate_expr.op0()) <<
')';
68 os <<
'(' <<
format(evaluate_expr.op1()) <<
')';
73 ID_update_state, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
75 os <<
format(update_state_expr.state()) <<
'['
76 <<
format(update_state_expr.address())
77 <<
":=" <<
format(update_state_expr.new_value()) <<
']';
82 ID_is_cstring, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
84 return os <<
"is_cstring(" <<
format(is_cstring_expr.op()) <<
')';
89 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
91 return os <<
"is_cstring(" <<
format(is_cstring_expr.state()) <<
", "
92 <<
format(is_cstring_expr.address()) <<
')';
96 ID_state_is_dynamic_object,
97 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
98 const auto &is_dynamic_object_expr =
100 return os <<
"is_dynamic_object("
101 <<
format(is_dynamic_object_expr.state()) <<
", "
102 <<
format(is_dynamic_object_expr.address()) <<
')';
106 ID_state_r_ok, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
108 return os <<
"r_ok(" <<
format(r_ok_expr.op0()) <<
", "
109 <<
format(r_ok_expr.op1()) <<
", " <<
format(r_ok_expr.op2())
114 ID_state_live_object,
115 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
117 return os <<
"live_object(" <<
format(live_object_expr.op0()) <<
", "
118 <<
format(live_object_expr.op1()) <<
')';
122 ID_state_writeable_object,
123 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
125 return os <<
"writeable_object(" <<
format(writeable_object_expr.op0())
126 <<
", " <<
format(writeable_object_expr.op1()) <<
')';
130 ID_state_type_compatible,
131 [](std::ostream &os,
const exprt &expr) -> std::ostream & {
133 return os <<
"type_compatible(" <<
format(type_compatible_expr.state())
134 <<
", " <<
format(type_compatible_expr.address()) <<
')';
138 ID_side_effect, [](std::ostream &os,
const exprt &expr) -> std::ostream & {
140 if(side_effect_expr.get_statement() == ID_nondet)
141 return os <<
"nondet " <<
format(side_effect_expr.type());
143 return os <<
"side-effect-" << side_effect_expr.get_statement();
Base class for all expressions.
API to expression classes for Pointers.
const object_size_exprt & to_object_size_expr(const exprt &expr)
Cast an exprt to a object_size_exprt.
const pointer_offset_exprt & to_pointer_offset_expr(const exprt &expr)
Cast an exprt to a pointer_offset_exprt.
const field_address_exprt & to_field_address_expr(const exprt &expr)
Cast an exprt to an field_address_exprt.
const object_address_exprt & to_object_address_expr(const exprt &expr)
Cast an exprt to an object_address_exprt.
const state_type_compatible_exprt & to_state_type_compatible_expr(const exprt &expr)
Cast an exprt to a state_type_compatible_exprt.
const update_state_exprt & to_update_state_expr(const exprt &expr)
Cast an exprt to a update_state_exprt.
const state_is_dynamic_object_exprt & to_state_is_dynamic_object_expr(const exprt &expr)
Cast an exprt to a state_is_dynamic_object_exprt.
const evaluate_exprt & to_evaluate_expr(const exprt &expr)
Cast an exprt to a evaluate_exprt.
const state_is_cstring_exprt & to_state_is_cstring_expr(const exprt &expr)
Cast an exprt to a state_is_cstring_exprt.
side_effect_exprt & to_side_effect_expr(exprt &expr)
const binary_exprt & to_binary_expr(const exprt &expr)
Cast an exprt to a binary_exprt.
const ternary_exprt & to_ternary_expr(const exprt &expr)
Cast an exprt to a ternary_exprt.
const unary_exprt & to_unary_expr(const exprt &expr)
Cast an exprt to a unary_exprt.