Lines Matching full:parser
24 JSONParser* parser = new JSONParser(options); in NewTestParser() local
25 parser->input_ = input; in NewTestParser()
26 parser->index_ = 0; in NewTestParser()
27 return parser; in NewTestParser()
30 void TestLastThree(JSONParser* parser) { in TestLastThree() argument
31 EXPECT_EQ(',', *parser->PeekChar()); in TestLastThree()
32 parser->ConsumeChar(); in TestLastThree()
33 EXPECT_EQ('|', *parser->PeekChar()); in TestLastThree()
34 parser->ConsumeChar(); in TestLastThree()
35 EXPECT_EQ('\0', *parser->pos()); in TestLastThree()
36 EXPECT_EQ(static_cast<size_t>(parser->index_), parser->input_.length()); in TestLastThree()
42 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
44 EXPECT_EQ('H', *parser->pos()); in TEST_F()
46 parser->ConsumeChar(); in TEST_F()
47 EXPECT_EQ(input[i], *parser->PeekChar()); in TEST_F()
49 parser->ConsumeChar(); in TEST_F()
50 EXPECT_EQ('\0', *parser->pos()); in TEST_F()
51 EXPECT_EQ(static_cast<size_t>(parser->index_), parser->input_.length()); in TEST_F()
56 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
57 std::optional<Value> value(parser->ConsumeString()); in TEST_F()
58 EXPECT_EQ(',', *parser->pos()); in TEST_F()
60 TestLastThree(parser.get()); in TEST_F()
69 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
70 std::optional<Value> value(parser->ConsumeList()); in TEST_F()
71 EXPECT_EQ(',', *parser->pos()); in TEST_F()
73 TestLastThree(parser.get()); in TEST_F()
83 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
84 std::optional<Value> value(parser->ConsumeDictionary()); in TEST_F()
85 EXPECT_EQ(',', *parser->pos()); in TEST_F()
87 TestLastThree(parser.get()); in TEST_F()
100 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
101 std::optional<Value> value(parser->ConsumeLiteral()); in TEST_F()
102 EXPECT_EQ(',', *parser->pos()); in TEST_F()
104 TestLastThree(parser.get()); in TEST_F()
112 parser.reset(NewTestParser(input)); in TEST_F()
113 value = parser->ConsumeLiteral(); in TEST_F()
114 EXPECT_EQ(',', *parser->pos()); in TEST_F()
116 TestLastThree(parser.get()); in TEST_F()
124 parser.reset(NewTestParser(input)); in TEST_F()
125 value = parser->ConsumeLiteral(); in TEST_F()
126 EXPECT_EQ(',', *parser->pos()); in TEST_F()
128 TestLastThree(parser.get()); in TEST_F()
137 std::unique_ptr<JSONParser> parser(NewTestParser(input)); in TEST_F() local
138 std::optional<Value> value(parser->ConsumeNumber()); in TEST_F()
139 EXPECT_EQ(',', *parser->pos()); in TEST_F()
141 TestLastThree(parser.get()); in TEST_F()
149 parser.reset(NewTestParser(input)); in TEST_F()
150 value = parser->ConsumeNumber(); in TEST_F()
151 EXPECT_EQ(',', *parser->pos()); in TEST_F()
153 TestLastThree(parser.get()); in TEST_F()
161 parser.reset(NewTestParser(input)); in TEST_F()
162 value = parser->ConsumeNumber(); in TEST_F()
163 EXPECT_EQ(',', *parser->pos()); in TEST_F()
165 TestLastThree(parser.get()); in TEST_F()
173 parser.reset(NewTestParser(input)); in TEST_F()
174 value = parser->ConsumeNumber(); in TEST_F()
175 EXPECT_EQ(',', *parser->pos()); in TEST_F()
177 TestLastThree(parser.get()); in TEST_F()
185 parser.reset(NewTestParser(input)); in TEST_F()
186 value = parser->ConsumeNumber(); in TEST_F()
187 EXPECT_EQ(',', *parser->pos()); in TEST_F()
189 TestLastThree(parser.get()); in TEST_F()
197 parser.reset(NewTestParser(input)); in TEST_F()
198 value = parser->ConsumeNumber(); in TEST_F()
199 EXPECT_EQ(',', *parser->pos()); in TEST_F()
201 TestLastThree(parser.get()); in TEST_F()
209 parser.reset(NewTestParser(input)); in TEST_F()
210 value = parser->ConsumeNumber(); in TEST_F()
211 EXPECT_EQ(',', *parser->pos()); in TEST_F()
213 TestLastThree(parser.get()); in TEST_F()
221 parser.reset(NewTestParser(input)); in TEST_F()
222 value = parser->ConsumeNumber(); in TEST_F()
223 EXPECT_EQ(',', *parser->pos()); in TEST_F()
225 TestLastThree(parser.get()); in TEST_F()
234 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
235 std::optional<Value> value = parser.Parse("[42]"); in TEST_F()
237 EXPECT_TRUE(parser.GetErrorMessage().empty()); in TEST_F()
238 EXPECT_EQ(0, parser.error_code()); in TEST_F()
243 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
244 std::optional<Value> value = parser.Parse("{},{}"); in TEST_F()
248 parser.GetErrorMessage()); in TEST_F()
249 EXPECT_EQ(JSONParser::JSON_UNEXPECTED_DATA_AFTER_ROOT, parser.error_code()); in TEST_F()
258 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
259 std::optional<Value> value = parser.Parse(nested_json); in TEST_F()
263 parser.GetErrorMessage()); in TEST_F()
264 EXPECT_EQ(JSONParser::JSON_TOO_MUCH_NESTING, parser.error_code()); in TEST_F()
268 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
269 std::optional<Value> value = parser.Parse("[1,]"); in TEST_F()
272 parser.GetErrorMessage()); in TEST_F()
273 EXPECT_EQ(JSONParser::JSON_TRAILING_COMMA, parser.error_code()); in TEST_F()
277 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
278 std::optional<Value> value = parser.Parse("{foo:\"bar\"}"); in TEST_F()
282 parser.GetErrorMessage()); in TEST_F()
283 EXPECT_EQ(JSONParser::JSON_UNQUOTED_DICTIONARY_KEY, parser.error_code()); in TEST_F()
287 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
288 std::optional<Value> value = parser.Parse("{\"foo\":\"bar\",}"); in TEST_F()
291 parser.GetErrorMessage()); in TEST_F()
292 EXPECT_EQ(JSONParser::JSON_TRAILING_COMMA, parser.error_code()); in TEST_F()
296 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
297 std::optional<Value> value = parser.Parse("[nu]"); in TEST_F()
300 parser.GetErrorMessage()); in TEST_F()
301 EXPECT_EQ(JSONParser::JSON_SYNTAX_ERROR, parser.error_code()); in TEST_F()
305 JSONParser parser(JSON_PARSE_RFC | JSON_ALLOW_X_ESCAPES); in TEST_F() local
306 std::optional<Value> value = parser.Parse("[\"xxx\\xq\"]"); in TEST_F()
309 parser.GetErrorMessage()); in TEST_F()
310 EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code()); in TEST_F()
314 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
315 std::optional<Value> value = parser.Parse("[\"xxx\\uq\"]"); in TEST_F()
318 parser.GetErrorMessage()); in TEST_F()
319 EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code()); in TEST_F()
323 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
324 std::optional<Value> value = parser.Parse("[\"xxx\\q\"]"); in TEST_F()
327 parser.GetErrorMessage()); in TEST_F()
328 EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code()); in TEST_F()
332 JSONParser parser(JSON_PARSE_RFC); in TEST_F() local
333 std::optional<Value> value = parser.Parse("\"abc\ndef\""); in TEST_F()
337 parser.GetErrorMessage()); in TEST_F()
338 EXPECT_EQ(JSONParser::JSON_UNSUPPORTED_ENCODING, parser.error_code()); in TEST_F()