23 const std::string &src,
24 bool force_integer_type)
26 assert(src.size()>=2);
30 if(src[0]==
'L' || src[0]==
'u' || src[0]==
'U')
33 assert(src[src.size()-1]==
'\'');
35 std::basic_string<unsigned int> value=
42 throw "empty wide character literal";
43 else if(value.size()==1)
47 else if(value.size()>=2 && value.size()<=4)
53 for(
unsigned i=0; i<value.size(); i++)
56 z=z<<((value.size()-i-1)*8);
65 " characters are not supported";
70 assert(src[src.size()-1]==
'\'');
76 throw "empty character literal";
77 else if(value.size()==1)
82 else if(value.size()>=2 && value.size()<=4)
86 for(
unsigned i=0; i<value.size(); i++)
89 z=z<<((value.size()-i-1)*8);
98 " characters are not supported";
The type of an expression, extends irept.
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
std::string unescape_string(const std::string &src)
ANSI-C Language Conversion.
API to expression classes.
exprt convert_character_literal(const std::string &src, bool force_integer_type)
bitvector_typet wchar_t_type()
Base class for all expressions.
signedbv_typet signed_int_type()
bitvector_typet char_type()
std::basic_string< unsigned int > unescape_wide_string(const std::string &src)