28 auto make_unary = [
this](
const char *f) {
29 return [
this, f](
const exprt &expr) {
31 out <<
'(' << f <<
' ';
39 return [
this, f](
const exprt &expr) {
41 out <<
'(' << f <<
' ';
49 auto make_ternary = [
this](
const char *f) {
50 return [
this, f](
const exprt &expr) {
52 out <<
'(' << f <<
' ';
113 out <<
"(reallocate ";
123 out <<
"(deallocate ";
143 ID_state_is_dynamic_object,
make_binary(
"state-is-dynamic-object"));
148 ID_state_writeable_object,
make_binary(
"state-writeable-object"));
153 out <<
"(state-is-sentinel-dll ";
154 convert_expr(to_multi_ary_expr(expr).op0());
156 convert_expr(to_multi_ary_expr(expr).op1());
158 convert_expr(to_multi_ary_expr(expr).op2());
163 out <<
"(state-is-sentinel-dll-with-node ";
164 convert_expr(to_multi_ary_expr(expr).op0());
166 convert_expr(to_multi_ary_expr(expr).op1());
168 convert_expr(to_multi_ary_expr(expr).op2());
170 convert_expr(to_multi_ary_expr(expr).op3());
178 ID_state_writeable_object,
make_binary(
"state-writeable-object"));
void set_to_true(source_locationt, exprt) override
Base class for all expressions.
typet & type()
Return the type of the expression.
std::string type2id(const typet &) const
void set_converter(irep_idt id, std::function< void(const exprt &)> converter)
void convert_expr(const exprt &)
exprt make_binary(const exprt &expr)
splits an expression with >=3 operands into nested binary expressions
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
std::optional< exprt > size_of_expr(const typet &type, const namespacet &ns)
#define CHECK_RETURN(CONDITION)
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.