ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
type_kinds.inc
Go to the documentation of this file.
1// Single source of truth for irep2 type kinds.
2//
3// Includers must `#define IREP2_TYPE(kind, pretty_name)` before
4// including this file and `#undef IREP2_TYPE` after. The macro is
5// invoked once per kind in declaration order; the order matches the
6// `type2t::type_ids` enum exactly.
7//
8// Arguments:
9// kind — bare identifier (e.g. `array`). The generators
10// derive `<kind>_type2t`, `<kind>_id`,
11// `is_<kind>_type`, `to_<kind>_type`,
12// `try_to_<kind>_type` from it.
13// pretty_name — string literal printed by pretty() / used by
14// irep2_bad_type_cast for diagnostics. Currently
15// matches the kind identifier exactly for every
16// entry, but is kept as a separate column so an
17// occasional override (cf. expr_kinds.inc) can be
18// added without touching every generator.
19
20IREP2_TYPE(bool, "bool")
21IREP2_TYPE(empty, "empty")
22IREP2_TYPE(symbol, "symbol")
23IREP2_TYPE(struct, "struct")
24IREP2_TYPE(union, "union")
25IREP2_TYPE(code, "code")
26IREP2_TYPE(array, "array")
27IREP2_TYPE(vector, "vector")
28IREP2_TYPE(pointer, "pointer")
29IREP2_TYPE(unsignedbv, "unsignedbv")
30IREP2_TYPE(signedbv, "signedbv")
31IREP2_TYPE(fixedbv, "fixedbv")
32IREP2_TYPE(floatbv, "floatbv")
33IREP2_TYPE(complex, "complex")
34IREP2_TYPE(cpp_name, "cpp_name")
Definition toml.hpp:6607
#define IREP2_TYPE(kind, pretty)
Definition irep2.h:561