cprover
|
#include <expr2c_class.h>
Public Member Functions | |
expr2ct (const namespacet &_ns, const expr2c_configurationt &configuration=expr2c_configurationt::default_configuration) | |
virtual | ~expr2ct () |
virtual std::string | convert (const typet &src) |
virtual std::string | convert (const exprt &src) |
void | get_shorthands (const exprt &expr) |
std::string | convert_with_identifier (const typet &src, const std::string &identifier) |
Build a declaration string, which requires converting both a type and putting an identifier in the syntactically correct position. | |
Static Protected Member Functions | |
static std::string | indent_str (unsigned indent) |
Protected Attributes | |
const namespacet & | ns |
const expr2c_configurationt & | configuration |
std::unordered_map< irep_idt, std::unordered_set< irep_idt > > | ns_collision |
std::unordered_map< irep_idt, irep_idt > | shorthands |
unsigned | sizeof_nesting |
Definition at line 34 of file expr2c_class.h.
|
inlineexplicit |
Definition at line 37 of file expr2c_class.h.
|
inlinevirtual |
Definition at line 44 of file expr2c_class.h.
Reimplemented in expr2javat.
Definition at line 4126 of file expr2c.cpp.
Reimplemented in expr2javat.
Definition at line 214 of file expr2c.cpp.
Definition at line 1146 of file expr2c.cpp.
|
protectedvirtual |
Definition at line 2014 of file expr2c.cpp.
Definition at line 2190 of file expr2c.cpp.
Definition at line 2293 of file expr2c.cpp.
|
protected |
Definition at line 1592 of file expr2c.cpp.
Definition at line 1320 of file expr2c.cpp.
|
protectedvirtual |
To generate a C-like type declaration of an array.
Includes the size of the array in the []
src | The array type to convert |
qualifiers | Any qualifiers on the type |
declarator_str | Previously computed string denoting the array symbol |
Definition at line 716 of file expr2c.cpp.
|
protected |
To generate a C-like type declaration of an array.
Optionally can include or exclude the size of the array in the []
src | The array type to convert |
qualifiers | Any qualifiers on the type |
declarator_str | Previously computed string denoting the array symbol |
inc_size_if_possible | Should the generated string include the size of the array (if it is known). |
Definition at line 733 of file expr2c.cpp.
|
protected |
Definition at line 1026 of file expr2c.cpp.
|
protected |
Definition at line 836 of file expr2c.cpp.
|
protected |
Definition at line 3541 of file expr2c.cpp.
|
protected |
Definition at line 1330 of file expr2c.cpp.
|
protected |
Definition at line 1356 of file expr2c.cpp.
Definition at line 3430 of file expr2c.cpp.
Reimplemented in expr2javat, and expr2cppt.
Definition at line 2968 of file expr2c.cpp.
Definition at line 3312 of file expr2c.cpp.
Definition at line 3334 of file expr2c.cpp.
Definition at line 3290 of file expr2c.cpp.
Definition at line 2549 of file expr2c.cpp.
Definition at line 3355 of file expr2c.cpp.
Definition at line 3368 of file expr2c.cpp.
|
protected |
Definition at line 2908 of file expr2c.cpp.
|
protected |
Definition at line 2752 of file expr2c.cpp.
|
protected |
Definition at line 2804 of file expr2c.cpp.
Definition at line 2857 of file expr2c.cpp.
Definition at line 2931 of file expr2c.cpp.
|
protected |
Definition at line 2653 of file expr2c.cpp.
Definition at line 2946 of file expr2c.cpp.
Definition at line 3217 of file expr2c.cpp.
Definition at line 2871 of file expr2c.cpp.
|
protected |
Definition at line 3113 of file expr2c.cpp.
Definition at line 2814 of file expr2c.cpp.
|
protected |
Definition at line 3147 of file expr2c.cpp.
Definition at line 2740 of file expr2c.cpp.
|
protected |
Definition at line 2682 of file expr2c.cpp.
Definition at line 3247 of file expr2c.cpp.
|
protected |
Definition at line 3382 of file expr2c.cpp.
Definition at line 3121 of file expr2c.cpp.
Definition at line 3269 of file expr2c.cpp.
Definition at line 3195 of file expr2c.cpp.
Definition at line 2719 of file expr2c.cpp.
Definition at line 2761 of file expr2c.cpp.
|
protected |
Definition at line 3400 of file expr2c.cpp.
Definition at line 3134 of file expr2c.cpp.
|
protected |
Definition at line 2627 of file expr2c.cpp.
Definition at line 1246 of file expr2c.cpp.
Definition at line 1270 of file expr2c.cpp.
Definition at line 992 of file expr2c.cpp.
Definition at line 3516 of file expr2c.cpp.
|
protectedvirtual |
Reimplemented in expr2javat, and expr2cppt.
Definition at line 1768 of file expr2c.cpp.
|
protectedvirtual |
To get the C-like representation of a given boolean value.
boolean_value | The value of the constant bool expression |
Definition at line 2027 of file expr2c.cpp.
Definition at line 2413 of file expr2c.cpp.
|
protected |
Definition at line 3479 of file expr2c.cpp.
|
protected |
Definition at line 3490 of file expr2c.cpp.
Returns a string if src
is a function with a known conversion, else returns nullopt.
Definition at line 4069 of file expr2c.cpp.
Definition at line 1225 of file expr2c.cpp.
|
protected |
Definition at line 2456 of file expr2c.cpp.
Definition at line 3435 of file expr2c.cpp.
|
protected |
Definition at line 1403 of file expr2c.cpp.
Definition at line 1508 of file expr2c.cpp.
Definition at line 2327 of file expr2c.cpp.
Definition at line 927 of file expr2c.cpp.
Definition at line 1209 of file expr2c.cpp.
|
protected |
Definition at line 1518 of file expr2c.cpp.
Definition at line 1498 of file expr2c.cpp.
|
protected |
Definition at line 1078 of file expr2c.cpp.
Definition at line 1174 of file expr2c.cpp.
|
protected |
Definition at line 1693 of file expr2c.cpp.
|
protected |
Definition at line 1663 of file expr2c.cpp.
Definition at line 1612 of file expr2c.cpp.
|
protected |
Definition at line 1698 of file expr2c.cpp.
Definition at line 2513 of file expr2c.cpp.
|
protected |
Definition at line 1422 of file expr2c.cpp.
|
protected |
Definition at line 1459 of file expr2c.cpp.
|
protected |
Definition at line 3595 of file expr2c.cpp.
Definition at line 1675 of file expr2c.cpp.
Definition at line 1681 of file expr2c.cpp.
Definition at line 1669 of file expr2c.cpp.
Definition at line 1199 of file expr2c.cpp.
Definition at line 1214 of file expr2c.cpp.
|
protected |
Definition at line 3613 of file expr2c.cpp.
|
protected |
Definition at line 3576 of file expr2c.cpp.
Definition at line 1687 of file expr2c.cpp.
|
protected |
Definition at line 3557 of file expr2c.cpp.
|
protectedvirtual |
Reimplemented in expr2javat, and expr2cppt.
Definition at line 219 of file expr2c.cpp.
|
protected |
Conversion function from rol/ror expressions to C code strings Note that this constructs a complex expression to do bit twiddling since rol/ror operations are not native to ANSI-C.
The complex expression is then recursively converted.
src | is an exprt that must be either an rol or ror |
precedence | precedence for bracketing |
Definition at line 2353 of file expr2c.cpp.
|
protected |
Definition at line 2484 of file expr2c.cpp.
Definition at line 3502 of file expr2c.cpp.
|
protected |
Definition at line 1184 of file expr2c.cpp.
Reimplemented in expr2javat, and expr2cppt.
Definition at line 2035 of file expr2c.cpp.
|
protected |
To generate a C-like string representing a struct.
Can optionally include the padding parameters.
src | The struct declaration expression | |
[out] | precedence | Precedence of the top level operator in the resulting string, used to decide about adding parentheses |
include_padding_components | Should the generated C code include the padding members added to structs for GOTOs benefit |
Definition at line 2051 of file expr2c.cpp.
|
protected |
Definition at line 1602 of file expr2c.cpp.
|
protected |
To generate C-like string for declaring (or defining) the given struct.
src | the struct type being converted |
qualifiers | any qualifiers on the type |
declarator | the declarator on the type |
inc_struct_body | when generating the code, should we include a complete definition of the struct |
inc_padding_components | should the padding parameters be included Note this only makes sense if inc_struct_body |
Definition at line 661 of file expr2c.cpp.
|
protectedvirtual |
To generate C-like string for defining the given struct.
src | the struct type being converted |
qualifiers_str | any qualifiers on the type |
declarator_str | the declarator on the type |
Definition at line 638 of file expr2c.cpp.
Definition at line 1623 of file expr2c.cpp.
|
protected |
Definition at line 789 of file expr2c.cpp.
|
protected |
Definition at line 755 of file expr2c.cpp.
|
protected |
Definition at line 1126 of file expr2c.cpp.
|
protected |
Definition at line 1381 of file expr2c.cpp.
Definition at line 2171 of file expr2c.cpp.
|
protected |
Definition at line 954 of file expr2c.cpp.
Definition at line 2124 of file expr2c.cpp.
Definition at line 859 of file expr2c.cpp.
Build a declaration string, which requires converting both a type and putting an identifier in the syntactically correct position.
src | the type to convert |
identifier | the identifier to use as the type |
Definition at line 4137 of file expr2c.cpp.
|
protectedvirtual |
Reimplemented in expr2javat, and expr2cppt.
Definition at line 3633 of file expr2c.cpp.
Definition at line 117 of file expr2c.cpp.
Definition at line 76 of file expr2c.cpp.
|
staticprotected |
Definition at line 2544 of file expr2c.cpp.
|
protected |
Definition at line 56 of file expr2c_class.h.
|
protected |
Definition at line 55 of file expr2c_class.h.
Definition at line 88 of file expr2c_class.h.
Definition at line 89 of file expr2c_class.h.
|
protected |
Definition at line 91 of file expr2c_class.h.