Lines Matching refs:end

63 bool parseConstToken(const CharType* start, const CharType* end, const CharType** tokenEnd, const char* token)
65 while (start < end && *token != '\0' && *start++ == *token++) { }
73 bool readInt(const CharType* start, const CharType* end, const CharType** tokenEnd, bool canHaveLeadingZeros)
75 if (start == end)
79 while (start < end && '0' <= *start && *start <= '9') {
92 bool parseNumberToken(const CharType* start, const CharType* end, const CharType** tokenEnd)
96 if (start == end)
102 if (!readInt(start, end, &start, false))
104 if (start == end) {
113 if (!readInt(start, end, &start, true))
115 if (start == end) {
125 if (start == end)
130 if (start == end)
133 if (!readInt(start, end, &start, true))
142 bool readHexDigits(const CharType* start, const CharType* end, const CharType** tokenEnd, int digits)
144 if (end - start < digits)
156 bool parseStringToken(const CharType* start, const CharType* end, const CharType** tokenEnd)
158 while (start < end) {
165 if (!readHexDigits(start, end, &start, 2))
169 if (!readHexDigits(start, end, &start, 4))
194 Token parseToken(const CharType* start, const CharType* end, const CharType** tokenStart, const CharType** tokenEnd)
196 while (start < end && isSpaceOrNewline(*start))
199 if (start == end)
206 if (parseConstToken(start, end, tokenEnd, nullString))
210 if (parseConstToken(start, end, tokenEnd, trueString))
214 if (parseConstToken(start, end, tokenEnd, falseString))
246 if (parseNumberToken(start, end, tokenEnd))
250 if (parseStringToken(start + 1, end, tokenEnd))
271 bool decodeString(const CharType* start, const CharType* end, StringBuilder* output)
273 while (start < end) {
324 bool decodeString(const CharType* start, const CharType* end, String* output)
326 if (start == end) {
330 if (start > end)
333 buffer.reserveCapacity(end - start);
334 if (!decodeString(start, end, &buffer))
341 PassRefPtr<JSONValue> buildValue(const CharType* start, const CharType* end, const CharType** valueTokenEnd, int depth)
349 Token token = parseToken(start, end, &tokenStart, &tokenEnd);
381 token = parseToken(start, end, &tokenStart, &tokenEnd);
383 RefPtr<JSONValue> arrayNode = buildValue(start, end, &tokenEnd, depth + 1);
388 // After a list value, we expect a comma or the end of the list.
390 token = parseToken(start, end, &tokenStart, &tokenEnd);
393 token = parseToken(start, end, &tokenStart, &tokenEnd);
409 token = parseToken(start, end, &tokenStart, &tokenEnd);
418 token = parseToken(start, end, &tokenStart, &tokenEnd);
423 RefPtr<JSONValue> value = buildValue(start, end, &tokenEnd, depth + 1);
429 // After a key/value pair, we expect a comma or the end of the
431 token = parseToken(start, end, &tokenStart, &tokenEnd);
434 token = parseToken(start, end, &tokenStart, &tokenEnd);
459 const CharType* end = start + length;
461 RefPtr<JSONValue> value = buildValue(start, end, &tokenEnd, 0);
462 if (!value || tokenEnd != end)