• Home
  • Raw
  • Download

Lines Matching refs:begin

249 std::size_t ConsumeDigits(const char* begin, const char* end, int max_digits,  in ConsumeDigits()  argument
256 const char* const original_begin = begin; in ConsumeDigits()
261 while (!*out && end != begin && *begin == '0') ++begin; in ConsumeDigits()
265 (end - begin > max_digits) ? begin + max_digits : end; in ConsumeDigits()
266 while (begin < significant_digits_end && IsDigit<base>(*begin)) { in ConsumeDigits()
269 auto digit = static_cast<T>(ToDigit<base>(*begin)); in ConsumeDigits()
274 ++begin; in ConsumeDigits()
277 while (begin < end && IsDigit<base>(*begin)) { in ConsumeDigits()
278 dropped_nonzero = dropped_nonzero || (*begin != '0'); in ConsumeDigits()
279 ++begin; in ConsumeDigits()
285 return begin - original_begin; in ConsumeDigits()
297 bool ParseInfinityOrNan(const char* begin, const char* end, in ParseInfinityOrNan() argument
299 if (end - begin < 3) { in ParseInfinityOrNan()
302 switch (*begin) { in ParseInfinityOrNan()
307 if (strings_internal::memcasecmp(begin + 1, "nf", 2) != 0) { in ParseInfinityOrNan()
311 if (end - begin >= 8 && in ParseInfinityOrNan()
312 strings_internal::memcasecmp(begin + 3, "inity", 5) == 0) { in ParseInfinityOrNan()
313 out->end = begin + 8; in ParseInfinityOrNan()
315 out->end = begin + 3; in ParseInfinityOrNan()
324 if (strings_internal::memcasecmp(begin + 1, "an", 2) != 0) { in ParseInfinityOrNan()
328 out->end = begin + 3; in ParseInfinityOrNan()
331 begin += 3; in ParseInfinityOrNan()
332 if (begin < end && *begin == '(') { in ParseInfinityOrNan()
333 const char* nan_begin = begin + 1; in ParseInfinityOrNan()
339 out->subrange_begin = begin + 1; in ParseInfinityOrNan()
355 strings_internal::ParsedFloat ParseFloat(const char* begin, const char* end, in ParseFloat() argument
360 if (begin == end) return result; in ParseFloat()
363 if (ParseInfinityOrNan(begin, end, &result)) { in ParseFloat()
367 const char* const mantissa_begin = begin; in ParseFloat()
368 while (begin < end && *begin == '0') { in ParseFloat()
369 ++begin; // skip leading zeros in ParseFloat()
376 begin, end, MantissaDigitsMax<base>(), &mantissa, &mantissa_is_inexact); in ParseFloat()
377 begin += pre_decimal_digits; in ParseFloat()
392 if (begin < end && *begin == '.') { in ParseFloat()
393 ++begin; in ParseFloat()
397 const char* begin_zeros = begin; in ParseFloat()
398 while (begin < end && *begin == '0') { in ParseFloat()
399 ++begin; in ParseFloat()
401 std::size_t zeros_skipped = begin - begin_zeros; in ParseFloat()
409 begin, end, digits_left, &mantissa, &mantissa_is_inexact); in ParseFloat()
410 begin += post_decimal_digits; in ParseFloat()
426 if (mantissa_begin == begin) { in ParseFloat()
430 if (begin - mantissa_begin == 1 && *mantissa_begin == '.') { in ParseFloat()
440 result.subrange_end = begin; in ParseFloat()
449 const char* const exponent_begin = begin; in ParseFloat()
452 if (AllowExponent(format_flags) && begin < end && in ParseFloat()
453 IsExponentCharacter<base>(*begin)) { in ParseFloat()
455 ++begin; in ParseFloat()
456 if (begin < end && *begin == '-') { in ParseFloat()
458 ++begin; in ParseFloat()
459 } else if (begin < end && *begin == '+') { in ParseFloat()
460 ++begin; in ParseFloat()
462 const char* const exponent_digits_begin = begin; in ParseFloat()
464 begin += ConsumeDigits<10>(begin, end, kDecimalExponentDigitsMax, in ParseFloat()
466 if (begin == exponent_digits_begin) { in ParseFloat()
470 begin = exponent_begin; in ParseFloat()
493 result.end = begin; in ParseFloat()
497 template ParsedFloat ParseFloat<10>(const char* begin, const char* end,
499 template ParsedFloat ParseFloat<16>(const char* begin, const char* end,