ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
expr2ct Class Reference

#include <expr2c.h>

Inheritance diagram for expr2ct:
[legend]

Public Types

enum  flagst
Public Types inherited from c_expr2stringt
enum  flagst : unsigned { SHORT_ZERO_COMPOUNDS = 1 << 0 , UNIQUE_FLOAT_REPR = 1 << 1 }

Public Member Functions

 expr2ct (const namespacet &_ns, unsigned _flags)
virtual ~expr2ct ()=default
std::string convert (const typet &src) override
std::string convert (const exprt &src) override
std::string convert_struct_union_typedef (const struct_union_typet &src)
Public Member Functions inherited from c_expr2stringt
 c_expr2stringt (const namespacet &_ns, unsigned _flags)
virtual ~c_expr2stringt ()=default
void get_shorthands (const exprt &expr)

Static Public Member Functions

static std::string get_name_shorthand (std::string fullname)
static bool is_padding (std::string tag)
static bool is_anonymous_member (std::string tag)
static bool is_typedef_struct_union (std::string tag)

Protected Member Functions

std::string convert_rec (const typet &src, const c_qualifierst &qualifiers, const std::string &declarator) override
std::string convert_struct_union_body (const exprt &src, const exprt::operandst &operands, const struct_union_typet::componentst &components) override
std::string convert_struct (const exprt &src, unsigned &precedence) override
std::string convert_union (const exprt &src, unsigned &precedence) override
std::string convert_typecast (const exprt &src, unsigned &precedence) override
std::string convert_code_printf (const codet &src, unsigned indent) override
std::string convert_code_free (const codet &src, unsigned indent) override
std::string convert_code_return (const codet &src, unsigned indent) override
std::string convert_code_assign (const codet &src, unsigned indent) override
std::string convert_code_assume (const codet &src, unsigned indent) override
std::string convert_code_assert (const codet &src, unsigned indent) override
std::string convert_malloc (const exprt &src, unsigned &precedence) override
std::string convert_realloc (const exprt &src, unsigned &precedence) override
std::string convert_alloca (const exprt &src, unsigned &precedence) override
std::string convert_symbol (const exprt &src, unsigned &precedence) override
std::string convert_constant (const exprt &src, unsigned &precedence) override
std::string convert_member (const exprt &src, unsigned precedence) override
std::string convert_code_decl (const codet &src, unsigned indent) override
std::string convert (const exprt &src, unsigned &precedence) override
std::string convert_same_object (const exprt &src, unsigned &precedence)
std::string convert_pointer_offset (const exprt &src, unsigned &precedence)
std::string convert_infinity (const exprt &src, unsigned &precedence)
std::string convert_dynamic_size (const exprt &src, unsigned &precedence)
std::string convert_ieee_div (const exprt &src, unsigned &precedence)
std::string convert_ieee_mul (const exprt &src, unsigned &precedence)
std::string convert_ieee_add (const exprt &src, unsigned &precedence)
std::string convert_ieee_sub (const exprt &src, unsigned &precedence)
std::string convert_ieee_sqrt (const exprt &src, unsigned &precedence)
std::string convert_nondet (const exprt &src, unsigned &precedence) override
std::string convert_array_of (const exprt &src, unsigned precedence) override
Protected Member Functions inherited from c_expr2stringt
void get_symbols (const exprt &expr)
std::string id_shorthand (const exprt &expr) const
std::string convert_bitcast (const exprt &src, unsigned &precedence)
std::string convert_implicit_address_of (const exprt &src, unsigned &precedence)
std::string convert_binary (const exprt &src, const std::string &symbol, unsigned precedence, bool full_parentheses)
std::string convert_cond (const exprt &src, unsigned precedence)
std::string convert_struct_member_value (const exprt &src, unsigned precedence)
std::string convert_array_member_value (const exprt &src, unsigned precedence)
std::string convert_pointer_object_has_type (const exprt &src, unsigned precedence)
std::string convert_trinary (const exprt &src, const std::string &symbol1, const std::string &symbol2, unsigned precedence)
std::string convert_overflow (const exprt &src, unsigned &precedence)
std::string convert_quantifier (const exprt &src, const std::string &symbol, unsigned precedence)
std::string convert_with (const exprt &src, unsigned precedence)
std::string convert_index (const exprt &src, unsigned precedence)
std::string convert_byte_extract (const exprt &src, unsigned precedence)
std::string convert_byte_update (const exprt &src, unsigned precedence)
std::string convert_extractbit (const exprt &src, unsigned precedence)
std::string convert_sizeof (const exprt &src, unsigned precedence)
std::string convert_extract (const exprt &src)
std::string convert_unary (const exprt &src, const std::string &symbol, unsigned precedence)
std::string convert_unary_post (const exprt &src, const std::string &symbol, unsigned precedence)
std::string convert_function (const exprt &src, const std::string &symbol, unsigned precedence)
std::string convert_Hoare (const exprt &src)
std::string convert_code (const codet &src)
virtual std::string convert_code (const codet &src, unsigned indent)
std::string convert_code_label (const code_labelt &src, unsigned indent)
std::string convert_code_switch_case (const code_switch_caset &src, unsigned indent)
std::string convert_code_asm (const codet &src, unsigned indent)
std::string convert_code_init (const codet &src, unsigned indent)
std::string convert_code_ifthenelse (const codet &src, unsigned indent)
std::string convert_code_for (const codet &src, unsigned indent)
std::string convert_code_while (const codet &src, unsigned indent)
std::string convert_code_dowhile (const codet &src, unsigned indent)
std::string convert_code_block (const codet &src, unsigned indent)
std::string convert_code_expression (const codet &src, unsigned indent)
std::string convert_code_goto (const codet &src, unsigned indent)
std::string convert_code_gcc_goto (const codet &src, unsigned indent)
std::string convert_code_break (const codet &src, unsigned indent)
std::string convert_code_switch (const codet &src, unsigned indent)
std::string convert_code_continue (const codet &src, unsigned indent)
std::string convert_code_decl_block (const codet &src, unsigned indent)
std::string convert_code_dead (const codet &src, unsigned indent)
std::string convert_code_function_call (const code_function_callt &src, unsigned indent)
std::string convert_code_lock (const codet &src, unsigned indent)
std::string convert_code_unlock (const codet &src, unsigned indent)
std::string convert_function_call (const exprt &src, unsigned &precedence)
std::string convert_statement_expression (const exprt &src, unsigned &precedence)
std::string convert_predicate_symbol (const exprt &src, unsigned &precedence)
std::string convert_predicate_next_symbol (const exprt &src, unsigned &precedence)
std::string convert_nondet_symbol (const exprt &src, unsigned &precedence)
std::string convert_quantified_symbol (const exprt &src, unsigned &precedence)
std::string convert_nondet_bool (const exprt &src, unsigned &precedence)
std::string convert_object_descriptor (const exprt &src, unsigned &precedence)
std::string convert_norep (const exprt &src, unsigned &precedence)
std::string convert_array (const exprt &src, unsigned &precedence)
std::string convert_array_list (const exprt &src, unsigned &precedence)
std::optional< std::string > is_recursively_zero (const exprt &op)

Additional Inherited Members

Static Protected Member Functions inherited from c_expr2stringt
static std::string indent_str (unsigned indent)
Protected Attributes inherited from c_expr2stringt
const namespacet & ns
unsigned flags
std::set< exprt > symbols
std::map< irep_idt, exprt > shorthands
std::set< irep_idt > ns_collision

Member Enumeration Documentation

◆ flagst

Constructor & Destructor Documentation

◆ expr2ct()

expr2ct::expr2ct ( const namespacet & _ns,
unsigned _flags )
inline

◆ ~expr2ct()

virtual expr2ct::~expr2ct ( )
virtualdefault

Member Function Documentation

◆ convert() [1/3]

std::string expr2ct::convert ( const exprt & src)
overridevirtual

Reimplemented from c_expr2stringt.

◆ convert() [2/3]

std::string expr2ct::convert ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert() [3/3]

std::string expr2ct::convert ( const typet & src)
overridevirtual

Reimplemented from c_expr2stringt.

◆ convert_alloca()

std::string expr2ct::convert_alloca ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_array_of()

std::string expr2ct::convert_array_of ( const exprt & src,
unsigned precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_assert()

std::string expr2ct::convert_code_assert ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_assign()

std::string expr2ct::convert_code_assign ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_assume()

std::string expr2ct::convert_code_assume ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_decl()

std::string expr2ct::convert_code_decl ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_free()

std::string expr2ct::convert_code_free ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_printf()

std::string expr2ct::convert_code_printf ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_code_return()

std::string expr2ct::convert_code_return ( const codet & src,
unsigned indent )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_constant()

std::string expr2ct::convert_constant ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_dynamic_size()

std::string expr2ct::convert_dynamic_size ( const exprt & src,
unsigned & precedence )
protected

◆ convert_ieee_add()

std::string expr2ct::convert_ieee_add ( const exprt & src,
unsigned & precedence )
protected

◆ convert_ieee_div()

std::string expr2ct::convert_ieee_div ( const exprt & src,
unsigned & precedence )
protected

◆ convert_ieee_mul()

std::string expr2ct::convert_ieee_mul ( const exprt & src,
unsigned & precedence )
protected

◆ convert_ieee_sqrt()

std::string expr2ct::convert_ieee_sqrt ( const exprt & src,
unsigned & precedence )
protected

◆ convert_ieee_sub()

std::string expr2ct::convert_ieee_sub ( const exprt & src,
unsigned & precedence )
protected

◆ convert_infinity()

std::string expr2ct::convert_infinity ( const exprt & src,
unsigned & precedence )
protected

◆ convert_malloc()

std::string expr2ct::convert_malloc ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_member()

std::string expr2ct::convert_member ( const exprt & src,
unsigned precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_nondet()

std::string expr2ct::convert_nondet ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_pointer_offset()

std::string expr2ct::convert_pointer_offset ( const exprt & src,
unsigned & precedence )
protected

◆ convert_realloc()

std::string expr2ct::convert_realloc ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_rec()

std::string expr2ct::convert_rec ( const typet & src,
const c_qualifierst & qualifiers,
const std::string & declarator )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_same_object()

std::string expr2ct::convert_same_object ( const exprt & src,
unsigned & precedence )
protected

◆ convert_struct()

std::string expr2ct::convert_struct ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_struct_union_body()

std::string expr2ct::convert_struct_union_body ( const exprt & src,
const exprt::operandst & operands,
const struct_union_typet::componentst & components )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_struct_union_typedef()

std::string expr2ct::convert_struct_union_typedef ( const struct_union_typet & src)

◆ convert_symbol()

std::string expr2ct::convert_symbol ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_typecast()

std::string expr2ct::convert_typecast ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ convert_union()

std::string expr2ct::convert_union ( const exprt & src,
unsigned & precedence )
overrideprotectedvirtual

Reimplemented from c_expr2stringt.

◆ get_name_shorthand()

std::string expr2ct::get_name_shorthand ( std::string fullname)
static

◆ is_anonymous_member()

bool expr2ct::is_anonymous_member ( std::string tag)
static

◆ is_padding()

bool expr2ct::is_padding ( std::string tag)
static

◆ is_typedef_struct_union()

bool expr2ct::is_typedef_struct_union ( std::string tag)
static

The documentation for this class was generated from the following files: