32 std::string src_lower=src;
36 const char *p=src_lower.c_str();
38 std::string str_whole_number,
46 if(src_lower.size()>=2 && src_lower[0]==
'0' && src_lower[1]==
'x')
54 while(*p!=
'.' && *p!=0 && *p!=
'p')
65 while(*p!=0 && *p!=
'p')
67 str_fraction_part+=*p;
80 while(*p != 0 && *p !=
'f' && *p !=
'l' && *p !=
'w' && *p !=
'q' &&
81 *p !=
'd' && *p !=
'b')
87 std::string str_number=str_whole_number+
94 if(str_number.empty())
99 if(str_exponent.empty())
105 exponent-=str_fraction_part.size()*4;
110 while(*p!=
'.' && *p!=0 && *p!=
'e' &&
111 *p!=
'f' && *p!=
'l' &&
112 *p!=
'w' && *p!=
'q' && *p!=
'd' &&
115 str_whole_number+=*p;
124 while(*p != 0 && *p !=
'e' && *p !=
'f' && *p !=
'l' && *p !=
'w' &&
125 *p !=
'q' && *p !=
'd' && *p !=
'i' && *p !=
'j' && *p !=
'b')
127 str_fraction_part+=*p;
140 while(*p != 0 && *p !=
'f' && *p !=
'l' && *p !=
'w' && *p !=
'q' &&
141 *p !=
'd' && *p !=
'i' && *p !=
'j' && *p !=
'b')
147 std::string str_number=str_whole_number+
150 if(str_number.empty())
155 if(str_exponent.empty())
175 else if(
strcmp(p,
"f32")==0)
177 else if(
strcmp(p,
"f32x")==0)
179 else if(
strcmp(p,
"f64")==0)
181 else if(
strcmp(p,
"f64x")==0)
183 else if(
strcmp(p,
"f128")==0)
185 else if(
strcmp(p,
"f128x")==0)
195 else if(*p==
'i' || *p==
'j')
static abstract_object_pointert transform(const exprt &expr, const std::vector< abstract_object_pointert > &operands, const abstract_environmentt &environment, const namespacet &ns)
parse_floatt(const std::string &)
const mp_integer string2integer(const std::string &n, unsigned base)
ANSI-C Conversion / Type Checking.
int strcmp(const char *s1, const char *s2)