Lines Matching +defs:parser +defs:c

7                                  |_| XML parser
9 Copyright (c) 2001-2006 Fred L. Drake, Jr. <fdrake@users.sourceforge.net>
10 Copyright (c) 2003 Greg Stein <gstein@users.sourceforge.net>
11 Copyright (c) 2005-2007 Steven Solie <steven@solie.ca>
12 Copyright (c) 2005-2012 Karl Waclawek <karl@waclawek.net>
13 Copyright (c) 2016-2024 Sebastian Pipping <sebastian@pipping.org>
14 Copyright (c) 2017-2022 Rhodri James <rhodri@wildebeest.org.uk>
15 Copyright (c) 2017 Joe Orton <jorton@redhat.com>
16 Copyright (c) 2017 José Gutiérrez de la Concha <jose@zeroc.com>
17 Copyright (c) 2018 Marco Maggi <marco.maggi-ipsu@poste.it>
18 Copyright (c) 2019 David Loffredo <loffredo@steptools.com>
19 Copyright (c) 2020 Tim Gates <tim.gates@iress.com>
20 Copyright (c) 2021 Donghee Na <donghee.na@python.org>
21 Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow <snild@sony.com>
303 "expected token error for '%c' (ordinal %d) in UTF-8 text", i,
308 /* Reset the parser since we use the same parser repeatedly. */
383 "\000n\000=\000'\0001\000.\000\060\000'\000 \000e\000n\000c\000o"
386 "\000<\000d\000o\000c\000 \000a\000=\000'\0001\0002\0003\000'\000>"
388 "<\000/\000d\000o\000c\000>";
641 " <c/>\r" /* Mac OS end-of-line */
649 {XCS("c"), 4, 3, STRUCT_START_TAG}, {XCS("c"), 8, 3, STRUCT_END_TAG},
712 characters long (defined to be 1024 in xmlparse.c). We take a
793 const char *text = "<a><b><c/></b><d><f/></d></a>";
794 const XML_Char *expected = XCS("/c/b/f/d/a");
902 "<doc attr=' a b c\t\td\te\t' refs=' id-1 \t id-2\t\t' \n"
1048 /* Try handing an invalid encoding to an external entity parser */
1227 XML_Parser parser = XML_ParserCreate(NULL);
1228 assert_true(parser != NULL);
1230 XML_Parser ext_parser = XML_ExternalEntityParserCreate(parser, NULL, NULL);
1243 XML_ParserFree(parser);
1387 parser in doContext() 'for' loop. */
1392 handler must stop the parser and clear the character data
1408 parser in doContext() 'for' loop. */
1413 handler must stop the parser and clear the character data
1443 fail("Failed to double-stop parser");
1451 fail("Failed to double-suspend parser");
1459 fail("Failed to suspend-abort parser");
1502 " \0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0"
1529 " \0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0"
1563 "\0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0\x31\0\x36\0'\0?\0>"
1638 " \0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0"
1675 " \0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0"
1756 " \0e\0n\0c\0o\0d\0i\0n\0g\0=\0'\0u\0t\0f\0-\0"
1821 /* Test stopping the parser in cdata handler */
1831 /* Test suspending the parser in cdata handler */
2347 "<tag c='3'/>"
2353 AttrInfo tag_info[] = {{XCS("c"), XCS("3")}, {NULL, NULL}};
2360 XML_Parser parser = XML_ParserCreate(NULL);
2361 assert_true(parser != NULL);
2363 parser,
2367 XML_SetStartElementHandler(parser, counting_start_element_handler);
2368 XML_SetUserData(parser, &parserAndElementInfos);
2369 if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
2371 xml_failure(parser);
2373 XML_ParserFree(parser);
2455 /* Test resetting a subordinate parser does exactly nothing */
2469 /* Test suspending a subordinate parser */
2483 /* Test suspending a subordinate parser from an XML declaration */
2636 const char text16[] = "\xFF\xFE<\000d\000o\000c\000>\000]\000";
2716 const char *epilog = "<!-- Back to primary parser -->\n"
2749 * the parser as the first argument.
2752 * 'parser' for once, since the first time the handler is called it
2754 * global 'parser' variable to create our external entity parser from,
2764 /* Set a handler arg that is not NULL and not parser (which is
2822 XML_Parser parser = XML_ParserCreate(NULL);
2824 if (XML_GetErrorCode(parser) != XML_ERROR_NONE)
2827 const enum XML_Status status = XML_Parse(parser, doc, -1, isFinal);
2832 if (XML_GetErrorCode(parser) != XML_ERROR_INVALID_ARGUMENT)
2835 XML_ParserFree(parser);
2846 XML_Parser parser = XML_ParserCreate(NULL);
2848 if (XML_GetErrorCode(parser) != XML_ERROR_NONE)
2851 void *const buffer = XML_GetBuffer(parser, (int)strlen(doc));
2858 const enum XML_Status status = XML_ParseBuffer(parser, -1, isFinal);
2863 if (XML_GetErrorCode(parser) != XML_ERROR_INVALID_ARGUMENT)
2866 XML_ParserFree(parser);
2954 XML_Parser parser = XML_ParserCreate(NULL);
2955 assert(parser != NULL);
2962 if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text),
2965 xml_failure(parser);
2968 if (XML_GetBuffer(parser, INT_MAX - expectedKeepValue + 1) != NULL)
2971 XML_ParserFree(parser);
3003 XML_Parser parser = XML_ParserCreate(NULL);
3006 = _XML_Parse_SINGLE_BYTES(parser, prefixes[i], prefix_len, XML_FALSE);
3008 xml_failure(parser);
3012 assert_true(XML_GetBuffer(parser, maxbuf - prefix_len) != NULL);
3015 assert_true(XML_GetBuffer(parser, maxbuf + 1) == NULL);
3016 XML_ParserFree(parser);
3024 XML_Parser parser = XML_ParserCreate(NULL);
3025 assert_true(parser != NULL);
3026 assert_true(XML_GetBuffer(parser, first_len) != NULL);
3027 assert_true(XML_GetBuffer(parser, 0) != NULL);
3028 if (XML_ParseBuffer(parser, 0, XML_FALSE) != XML_STATUS_OK)
3029 xml_failure(parser);
3030 XML_ParserFree(parser);
3127 * mark. "<el/>" is not one of them, so the parser should raise an
3270 external_bom_checker(XML_Parser parser, const XML_Char *context,
3278 XML_Parser ext_parser = XML_ExternalEntityParserCreate(parser, context, NULL);
3280 fail("Could not create external entity parser");
3284 = (struct bom_testdata *)XML_GetUserData(parser);
3324 XML_Parser parser = XML_ParserCreate(NULL);
3325 if (parser == NULL) {
3326 fail("Couldn't create parser");
3328 XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS);
3329 XML_SetExternalEntityRefHandler(parser, external_bom_checker);
3330 XML_SetUserData(parser, &testdata);
3331 if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE)
3333 xml_failure(parser);
3337 XML_ParserFree(parser);
3459 /* Test that the parser stops processing the DTD after an unresolved
3524 "<!ELEMENT doc (a|b|c)+>\n"
3527 "<!ELEMENT c ANY>\n"
3532 "<c></c>\n"
3813 XML_Parser parser = XML_ParserCreate(NULL);
3814 XML_SetUserData(parser, parser);
3815 XML_SetCommentHandler(parser, suspending_comment_handler);
3817 if (XML_Parse(parser, text, (int)firstChunkSizeBytes, XML_FALSE)
3819 xml_failure(parser);
3820 if (XML_ResumeParser(parser) != XML_STATUS_OK)
3821 xml_failure(parser);
3822 if (_XML_Parse_SINGLE_BYTES(parser, text + firstChunkSizeBytes,
3826 xml_failure(parser);
3827 XML_ParserFree(parser);
3874 /* Test attempting to use parser after an error is faulted */
3919 * standalone internal DTD. Covers a corner case in the parser.
4049 "\0<\0!\0D\0O\0C\0T\0Y\0P\0E\0 \0d\0o\0c\0 \0[\0\n"
4058 "\0<\0d\0o\0c\0>\0&\0e\0n\0t\0i\0t\0y\0;\0<\0/\0d\0o\0c\0>";
4215 "\0<\0d\0o\0c\0/\0>";
4234 "<\0d\0o\0c\0/\0>\0";
4438 /* Test an external entity parser set to use latin-1 detects UTF-16
4641 = {"a\0b\0c\0", 6, "Invalid character in entity not faulted", NULL,
4778 XML_Parser parser = XML_ParserCreate(NULL);
4781 parser, doc, (int)strlen(doc), /*isFinal=*/XML_FALSE);
4788 && (XML_GetErrorCode(parser) != XML_ERROR_INVALID_TOKEN)) {
4797 (unsigned)strlen(cases[i].tagName), XML_GetErrorCode(parser));
4801 XML_ParserFree(parser);
4885 const char text[] = "\0<\0!\0D\0O\0C\0T\0Y\0P\0E\0 \0d\0o\0c\0 \0[\0\n"
4888 "\0d\0o\0c\0 \0(\0#\0P\0C\0D\0A\0T\0A\0)\0>\0'\0>\0\n"
4891 "\0<\0d\0o\0c\0>\0<\0/\0d\0o\0c\0>";
4976 "\0<\0!\0D\0O\0C\0T\0Y\0P\0E\0 \0d\0o\0c\0 \0[\0 "
4978 "\0 \0]\0>\0<\0d\0o\0c\0/\0>";
5292 XML_Parser parser = XML_ParserCreate(NULL);
5293 ParserPlusStorage parserPlusStorage = {parser, &storage};
5295 XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS);
5296 XML_SetCommentHandler(parser, accumulate_and_suspend_comment_handler);
5297 XML_SetUserData(parser, &parserPlusStorage);
5299 enum XML_Status status = XML_Parse(parser, text, (int)strlen(text), XML_TRUE);
5301 status = XML_ResumeParser(parser);
5304 xml_failure(parser);
5307 XML_ParserFree(parser);
5320 {"<c attr='", "'></c>"}, // big attribute, used to be O(N²)
5339 XML_Parser parser = XML_ParserCreate(NULL);
5340 assert_true(parser != NULL);
5346 status = _XML_Parse_SINGLE_BYTES(parser, text[i].pre,
5349 xml_failure(parser);
5355 status = _XML_Parse_SINGLE_BYTES(parser, aaaaaa, fillsize, XML_FALSE);
5357 xml_failure(parser);
5377 status = _XML_Parse_SINGLE_BYTES(parser, text[i].post,
5380 xml_failure(parser);
5393 XML_ParserFree(parser);
5410 XML_Parser parser = XML_ParserCreate(NULL);
5411 assert_true(parser != NULL);
5412 assert_true(XML_SetReparseDeferralEnabled(parser, enabled));
5414 assert_true(XML_GetBuffer(parser, fillsize * 10103) != NULL);
5418 XML_SetUserData(parser, &storage);
5419 XML_SetStartElementHandler(parser, start_element_event_handler);
5423 status = XML_Parse(parser, pre, (int)strlen(pre), XML_FALSE);
5425 xml_failure(parser);
5430 status = XML_Parse(parser, start, (int)strlen(start), XML_FALSE);
5432 xml_failure(parser);
5437 for (int c = 0; c < 100; ++c) {
5438 status = XML_Parse(parser, eeeeee, fillsize, XML_FALSE);
5440 xml_failure(parser);
5446 status = XML_Parse(parser, end, (int)strlen(end), XML_FALSE);
5448 xml_failure(parser);
5456 for (int c = 0; c < 101; ++c) {
5457 status = XML_Parse(parser, eeeeee, fillsize, XML_FALSE);
5459 xml_failure(parser);
5465 XML_ParserFree(parser);
5471 XML_Parser parser;
5480 XML_FreeContentModel(testdata->parser, model);
5502 XML_Parser parser = XML_ExternalEntityParserCreate(p, context, NULL);
5503 assert_true(parser != NULL);
5505 assert_true(XML_GetBuffer(parser, fillsize * 10103) != NULL);
5508 testdata.parser = parser;
5510 XML_SetUserData(parser, &testdata);
5511 XML_SetElementDeclHandler(parser, element_decl_counter);
5515 status = XML_Parse(parser, pre, (int)strlen(pre), XML_FALSE);
5517 xml_failure(parser);
5522 status = XML_Parse(parser, start, (int)strlen(start), XML_FALSE);
5524 xml_failure(parser);
5529 for (int c = 0; c < 100; ++c) {
5530 status = XML_Parse(parser, eeeeee, fillsize, XML_FALSE);
5532 xml_failure(parser);
5538 status = XML_Parse(parser, end, (int)strlen(end), XML_FALSE);
5540 xml_failure(parser);
5548 for (int c = 0; c < 101; ++c) {
5549 status = XML_Parse(parser, spaces, fillsize, XML_FALSE);
5551 xml_failure(parser);
5558 status = XML_Parse(parser, post, (int)strlen(post), XML_TRUE);
5560 xml_failure(parser);
5564 XML_ParserFree(parser);
5574 XML_Parser parser = XML_ParserCreate(NULL);
5575 assert_true(parser != NULL);
5576 XML_SetUserData(parser, (void *)&enabled);
5577 XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS);
5578 // this handler creates a sub-parser and checks that its deferral behavior
5580 XML_SetExternalEntityRefHandler(parser, external_inherited_parser);
5581 assert_true(XML_SetReparseDeferralEnabled(parser, enabled));
5582 if (XML_Parse(parser, text, (int)strlen(text), XML_TRUE) != XML_STATUS_OK)
5583 xml_failure(parser);
5585 XML_ParserFree(parser);
5609 XML_Parser parser = XML_ParserCreate(NULL);
5610 assert_true(parser != NULL);
5611 assert_true(XML_SetReparseDeferralEnabled(parser, XML_TRUE));
5615 XML_SetUserData(parser, &storage);
5616 XML_SetStartElementHandler(parser, start_element_event_handler);
5620 status = XML_Parse(parser, pre, (int)strlen(pre), XML_FALSE);
5622 xml_failure(parser);
5627 status = XML_Parse(parser, iiiiii, fillsize, XML_FALSE);
5629 xml_failure(parser);
5634 status = XML_Parse(parser, end, (int)strlen(end), XML_FALSE);
5636 xml_failure(parser);
5641 assert_true(XML_SetReparseDeferralEnabled(parser, XML_FALSE));
5643 status = XML_Parse(parser, "", 0, XML_FALSE);
5645 xml_failure(parser);
5649 XML_ParserFree(parser);
5654 XML_Parser parser = XML_ParserCreate(NULL);
5655 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 2));
5656 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 3));
5657 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 99));
5658 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 127));
5659 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 128));
5660 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 129));
5661 assert_true(XML_FALSE == XML_SetReparseDeferralEnabled(parser, 255));
5662 assert_true(XML_TRUE == XML_SetReparseDeferralEnabled(parser, 0));
5663 assert_true(XML_TRUE == XML_SetReparseDeferralEnabled(parser, 1));
5664 XML_ParserFree(parser);
5732 XML_Parser parser = XML_ParserCreate_MM(NULL, &memfuncs, NULL);
5733 assert_true(parser != NULL);
5737 XML_SetUserData(parser, &storage);
5738 XML_SetStartElementHandler(parser, start_element_event_handler);
5747 = XML_Parse(parser, &document[offset], *fillsize, XML_FALSE);
5749 xml_failure(parser);
5772 = XML_Parse(parser, &document[offset], *fillsize, XML_FALSE);
5774 xml_failure(parser);
5788 XML_ParserFree(parser);
5867 XML_Parser parser = XML_ParserCreate(NULL);
5868 assert_true(parser != NULL);
5872 XML_SetUserData(parser, &storage);
5873 XML_SetStartElementHandler(parser, start_element_event_handler);
5881 = XML_Parse(parser, &document[offset], *fillsize, XML_FALSE);
5883 xml_failure(parser);
5904 XML_ParserFree(parser);