cprover
expr2cppt Class Reference
Inheritance diagram for expr2cppt:
[legend]
Collaboration diagram for expr2cppt:
[legend]

Public Member Functions

 expr2cppt (const namespacet &_ns)
 
- Public Member Functions inherited from expr2ct
 expr2ct (const namespacet &_ns)
 
virtual ~expr2ct ()
 
virtual std::string convert (const typet &src)
 
virtual std::string convert (const exprt &src)
 
void get_shorthands (const exprt &expr)
 

Protected Types

typedef std::unordered_set< std::string, string_hashid_sett
 

Protected Member Functions

std::string convert_with_precedence (const exprt &src, unsigned &precedence) override
 
std::string convert_cpp_this (const exprt &src, unsigned precedence)
 
std::string convert_cpp_new (const exprt &src, unsigned precedence)
 
std::string convert_extractbit (const exprt &src, unsigned precedence)
 
std::string convert_extractbits (const exprt &src, unsigned precedence)
 
std::string convert_code_cpp_delete (const exprt &src, unsigned precedence)
 
std::string convert_struct (const exprt &src, unsigned &precedence) override
 
std::string convert_code (const codet &src, unsigned indent) override
 
std::string convert_constant (const constant_exprt &src, unsigned &precedence) override
 
std::string convert_rec (const typet &src, const c_qualifierst &qualifiers, const std::string &declarator) override
 
- Protected Member Functions inherited from expr2ct
virtual std::string convert_struct_type (const typet &src, const std::string &qualifiers_str, const std::string &declarator_str)
 To generate C-like string for defining the given struct. More...
 
std::string convert_struct_type (const typet &src, const std::string &qualifer_str, const std::string &declarator_str, bool inc_struct_body, bool inc_padding_components)
 To generate C-like string for declaring (or defining) the given struct. More...
 
virtual std::string convert_array_type (const typet &src, const c_qualifierst &qualifiers, const std::string &declarator_str)
 To generate a C-like type declaration of an array. More...
 
std::string convert_array_type (const typet &src, const c_qualifierst &qualifiers, const std::string &declarator_str, bool inc_size_if_possible)
 To generate a C-like type declaration of an array. More...
 
irep_idt id_shorthand (const irep_idt &identifier) const
 
std::string convert_typecast (const typecast_exprt &src, unsigned &precedence)
 
std::string convert_pointer_arithmetic (const exprt &src, unsigned &precedence)
 
std::string convert_pointer_difference (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_member (const member_exprt &src, unsigned precedence)
 
std::string convert_pointer_object_has_type (const exprt &src, unsigned precedence)
 
std::string convert_array_of (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_update (const exprt &src, unsigned precedence)
 
std::string convert_member_designator (const exprt &src)
 
std::string convert_index_designator (const exprt &src)
 
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_extractbits (const exprt &src, unsigned precedence)
 
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_complex (const exprt &src, unsigned precedence)
 
std::string convert_comma (const exprt &src, unsigned precedence)
 
std::string convert_Hoare (const exprt &src)
 
std::string convert_code (const codet &src)
 
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 code_asmt &src, unsigned indent)
 
std::string convert_code_assign (const code_assignt &src, unsigned indent)
 
std::string convert_code_free (const codet &src, unsigned indent)
 
std::string convert_code_init (const codet &src, unsigned indent)
 
std::string convert_code_ifthenelse (const code_ifthenelset &src, unsigned indent)
 
std::string convert_code_for (const code_fort &src, unsigned indent)
 
std::string convert_code_while (const code_whilet &src, unsigned indent)
 
std::string convert_code_dowhile (const code_dowhilet &src, unsigned indent)
 
std::string convert_code_block (const code_blockt &src, unsigned indent)
 
std::string convert_code_expression (const codet &src, unsigned indent)
 
std::string convert_code_return (const codet &src, unsigned indent)
 
std::string convert_code_goto (const codet &src, unsigned indent)
 
std::string convert_code_assume (const codet &src, unsigned indent)
 
std::string convert_code_assert (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 (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_code_printf (const codet &src, unsigned indent)
 
std::string convert_code_fence (const codet &src, unsigned indent)
 
std::string convert_code_input (const codet &src, unsigned indent)
 
std::string convert_code_output (const codet &src, unsigned indent)
 
std::string convert_code_array_set (const codet &src, unsigned indent)
 
std::string convert_code_array_copy (const codet &src, unsigned indent)
 
std::string convert_code_array_replace (const codet &src, unsigned indent)
 
std::string convert_function_application (const function_application_exprt &src, unsigned &precedence)
 
std::string convert_side_effect_expr_function_call (const side_effect_expr_function_callt &src, unsigned &precedence)
 
std::string convert_malloc (const exprt &src, unsigned &precedence)
 
std::string convert_nondet (const exprt &src, unsigned &precedence)
 
std::string convert_prob_coin (const exprt &src, unsigned &precedence)
 
std::string convert_prob_uniform (const exprt &src, unsigned &precedence)
 
std::string convert_statement_expression (const exprt &src, unsigned &precendence)
 
virtual std::string convert_symbol (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_predicate_passive_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_literal (const exprt &src, unsigned &precedence)
 
virtual std::string convert_constant_bool (bool boolean_value)
 To get the C-like representation of a given boolean value. More...
 
std::string convert_norep (const exprt &src, unsigned &precedence)
 
std::string convert_union (const exprt &src, unsigned &precedence)
 
std::string convert_vector (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::string convert_initializer_list (const exprt &src, unsigned &precedence)
 
std::string convert_designated_initializer (const exprt &src, unsigned &precedence)
 
std::string convert_concatenation (const exprt &src, unsigned &precedence)
 
std::string convert_sizeof (const exprt &src, unsigned &precedence)
 
std::string convert_struct (const exprt &src, unsigned &precedence, bool include_padding_components)
 To generate a C-like string representing a struct. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from expr2ct
static std::string indent_str (unsigned indent)
 
- Protected Attributes inherited from expr2ct
const namespacetns
 
std::unordered_map< irep_idt, std::unordered_set< irep_idt, irep_id_hash >, irep_id_hashns_collision
 
std::unordered_map< irep_idt, irep_idt, irep_id_hashshorthands
 
unsigned sizeof_nesting
 

Detailed Description

Definition at line 24 of file expr2cpp.cpp.

Member Typedef Documentation

§ id_sett

typedef std::unordered_set<std::string, string_hash> expr2cppt::id_sett
protected

Definition at line 47 of file expr2cpp.cpp.

Constructor & Destructor Documentation

§ expr2cppt()

Member Function Documentation

§ convert_code()

std::string expr2cppt::convert_code ( const codet src,
unsigned  indent 
)
overrideprotectedvirtual

Reimplemented from expr2ct.

Definition at line 470 of file expr2cpp.cpp.

References expr2ct::convert_code(), convert_code_cpp_delete(), convert_cpp_new(), and irept::get().

Referenced by expr2cppt().

§ convert_code_cpp_delete()

std::string expr2cppt::convert_code_cpp_delete ( const exprt src,
unsigned  precedence 
)
protected

§ convert_constant()

std::string expr2cppt::convert_constant ( const constant_exprt src,
unsigned &  precedence 
)
overrideprotectedvirtual

Reimplemented from expr2ct.

Definition at line 114 of file expr2cpp.cpp.

References expr2ct::convert_constant(), irept::id(), exprt::is_false(), exprt::is_true(), and exprt::type().

Referenced by expr2cppt().

§ convert_cpp_new()

std::string expr2cppt::convert_cpp_new ( const exprt src,
unsigned  precedence 
)
protected

§ convert_cpp_this()

std::string expr2cppt::convert_cpp_this ( const exprt src,
unsigned  precedence 
)
protected

Definition at line 388 of file expr2cpp.cpp.

Referenced by convert_with_precedence(), and expr2cppt().

§ convert_extractbit()

std::string expr2cppt::convert_extractbit ( const exprt src,
unsigned  precedence 
)
protected

Definition at line 487 of file expr2cpp.cpp.

References expr2ct::convert(), exprt::op0(), exprt::op1(), and exprt::operands().

Referenced by convert_with_precedence(), and expr2cppt().

§ convert_extractbits()

std::string expr2cppt::convert_extractbits ( const exprt src,
unsigned  precedence 
)
protected

§ convert_rec()

§ convert_struct()

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

§ convert_with_precedence()

std::string expr2cppt::convert_with_precedence ( const exprt src,
unsigned &  precedence 
)
overrideprotectedvirtual

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