22 if(s.find(
',') != std::string::npos || (!s.empty() &&
isdigit(s[0])))
36 result +=
"rvalue_reference";
38 if(irep.
id() == ID_frontend_pointer)
41 result +=
"reference";
43 if(irep.
get_bool(ID_C_rvalue_reference))
44 result +=
"rvalue_reference";
74 named_sub.first == ID_C_constant || named_sub.first == ID_C_volatile ||
75 named_sub.first == ID_C_restricted)
87 for(
const auto &sub : irep.
get_sub())
109 result+=
"restricted_";
114 if(type.
id()==ID_empty || type.
id()==ID_void)
116 else if(type.
id() == ID_c_bool)
118 else if(type.
id() == ID_bool)
120 else if(type.
id()==ID_pointer)
129 else if(type.
id()==ID_signedbv || type.
id()==ID_unsignedbv)
136 else if(type.
id()==ID_unsignedbv)
137 result+=
"unsigned_int";
139 result+=
"signed_int";
141 else if(type.
id()==ID_fixedbv || type.
id()==ID_floatbv)
151 else if(type.
id()==ID_code)
159 for(code_typet::parameterst::const_iterator
160 arg_it=parameters.begin();
161 arg_it!=parameters.end();
164 if(arg_it!=parameters.begin())
std::vector< parametert > parameterst
const typet & return_type() const
const parameterst & parameters() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
There are a large number of kinds of tree structured or tree-like data in CPROVER.
bool get_bool(const irep_idt &name) const
const irep_idt & get(const irep_idt &name) const
named_subt & get_named_sub()
const std::string & id_string() const
const irep_idt & id() const
static bool is_comment(const irep_idt &name)
The type of an expression, extends irept.
std::string cpp_type2name(const typet &type)
std::string cpp_expr2name(const exprt &expr)
static std::string do_prefix(const std::string &s)
static std::string irep2name(const irept &irep)
const std::string & id2string(const irep_idt &d)
API to expression classes for Pointers.
bool is_reference(const typet &type)
Returns true if the type is a reference.
bool is_rvalue_reference(const typet &type)
Returns if the type is an R value reference.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
const reference_typet & to_reference_type(const typet &type)
Cast a typet to a reference_typet.
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
Defines typet, type_with_subtypet and type_with_subtypest.