48std::string
type_to_string(
const std::vector<expr2tc> &theval,
int indent);
49std::string
type_to_string(
const std::vector<type2tc> &theval,
int indent);
50std::string
type_to_string(
const std::vector<irep_idt> &theval,
int indent);
59 return side1 == side2;
92 const std::vector<expr2tc> &side1,
93 const std::vector<expr2tc> &side2);
95 const std::vector<type2tc> &side1,
96 const std::vector<type2tc> &side2);
126 const std::vector<expr2tc> &item,
142 const std::vector<expr2tc> &item);
146template <
typename T,
typename U>
163 const std::vector<expr2tc> &ref,
168 std::vector<expr2tc> &ref,
172template <
typename T,
typename U>
189 const std::vector<type2tc>,
191 const std::vector<type2tc> &ref,
196 std::vector<type2tc> &ref,
218 const K &b =
static_cast<const K &
>(o);
221 [&](
auto... mp) { ((eq = eq &&
do_type_cmp(a.*mp, b.*mp)), ...); },
233 const K &b =
static_cast<const K &
>(o);
237 ((r == 0 ? (void)(r =
do_type_lt(a.*mp, b.*mp)) : (void)0), ...);
253 unsigned int idx = 0;
257 using FieldT = std::remove_cvref_t<
decltype(a.*mp)>;
259 std::is_same_v<FieldT, type2tc> && std::is_base_of_v<expr2t, K>)
275 const expr2tc *result =
nullptr;
334 const K &b =
static_cast<const K &
>(o);
337 [&](
auto... mp) { ((eq = eq &&
do_type_cmp(a.*mp, b.*mp)), ...); },
345 const K &b =
static_cast<const K &
>(o);
349 ((r == 0 ? (void)(r =
do_type_lt(a.*mp, b.*mp)) : (void)0), ...);
359 unsigned int idx = 0;
int compare(llong_t) const
Definition bigint.cpp:709
Base class for all expressions.
Definition irep2.h:725
esbmct::function_ref< void(const expr2tc &)> const_op_delegate
Definition irep2.h:741
esbmct::function_ref< void(expr2tc &)> op_delegate
Definition irep2.h:742
Definition ieee_float.h:75
ieee_float_spect spec
Definition ieee_float.h:89
BigInt pack() const
Definition ieee_float.cpp:367
Base class for all types.
Definition irep2.h:554
esbmct::function_ref< void(type2tc &)> subtype_delegate
Definition irep2.h:586
esbmct::function_ref< void(const type2tc &)> const_subtype_delegate
Definition irep2.h:585
#define T
Definition exp2f.c:24
std::list< member_entryt > list_of_memberst
Definition irep2.h:459
irep_container< type2t > type2tc
Definition irep2.h:430
std::pair< std::string, std::string > member_entryt
Definition irep2.h:458
irep_container< expr2t > expr2tc
Definition irep2.h:431
bool do_get_sub_expr(const T &, size_t, size_t &, const expr2tc *&)
Definition irep2_dispatch.h:112
bool do_get_sub_expr< expr2tc >(const expr2tc &item, size_t idx, size_t &it, const expr2tc *&ptr)
Definition irep2_utils.cpp:332
void call_expr_delegate(T &, U &)
Definition irep2_dispatch.h:147
size_t do_count_sub_exprs(T &)
Definition irep2_dispatch.h:132
bool do_type_cmp(const T &side1, const T &side2)
Definition irep2_dispatch.h:57
void call_type_delegate(T &, U &)
Definition irep2_dispatch.h:173
void call_type_delegate< type2tc, type2t::subtype_delegate >(type2tc &ref, type2t::subtype_delegate &f)
Definition irep2_utils.cpp:425
void do_type2string(const T &thething, unsigned int idx, std::string(&names)[esbmct::num_type_fields], list_of_memberst &vec, unsigned int indent)
Definition irep2_dispatch.h:101
size_t do_count_sub_exprs< const expr2tc >(const expr2tc &)
Definition irep2_utils.cpp:370
void call_type_delegate< const type2tc, type2t::const_subtype_delegate >(const type2tc &ref, type2t::const_subtype_delegate &f)
Definition irep2_utils.cpp:417
void call_expr_delegate< expr2tc, expr2t::op_delegate >(expr2tc &ref, expr2t::op_delegate &f)
Definition irep2_utils.cpp:391
std::string type_to_string(const bool &thebool, int)
Definition irep2_utils.cpp:456
void call_expr_delegate< const expr2tc, expr2t::const_op_delegate >(const expr2tc &ref, expr2t::const_op_delegate &f)
Definition irep2_utils.cpp:383
int do_type_lt(const T &side1, const T &side2)
Definition irep2_dispatch.h:64
printf_kindt
Which member of the printf family a code_printf2t represents.
Definition irep2_expr.h:98
constant_string_kindt
Definition irep2_expr.h:27
symbol_renaming_level
Symex renaming level for symbol2t.
Definition irep2_expr.h:54
sideeffect_allockind
Enumeration identifying each particular kind of side effect.
Definition irep2_expr.h:73
pointer_ref_kindt
How the source spelled a pointer.
Definition irep2_type.h:556
Containers and field-walking infrastructure for irep2 nodes.
Definition esbmc_internal_cpp.h:3
constexpr bool assert_kind_invariants()
Definition irep2.h:1134
void generic_foreach_operand_impl_const(const K &a, expr2t::const_op_delegate &f)
Definition irep2_dispatch.h:302
int generic_lt_type(const K &a, const type2t &o)
Definition irep2_dispatch.h:343
void generic_foreach_operand_impl(K &a, expr2t::op_delegate &f)
Definition irep2_dispatch.h:314
bool generic_cmp(const K &a, const expr2t &o)
Definition irep2_dispatch.h:215
list_of_memberst generic_tostring_type(const K &a, unsigned int indent)
Definition irep2_dispatch.h:356
void generic_foreach_subtype(K &a, type2t::subtype_delegate &f)
Definition irep2_dispatch.h:380
bool generic_cmp_type(const K &a, const type2t &o)
Definition irep2_dispatch.h:329
size_t generic_get_num_sub_exprs(const K &a)
Definition irep2_dispatch.h:289
list_of_memberst generic_tostring(const K &a, unsigned int indent)
Definition irep2_dispatch.h:250
void generic_foreach_subtype_const(const K &a, type2t::const_subtype_delegate &f)
Definition irep2_dispatch.h:371
int generic_lt(const K &a, const expr2t &o)
Definition irep2_dispatch.h:231
const expr2tc * generic_get_sub_expr(const K &a, size_t idx)
Definition irep2_dispatch.h:273
const unsigned int num_type_fields
Maximum number of fields to support in expr2t subclasses.
Definition irep2.h:998