1#ifndef CPROVER_C_EXPR2STRING_H
2#define CPROVER_C_EXPR2STRING_H
53 const std::string &declarator);
55 static std::string
indent_str(
unsigned indent);
73 const std::string &symbol,
75 bool full_parentheses);
93 const std::string &symbol1,
94 const std::string &symbol2,
101 const std::string &symbol,
102 unsigned precedence);
120 const std::string &symbol,
121 unsigned precedence);
125 const std::string &symbol,
126 unsigned precedence);
130 const std::string &symbol,
131 unsigned precedence);
167 virtual std::string
convert(
const exprt &src,
unsigned &precedence);
std::string c_expr2string(const exprt &expr, const namespacet &ns, unsigned flags=0)
Definition c_expr2string.cpp:2796
std::string c_type2string(const typet &type, const namespacet &ns, unsigned flags=0)
Definition c_expr2string.cpp:2805
virtual std::string convert_code_return(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1579
std::string convert_Hoare(const exprt &src)
Definition c_expr2string.cpp:2135
std::string convert_code_asm(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1487
std::string convert_extractbit(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:2178
void get_shorthands(const exprt &expr)
Definition c_expr2string.cpp:40
std::string convert_byte_update(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:899
std::string convert_code_continue(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1669
virtual std::string convert(const typet &src)
Definition c_expr2string.cpp:64
std::string convert_function_call(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1417
std::string convert_quantifier(const exprt &src, const std::string &symbol, unsigned precedence)
Definition c_expr2string.cpp:439
std::string convert_code_gcc_goto(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1609
std::string convert_statement_expression(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:723
virtual std::string convert_struct(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1303
std::string convert_array(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1355
std::string convert_array_list(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1385
static std::string indent_str(unsigned indent)
Definition c_expr2string.cpp:1479
virtual std::string convert_member(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:970
std::string convert_code_switch(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1629
std::string convert_cond(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:546
std::string convert_unary_post(const exprt &src, const std::string &symbol, unsigned precedence)
Definition c_expr2string.cpp:925
virtual std::string convert_constant(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1125
virtual ~c_expr2stringt()=default
virtual std::string convert_typecast(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:298
std::string convert_code_init(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1953
std::string id_shorthand(const exprt &expr) const
Definition c_expr2string.cpp:14
std::string convert_array_member_value(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:1028
std::optional< std::string > is_recursively_zero(const exprt &op)
Definition c_expr2string.cpp:758
std::string convert_function(const exprt &src, const std::string &symbol, unsigned precedence)
Definition c_expr2string.cpp:734
std::string convert_struct_member_value(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:1038
virtual std::string convert_code_assign(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1930
std::string convert_object_descriptor(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1104
std::string convert_predicate_symbol(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1079
virtual std::string convert_symbol(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1053
std::string convert_byte_extract(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:877
std::string convert_code_expression(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1818
std::string convert_with(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:491
std::string convert_code_while(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1495
std::string convert_quantified_symbol(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1093
std::string convert_sizeof(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:2191
flagst
Definition c_expr2string.h:21
@ SHORT_ZERO_COMPOUNDS
Special case constant zero expressions where C allows a shorter output such as { 0 }...
Definition c_expr2string.h:26
@ UNIQUE_FLOAT_REPR
Output enough fractional digits such that the float can be recovered uniquely.
Definition c_expr2string.h:32
std::string convert_nondet_symbol(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1072
std::string convert_code_function_call(const code_function_callt &src, unsigned indent)
Definition c_expr2string.cpp:1983
std::string convert_code(const codet &src)
Definition c_expr2string.cpp:2130
virtual std::string convert_realloc(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:676
c_expr2stringt(const namespacet &_ns, unsigned _flags)
Definition c_expr2string.h:35
std::string convert_overflow(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1456
virtual std::string convert_code_assume(const codet &src, unsigned indent)
Definition c_expr2string.cpp:2069
std::string convert_pointer_object_has_type(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:636
std::string convert_code_ifthenelse(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1547
std::string convert_code_for(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1758
std::string convert_code_break(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1619
std::string convert_bitcast(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:347
unsigned flags
Definition c_expr2string.h:48
virtual std::string convert_code_assert(const codet &src, unsigned indent)
Definition c_expr2string.cpp:2057
virtual std::string convert_nondet(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:715
std::string convert_binary(const exprt &src, const std::string &symbol, unsigned precedence, bool full_parentheses)
Definition c_expr2string.cpp:578
std::set< exprt > symbols
Definition c_expr2string.h:57
std::string convert_norep(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1048
std::string convert_code_label(const code_labelt &src, unsigned indent)
Definition c_expr2string.cpp:2081
std::string convert_code_block(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1797
virtual std::string convert_array_of(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:839
virtual std::string convert_alloca(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:657
std::string convert_code_unlock(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1972
std::string convert_code_dowhile(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1520
virtual std::string convert_code_free(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1942
std::set< irep_idt > ns_collision
Definition c_expr2string.h:59
void get_symbols(const exprt &expr)
Definition c_expr2string.cpp:31
std::string convert_implicit_address_of(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:378
std::string convert_code_dead(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1692
std::string convert_trinary(const exprt &src, const std::string &symbol1, const std::string &symbol2, unsigned precedence)
Definition c_expr2string.cpp:388
virtual std::string convert_union(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1320
std::string convert_code_goto(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1598
std::string convert_extract(const exprt &src)
Definition c_expr2string.cpp:2203
std::string convert_code_switch_case(const code_switch_caset &src, unsigned indent)
Definition c_expr2string.cpp:2097
std::string convert_index(const exprt &src, unsigned precedence)
Definition c_expr2string.cpp:947
virtual std::string convert_code_printf(const codet &src, unsigned indent)
Definition c_expr2string.cpp:2036
std::string convert_unary(const exprt &src, const std::string &symbol, unsigned precedence)
Definition c_expr2string.cpp:615
virtual std::string convert_code_decl(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1704
virtual std::string convert_malloc(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:696
std::string convert_code_lock(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1960
std::string convert_code_decl_block(const codet &src, unsigned indent)
Definition c_expr2string.cpp:1679
std::map< irep_idt, exprt > shorthands
Definition c_expr2string.h:58
virtual std::string convert_struct_union_body(const exprt &src, const exprt::operandst &operands, const struct_union_typet::componentst &components)
Definition c_expr2string.cpp:1241
virtual std::string convert_rec(const typet &src, const c_qualifierst &qualifiers, const std::string &declarator)
Definition c_expr2string.cpp:69
std::string convert_nondet_bool(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1099
const namespacet & ns
Definition c_expr2string.h:47
std::string convert_predicate_next_symbol(const exprt &src, unsigned &precedence)
Definition c_expr2string.cpp:1086
Definition c_qualifiers.h:7
A `switch' instruction */ class code_switcht : public codet { public: inline code_switcht() : codet("...
Definition std_code.h:574
Definition std_code.h:667
A switch-case.
Definition std_code.h:710
std::vector< exprt > operandst
Definition expr.h:39
Definition namespace.h:10
std::vector< componentt > componentst
Definition std_types.h:182