46 class StringInputBufferIterator {
50 explicit StringInputBufferIterator(StringInputBuffer* buffer);
52 int operator*()
const;
54 bool operator==(EndMarker
const&)
const {
return end_; }
55 bool operator!=(EndMarker
const& m)
const {
return !
end_; }
64 StringInputBufferIterator::StringInputBufferIterator(
65 StringInputBuffer* buffer) :
buffer_(buffer) {
69 int StringInputBufferIterator::operator*()
const {
74 void StringInputBufferIterator::operator++() {
85 StringShape shape(str);
86 if (shape.IsSequentialAscii()) {
87 const char* begin = SeqAsciiString::cast(str)->GetChars();
88 const char* end = begin + str->
length();
91 }
else if (shape.IsSequentialTwoByte()) {
92 const uc16* begin = SeqTwoByteString::cast(str)->GetChars();
99 StringInputBufferIterator(&buffer),
100 StringInputBufferIterator::EndMarker(),
110 StringShape shape(str);
111 if (shape.IsSequentialAscii()) {
112 const char* begin = SeqAsciiString::cast(str)->GetChars();
113 const char* end = begin + str->
length();
115 }
else if (shape.IsSequentialTwoByte()) {
116 const uc16* begin = SeqTwoByteString::cast(str)->GetChars();
122 StringInputBufferIterator(&buffer),
123 StringInputBufferIterator::EndMarker(),
double InternalStringToDouble(UnicodeCache *unicode_cache, Iterator current, EndMark end, int flags, double empty_string_val)
double InternalStringToInt(UnicodeCache *unicode_cache, Iterator current, EndMark end, int radix)
StringInputBuffer *const buffer_
double StringToInt(UnicodeCache *unicode_cache, String *str, int radix)
double StringToDouble(UnicodeCache *unicode_cache, String *str, int flags, double empty_string_val)