31 size_t have_minus, i, length;
63 i = (length + have_minus) -
len;
65 while (i != have_minus) {
80 while (i != have_minus) {
82 buf[i] = digits[ num % 10 ];
92 int exponent,
exp, insignf;
137 if (
p <
end && *
p ==
'.') {
159 if (e <
end && (*
p ==
'e' || *
p ==
'E')) {
167 else if (*e ==
'+') {
178 for (
p = e + 1;
p <
end;
p++) {
189 exponent += ex_minus ? -
exp :
exp;
211 unsigned long last_number = 0, number = 0;
213 for (;
p <
end;
p++) {
214 if (*
p <
'0' || *
p >
'9') {
218 number = (*
p -
'0') + number * 10;
220 if (last_number > number) {
225 last_number = number;
241 unsigned long n = 0, number = 0;
258 for (;
p <
end;
p++) {
259 if (*
p <
'0' || *
p >
'9') {
263 n = (*
p -
'0') + number * 10;
275 return (minus) ? -number : number;
283 unsigned last_number = 0, number = 0;
285 for (;
p <
end;
p++) {
286 if (*
p <
'0' || *
p >
'9') {
290 number = (*
p -
'0') + number * 10;
292 if (last_number > number) {
297 last_number = number;
314 static const lxb_char_t map_str[] =
"0123456789abcdef";
338 while (number != 0) {
340 number = number / 16;
342 out[ length-- ] = map_str[c];
size_t lexbor_conv_int64_to_data(int64_t num, lxb_char_t *buf, size_t len)
long lexbor_conv_data_to_long(const lxb_char_t **data, size_t length)
unsigned lexbor_conv_data_to_uint(const lxb_char_t **data, size_t length)
size_t lexbor_conv_dec_to_hex(uint32_t number, lxb_char_t *out, size_t length)
size_t lexbor_conv_long_to_data(long num, lxb_char_t *buf, size_t len)
double lexbor_conv_data_to_double(const lxb_char_t **start, size_t len)
size_t lexbor_conv_float_to_data(double num, lxb_char_t *buf, size_t len)
unsigned long lexbor_conv_data_to_ulong(const lxb_char_t **data, size_t length)
size_t lexbor_dtoa(double value, lxb_char_t *begin, size_t len)
zend_ffi_ctype_name_buf buf
unsigned const char * end
unsigned const char * pos
double lexbor_strtod_internal(const lxb_char_t *start, size_t length, int exp)