summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml5
-rwxr-xr-xCMakeLists.txt4
-rw-r--r--Makefile27
-rw-r--r--README.md1
-rw-r--r--api_test/cplusplus.h3
-rw-r--r--api_test/harness.c139
-rw-r--r--api_test/harness.h33
-rw-r--r--api_test/main.c1539
-rw-r--r--changelog.txt139
-rw-r--r--man/make_man_page.py4
-rw-r--r--man/man3/cmark.3198
-rw-r--r--src/CMakeLists.txt21
-rw-r--r--src/bench.h27
-rw-r--r--[-rwxr-xr-x]src/blocks.c154
-rw-r--r--src/chunk.h12
-rw-r--r--src/cmark.h140
-rw-r--r--src/cmark_ctype.c12
-rw-r--r--src/commonmark.c87
-rw-r--r--src/config.h.in35
-rw-r--r--[-rwxr-xr-x]src/houdini_html_u.c11
-rw-r--r--src/html.c46
-rw-r--r--[-rwxr-xr-x]src/inlines.c19
-rw-r--r--src/iterator.c7
-rw-r--r--src/latex.c82
-rw-r--r--src/main.c9
-rw-r--r--src/man.c22
-rw-r--r--src/node.c175
-rw-r--r--src/node.h10
-rwxr-xr-xsrc/render.c23
-rw-r--r--src/render.h1
-rw-r--r--src/scanners.c25852
-rw-r--r--src/scanners.h13
-rw-r--r--src/scanners.re23
-rw-r--r--[-rwxr-xr-x]src/utf8.c9
-rw-r--r--[-rwxr-xr-x]src/utf8.h6
-rw-r--r--src/xml.c22
-rwxr-xr-xtest/CMakeLists.txt11
-rw-r--r--test/normalize.py6
-rwxr-xr-xtest/roundtrip.bat1
-rwxr-xr-xtest/roundtrip.sh2
-rw-r--r--test/smart_punct.txt60
-rw-r--r--test/spec.txt3866
-rwxr-xr-xtest/spec_tests.py38
-rw-r--r--why-cmark-and-not-x.md104
-rwxr-xr-xwrappers/wrapper.lua239
-rwxr-xr-xwrappers/wrapper.py2
46 files changed, 14007 insertions, 19232 deletions
diff --git a/.travis.yml b/.travis.yml
index 25c3ec1..059a53d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,10 +29,5 @@ script:
- |
if [ ${TRAVIS_OS_NAME:-'linux'} = 'linux' ]
then
- make roundtrip_test
- fi
- - |
- if [ ${TRAVIS_OS_NAME:-'linux'} = 'linux' ]
- then
make leakcheck
fi
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b422ddf..87c0d9a 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,8 +9,8 @@ endif()
set(PROJECT_NAME "cmark")
set(PROJECT_VERSION_MAJOR 0)
-set(PROJECT_VERSION_MINOR 22)
-set(PROJECT_VERSION_PATCH 0)
+set(PROJECT_VERSION_MINOR 24)
+set(PROJECT_VERSION_PATCH 1)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} )
option(CMARK_TESTS "Build cmark tests and enable testing" ON)
diff --git a/Makefile b/Makefile
index 87d2103..4128ea0 100644
--- a/Makefile
+++ b/Makefile
@@ -14,13 +14,12 @@ ALLTESTS=alltests.md
NUMRUNS?=10
CMARK=$(BUILDDIR)/src/cmark
PROG?=$(CMARK)
-BENCHINP?=README.md
VERSION?=$(SPECVERSION)
RELEASE?=CommonMark-$(VERSION)
INSTALL_PREFIX?=/usr/local
CLANG_CHECK?=clang-check
-.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug ubsan asan mingw archive bench format update-spec afl clang-check
+.PHONY: all cmake_build leakcheck clean fuzztest test debug ubsan asan mingw archive bench format update-spec afl clang-check
all: cmake_build man/man3/cmark.3
@@ -129,9 +128,6 @@ update-spec:
test: $(SPEC) cmake_build
make -C $(BUILDDIR) test || (cat $(BUILDDIR)/Testing/Temporary/LastTest.log && exit 1)
-roundtrip_test: $(SPEC) cmake_build
- python3 test/spec_tests.py --spec $< --prog test/roundtrip.sh
-
$(ALLTESTS): $(SPEC)
python3 test/spec_tests.py --spec $< --dump-tests | python3 -c 'import json; import sys; tests = json.loads(sys.stdin.read()); print("\n".join([test["markdown"] for test in tests]))' > $@
@@ -154,25 +150,28 @@ fuzztest:
progit:
git clone https://github.com/progit/progit.git
-$(BENCHDIR)/benchinput.md: progit
+$(BENCHFILE): progit
echo "" > $@
for lang in ar az be ca cs de en eo es es-ni fa fi fr hi hu id it ja ko mk nl no-nb pl pt-br ro ru sr th tr uk vi zh zh-tw; do \
- cat progit/$$lang/*/*.markdown >> $@; \
+ for i in `seq 1 10`; do \
+ cat progit/$$lang/*/*.markdown >> $@; \
+ done; \
done
+# for more accurate results, run with
+# sudo renice -10 $$; make bench
bench: $(BENCHFILE)
- { sudo renice -10 $$$$; \
- for x in `seq 1 $(NUMRUNS)` ; do \
- /usr/bin/env time -p $(PROG) </dev/null >/dev/null ; \
- /usr/bin/env time -p $(PROG) $< >/dev/null ; \
- done \
+ { for x in `seq 1 $(NUMRUNS)` ; do \
+ /usr/bin/env time -p $(PROG) </dev/null >/dev/null ; \
+ /usr/bin/env time -p $(PROG) $< >/dev/null ; \
+ done \
} 2>&1 | grep 'real' | awk '{print $$2}' | python3 'bench/stats.py'
format:
- clang-format -style llvm -i src/*.c src/*.h
+ clang-format -style llvm -i src/*.c src/*.h api_test/*.c api_test/*.h
operf: $(CMARK)
- operf $< < $(BENCHINP) > /dev/null
+ operf $< < $(BENCHFILE) > /dev/null
distclean: clean
-rm -rf *.dSYM
diff --git a/README.md b/README.md
index 4b73cb2..5592f78 100644
--- a/README.md
+++ b/README.md
@@ -56,6 +56,7 @@ There are also libraries that wrap `libcmark` for
[go](https://github.com/rhinoman/go-commonmark),
[Haskell](http://hackage.haskell.org/package/cmark),
[ruby](https://github.com/gjtorikian/commonmarker),
+[lua](https://github.com/jgm/cmark-lua),
[Perl](https://metacpan.org/release/CommonMark), and
[R](http://cran.r-project.org/package=commonmark).
diff --git a/api_test/cplusplus.h b/api_test/cplusplus.h
index 68edcb2..1f3dd15 100644
--- a/api_test/cplusplus.h
+++ b/api_test/cplusplus.h
@@ -7,8 +7,7 @@
extern "C" {
#endif
-void
-test_cplusplus(test_batch_runner *runner);
+void test_cplusplus(test_batch_runner *runner);
#ifdef __cplusplus
}
diff --git a/api_test/harness.c b/api_test/harness.c
index e8f320c..f6fd0bc 100644
--- a/api_test/harness.c
+++ b/api_test/harness.c
@@ -5,98 +5,79 @@
#include "harness.h"
-test_batch_runner*
-test_batch_runner_new()
-{
- return (test_batch_runner *)calloc(1, sizeof(test_batch_runner));
+test_batch_runner *test_batch_runner_new() {
+ return (test_batch_runner *)calloc(1, sizeof(test_batch_runner));
}
-static void
-test_result(test_batch_runner *runner, int cond, const char *msg, va_list ap)
-{
- ++runner->test_num;
-
- if (cond) {
- ++runner->num_passed;
- }
- else {
- fprintf(stderr, "FAILED test %d: ", runner->test_num);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- ++runner->num_failed;
- }
+static void test_result(test_batch_runner *runner, int cond, const char *msg,
+ va_list ap) {
+ ++runner->test_num;
+
+ if (cond) {
+ ++runner->num_passed;
+ } else {
+ fprintf(stderr, "FAILED test %d: ", runner->test_num);
+ vfprintf(stderr, msg, ap);
+ fprintf(stderr, "\n");
+ ++runner->num_failed;
+ }
}
-void
-SKIP(test_batch_runner *runner, int num_tests)
-{
- runner->test_num += num_tests;
- runner->num_skipped += num_tests;
+void SKIP(test_batch_runner *runner, int num_tests) {
+ runner->test_num += num_tests;
+ runner->num_skipped += num_tests;
}
-void
-OK(test_batch_runner *runner, int cond, const char *msg, ...)
-{
- va_list ap;
- va_start(ap, msg);
- test_result(runner, cond, msg, ap);
- va_end(ap);
+void OK(test_batch_runner *runner, int cond, const char *msg, ...) {
+ va_list ap;
+ va_start(ap, msg);
+ test_result(runner, cond, msg, ap);
+ va_end(ap);
}
-void
-INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg, ...)
-{
- int cond = got == expected;
+void INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg,
+ ...) {
+ int cond = got == expected;
- va_list ap;
- va_start(ap, msg);
- test_result(runner, cond, msg, ap);
- va_end(ap);
+ va_list ap;
+ va_start(ap, msg);
+ test_result(runner, cond, msg, ap);
+ va_end(ap);
- if (!cond) {
- fprintf(stderr, " Got: %d\n", got);
- fprintf(stderr, " Expected: %d\n", expected);
- }
+ if (!cond) {
+ fprintf(stderr, " Got: %d\n", got);
+ fprintf(stderr, " Expected: %d\n", expected);
+ }
}
-void
-STR_EQ(test_batch_runner *runner, const char *got, const char *expected,
- const char *msg, ...)
-{
- int cond = strcmp(got, expected) == 0;
-
- va_list ap;
- va_start(ap, msg);
- test_result(runner, cond, msg, ap);
- va_end(ap);
-
- if (!cond) {
- fprintf(stderr, " Got: \"%s\"\n", got);
- fprintf(stderr, " Expected: \"%s\"\n", expected);
- }
-}
+void STR_EQ(test_batch_runner *runner, const char *got, const char *expected,
+ const char *msg, ...) {
+ int cond = strcmp(got, expected) == 0;
-int
-test_ok(test_batch_runner *runner)
-{
- return runner->num_failed == 0;
-}
+ va_list ap;
+ va_start(ap, msg);
+ test_result(runner, cond, msg, ap);
+ va_end(ap);
-void
-test_print_summary(test_batch_runner *runner)
-{
- int num_passed = runner->num_passed;
- int num_skipped = runner->num_skipped;
- int num_failed = runner->num_failed;
-
- fprintf(stderr, "%d tests passed, %d failed, %d skipped\n",
- num_passed, num_failed, num_skipped);
-
- if (test_ok(runner)) {
- fprintf(stderr, "PASS\n");
- }
- else {
- fprintf(stderr, "FAIL\n");
- }
+ if (!cond) {
+ fprintf(stderr, " Got: \"%s\"\n", got);
+ fprintf(stderr, " Expected: \"%s\"\n", expected);
+ }
}
+int test_ok(test_batch_runner *runner) { return runner->num_failed == 0; }
+
+void test_print_summary(test_batch_runner *runner) {
+ int num_passed = runner->num_passed;
+ int num_skipped = runner->num_skipped;
+ int num_failed = runner->num_failed;
+
+ fprintf(stderr, "%d tests passed, %d failed, %d skipped\n", num_passed,
+ num_failed, num_skipped);
+
+ if (test_ok(runner)) {
+ fprintf(stderr, "PASS\n");
+ } else {
+ fprintf(stderr, "FAIL\n");
+ }
+}
diff --git a/api_test/harness.h b/api_test/harness.h
index 55a6232..53b9889 100644
--- a/api_test/harness.h
+++ b/api_test/harness.h
@@ -6,37 +6,30 @@ extern "C" {
#endif
typedef struct {
- int test_num;
- int num_passed;
- int num_failed;
- int num_skipped;
+ int test_num;
+ int num_passed;
+ int num_failed;
+ int num_skipped;
} test_batch_runner;
-test_batch_runner*
-test_batch_runner_new();
+test_batch_runner *test_batch_runner_new();
-void
-SKIP(test_batch_runner *runner, int num_tests);
+void SKIP(test_batch_runner *runner, int num_tests);
-void
-OK(test_batch_runner *runner, int cond, const char *msg, ...);
+void OK(test_batch_runner *runner, int cond, const char *msg, ...);
-void
-INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg, ...);
+void INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg,
+ ...);
-void
-STR_EQ(test_batch_runner *runner, const char *got, const char *expected,
- const char *msg, ...);
+void STR_EQ(test_batch_runner *runner, const char *got, const char *expected,
+ const char *msg, ...);
-int
-test_ok(test_batch_runner *runner);
+int test_ok(test_batch_runner *runner);
-void
-test_print_summary(test_batch_runner *runner);
+void test_print_summary(test_batch_runner *runner);
#ifdef __cplusplus
}
#endif
#endif
-
diff --git a/api_test/main.c b/api_test/main.c
index bcfbb6d..1e93a75 100644
--- a/api_test/main.c
+++ b/api_test/main.c
@@ -12,771 +12,882 @@
#define UTF8_REPL "\xEF\xBF\xBD"
static const cmark_node_type node_types[] = {
- CMARK_NODE_DOCUMENT,
- CMARK_NODE_BLOCK_QUOTE,
- CMARK_NODE_LIST,
- CMARK_NODE_ITEM,
- CMARK_NODE_CODE_BLOCK,
- CMARK_NODE_HTML,
- CMARK_NODE_PARAGRAPH,
- CMARK_NODE_HEADER,
- CMARK_NODE_HRULE,
- CMARK_NODE_TEXT,
- CMARK_NODE_SOFTBREAK,
- CMARK_NODE_LINEBREAK,
- CMARK_NODE_CODE,
- CMARK_NODE_INLINE_HTML,
- CMARK_NODE_EMPH,
- CMARK_NODE_STRONG,
- CMARK_NODE_LINK,
- CMARK_NODE_IMAGE
-};
+ CMARK_NODE_DOCUMENT, CMARK_NODE_BLOCK_QUOTE, CMARK_NODE_LIST,
+ CMARK_NODE_ITEM, CMARK_NODE_CODE_BLOCK, CMARK_NODE_HTML_BLOCK,
+ CMARK_NODE_PARAGRAPH, CMARK_NODE_HEADING, CMARK_NODE_THEMATIC_BREAK,
+ CMARK_NODE_TEXT, CMARK_NODE_SOFTBREAK, CMARK_NODE_LINEBREAK,
+ CMARK_NODE_CODE, CMARK_NODE_HTML_INLINE, CMARK_NODE_EMPH,
+ CMARK_NODE_STRONG, CMARK_NODE_LINK, CMARK_NODE_IMAGE};
static const int num_node_types = sizeof(node_types) / sizeof(*node_types);
-static void
-test_md_to_html(test_batch_runner *runner, const char *markdown,
- const char *expected_html, const char *msg);
+static void test_md_to_html(test_batch_runner *runner, const char *markdown,
+ const char *expected_html, const char *msg);
-static void
-test_content(test_batch_runner *runner, cmark_node_type type,
- int allowed_content);
+static void test_content(test_batch_runner *runner, cmark_node_type type,
+ int allowed_content);
-static void
-test_char(test_batch_runner *runner, int valid, const char *utf8,
- const char *msg);
+static void test_char(test_batch_runner *runner, int valid, const char *utf8,
+ const char *msg);
-static void
-test_incomplete_char(test_batch_runner *runner, const char *utf8,
- const char *msg);
+static void test_incomplete_char(test_batch_runner *runner, const char *utf8,
+ const char *msg);
-static void
-test_continuation_byte(test_batch_runner *runner, const char *utf8);
+static void test_continuation_byte(test_batch_runner *runner, const char *utf8);
-static void
-version(test_batch_runner *runner)
-{
- INT_EQ(runner, cmark_version(), CMARK_VERSION, "cmark_version");
- STR_EQ(runner, cmark_version_string(), CMARK_VERSION_STRING,
- "cmark_version_string");
+static void version(test_batch_runner *runner) {
+ INT_EQ(runner, cmark_version(), CMARK_VERSION, "cmark_version");
+ STR_EQ(runner, cmark_version_string(), CMARK_VERSION_STRING,
+ "cmark_version_string");
}
-static void
-constructor(test_batch_runner *runner)
-{
- for (int i = 0; i < num_node_types; ++i) {
- cmark_node_type type = node_types[i];
- cmark_node *node = cmark_node_new(type);
- OK(runner, node != NULL, "new type %d", type);
- INT_EQ(runner, cmark_node_get_type(node), type,
- "get_type %d", type);
-
- switch (node->type) {
- case CMARK_NODE_HEADER:
- INT_EQ(runner, cmark_node_get_header_level(node), 1,
- "default header level is 1");
- node->as.header.level = 1;
- break;
-
- case CMARK_NODE_LIST:
- INT_EQ(runner, cmark_node_get_list_type(node),
- CMARK_BULLET_LIST,
- "default is list type is bullet");
- INT_EQ(runner, cmark_node_get_list_delim(node),
- CMARK_NO_DELIM,
- "default is list delim is NO_DELIM");
- INT_EQ(runner, cmark_node_get_list_start(node), 1,
- "default is list start is 1");
- INT_EQ(runner, cmark_node_get_list_tight(node), 0,
- "default is list is loose");
- break;
-
- default:
- break;
- }
-
- cmark_node_free(node);
- }
+static void constructor(test_batch_runner *runner) {
+ for (int i = 0; i < num_node_types; ++i) {
+ cmark_node_type type = node_types[i];
+ cmark_node *node = cmark_node_new(type);
+ OK(runner, node != NULL, "new type %d", type);
+ INT_EQ(runner, cmark_node_get_type(node), type, "get_type %d", type);
+
+ switch (node->type) {
+ case CMARK_NODE_HEADING:
+ INT_EQ(runner, cmark_node_get_heading_level(node), 1,
+ "default heading level is 1");
+ node->as.heading.level = 1;
+ break;
+
+ case CMARK_NODE_LIST:
+ INT_EQ(runner, cmark_node_get_list_type(node), CMARK_BULLET_LIST,
+ "default is list type is bullet");
+ INT_EQ(runner, cmark_node_get_list_delim(node), CMARK_NO_DELIM,
+ "default is list delim is NO_DELIM");
+ INT_EQ(runner, cmark_node_get_list_start(node), 1,
+ "default is list start is 1");
+ INT_EQ(runner, cmark_node_get_list_tight(node), 0,
+ "default is list is loose");
+ break;
+
+ default:
+ break;
+ }
+
+ cmark_node_free(node);
+ }
}
-static void
-accessors(test_batch_runner *runner)
-{
- static const char markdown[] =
- "## Header\n"
- "\n"
- "* Item 1\n"
- "* Item 2\n"
- "\n"
- "2. Item 1\n"
- "\n"
- "3. Item 2\n"
- "\n"
- "\n"
- " code\n"
- "\n"
- "``` lang\n"
- "fenced\n"
- "```\n"
- "\n"
- "<div>html</div>\n"
- "\n"
- "[link](url 'title')\n";
-
- cmark_node *doc = cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
-
- // Getters
-
- cmark_node *header = cmark_node_first_child(doc);
- INT_EQ(runner, cmark_node_get_header_level(header), 2,
- "get_header_level");
-
- cmark_node *bullet_list = cmark_node_next(header);
- INT_EQ(runner, cmark_node_get_list_type(bullet_list),
- CMARK_BULLET_LIST, "get_list_type bullet");
- INT_EQ(runner, cmark_node_get_list_tight(bullet_list), 1,
- "get_list_tight tight");
-
- cmark_node *ordered_list = cmark_node_next(bullet_list);
- INT_EQ(runner, cmark_node_get_list_type(ordered_list),
- CMARK_ORDERED_LIST, "get_list_type ordered");
- INT_EQ(runner, cmark_node_get_list_delim(ordered_list),
- CMARK_PERIOD_DELIM, "get_list_delim ordered");
- INT_EQ(runner, cmark_node_get_list_start(ordered_list), 2,
- "get_list_start");
- INT_EQ(runner, cmark_node_get_list_tight(ordered_list), 0,
- "get_list_tight loose");
-
- cmark_node *code = cmark_node_next(ordered_list);
- STR_EQ(runner, cmark_node_get_literal(code), "code\n",
- "get_literal indented code");
-
- cmark_node *fenced = cmark_node_next(code);
- STR_EQ(runner, cmark_node_get_literal(fenced), "fenced\n",
- "get_literal fenced code");
- STR_EQ(runner, cmark_node_get_fence_info(fenced), "lang",
- "get_fence_info");
-
- cmark_node *html = cmark_node_next(fenced);
- STR_EQ(runner, cmark_node_get_literal(html),
- "<div>html</div>\n", "get_literal html");
-
- cmark_node *paragraph = cmark_node_next(html);
- INT_EQ(runner, cmark_node_get_start_line(paragraph), 19,
- "get_start_line");
- INT_EQ(runner, cmark_node_get_start_column(paragraph), 1,
- "get_start_column");
- INT_EQ(runner, cmark_node_get_end_line(paragraph), 19,
- "get_end_line");
-
- cmark_node *link = cmark_node_first_child(paragraph);
- STR_EQ(runner, cmark_node_get_url(link), "url",
- "get_url");
- STR_EQ(runner, cmark_node_get_title(link), "title",
- "get_title");
-
- cmark_node *string = cmark_node_first_child(link);
- STR_EQ(runner, cmark_node_get_literal(string), "link",
- "get_literal string");
-
- // Setters
-
- OK(runner, cmark_node_set_header_level(header, 3),
- "set_header_level");
-
- OK(runner, cmark_node_set_list_type(bullet_list, CMARK_ORDERED_LIST),
- "set_list_type ordered");
- OK(runner, cmark_node_set_list_delim(bullet_list, CMARK_PAREN_DELIM),
- "set_list_delim paren");
- OK(runner, cmark_node_set_list_start(bullet_list, 3),
- "set_list_start");
- OK(runner, cmark_node_set_list_tight(bullet_list, 0),
- "set_list_tight loose");
-
- OK(runner, cmark_node_set_list_type(ordered_list, CMARK_BULLET_LIST),
- "set_list_type bullet");
- OK(runner, cmark_node_set_list_tight(ordered_list, 1),
- "set_list_tight tight");
-
- OK(runner, cmark_node_set_literal(code, "CODE\n"),
- "set_literal indented code");
-
- OK(runner, cmark_node_set_literal(fenced, "FENCED\n"),
- "set_literal fenced code");
- OK(runner, cmark_node_set_fence_info(fenced, "LANG"),
- "set_fence_info");
-
- OK(runner, cmark_node_set_literal(html, "<div>HTML</div>\n"),
- "set_literal html");
-
- OK(runner, cmark_node_set_url(link, "URL"),
- "set_url");
- OK(runner, cmark_node_set_title(link, "TITLE"),
- "set_title");
-
- OK(runner, cmark_node_set_literal(string, "LINK"),
- "set_literal string");
-
- char *rendered_html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
- static const char expected_html[] =
- "<h3>Header</h3>\n"
- "<ol start=\"3\">\n"
- "<li>\n"
- "<p>Item 1</p>\n"
- "</li>\n"
- "<li>\n"
- "<p>Item 2</p>\n"
- "</li>\n"
- "</ol>\n"
- "<ul>\n"
- "<li>Item 1</li>\n"
- "<li>Item 2</li>\n"
- "</ul>\n"
- "<pre><code>CODE\n"
- "</code></pre>\n"
- "<pre><code class=\"language-LANG\">FENCED\n"
- "</code></pre>\n"
- "<div>HTML</div>\n"
- "<p><a href=\"URL\" title=\"TITLE\">LINK</a></p>\n";
- STR_EQ(runner, rendered_html, expected_html, "setters work");
- free(rendered_html);
-
- // Getter errors
-
- INT_EQ(runner, cmark_node_get_header_level(bullet_list), 0,
- "get_header_level error");
- INT_EQ(runner, cmark_node_get_list_type(header), CMARK_NO_LIST,
- "get_list_type error");
- INT_EQ(runner, cmark_node_get_list_start(code), 0,
- "get_list_start error");
- INT_EQ(runner, cmark_node_get_list_tight(fenced), 0,
- "get_list_tight error");
- OK(runner, cmark_node_get_literal(ordered_list) == NULL,
- "get_literal error");
- OK(runner, cmark_node_get_fence_info(paragraph) == NULL,
- "get_fence_info error");
- OK(runner, cmark_node_get_url(html) == NULL,
- "get_url error");
- OK(runner, cmark_node_get_title(header) == NULL,
- "get_title error");
-
- // Setter errors
-
- OK(runner, !cmark_node_set_header_level(bullet_list, 3),
- "set_header_level error");
- OK(runner, !cmark_node_set_list_type(header, CMARK_ORDERED_LIST),
- "set_list_type error");
- OK(runner, !cmark_node_set_list_start(code, 3),
- "set_list_start error");
- OK(runner, !cmark_node_set_list_tight(fenced, 0),
- "set_list_tight error");
- OK(runner, !cmark_node_set_literal(ordered_list, "content\n"),
- "set_literal error");
- OK(runner, !cmark_node_set_fence_info(paragraph, "lang"),
- "set_fence_info error");
- OK(runner, !cmark_node_set_url(html, "url"),
- "set_url error");
- OK(runner, !cmark_node_set_title(header, "title"),
- "set_title error");
-
- OK(runner, !cmark_node_set_header_level(header, 0),
- "set_header_level too small");
- OK(runner, !cmark_node_set_header_level(header, 7),
- "set_header_level too large");
- OK(runner, !cmark_node_set_list_type(bullet_list, CMARK_NO_LIST),
- "set_list_type invalid");
- OK(runner, !cmark_node_set_list_start(bullet_list, -1),
- "set_list_start negative");
-
- cmark_node_free(doc);
+static void accessors(test_batch_runner *runner) {
+ static const char markdown[] = "## Header\n"
+ "\n"
+ "* Item 1\n"
+ "* Item 2\n"
+ "\n"
+ "2. Item 1\n"
+ "\n"
+ "3. Item 2\n"
+ "\n"
+ "\n"
+ " code\n"
+ "\n"
+ "``` lang\n"
+ "fenced\n"
+ "```\n"
+ "\n"
+ "<div>html</div>\n"
+ "\n"
+ "[link](url 'title')\n";
+
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ // Getters
+
+ cmark_node *heading = cmark_node_first_child(doc);
+ INT_EQ(runner, cmark_node_get_heading_level(heading), 2, "get_heading_level");
+
+ cmark_node *bullet_list = cmark_node_next(heading);
+ INT_EQ(runner, cmark_node_get_list_type(bullet_list), CMARK_BULLET_LIST,
+ "get_list_type bullet");
+ INT_EQ(runner, cmark_node_get_list_tight(bullet_list), 1,
+ "get_list_tight tight");
+
+ cmark_node *ordered_list = cmark_node_next(bullet_list);
+ INT_EQ(runner, cmark_node_get_list_type(ordered_list), CMARK_ORDERED_LIST,
+ "get_list_type ordered");
+ INT_EQ(runner, cmark_node_get_list_delim(ordered_list), CMARK_PERIOD_DELIM,
+ "get_list_delim ordered");
+ INT_EQ(runner, cmark_node_get_list_start(ordered_list), 2, "get_list_start");
+ INT_EQ(runner, cmark_node_get_list_tight(ordered_list), 0,
+ "get_list_tight loose");
+
+ cmark_node *code = cmark_node_next(ordered_list);
+ STR_EQ(runner, cmark_node_get_literal(code), "code\n",
+ "get_literal indented code");
+
+ cmark_node *fenced = cmark_node_next(code);
+ STR_EQ(runner, cmark_node_get_literal(fenced), "fenced\n",
+ "get_literal fenced code");
+ STR_EQ(runner, cmark_node_get_fence_info(fenced), "lang", "get_fence_info");
+
+ cmark_node *html = cmark_node_next(fenced);
+ STR_EQ(runner, cmark_node_get_literal(html), "<div>html</div>\n",
+ "get_literal html");
+
+ cmark_node *paragraph = cmark_node_next(html);
+ INT_EQ(runner, cmark_node_get_start_line(paragraph), 19, "get_start_line");
+ INT_EQ(runner, cmark_node_get_start_column(paragraph), 1, "get_start_column");
+ INT_EQ(runner, cmark_node_get_end_line(paragraph), 19, "get_end_line");
+
+ cmark_node *link = cmark_node_first_child(paragraph);
+ STR_EQ(runner, cmark_node_get_url(link), "url", "get_url");
+ STR_EQ(runner, cmark_node_get_title(link), "title", "get_title");
+
+ cmark_node *string = cmark_node_first_child(link);
+ STR_EQ(runner, cmark_node_get_literal(string), "link", "get_literal string");
+
+ // Setters
+
+ OK(runner, cmark_node_set_heading_level(heading, 3), "set_heading_level");
+
+ OK(runner, cmark_node_set_list_type(bullet_list, CMARK_ORDERED_LIST),
+ "set_list_type ordered");
+ OK(runner, cmark_node_set_list_delim(bullet_list, CMARK_PAREN_DELIM),
+ "set_list_delim paren");
+ OK(runner, cmark_node_set_list_start(bullet_list, 3), "set_list_start");
+ OK(runner, cmark_node_set_list_tight(bullet_list, 0), "set_list_tight loose");
+
+ OK(runner, cmark_node_set_list_type(ordered_list, CMARK_BULLET_LIST),
+ "set_list_type bullet");
+ OK(runner, cmark_node_set_list_tight(ordered_list, 1),
+ "set_list_tight tight");
+
+ OK(runner, cmark_node_set_literal(code, "CODE\n"),
+ "set_literal indented code");
+
+ OK(runner, cmark_node_set_literal(fenced, "FENCED\n"),
+ "set_literal fenced code");
+ OK(runner, cmark_node_set_fence_info(fenced, "LANG"), "set_fence_info");
+
+ OK(runner, cmark_node_set_literal(html, "<div>HTML</div>\n"),
+ "set_literal html");
+
+ OK(runner, cmark_node_set_url(link, "URL"), "set_url");
+ OK(runner, cmark_node_set_title(link, "TITLE"), "set_title");
+
+ OK(runner, cmark_node_set_literal(string, "LINK"), "set_literal string");
+
+ char *rendered_html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
+ static const char expected_html[] =
+ "<h3>Header</h3>\n"
+ "<ol start=\"3\">\n"
+ "<li>\n"
+ "<p>Item 1</p>\n"
+ "</li>\n"
+ "<li>\n"
+ "<p>Item 2</p>\n"
+ "</li>\n"
+ "</ol>\n"
+ "<ul>\n"
+ "<li>Item 1</li>\n"
+ "<li>Item 2</li>\n"
+ "</ul>\n"
+ "<pre><code>CODE\n"
+ "</code></pre>\n"
+ "<pre><code class=\"language-LANG\">FENCED\n"
+ "</code></pre>\n"
+ "<div>HTML</div>\n"
+ "<p><a href=\"URL\" title=\"TITLE\">LINK</a></p>\n";
+ STR_EQ(runner, rendered_html, expected_html, "setters work");
+ free(rendered_html);
+
+ // Getter errors
+
+ INT_EQ(runner, cmark_node_get_heading_level(bullet_list), 0,
+ "get_heading_level error");
+ INT_EQ(runner, cmark_node_get_list_type(heading), CMARK_NO_LIST,
+ "get_list_type error");
+ INT_EQ(runner, cmark_node_get_list_start(code), 0, "get_list_start error");
+ INT_EQ(runner, cmark_node_get_list_tight(fenced), 0, "get_list_tight error");
+ OK(runner, cmark_node_get_literal(ordered_list) == NULL, "get_literal error");
+ OK(runner, cmark_node_get_fence_info(paragraph) == NULL,
+ "get_fence_info error");
+ OK(runner, cmark_node_get_url(html) == NULL, "get_url error");
+ OK(runner, cmark_node_get_title(heading) == NULL, "get_title error");
+
+ // Setter errors
+
+ OK(runner, !cmark_node_set_heading_level(bullet_list, 3),
+ "set_heading_level error");
+ OK(runner, !cmark_node_set_list_type(heading, CMARK_ORDERED_LIST),
+ "set_list_type error");
+ OK(runner, !cmark_node_set_list_start(code, 3), "set_list_start error");
+ OK(runner, !cmark_node_set_list_tight(fenced, 0), "set_list_tight error");
+ OK(runner, !cmark_node_set_literal(ordered_list, "content\n"),
+ "set_literal error");
+ OK(runner, !cmark_node_set_fence_info(paragraph, "lang"),
+ "set_fence_info error");
+ OK(runner, !cmark_node_set_url(html, "url"), "set_url error");
+ OK(runner, !cmark_node_set_title(heading, "title"), "set_title error");
+
+ OK(runner, !cmark_node_set_heading_level(heading, 0),
+ "set_heading_level too small");
+ OK(runner, !cmark_node_set_heading_level(heading, 7),
+ "set_heading_level too large");
+ OK(runner, !cmark_node_set_list_type(bullet_list, CMARK_NO_LIST),
+ "set_list_type invalid");
+ OK(runner, !cmark_node_set_list_start(bullet_list, -1),
+ "set_list_start negative");
+
+ cmark_node_free(doc);
}
-static void
-node_check(test_batch_runner *runner) {
- // Construct an incomplete tree.
- cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
- cmark_node *p1 = cmark_node_new(CMARK_NODE_PARAGRAPH);
- cmark_node *p2 = cmark_node_new(CMARK_NODE_PARAGRAPH);
- doc->first_child = p1;
- p1->next = p2;
+static void node_check(test_batch_runner *runner) {
+ // Construct an incomplete tree.
+ cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
+ cmark_node *p1 = cmark_node_new(CMARK_NODE_PARAGRAPH);
+ cmark_node *p2 = cmark_node_new(CMARK_NODE_PARAGRAPH);
+ doc->first_child = p1;
+ p1->next = p2;
- INT_EQ(runner, cmark_node_check(doc, NULL), 4, "node_check works");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0,
- "node_check fixes tree");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 4, "node_check works");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "node_check fixes tree");
- cmark_node_free(doc);
+ cmark_node_free(doc);
}
-static void
-iterator(test_batch_runner *runner) {
- cmark_node *doc = cmark_parse_document("> a *b*\n\nc", 10, CMARK_OPT_DEFAULT);
- int parnodes = 0;
- cmark_event_type ev_type;
- cmark_iter *iter = cmark_iter_new(doc);
- cmark_node *cur;
-
- while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
- cur = cmark_iter_get_node(iter);
- if (cur->type == CMARK_NODE_PARAGRAPH &&
- ev_type == CMARK_EVENT_ENTER) {
- parnodes += 1;
- }
- }
- INT_EQ(runner, parnodes, 2, "iterate correctly counts paragraphs");
-
- cmark_iter_free(iter);
- cmark_node_free(doc);
+static void iterator(test_batch_runner *runner) {
+ cmark_node *doc = cmark_parse_document("> a *b*\n\nc", 10, CMARK_OPT_DEFAULT);
+ int parnodes = 0;
+ cmark_event_type ev_type;
+ cmark_iter *iter = cmark_iter_new(doc);
+ cmark_node *cur;
+
+ while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
+ cur = cmark_iter_get_node(iter);
+ if (cur->type == CMARK_NODE_PARAGRAPH && ev_type == CMARK_EVENT_ENTER) {
+ parnodes += 1;
+ }
+ }
+ INT_EQ(runner, parnodes, 2, "iterate correctly counts paragraphs");
+
+ cmark_iter_free(iter);
+ cmark_node_free(doc);
}
-static void
-iterator_delete(test_batch_runner *runner) {
- static const char md[] =
- "a *b* c\n"
- "\n"
- "* item1\n"
- "* item2\n"
- "\n"
- "a `b` c\n"
- "\n"
- "* item1\n"
- "* item2\n";
- cmark_node *doc = cmark_parse_document(md, sizeof(md) - 1,
- CMARK_OPT_DEFAULT);
- cmark_iter *iter = cmark_iter_new(doc);
- cmark_event_type ev_type;
-
- while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
- cmark_node *node = cmark_iter_get_node(iter);
- // Delete list, emph, and code nodes.
- if ((ev_type == CMARK_EVENT_EXIT &&
- node->type == CMARK_NODE_LIST) ||
- (ev_type == CMARK_EVENT_EXIT &&
- node->type == CMARK_NODE_EMPH) ||
- (ev_type == CMARK_EVENT_ENTER &&
- node->type == CMARK_NODE_CODE)) {
- cmark_node_free(node);
- }
- }
-
- char *html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
- static const char expected[] =
- "<p>a c</p>\n"
- "<p>a c</p>\n";
- STR_EQ(runner, html, expected, "iterate and delete nodes");
-
- free(html);
- cmark_iter_free(iter);
- cmark_node_free(doc);
+static void iterator_delete(test_batch_runner *runner) {
+ static const char md[] = "a *b* c\n"
+ "\n"
+ "* item1\n"
+ "* item2\n"
+ "\n"
+ "a `b` c\n"
+ "\n"
+ "* item1\n"
+ "* item2\n";
+ cmark_node *doc = cmark_parse_document(md, sizeof(md) - 1, CMARK_OPT_DEFAULT);
+ cmark_iter *iter = cmark_iter_new(doc);
+ cmark_event_type ev_type;
+
+ while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
+ cmark_node *node = cmark_iter_get_node(iter);
+ // Delete list, emph, and code nodes.
+ if ((ev_type == CMARK_EVENT_EXIT && node->type == CMARK_NODE_LIST) ||
+ (ev_type == CMARK_EVENT_EXIT && node->type == CMARK_NODE_EMPH) ||
+ (ev_type == CMARK_EVENT_ENTER && node->type == CMARK_NODE_CODE)) {
+ cmark_node_free(node);
+ }
+ }
+
+ char *html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
+ static const char expected[] = "<p>a c</p>\n"
+ "<p>a c</p>\n";
+ STR_EQ(runner, html, expected, "iterate and delete nodes");
+
+ free(html);
+ cmark_iter_free(iter);
+ cmark_node_free(doc);
}
-static void
-create_tree(test_batch_runner *runner)
-{
- char *html;
- cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
-
- cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH);
- OK(runner, !cmark_node_insert_before(doc, p),
- "insert before root fails");
- OK(runner, !cmark_node_insert_after(doc, p),
- "insert after root fails");
- OK(runner, cmark_node_append_child(doc, p), "append1");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append1 consistent");
- OK(runner, cmark_node_parent(p) == doc, "node_parent");
-
- cmark_node *emph = cmark_node_new(CMARK_NODE_EMPH);
- OK(runner, cmark_node_prepend_child(p, emph), "prepend1");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend1 consistent");
-
- cmark_node *str1 = cmark_node_new(CMARK_NODE_TEXT);
- cmark_node_set_literal(str1, "Hello, ");
- OK(runner, cmark_node_prepend_child(p, str1), "prepend2");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend2 consistent");
-
- cmark_node *str3 = cmark_node_new(CMARK_NODE_TEXT);
- cmark_node_set_literal(str3, "!");
- OK(runner, cmark_node_append_child(p, str3), "append2");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append2 consistent");
-
- cmark_node *str2 = cmark_node_new(CMARK_NODE_TEXT);
- cmark_node_set_literal(str2, "world");
- OK(runner, cmark_node_append_child(emph, str2), "append3");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append3 consistent");
-
- html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<p>Hello, <em>world</em>!</p>\n",
- "render_html");
- free(html);
-
- OK(runner, cmark_node_insert_before(str1, str3), "ins before1");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0,
- "ins before1 consistent");
- // 31e
- OK(runner, cmark_node_first_child(p) == str3, "ins before1 works");
-
- OK(runner, cmark_node_insert_before(str1, emph), "ins before2");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0,
- "ins before2 consistent");
- // 3e1
- OK(runner, cmark_node_last_child(p) == str1, "ins before2 works");
-
- OK(runner, cmark_node_insert_after(str1, str3), "ins after1");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0,
- "ins after1 consistent");
- // e13
- OK(runner, cmark_node_next(str1) == str3, "ins after1 works");
-
- OK(runner, cmark_node_insert_after(str1, emph), "ins after2");
- INT_EQ(runner, cmark_node_check(doc, NULL), 0,
- "ins after2 consistent");
- // 1e3
- OK(runner, cmark_node_previous(emph) == str1, "ins after2 works");
-
- cmark_node_unlink(emph);
-
- html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<p>Hello, !</p>\n",
- "render_html after shuffling");
- free(html);
-
- cmark_node_free(doc);
-
- // TODO: Test that the contents of an unlinked inline are valid
- // after the parent block was destroyed. This doesn't work so far.
- cmark_node_free(emph);
+static void create_tree(test_batch_runner *runner) {
+ char *html;
+ cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
+
+ cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH);
+ OK(runner, !cmark_node_insert_before(doc, p), "insert before root fails");
+ OK(runner, !cmark_node_insert_after(doc, p), "insert after root fails");
+ OK(runner, cmark_node_append_child(doc, p), "append1");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append1 consistent");
+ OK(runner, cmark_node_parent(p) == doc, "node_parent");
+
+ cmark_node *emph = cmark_node_new(CMARK_NODE_EMPH);
+ OK(runner, cmark_node_prepend_child(p, emph), "prepend1");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend1 consistent");
+
+ cmark_node *str1 = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(str1, "Hello, ");
+ OK(runner, cmark_node_prepend_child(p, str1), "prepend2");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend2 consistent");
+
+ cmark_node *str3 = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(str3, "!");
+ OK(runner, cmark_node_append_child(p, str3), "append2");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append2 consistent");
+
+ cmark_node *str2 = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(str2, "world");
+ OK(runner, cmark_node_append_child(emph, str2), "append3");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append3 consistent");
+
+ html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<p>Hello, <em>world</em>!</p>\n", "render_html");
+ free(html);
+
+ OK(runner, cmark_node_insert_before(str1, str3), "ins before1");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins before1 consistent");
+ // 31e
+ OK(runner, cmark_node_first_child(p) == str3, "ins before1 works");
+
+ OK(runner, cmark_node_insert_before(str1, emph), "ins before2");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins before2 consistent");
+ // 3e1
+ OK(runner, cmark_node_last_child(p) == str1, "ins before2 works");
+
+ OK(runner, cmark_node_insert_after(str1, str3), "ins after1");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins after1 consistent");
+ // e13
+ OK(runner, cmark_node_next(str1) == str3, "ins after1 works");
+
+ OK(runner, cmark_node_insert_after(str1, emph), "ins after2");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins after2 consistent");
+ // 1e3
+ OK(runner, cmark_node_previous(emph) == str1, "ins after2 works");
+
+ cmark_node *str4 = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(str4, "brzz");
+ OK(runner, cmark_node_replace(str1, str4), "replace");
+ INT_EQ(runner, cmark_node_check(doc, NULL), 0, "replace consistent");
+ OK(runner, cmark_node_previous(emph) == str4, "replace works");
+ INT_EQ(runner, cmark_node_replace(p, str4), 0, "replace str for p fails");
+
+ cmark_node_unlink(emph);
+
+ html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<p>brzz!</p>\n", "render_html after shuffling");
+ free(html);
+
+ cmark_node_free(doc);
+
+ // TODO: Test that the contents of an unlinked inline are valid
+ // after the parent block was destroyed. This doesn't work so far.
+ cmark_node_free(emph);
}
-void
-hierarchy(test_batch_runner *runner)
-{
- cmark_node *bquote1 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
- cmark_node *bquote2 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
- cmark_node *bquote3 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
-
- OK(runner, cmark_node_append_child(bquote1, bquote2),
- "append bquote2");
- OK(runner, cmark_node_append_child(bquote2, bquote3),
- "append bquote3");
- OK(runner, !cmark_node_append_child(bquote3, bquote3),
- "adding a node as child of itself fails");
- OK(runner, !cmark_node_append_child(bquote3, bquote1),
- "adding a parent as child fails");
-
- cmark_node_free(bquote1);
-
- int max_node_type = CMARK_NODE_LAST_BLOCK > CMARK_NODE_LAST_INLINE
- ? CMARK_NODE_LAST_BLOCK : CMARK_NODE_LAST_INLINE;
- OK(runner, max_node_type < 32, "all node types < 32");
-
- int list_item_flag = 1 << CMARK_NODE_ITEM;
- int top_level_blocks =
- (1 << CMARK_NODE_BLOCK_QUOTE) |
- (1 << CMARK_NODE_LIST) |
- (1 << CMARK_NODE_CODE_BLOCK) |
- (1 << CMARK_NODE_HTML) |
- (1 << CMARK_NODE_PARAGRAPH) |
- (1 << CMARK_NODE_HEADER) |
- (1 << CMARK_NODE_HRULE);
- int all_inlines =
- (1 << CMARK_NODE_TEXT) |
- (1 << CMARK_NODE_SOFTBREAK) |
- (1 << CMARK_NODE_LINEBREAK) |
- (1 << CMARK_NODE_CODE) |
- (1 << CMARK_NODE_INLINE_HTML) |
- (1 << CMARK_NODE_EMPH) |
- (1 << CMARK_NODE_STRONG) |
- (1 << CMARK_NODE_LINK) |
- (1 << CMARK_NODE_IMAGE);
-
- test_content(runner, CMARK_NODE_DOCUMENT, top_level_blocks);
- test_content(runner, CMARK_NODE_BLOCK_QUOTE, top_level_blocks);
- test_content(runner, CMARK_NODE_LIST, list_item_flag);
- test_content(runner, CMARK_NODE_ITEM, top_level_blocks);
- test_content(runner, CMARK_NODE_CODE_BLOCK , 0);
- test_content(runner, CMARK_NODE_HTML, 0);
- test_content(runner, CMARK_NODE_PARAGRAPH, all_inlines);
- test_content(runner, CMARK_NODE_HEADER, all_inlines);
- test_content(runner, CMARK_NODE_HRULE, 0);
- test_content(runner, CMARK_NODE_TEXT, 0);
- test_content(runner, CMARK_NODE_SOFTBREAK, 0);
- test_content(runner, CMARK_NODE_LINEBREAK, 0);
- test_content(runner, CMARK_NODE_CODE, 0);
- test_content(runner, CMARK_NODE_INLINE_HTML, 0);
- test_content(runner, CMARK_NODE_EMPH, all_inlines);
- test_content(runner, CMARK_NODE_STRONG, all_inlines);
- test_content(runner, CMARK_NODE_LINK, all_inlines);
- test_content(runner, CMARK_NODE_IMAGE, all_inlines);
+static void custom_nodes(test_batch_runner *runner) {
+ char *html;
+ char *man;
+ cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
+ cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH);
+ cmark_node_append_child(doc, p);
+ cmark_node *ci = cmark_node_new(CMARK_NODE_CUSTOM_INLINE);
+ cmark_node *str1 = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(str1, "Hello");
+ OK(runner, cmark_node_append_child(ci, str1), "append1");
+ OK(runner, cmark_node_set_on_enter(ci, "<ON ENTER|"), "set_on_enter");
+ OK(runner, cmark_node_set_on_exit(ci, "|ON EXIT>"), "set_on_exit");
+ STR_EQ(runner, cmark_node_get_on_enter(ci), "<ON ENTER|", "get_on_enter");
+ STR_EQ(runner, cmark_node_get_on_exit(ci), "|ON EXIT>", "get_on_exit");
+ cmark_node_append_child(p, ci);
+ cmark_node *cb = cmark_node_new(CMARK_NODE_CUSTOM_BLOCK);
+ cmark_node_set_on_enter(cb, "<on enter|");
+ // leave on_exit unset
+ STR_EQ(runner, cmark_node_get_on_exit(cb), "", "get_on_exit (empty)");
+ cmark_node_append_child(doc, cb);
+
+ html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<p><ON ENTER|Hello|ON EXIT></p>\n<on enter|\n",
+ "render_html");
+ free(html);
+
+ man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 0);
+ STR_EQ(runner, man, ".PP\n<ON ENTER|Hello|ON EXIT>\n<on enter|\n",
+ "render_man");
+ free(man);
+
+ cmark_node_free(doc);
}
-static void
-test_content(test_batch_runner *runner, cmark_node_type type,
- int allowed_content)
-{
- cmark_node *node = cmark_node_new(type);
+void hierarchy(test_batch_runner *runner) {
+ cmark_node *bquote1 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
+ cmark_node *bquote2 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
+ cmark_node *bquote3 = cmark_node_new(CMARK_NODE_BLOCK_QUOTE);
+
+ OK(runner, cmark_node_append_child(bquote1, bquote2), "append bquote2");
+ OK(runner, cmark_node_append_child(bquote2, bquote3), "append bquote3");
+ OK(runner, !cmark_node_append_child(bquote3, bquote3),
+ "adding a node as child of itself fails");
+ OK(runner, !cmark_node_append_child(bquote3, bquote1),
+ "adding a parent as child fails");
+
+ cmark_node_free(bquote1);
+
+ int max_node_type = CMARK_NODE_LAST_BLOCK > CMARK_NODE_LAST_INLINE
+ ? CMARK_NODE_LAST_BLOCK
+ : CMARK_NODE_LAST_INLINE;
+ OK(runner, max_node_type < 32, "all node types < 32");
+
+ int list_item_flag = 1 << CMARK_NODE_ITEM;
+ int top_level_blocks =
+ (1 << CMARK_NODE_BLOCK_QUOTE) | (1 << CMARK_NODE_LIST) |
+ (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_HTML_BLOCK) |
+ (1 << CMARK_NODE_PARAGRAPH) | (1 << CMARK_NODE_HEADING) |
+ (1 << CMARK_NODE_THEMATIC_BREAK);
+ int all_inlines = (1 << CMARK_NODE_TEXT) | (1 << CMARK_NODE_SOFTBREAK) |
+ (1 << CMARK_NODE_LINEBREAK) | (1 << CMARK_NODE_CODE) |
+ (1 << CMARK_NODE_HTML_INLINE) | (1 << CMARK_NODE_EMPH) |
+ (1 << CMARK_NODE_STRONG) | (1 << CMARK_NODE_LINK) |
+ (1 << CMARK_NODE_IMAGE);
+
+ test_content(runner, CMARK_NODE_DOCUMENT, top_level_blocks);
+ test_content(runner, CMARK_NODE_BLOCK_QUOTE, top_level_blocks);
+ test_content(runner, CMARK_NODE_LIST, list_item_flag);
+ test_content(runner, CMARK_NODE_ITEM, top_level_blocks);
+ test_content(runner, CMARK_NODE_CODE_BLOCK, 0);
+ test_content(runner, CMARK_NODE_HTML_BLOCK, 0);
+ test_content(runner, CMARK_NODE_PARAGRAPH, all_inlines);
+ test_content(runner, CMARK_NODE_HEADING, all_inlines);
+ test_content(runner, CMARK_NODE_THEMATIC_BREAK, 0);
+ test_content(runner, CMARK_NODE_TEXT, 0);
+ test_content(runner, CMARK_NODE_SOFTBREAK, 0);
+ test_content(runner, CMARK_NODE_LINEBREAK, 0);
+ test_content(runner, CMARK_NODE_CODE, 0);
+ test_content(runner, CMARK_NODE_HTML_INLINE, 0);
+ test_content(runner, CMARK_NODE_EMPH, all_inlines);
+ test_content(runner, CMARK_NODE_STRONG, all_inlines);
+ test_content(runner, CMARK_NODE_LINK, all_inlines);
+ test_content(runner, CMARK_NODE_IMAGE, all_inlines);
+}
+
+static void test_content(test_batch_runner *runner, cmark_node_type type,
+ int allowed_content) {
+ cmark_node *node = cmark_node_new(type);
+
+ for (int i = 0; i < num_node_types; ++i) {
+ cmark_node_type child_type = node_types[i];
+ cmark_node *child = cmark_node_new(child_type);
+
+ int got = cmark_node_append_child(node, child);
+ int expected = (allowed_content >> child_type) & 1;
- for (int i = 0; i < num_node_types; ++i) {
- cmark_node_type child_type = node_types[i];
- cmark_node *child = cmark_node_new(child_type);
+ INT_EQ(runner, got, expected, "add %d as child of %d", child_type, type);
- int got = cmark_node_append_child(node, child);
- int expected = (allowed_content >> child_type) & 1;
+ cmark_node_free(child);
+ }
+
+ cmark_node_free(node);
+}
+
+static void parser(test_batch_runner *runner) {
+ test_md_to_html(runner, "No newline", "<p>No newline</p>\n",
+ "document without trailing newline");
+}
- INT_EQ(runner, got, expected,
- "add %d as child of %d", child_type, type);
+static void render_html(test_batch_runner *runner) {
+ char *html;
- cmark_node_free(child);
- }
+ static const char markdown[] = "foo *bar*\n"
+ "\n"
+ "paragraph 2\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ cmark_node *paragraph = cmark_node_first_child(doc);
+ html = cmark_render_html(paragraph, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<p>foo <em>bar</em></p>\n", "render single paragraph");
+ free(html);
+
+ cmark_node *string = cmark_node_first_child(paragraph);
+ html = cmark_render_html(string, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "foo ", "render single inline");
+ free(html);
+
+ cmark_node *emph = cmark_node_next(string);
+ html = cmark_render_html(emph, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<em>bar</em>", "render inline with children");
+ free(html);
+
+ cmark_node_free(doc);
+}
+
+static void render_xml(test_batch_runner *runner) {
+ char *xml;
+
+ static const char markdown[] = "foo *bar*\n"
+ "\n"
+ "paragraph 2\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ xml = cmark_render_xml(doc, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, xml,
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"
+ "<document xmlns=\"http://commonmark.org/xml/1.0\">\n"
+ " <paragraph>\n"
+ " <text>foo </text>\n"
+ " <emph>\n"
+ " <text>bar</text>\n"
+ " </emph>\n"
+ " </paragraph>\n"
+ " <paragraph>\n"
+ " <text>paragraph 2</text>\n"
+ " </paragraph>\n"
+ "</document>\n",
+ "render document");
+ free(xml);
+ cmark_node *paragraph = cmark_node_first_child(doc);
+ xml = cmark_render_xml(paragraph, CMARK_OPT_DEFAULT | CMARK_OPT_SOURCEPOS);
+ STR_EQ(runner, xml,
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"
+ "<paragraph sourcepos=\"1:1-1:9\">\n"
+ " <text>foo </text>\n"
+ " <emph>\n"
+ " <text>bar</text>\n"
+ " </emph>\n"
+ "</paragraph>\n",
+ "render first paragraph with source pos");
+ free(xml);
+ cmark_node_free(doc);
+}
- cmark_node_free(node);
+static void render_man(test_batch_runner *runner) {
+ char *man;
+
+ static const char markdown[] = "foo *bar*\n"
+ "\n"
+ "- Lorem ipsum dolor sit amet,\n"
+ " consectetur adipiscing elit,\n"
+ "- sed do eiusmod tempor incididunt\n"
+ " ut labore et dolore magna aliqua.\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 20);
+ STR_EQ(runner, man,
+ ".PP\n"
+ "foo \\f[I]bar\\f[]\n"
+ ".IP \\[bu] 2\n"
+ "Lorem ipsum dolor\n"
+ "sit amet,\n"
+ "consectetur\n"
+ "adipiscing elit,\n"
+ ".IP \\[bu] 2\n"
+ "sed do eiusmod\n"
+ "tempor incididunt ut\n"
+ "labore et dolore\n"
+ "magna aliqua.\n",
+ "render document with wrapping");
+ free(man);
+ man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 0);
+ STR_EQ(runner, man,
+ ".PP\n"
+ "foo \\f[I]bar\\f[]\n"
+ ".IP \\[bu] 2\n"
+ "Lorem ipsum dolor sit amet,\n"
+ "consectetur adipiscing elit,\n"
+ ".IP \\[bu] 2\n"
+ "sed do eiusmod tempor incididunt\n"
+ "ut labore et dolore magna aliqua.\n",
+ "render document without wrapping");
+ free(man);
+ cmark_node_free(doc);
}
-static void
-parser(test_batch_runner *runner)
-{
- test_md_to_html(runner, "No newline", "<p>No newline</p>\n",
- "document without trailing newline");
+static void render_latex(test_batch_runner *runner) {
+ char *latex;
+
+ static const char markdown[] = "foo *bar* $%\n"
+ "\n"
+ "- Lorem ipsum dolor sit amet,\n"
+ " consectetur adipiscing elit,\n"
+ "- sed do eiusmod tempor incididunt\n"
+ " ut labore et dolore magna aliqua.\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ latex = cmark_render_latex(doc, CMARK_OPT_DEFAULT, 20);
+ STR_EQ(runner, latex,
+ "foo \\emph{bar} \\$\\%\n"
+ "\n"
+ "\\begin{itemize}\n"
+ "\\item Lorem ipsum\n"
+ "dolor sit amet,\n"
+ "consectetur\n"
+ "adipiscing elit,\n"
+ "\n"
+ "\\item sed do eiusmod\n"
+ "tempor incididunt ut\n"
+ "labore et dolore\n"
+ "magna aliqua.\n"
+ "\n"
+ "\\end{itemize}\n",
+ "render document with wrapping");
+ free(latex);
+ latex = cmark_render_latex(doc, CMARK_OPT_DEFAULT, 0);
+ STR_EQ(runner, latex,
+ "foo \\emph{bar} \\$\\%\n"
+ "\n"
+ "\\begin{itemize}\n"
+ "\\item Lorem ipsum dolor sit amet,\n"
+ "consectetur adipiscing elit,\n"
+ "\n"
+ "\\item sed do eiusmod tempor incididunt\n"
+ "ut labore et dolore magna aliqua.\n"
+ "\n"
+ "\\end{itemize}\n",
+ "render document without wrapping");
+ free(latex);
+ cmark_node_free(doc);
}
-static void
-render_html(test_batch_runner *runner)
-{
- char *html;
-
- static const char markdown[] =
- "foo *bar*\n"
- "\n"
- "paragraph 2\n";
- cmark_node *doc = cmark_parse_document(markdown, sizeof(markdown) - 1,
- CMARK_OPT_DEFAULT);
-
- cmark_node *paragraph = cmark_node_first_child(doc);
- html = cmark_render_html(paragraph, CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<p>foo <em>bar</em></p>\n",
- "render single paragraph");
- free(html);
-
- cmark_node *string = cmark_node_first_child(paragraph);
- html = cmark_render_html(string, CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "foo ", "render single inline");
- free(html);
-
- cmark_node *emph = cmark_node_next(string);
- html = cmark_render_html(emph, CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<em>bar</em>", "render inline with children");
- free(html);
-
- cmark_node_free(doc);
+static void render_commonmark(test_batch_runner *runner) {
+ char *commonmark;
+
+ static const char markdown[] = "> \\- foo *bar* \\*bar\\*\n"
+ "\n"
+ "- Lorem ipsum dolor sit amet,\n"
+ " consectetur adipiscing elit,\n"
+ "- sed do eiusmod tempor incididunt\n"
+ " ut labore et dolore magna aliqua.\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ commonmark = cmark_render_commonmark(doc, CMARK_OPT_DEFAULT, 26);
+ STR_EQ(runner, commonmark,
+ "> \\- foo *bar* \\*bar\\*\n"
+ "\n"
+ " - Lorem ipsum dolor sit\n"
+ " amet, consectetur\n"
+ " adipiscing elit,\n"
+ " - sed do eiusmod tempor\n"
+ " incididunt ut labore\n"
+ " et dolore magna\n"
+ " aliqua.\n",
+ "render document with wrapping");
+ free(commonmark);
+ commonmark = cmark_render_commonmark(doc, CMARK_OPT_DEFAULT, 0);
+ STR_EQ(runner, commonmark, "> \\- foo *bar* \\*bar\\*\n"
+ "\n"
+ " - Lorem ipsum dolor sit amet,\n"
+ " consectetur adipiscing elit,\n"
+ " - sed do eiusmod tempor incididunt\n"
+ " ut labore et dolore magna aliqua.\n",
+ "render document without wrapping");
+ free(commonmark);
+
+ cmark_node *text = cmark_node_new(CMARK_NODE_TEXT);
+ cmark_node_set_literal(text, "Hi");
+ commonmark = cmark_render_commonmark(text, CMARK_OPT_DEFAULT, 0);
+ STR_EQ(runner, commonmark, "Hi\n",
+ "render single inline node");
+ free(commonmark);
+
+ cmark_node_free(text);
+ cmark_node_free(doc);
}
-static void
-utf8(test_batch_runner *runner)
-{
- // Ranges
- test_char(runner, 1, "\x01", "valid utf8 01");
- test_char(runner, 1, "\x7F", "valid utf8 7F");
- test_char(runner, 0, "\x80", "invalid utf8 80");
- test_char(runner, 0, "\xBF", "invalid utf8 BF");
- test_char(runner, 0, "\xC0\x80", "invalid utf8 C080");
- test_char(runner, 0, "\xC1\xBF", "invalid utf8 C1BF");
- test_char(runner, 1, "\xC2\x80", "valid utf8 C280");
- test_char(runner, 1, "\xDF\xBF", "valid utf8 DFBF");
- test_char(runner, 0, "\xE0\x80\x80", "invalid utf8 E08080");
- test_char(runner, 0, "\xE0\x9F\xBF", "invalid utf8 E09FBF");
- test_char(runner, 1, "\xE0\xA0\x80", "valid utf8 E0A080");
- test_char(runner, 1, "\xED\x9F\xBF", "valid utf8 ED9FBF");
- test_char(runner, 0, "\xED\xA0\x80", "invalid utf8 EDA080");
- test_char(runner, 0, "\xED\xBF\xBF", "invalid utf8 EDBFBF");
- test_char(runner, 0, "\xF0\x80\x80\x80", "invalid utf8 F0808080");
- test_char(runner, 0, "\xF0\x8F\xBF\xBF", "invalid utf8 F08FBFBF");
- test_char(runner, 1, "\xF0\x90\x80\x80", "valid utf8 F0908080");
- test_char(runner, 1, "\xF4\x8F\xBF\xBF", "valid utf8 F48FBFBF");
- test_char(runner, 0, "\xF4\x90\x80\x80", "invalid utf8 F4908080");
- test_char(runner, 0, "\xF7\xBF\xBF\xBF", "invalid utf8 F7BFBFBF");
- test_char(runner, 0, "\xF8", "invalid utf8 F8");
- test_char(runner, 0, "\xFF", "invalid utf8 FF");
-
- // Incomplete byte sequences at end of input
- test_incomplete_char(runner, "\xE0\xA0", "invalid utf8 E0A0");
- test_incomplete_char(runner, "\xF0\x90\x80", "invalid utf8 F09080");
-
- // Invalid continuation bytes
- test_continuation_byte(runner, "\xC2\x80");
- test_continuation_byte(runner, "\xE0\xA0\x80");
- test_continuation_byte(runner, "\xF0\x90\x80\x80");
-
- // Test string containing null character
- static const char string_with_null[] = "((((\0))))";
- char *html = cmark_markdown_to_html(string_with_null,
- sizeof(string_with_null) - 1,
- CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<p>((((" UTF8_REPL "))))</p>\n",
- "utf8 with U+0000");
- free(html);
+static void utf8(test_batch_runner *runner) {
+ // Ranges
+ test_char(runner, 1, "\x01", "valid utf8 01");
+ test_char(runner, 1, "\x7F", "valid utf8 7F");
+ test_char(runner, 0, "\x80", "invalid utf8 80");
+ test_char(runner, 0, "\xBF", "invalid utf8 BF");
+ test_char(runner, 0, "\xC0\x80", "invalid utf8 C080");
+ test_char(runner, 0, "\xC1\xBF", "invalid utf8 C1BF");
+ test_char(runner, 1, "\xC2\x80", "valid utf8 C280");
+ test_char(runner, 1, "\xDF\xBF", "valid utf8 DFBF");
+ test_char(runner, 0, "\xE0\x80\x80", "invalid utf8 E08080");
+ test_char(runner, 0, "\xE0\x9F\xBF", "invalid utf8 E09FBF");
+ test_char(runner, 1, "\xE0\xA0\x80", "valid utf8 E0A080");
+ test_char(runner, 1, "\xED\x9F\xBF", "valid utf8 ED9FBF");
+ test_char(runner, 0, "\xED\xA0\x80", "invalid utf8 EDA080");
+ test_char(runner, 0, "\xED\xBF\xBF", "invalid utf8 EDBFBF");
+ test_char(runner, 0, "\xF0\x80\x80\x80", "invalid utf8 F0808080");
+ test_char(runner, 0, "\xF0\x8F\xBF\xBF", "invalid utf8 F08FBFBF");
+ test_char(runner, 1, "\xF0\x90\x80\x80", "valid utf8 F0908080");
+ test_char(runner, 1, "\xF4\x8F\xBF\xBF", "valid utf8 F48FBFBF");
+ test_char(runner, 0, "\xF4\x90\x80\x80", "invalid utf8 F4908080");
+ test_char(runner, 0, "\xF7\xBF\xBF\xBF", "invalid utf8 F7BFBFBF");
+ test_char(runner, 0, "\xF8", "invalid utf8 F8");
+ test_char(runner, 0, "\xFF", "invalid utf8 FF");
+
+ // Incomplete byte sequences at end of input
+ test_incomplete_char(runner, "\xE0\xA0", "invalid utf8 E0A0");
+ test_incomplete_char(runner, "\xF0\x90\x80", "invalid utf8 F09080");
+
+ // Invalid continuation bytes
+ test_continuation_byte(runner, "\xC2\x80");
+ test_continuation_byte(runner, "\xE0\xA0\x80");
+ test_continuation_byte(runner, "\xF0\x90\x80\x80");
+
+ // Test string containing null character
+ static const char string_with_null[] = "((((\0))))";
+ char *html = cmark_markdown_to_html(
+ string_with_null, sizeof(string_with_null) - 1, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<p>((((" UTF8_REPL "))))</p>\n", "utf8 with U+0000");
+ free(html);
}
-static void
-test_char(test_batch_runner *runner, int valid, const char *utf8,
- const char *msg)
-{
- char buf[20];
- sprintf(buf, "((((%s))))", utf8);
-
- if (valid) {
- char expected[30];
- sprintf(expected, "<p>((((%s))))</p>\n", utf8);
- test_md_to_html(runner, buf, expected, msg);
- }
- else {
- test_md_to_html(runner, buf, "<p>((((" UTF8_REPL "))))</p>\n",
- msg);
- }
+static void test_char(test_batch_runner *runner, int valid, const char *utf8,
+ const char *msg) {
+ char buf[20];
+ sprintf(buf, "((((%s))))", utf8);
+
+ if (valid) {
+ char expected[30];
+ sprintf(expected, "<p>((((%s))))</p>\n", utf8);
+ test_md_to_html(runner, buf, expected, msg);
+ } else {
+ test_md_to_html(runner, buf, "<p>((((" UTF8_REPL "))))</p>\n", msg);
+ }
}
-static void
-test_incomplete_char(test_batch_runner *runner, const char *utf8,
- const char *msg)
-{
- char buf[20];
- sprintf(buf, "----%s", utf8);
- test_md_to_html(runner, buf, "<p>----" UTF8_REPL "</p>\n", msg);
+static void test_incomplete_char(test_batch_runner *runner, const char *utf8,
+ const char *msg) {
+ char buf[20];
+ sprintf(buf, "----%s", utf8);
+ test_md_to_html(runner, buf, "<p>----" UTF8_REPL "</p>\n", msg);
}
-static void
-test_continuation_byte(test_batch_runner *runner, const char *utf8)
-{
- size_t len = strlen(utf8);
-
- for (size_t pos = 1; pos < len; ++pos) {
- char buf[20];
- sprintf(buf, "((((%s))))", utf8);
- buf[4+pos] = '\x20';
-
- char expected[50];
- strcpy(expected, "<p>((((" UTF8_REPL "\x20");
- for (size_t i = pos + 1; i < len; ++i) {
- strcat(expected, UTF8_REPL);
- }
- strcat(expected, "))))</p>\n");
-
- char *html = cmark_markdown_to_html(buf, strlen(buf),
- CMARK_OPT_VALIDATE_UTF8);
- STR_EQ(runner, html, expected,
- "invalid utf8 continuation byte %d/%d", pos, len);
- free(html);
- }
+static void test_continuation_byte(test_batch_runner *runner,
+ const char *utf8) {
+ size_t len = strlen(utf8);
+
+ for (size_t pos = 1; pos < len; ++pos) {
+ char buf[20];
+ sprintf(buf, "((((%s))))", utf8);
+ buf[4 + pos] = '\x20';
+
+ char expected[50];
+ strcpy(expected, "<p>((((" UTF8_REPL "\x20");
+ for (size_t i = pos + 1; i < len; ++i) {
+ strcat(expected, UTF8_REPL);
+ }
+ strcat(expected, "))))</p>\n");
+
+ char *html =
+ cmark_markdown_to_html(buf, strlen(buf), CMARK_OPT_VALIDATE_UTF8);
+ STR_EQ(runner, html, expected, "invalid utf8 continuation byte %d/%d", pos,
+ len);
+ free(html);
+ }
}
-static void
-line_endings(test_batch_runner *runner)
-{
- // Test list with different line endings
- static const char list_with_endings[] =
- "- a\n- b\r\n- c\r- d";
- char *html = cmark_markdown_to_html(list_with_endings,
- sizeof(list_with_endings) - 1,
- CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n<li>d</li>\n</ul>\n",
- "list with different line endings");
- free(html);
-
- static const char crlf_lines[] = "line\r\nline\r\n";
- html = cmark_markdown_to_html(crlf_lines,
- sizeof(crlf_lines) - 1,
- CMARK_OPT_DEFAULT | CMARK_OPT_HARDBREAKS);
- STR_EQ(runner, html, "<p>line<br />\nline</p>\n",
- "crlf endings with CMARK_OPT_HARDBREAKS");
- free(html);
-
- static const char no_line_ending[] = "```\nline\n```";
- html = cmark_markdown_to_html(no_line_ending,
- sizeof(no_line_ending) - 1,
- CMARK_OPT_DEFAULT);
- STR_EQ(runner, html, "<pre><code>line\n</code></pre>\n",
- "fenced code block with no final newline");
- free(html);
+static void line_endings(test_batch_runner *runner) {
+ // Test list with different line endings
+ static const char list_with_endings[] = "- a\n- b\r\n- c\r- d";
+ char *html = cmark_markdown_to_html(
+ list_with_endings, sizeof(list_with_endings) - 1, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html,
+ "<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n<li>d</li>\n</ul>\n",
+ "list with different line endings");
+ free(html);
+
+ static const char crlf_lines[] = "line\r\nline\r\n";
+ html = cmark_markdown_to_html(crlf_lines, sizeof(crlf_lines) - 1,
+ CMARK_OPT_DEFAULT | CMARK_OPT_HARDBREAKS);
+ STR_EQ(runner, html, "<p>line<br />\nline</p>\n",
+ "crlf endings with CMARK_OPT_HARDBREAKS");
+ free(html);
+
+ static const char no_line_ending[] = "```\nline\n```";
+ html = cmark_markdown_to_html(no_line_ending, sizeof(no_line_ending) - 1,
+ CMARK_OPT_DEFAULT);
+ STR_EQ(runner, html, "<pre><code>line\n</code></pre>\n",
+ "fenced code block with no final newline");
+ free(html);
}
-static void
-numeric_entities(test_batch_runner *runner)
-{
- test_md_to_html(runner, "&#0;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0");
- test_md_to_html(runner, "&#55295;", "<p>\xED\x9F\xBF</p>\n",
- "Valid numeric entity 0xD7FF");
- test_md_to_html(runner, "&#xD800;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0xD800");
- test_md_to_html(runner, "&#xDFFF;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0xDFFF");
- test_md_to_html(runner, "&#57344;", "<p>\xEE\x80\x80</p>\n",
- "Valid numeric entity 0xE000");
- test_md_to_html(runner, "&#x10FFFF;", "<p>\xF4\x8F\xBF\xBF</p>\n",
- "Valid numeric entity 0x10FFFF");
- test_md_to_html(runner, "&#x110000;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0x110000");
- test_md_to_html(runner, "&#x80000000;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0x80000000");
- test_md_to_html(runner, "&#xFFFFFFFF;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 0xFFFFFFFF");
- test_md_to_html(runner, "&#99999999;", "<p>" UTF8_REPL "</p>\n",
- "Invalid numeric entity 99999999");
-
- test_md_to_html(runner, "&#;", "<p>&amp;#;</p>\n",
- "Min decimal entity length");
- test_md_to_html(runner, "&#x;", "<p>&amp;#x;</p>\n",
- "Min hexadecimal entity length");
- test_md_to_html(runner, "&#999999999;", "<p>&amp;#999999999;</p>\n",
- "Max decimal entity length");
- test_md_to_html(runner, "&#x000000041;", "<p>&amp;#x000000041;</p>\n",
- "Max hexadecimal entity length");
+static void numeric_entities(test_batch_runner *runner) {
+ test_md_to_html(runner, "&#0;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0");
+ test_md_to_html(runner, "&#55295;", "<p>\xED\x9F\xBF</p>\n",
+ "Valid numeric entity 0xD7FF");
+ test_md_to_html(runner, "&#xD800;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0xD800");
+ test_md_to_html(runner, "&#xDFFF;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0xDFFF");
+ test_md_to_html(runner, "&#57344;", "<p>\xEE\x80\x80</p>\n",
+ "Valid numeric entity 0xE000");
+ test_md_to_html(runner, "&#x10FFFF;", "<p>\xF4\x8F\xBF\xBF</p>\n",
+ "Valid numeric entity 0x10FFFF");
+ test_md_to_html(runner, "&#x110000;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0x110000");
+ test_md_to_html(runner, "&#x80000000;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0x80000000");
+ test_md_to_html(runner, "&#xFFFFFFFF;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 0xFFFFFFFF");
+ test_md_to_html(runner, "&#99999999;", "<p>" UTF8_REPL "</p>\n",
+ "Invalid numeric entity 99999999");
+
+ test_md_to_html(runner, "&#;", "<p>&amp;#;</p>\n",
+ "Min decimal entity length");
+ test_md_to_html(runner, "&#x;", "<p>&amp;#x;</p>\n",
+ "Min hexadecimal entity length");
+ test_md_to_html(runner, "&#999999999;", "<p>&amp;#999999999;</p>\n",
+ "Max decimal entity length");
+ test_md_to_html(runner, "&#x000000041;", "<p>&amp;#x000000041;</p>\n",
+ "Max hexadecimal entity length");
}
-static void
-test_safe(test_batch_runner *runner)
-{
- // Test safe mode
- static const char raw_html[] =
- "<div>\nhi\n</div>\n\n<a>hi</a>\n[link](JAVAscript:alert('hi'))\n![image](file:my.js)\n";
- char *html = cmark_markdown_to_html(raw_html,
- sizeof(raw_html) - 1,
- CMARK_OPT_DEFAULT |
- CMARK_OPT_SAFE);
- STR_EQ(runner, html, "<!-- raw HTML omitted -->\n<p><!-- raw HTML omitted -->hi<!-- raw HTML omitted -->\n<a href=\"\">link</a>\n<img src=\"\" alt=\"image\" /></p>\n",
- "input with raw HTML and dangerous links");
- free(html);
+static void test_safe(test_batch_runner *runner) {
+ // Test safe mode
+ static const char raw_html[] = "<div>\nhi\n</div>\n\n<a>hi</"
+ "a>\n[link](JAVAscript:alert('hi'))\n![image]("
+ "file:my.js)\n";
+ char *html = cmark_markdown_to_html(raw_html, sizeof(raw_html) - 1,
+ CMARK_OPT_DEFAULT | CMARK_OPT_SAFE);
+ STR_EQ(runner, html, "<!-- raw HTML omitted -->\n<p><!-- raw HTML omitted "
+ "-->hi<!-- raw HTML omitted -->\n<a "
+ "href=\"\">link</a>\n<img src=\"\" alt=\"image\" "
+ "/></p>\n",
+ "input with raw HTML and dangerous links");
+ free(html);
}
-static void
-test_md_to_html(test_batch_runner *runner, const char *markdown,
- const char *expected_html, const char *msg)
-{
- char *html = cmark_markdown_to_html(markdown, strlen(markdown),
- CMARK_OPT_VALIDATE_UTF8);
- STR_EQ(runner, html, expected_html, msg);
- free(html);
+static void test_md_to_html(test_batch_runner *runner, const char *markdown,
+ const char *expected_html, const char *msg) {
+ char *html = cmark_markdown_to_html(markdown, strlen(markdown),
+ CMARK_OPT_VALIDATE_UTF8);
+ STR_EQ(runner, html, expected_html, msg);
+ free(html);
}
int main() {
- int retval;
- test_batch_runner *runner = test_batch_runner_new();
-
- version(runner);
- constructor(runner);
- accessors(runner);
- node_check(runner);
- iterator(runner);
- iterator_delete(runner);
- create_tree(runner);
- hierarchy(runner);
- parser(runner);
- render_html(runner);
- utf8(runner);
- line_endings(runner);
- numeric_entities(runner);
- test_cplusplus(runner);
- test_safe(runner);
-
- test_print_summary(runner);
- retval = test_ok(runner) ? 0 : 1;
- free(runner);
-
- return retval;
+ int retval;
+ test_batch_runner *runner = test_batch_runner_new();
+
+ version(runner);
+ constructor(runner);
+ accessors(runner);
+ node_check(runner);
+ iterator(runner);
+ iterator_delete(runner);
+ create_tree(runner);
+ custom_nodes(runner);
+ hierarchy(runner);
+ parser(runner);
+ render_html(runner);
+ render_xml(runner);
+ render_man(runner);
+ render_latex(runner);
+ render_commonmark(runner);
+ utf8(runner);
+ line_endings(runner);
+ numeric_entities(runner);
+ test_cplusplus(runner);
+ test_safe(runner);
+
+ test_print_summary(runner);
+ retval = test_ok(runner) ? 0 : 1;
+ free(runner);
+
+ return retval;
}
diff --git a/changelog.txt b/changelog.txt
index 5c55f35..1deee77 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,142 @@
+[0.24.1]
+
+ * Commonmark renderer:
+ + Use HTML comment, not two blank lines, to separate a list
+ item from a following code block or list. This makes the
+ output more portable, since the "two blank lines" rule is
+ unique to CommonMark. Also, it allows us to break out of
+ a sublist without breaking out of all levels of nesting.
+ + `is_autolink` - handle case where link has no children,
+ which previously caused a segfault.
+ + Use 4-space indent for bullet lists, for increased portability.
+ + Use 2-space + newline for line break for increased portability (#90).
+ + Improved punctuation escaping. Previously all `)` and
+ `.` characters after digits were escaped; now they are
+ only escaped if they are genuinely in a position where
+ they'd cause a list item. This is achieved by changes in
+ `render.c`: (a) `renderer->begin_content` is only set to
+ false after a string of digits at the beginning of the
+ line, and (b) we never break a line before a digit.
+ Also, `begin_content` is properly initialized to true.
+ * Handle NULL root in `consolidate_text_nodes`.
+
+[0.24.0]
+
+ * [API change] Added `cmark_node_replace(oldnode, newnode)`.
+ * Updated spec.txt to 0.24.
+ * Fixed edge case with escaped parens in link destination (#97).
+ This was also checked against the #82 case with asan.
+ * Removed unnecessary check for `fenced` in `cmark_render_html`.
+ It's sufficient to check that the info string is empty.
+ Indeed, those who use the API may well create a code block
+ with an info string without explicitly setting `fenced`.
+ * Updated format of `test/smart_punct.txt`.
+ * Updated `test/spec.txt`, `test/smart_punct.txt`, and
+ `spec_tests.py` to new format.
+ * Fixed `get_containing_block` logic in `src/commonmark.c`.
+ This did not allow for the possibility that a node might have no
+ containing block, causing the commonmark renderer to segfault if
+ passed an inline node with no block parent.
+ * Fixed string representations of `CUSTOM_BLOCK`,
+ `CUSTOM_INLINE`. The old versions `raw_inline` and
+ `raw_block` were being used, and this led to incorrect xml output.
+ * Use default opts in python sample wrapper.
+ * Allow multiline setext header content, as per spec.
+ * Don't allow spaces in link destinations, even with pointy brackets.
+ Conforms to latest change in spec.
+ * Updated `scheme` scanner according to spec change. We no longer use
+ a whitelist of valid schemes.
+ * Allow any kind of nodes as children of `CUSTOM_BLOCK` (#96).
+ * `cmark.h`: moved typedefs for iterator into iterator section.
+ This just moves some code around so it makes more sense
+ to read, and in the man page.
+ * Fixed `make_man_page.py` so it includes typedefs again.
+
+[0.23.0]
+
+ * [API change] Added `CUSTOM_BLOCK` and `CUSTOM_INLINE` node types.
+ They are never generated by the parser, and do not correspond
+ to CommonMark elements. They are designed to be inserted by
+ filters that postprocess the AST. For example, a filter might
+ convert specially marked code blocks to svg diagrams in HTML
+ and tikz diagrams in LaTeX, passing these through to the renderer
+ as a `CUSTOM_BLOCK`. These nodes can have children, but they
+ also have literal text to be printed by the renderer "on enter"
+ and "on exit." Added `cmark_node_get_on_enter`,
+ `cmark_node_set_on_enter`, `cmark_node_get_on_exit`,
+ `cmark_node_set_on_exit` to API.
+ * [API change] Rename `NODE_HTML` -> `NODE_HTML_BLOCK`,
+ `NODE_INLINE_HTML` -> `NODE_HTML_INLINE`. Define aliases
+ so the old names still work, for backwards compatibility.
+ * [API change] Rename `CMARK_NODE_HEADER` -> `CMARK_NODE_HEADING`.
+ Note that for backwards compatibility, we have defined aliases:
+ `CMARK_NODE_HEADER` = `CMARK_NODE_HEADING`,
+ `cmark_node_get_header_level` = `cmark_node_get_heading_level`, and
+ `cmark_node_set_header_level` = `cmark_node_set_heading_level`.
+ * [API change] Rename `CMARK_NODE_HRULE` -> `CMARK_NODE_THEMATIC_BREAK`.
+ Defined the former as the latter for backwards compatibility.
+ * Don't allow space between link text and link label in a reference link
+ (spec change).
+ * Separate parsing and rendering opts in `cmark.h` (#88).
+ This change also changes some of these constants' numerical values,
+ but nothing should change in the API if you use the constants
+ themselves. It should now be clear in the man page which
+ options affect parsing and which affect rendering.
+ * xml renderer - Added xmlns attribute to document node (jgm/CommonMark#87).
+ * Commonmark renderer: ensure html blocks surrounded by blanks.
+ Otherwise we get failures of roundtrip tests.
+ * Commonmark renderer: ensure that literal characters get escaped
+ when they're at the beginning of a block, e.g. `> \- foo`.
+ * LaTeX renderer - better handling of internal links.
+ Now we render `[foo](#bar)` as `\protect\hyperlink{bar}{foo}`.
+ * Check for NULL pointer in _scan_at (#81).
+ * `Makefile.nmake`: be more robust when cmake is missing. Previously,
+ when cmake was missing, the build dir would be created anyway, and
+ subsequent attempts (even with cmake) would fail, because cmake would
+ not be run. Depending on `build/CMakeFiles` is more robust -- this won't
+ be created unless cmake is run. Partially addresses #85.
+ * Fixed DOCTYPE in xml output.
+ * commonmark.c: fix `size_t` to `int`. This fixes an MSVC warning
+ "conversion from 'size_t' to 'int', possible loss of data" (Kevin Wojniak).
+ * Correct string length in `cmark_parse_document` example (Lee Jeffery).
+ * Fix non-ASCII end-of-line character check (andyuhnak).
+ * Fix "declaration shadows a local variable" (Kevin Wojniak).
+ * Install static library (jgm/CommonMark#381).
+ * Fix warnings about dropping const qualifier (Kevin Wojniak).
+ * Use full (unabbreviated) versions of constants (`CMARK_...`).
+ * Removed outdated targets from Makefile.
+ * Removed need for sudo in `make bench`.
+ * Improved benchmark. Use longer test, since `time` has limited resolution.
+ * Removed `bench.h` and timing calls in `main.c`.
+ * Updated API docs; getters return empty strings if not set
+ rather than NULL, as previously documented.
+ * Added api_tests for custom nodes.
+ * Made roundtrip test part of the test suite run by cmake.
+ * Regenerate `scanners.c` using re2c 0.15.3.
+ * Adjusted scanner for link url. This fixes a heap buffer overflow (#82).
+ * Added version number (1.0) to XML namespace. We don't guarantee
+ stability in this until 1.0 is actually released, however.
+ * Removed obsolete `TIMER` macro.
+ * Make `LIB_INSTALL_DIR` configurable (Mathieu Bridon, #79).
+ * Removed out-of-date luajit wrapper.
+ * Use `input`, not `parser->curline` to determine last line length.
+ * Small optimizations in `_scan_at`.
+ * Replaced hard-coded 4 with `TAB_STOP`.
+ * Have `make format` reformat api tests as well.
+ * Added api tests for man, latex, commonmark, and xml renderers (#51).
+ * render.c: added `begin_content` field. This is like `begin_line` except
+ that it doesn't trigger production of the prefix. So it can be set
+ after an initial prefix (say `> `) is printed by the renderer, and
+ consulted in determining whether to escape content that has a special
+ meaning at the beginning of a line. Used in the commonmark renderer.
+ * Python 3.5 compatibility: don't require HTMLParseError (Zhiming Wang).
+ HTMLParseError was removed in Python 3.5. Since it could never be thrown
+ in Python 3.5+, we simply define a placeholder when HTMLParseError
+ cannot be imported.
+ * Set `convert_charrefs=False` in `normalize.py` (#83). This defeats the
+ new default as of python 3.5, and allows the script to work with python
+ 3.5.
+
[0.22.0]
* Removed `pre` from blocktags scanner. `pre` is handled separately
diff --git a/man/make_man_page.py b/man/make_man_page.py
index c7060e7..4b49dbd 100644
--- a/man/make_man_page.py
+++ b/man/make_man_page.py
@@ -83,9 +83,11 @@ with open(sourcefile, 'r') as cmarkh:
state = 'default'
elif typedef and typedef_end_re.match(line):
typedef = False
+ elif typedef_start_re.match(line):
+ typedef = True
+ state = 'signature'
elif state == 'man':
state = 'signature'
- typedef = typedef_start_re.match(line)
# handle line
if state == 'man':
diff --git a/man/man3/cmark.3 b/man/man3/cmark.3
index 26c0d89..33f152b 100644
--- a/man/man3/cmark.3
+++ b/man/man3/cmark.3
@@ -1,4 +1,4 @@
-.TH cmark 3 "October 28, 2015" "LOCAL" "Library Functions Manual"
+.TH cmark 3 "January 11, 2016" "LOCAL" "Library Functions Manual"
.SH
NAME
.PP
@@ -20,6 +20,80 @@ null\-terminated, UTF\-8\-encoded string.
.SS
Node Structure
+.PP
+.nf
+\fC
+.RS 0n
+typedef enum {
+ /* Error status */
+ CMARK_NODE_NONE,
+
+ /* Block */
+ CMARK_NODE_DOCUMENT,
+ CMARK_NODE_BLOCK_QUOTE,
+ CMARK_NODE_LIST,
+ CMARK_NODE_ITEM,
+ CMARK_NODE_CODE_BLOCK,
+ CMARK_NODE_HTML_BLOCK,
+ CMARK_NODE_CUSTOM_BLOCK,
+ CMARK_NODE_PARAGRAPH,
+ CMARK_NODE_HEADING,
+ CMARK_NODE_THEMATIC_BREAK,
+
+ CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
+ CMARK_NODE_LAST_BLOCK = CMARK_NODE_THEMATIC_BREAK,
+
+ /* Inline */
+ CMARK_NODE_TEXT,
+ CMARK_NODE_SOFTBREAK,
+ CMARK_NODE_LINEBREAK,
+ CMARK_NODE_CODE,
+ CMARK_NODE_HTML_INLINE,
+ CMARK_NODE_CUSTOM_INLINE,
+ CMARK_NODE_EMPH,
+ CMARK_NODE_STRONG,
+ CMARK_NODE_LINK,
+ CMARK_NODE_IMAGE,
+
+ CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,
+ CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
+} cmark_node_type;
+.RE
+\f[]
+.fi
+
+
+
+.PP
+.nf
+\fC
+.RS 0n
+typedef enum {
+ CMARK_NO_LIST,
+ CMARK_BULLET_LIST,
+ CMARK_ORDERED_LIST
+} cmark_list_type;
+.RE
+\f[]
+.fi
+
+
+
+.PP
+.nf
+\fC
+.RS 0n
+typedef enum {
+ CMARK_NO_DELIM,
+ CMARK_PERIOD_DELIM,
+ CMARK_PAREN_DELIM
+} cmark_delim_type;
+.RE
+\f[]
+.fi
+
+
+
.SS
Creating and Destroying Nodes
@@ -88,7 +162,7 @@ of \f[C]CMARK_EVENT_EXIT\f[]). The iterator will return
natural application is an HTML renderer, where an \f[C]ENTER\f[] event
outputs an open tag and an \f[C]EXIT\f[] event outputs a close tag. An
iterator might also be used to transform an AST in some systematic way,
-for example, turning all level\-3 headers into regular paragraphs.
+for example, turning all level\-3 headings into regular paragraphs.
.IP
.nf
\f[C]
@@ -110,9 +184,9 @@ usage_example(cmark_node *root) {
Iterators will never return \f[C]EXIT\f[] events for leaf nodes, which
are nodes of type:
.IP \[bu] 2
-CMARK_NODE_HTML
+CMARK_NODE_HTML_BLOCK
.IP \[bu] 2
-CMARK_NODE_HRULE
+CMARK_NODE_THEMATIC_BREAK
.IP \[bu] 2
CMARK_NODE_CODE_BLOCK
.IP \[bu] 2
@@ -124,12 +198,28 @@ CMARK_NODE_LINEBREAK
.IP \[bu] 2
CMARK_NODE_CODE
.IP \[bu] 2
-CMARK_NODE_INLINE_HTML
+CMARK_NODE_HTML_INLINE
.PP
Nodes must only be modified after an \f[C]EXIT\f[] event, or an
\f[C]ENTER\f[] event for leaf nodes.
.PP
+.nf
+\fC
+.RS 0n
+typedef enum {
+ CMARK_EVENT_NONE,
+ CMARK_EVENT_DONE,
+ CMARK_EVENT_ENTER,
+ CMARK_EVENT_EXIT
+} cmark_event_type;
+.RE
+\f[]
+.fi
+
+
+
+.PP
\fIcmark_iter *\f[] \fBcmark_iter_new\f[](\fIcmark_node *root\f[])
.PP
@@ -210,7 +300,8 @@ of the type, or \f[C]"<unknown>"\f[].
\fIconst char *\f[] \fBcmark_node_get_literal\f[](\fIcmark_node *node\f[])
.PP
-Returns the string contents of \f[I]node\f[], or NULL if none.
+Returns the string contents of \f[I]node\f[], or an empty string if none
+is set.
.PP
\fIint\f[] \fBcmark_node_set_literal\f[](\fIcmark_node *node\f[], \fIconst char *content\f[])
@@ -220,17 +311,17 @@ Sets the string contents of \f[I]node\f[]. Returns 1 on success, 0 on
failure.
.PP
-\fIint\f[] \fBcmark_node_get_header_level\f[](\fIcmark_node *node\f[])
+\fIint\f[] \fBcmark_node_get_heading_level\f[](\fIcmark_node *node\f[])
.PP
-Returns the header level of \f[I]node\f[], or 0 if \f[I]node\f[] is not
-a header.
+Returns the heading level of \f[I]node\f[], or 0 if \f[I]node\f[] is not
+a heading.
.PP
-\fIint\f[] \fBcmark_node_set_header_level\f[](\fIcmark_node *node\f[], \fIint level\f[])
+\fIint\f[] \fBcmark_node_set_heading_level\f[](\fIcmark_node *node\f[], \fIint level\f[])
.PP
-Sets the header level of \f[I]node\f[], returning 1 on success and 0 on
+Sets the heading level of \f[I]node\f[], returning 1 on success and 0 on
error.
.PP
@@ -292,7 +383,7 @@ failure.
\fIconst char *\f[] \fBcmark_node_get_fence_info\f[](\fIcmark_node *node\f[])
.PP
-Returns the info string from a fenced code block, or NULL if none.
+Returns the info string from a fenced code block.
.PP
\fIint\f[] \fBcmark_node_set_fence_info\f[](\fIcmark_node *node\f[], \fIconst char *info\f[])
@@ -305,7 +396,8 @@ Sets the info string in a fenced code block, returning 1 on success and
\fIconst char *\f[] \fBcmark_node_get_url\f[](\fIcmark_node *node\f[])
.PP
-Gets the URL of a link or image \f[I]node\f[], or NULL if none.
+Returns the URL of a link or image \f[I]node\f[], or an empty string if
+no URL is set.
.PP
\fIint\f[] \fBcmark_node_set_url\f[](\fIcmark_node *node\f[], \fIconst char *url\f[])
@@ -318,7 +410,8 @@ on failure.
\fIconst char *\f[] \fBcmark_node_get_title\f[](\fIcmark_node *node\f[])
.PP
-Gets the title of a link or image \f[I]node\f[], or NULL if none.
+Returns the title of a link or image \f[I]node\f[], or an empty string
+if no title is set.
.PP
\fIint\f[] \fBcmark_node_set_title\f[](\fIcmark_node *node\f[], \fIconst char *title\f[])
@@ -328,6 +421,36 @@ Sets the title of a link or image \f[I]node\f[]. Returns 1 on success, 0
on failure.
.PP
+\fIconst char *\f[] \fBcmark_node_get_on_enter\f[](\fIcmark_node *node\f[])
+
+.PP
+Returns the literal \[lq]on enter\[rq] text for a custom \f[I]node\f[],
+or an empty string if no on_enter is set.
+
+.PP
+\fIint\f[] \fBcmark_node_set_on_enter\f[](\fIcmark_node *node\f[], \fIconst char *on_enter\f[])
+
+.PP
+Sets the literal text to render \[lq]on enter\[rq] for a custom
+\f[I]node\f[]. Any children of the node will be rendered after this
+text. Returns 1 on success 0 on failure.
+
+.PP
+\fIconst char *\f[] \fBcmark_node_get_on_exit\f[](\fIcmark_node *node\f[])
+
+.PP
+Returns the literal \[lq]on exit\[rq] text for a custom \f[I]node\f[],
+or an empty string if no on_exit is set.
+
+.PP
+\fIint\f[] \fBcmark_node_set_on_exit\f[](\fIcmark_node *node\f[], \fIconst char *on_exit\f[])
+
+.PP
+Sets the literal text to render \[lq]on exit\[rq] for a custom
+\f[I]node\f[]. Any children of the node will be rendered before this
+text. Returns 1 on success 0 on failure.
+
+.PP
\fIint\f[] \fBcmark_node_get_start_line\f[](\fIcmark_node *node\f[])
.PP
@@ -376,6 +499,14 @@ Inserts \f[I]sibling\f[] after \f[I]node\f[]. Returns 1 on success, 0 on
failure.
.PP
+\fIint\f[] \fBcmark_node_replace\f[](\fIcmark_node *oldnode\f[], \fIcmark_node *newnode\f[])
+
+.PP
+Replaces \f[I]oldnode\f[] with \f[I]newnode\f[] and unlinks
+\f[I]oldnode\f[] (but does not free its memory). Returns 1 on success, 0
+on failure.
+
+.PP
\fIint\f[] \fBcmark_node_prepend_child\f[](\fIcmark_node *node\f[], \fIcmark_node *child\f[])
.PP
@@ -496,6 +627,9 @@ Render a \f[I]node\f[] tree as a commonmark document.
.PP
Render a \f[I]node\f[] tree as a LaTeX document.
+.SS
+Options
+
.PP
.nf
\fC
@@ -506,13 +640,16 @@ Render a \f[I]node\f[] tree as a LaTeX document.
.fi
.PP
-Default writer options.
+Default options.
+
+.SS
+Options affecting rendering
.PP
.nf
\fC
.RS 0n
-#define CMARK_OPT_SOURCEPOS 1
+#define CMARK_OPT_SOURCEPOS (1 << 1)
.RE
\f[]
.fi
@@ -524,7 +661,7 @@ Include a \f[C]data\-sourcepos\f[] attribute on all block elements.
.nf
\fC
.RS 0n
-#define CMARK_OPT_HARDBREAKS 2
+#define CMARK_OPT_HARDBREAKS (1 << 2)
.RE
\f[]
.fi
@@ -536,32 +673,38 @@ Render \f[C]softbreak\f[] elements as hard line breaks.
.nf
\fC
.RS 0n
-#define CMARK_OPT_NORMALIZE 4
+#define CMARK_OPT_SAFE (1 << 3)
.RE
\f[]
.fi
.PP
-Normalize tree by consolidating adjacent text nodes.
+Suppress raw HTML and unsafe links (\f[C]javascript:\f[],
+\f[C]vbscript:\f[], \f[C]file:\f[], and \f[C]data:\f[], except for
+\f[C]image/png\f[], \f[C]image/gif\f[], \f[C]image/jpeg\f[], or
+\f[C]image/webp\f[] mime types). Raw HTML is replaced by a placeholder
+HTML comment. Unsafe links are replaced by empty strings.
+
+.SS
+Options affecting parsing
.PP
.nf
\fC
.RS 0n
-#define CMARK_OPT_SMART 8
+#define CMARK_OPT_NORMALIZE (1 << 8)
.RE
\f[]
.fi
.PP
-Convert straight quotes to curly, \[em] to em dashes, \[en] to en
-dashes.
+Normalize tree by consolidating adjacent text nodes.
.PP
.nf
\fC
.RS 0n
-#define CMARK_OPT_VALIDATE_UTF8 16
+#define CMARK_OPT_VALIDATE_UTF8 (1 << 9)
.RE
\f[]
.fi
@@ -574,17 +717,14 @@ with the replacement character U+FFFD.
.nf
\fC
.RS 0n
-#define CMARK_OPT_SAFE 32
+#define CMARK_OPT_SMART (1 << 10)
.RE
\f[]
.fi
.PP
-Suppress raw HTML and unsafe links (\f[C]javascript:\f[],
-\f[C]vbscript:\f[], \f[C]file:\f[], and \f[C]data:\f[], except for
-\f[C]image/png\f[], \f[C]image/gif\f[], \f[C]image/jpeg\f[], or
-\f[C]image/webp\f[] mime types). Raw HTML is replaced by a placeholder
-HTML comment. Unsafe links are replaced by empty strings.
+Convert straight quotes to curly, \[em] to em dashes, \[en] to en
+dashes.
.SS
Version information
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f619453..386bfe8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,7 +9,6 @@ set(HEADERS
iterator.h
chunk.h
references.h
- bench.h
utf8.h
scanners.h
inlines.h
@@ -47,6 +46,15 @@ set(PROGRAM_SOURCES
main.c
)
+# We make LIB_INSTALL_DIR configurable rather than
+# hard-coding lib, because on some OSes different locations
+# are used for different architectures (e.g. /usr/lib64 on
+# 64-bit Fedora).
+if(NOT LIB_INSTALL_DIR)
+ set(LIB_INSTALL_DIR "lib" CACHE STRING
+ "Set the installation directory for libraries." FORCE)
+endif(NOT LIB_INSTALL_DIR)
+
include_directories(. ${CMAKE_CURRENT_BINARY_DIR})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmark_version.h.in
@@ -55,7 +63,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmark_version.h.in
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcmark.pc.in
${CMAKE_CURRENT_BINARY_DIR}/libcmark.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcmark.pc
- DESTINATION lib/pkgconfig)
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
include (GenerateExportHeader)
@@ -117,9 +125,10 @@ endif(MSVC)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
include (InstallRequiredSystemLibraries)
-install(TARGETS ${PROGRAM} ${LIBRARY}
+install(TARGETS ${PROGRAM} ${LIBRARY} ${STATICLIBRARY}
RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
)
install(FILES
@@ -165,10 +174,6 @@ if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /TP")
endif()
-if($ENV{TIMER})
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTIMER=1")
-endif($ENV{TIMER})
-
if(CMAKE_BUILD_TYPE STREQUAL "Ubsan")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
endif()
diff --git a/src/bench.h b/src/bench.h
deleted file mode 100644
index 744dea3..0000000
--- a/src/bench.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef CMARK_BENCH_H
-#define CMARK_BENCH_H
-
-#include <stdio.h>
-#include <time.h>
-
-#ifdef TIMER
-float _cmark_start_time;
-float _cmark_end_time;
-float _cmark_save_time;
-
-#define start_timer() \
- _cmark_save_time = _cmark_start_time; \
- _cmark_start_time = (float)clock() / CLOCKS_PER_SEC
-
-#define end_timer(M) \
- _cmark_end_time = (float)clock() / CLOCKS_PER_SEC; \
- fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, __LINE__, \
- (_cmark_end_time - _cmark_start_time) * 1000000); \
- _cmark_start_time = _cmark_save_time;
-
-#else
-#define start_timer()
-#define end_timer(M)
-#endif
-
-#endif
diff --git a/src/blocks.c b/src/blocks.c
index 49ac273..9f41e1f 100755..100644
--- a/src/blocks.c
+++ b/src/blocks.c
@@ -48,7 +48,7 @@ static cmark_node *make_block(cmark_node_type tag, int start_line,
// Create a root document node.
static cmark_node *make_document() {
- cmark_node *e = make_block(NODE_DOCUMENT, 1, 1);
+ cmark_node *e = make_block(CMARK_NODE_DOCUMENT, 1, 1);
return e;
}
@@ -112,14 +112,16 @@ static bool is_blank(cmark_strbuf *s, bufsize_t offset) {
static inline bool can_contain(cmark_node_type parent_type,
cmark_node_type child_type) {
- return (parent_type == NODE_DOCUMENT || parent_type == NODE_BLOCK_QUOTE ||
- parent_type == NODE_ITEM ||
- (parent_type == NODE_LIST && child_type == NODE_ITEM));
+ return (parent_type == CMARK_NODE_DOCUMENT ||
+ parent_type == CMARK_NODE_BLOCK_QUOTE ||
+ parent_type == CMARK_NODE_ITEM ||
+ (parent_type == CMARK_NODE_LIST && child_type == CMARK_NODE_ITEM));
}
static inline bool accepts_lines(cmark_node_type block_type) {
- return (block_type == NODE_PARAGRAPH || block_type == NODE_HEADER ||
- block_type == NODE_CODE_BLOCK);
+ return (block_type == CMARK_NODE_PARAGRAPH ||
+ block_type == CMARK_NODE_HEADING ||
+ block_type == CMARK_NODE_CODE_BLOCK);
}
static void add_line(cmark_node *node, cmark_chunk *ch, bufsize_t offset) {
@@ -162,7 +164,7 @@ static bool ends_with_blank_line(cmark_node *node) {
if (cur->last_line_blank) {
return true;
}
- if (cur->type == NODE_LIST || cur->type == NODE_ITEM) {
+ if (cur->type == CMARK_NODE_LIST || cur->type == CMARK_NODE_ITEM) {
cur = cur->last_child;
} else {
cur = NULL;
@@ -176,7 +178,7 @@ static int break_out_of_lists(cmark_parser *parser, cmark_node **bptr) {
cmark_node *container = *bptr;
cmark_node *b = parser->root;
// find first containing NODE_LIST:
- while (b && b->type != NODE_LIST) {
+ while (b && b->type != CMARK_NODE_LIST) {
b = b->last_child;
}
if (b) {
@@ -204,9 +206,9 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) {
// end of input - line number has not been incremented
b->end_line = parser->line_number;
b->end_column = parser->last_line_length;
- } else if (b->type == NODE_DOCUMENT ||
- (b->type == NODE_CODE_BLOCK && b->as.code.fenced) ||
- (b->type == NODE_HEADER && b->as.header.setext)) {
+ } else if (b->type == CMARK_NODE_DOCUMENT ||
+ (b->type == CMARK_NODE_CODE_BLOCK && b->as.code.fenced) ||
+ (b->type == CMARK_NODE_HEADING && b->as.heading.setext)) {
b->end_line = parser->line_number;
b->end_column = parser->curline->size;
if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n')
@@ -219,7 +221,7 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) {
}
switch (b->type) {
- case NODE_PARAGRAPH:
+ case CMARK_NODE_PARAGRAPH:
while (cmark_strbuf_at(&b->string_content, 0) == '[' &&
(pos = cmark_parse_reference_inline(&b->string_content,
parser->refmap))) {
@@ -232,7 +234,7 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) {
}
break;
- case NODE_CODE_BLOCK:
+ case CMARK_NODE_CODE_BLOCK:
if (!b->as.code.fenced) { // indented code
remove_trailing_blank_lines(&b->string_content);
cmark_strbuf_putc(&b->string_content, '\n');
@@ -260,11 +262,11 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) {
b->as.code.literal = cmark_chunk_buf_detach(&b->string_content);
break;
- case NODE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
b->as.literal = cmark_chunk_buf_detach(&b->string_content);
break;
- case NODE_LIST: // determine tight/loose status
+ case CMARK_NODE_LIST: // determine tight/loose status
b->as.list.tight = true; // tight by default
item = b->first_child;
@@ -334,7 +336,8 @@ static void process_inlines(cmark_node *root, cmark_reference_map *refmap,
while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
cur = cmark_iter_get_node(iter);
if (ev_type == CMARK_EVENT_ENTER) {
- if (cur->type == NODE_PARAGRAPH || cur->type == NODE_HEADER) {
+ if (cur->type == CMARK_NODE_PARAGRAPH ||
+ cur->type == CMARK_NODE_HEADING) {
cmark_parse_inlines(cur, refmap, options);
}
}
@@ -569,7 +572,7 @@ static void S_advance_offset(cmark_parser *parser, cmark_chunk *input,
int chars_to_tab;
while (count > 0 && (c = peek_at(input, parser->offset))) {
if (c == '\t') {
- chars_to_tab = 4 - (parser->column % TAB_STOP);
+ chars_to_tab = TAB_STOP - (parser->column % TAB_STOP);
parser->column += chars_to_tab;
parser->offset += 1;
count -= (columns ? chars_to_tab : 1);
@@ -601,7 +604,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
}
// ensure line ends with a newline:
if (bytes == 0 || !S_is_line_end_char(parser->curline->ptr[bytes - 1])) {
- cmark_strbuf_putc(parser->curline, '\n');
+ cmark_strbuf_putc(parser->curline, '\n');
}
parser->offset = 0;
parser->column = 0;
@@ -623,7 +626,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
S_find_first_nonspace(parser, &input);
- if (container->type == NODE_BLOCK_QUOTE) {
+ if (container->type == CMARK_NODE_BLOCK_QUOTE) {
matched =
parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>';
if (matched) {
@@ -634,7 +637,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
all_matched = false;
}
- } else if (container->type == NODE_ITEM) {
+ } else if (container->type == CMARK_NODE_ITEM) {
if (parser->indent >=
container->as.list.marker_offset + container->as.list.padding) {
S_advance_offset(parser, &input, container->as.list.marker_offset +
@@ -650,7 +653,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
all_matched = false;
}
- } else if (container->type == NODE_CODE_BLOCK) {
+ } else if (container->type == CMARK_NODE_CODE_BLOCK) {
if (!container->as.code.fenced) { // indented
if (parser->indent >= CODE_INDENT) {
@@ -683,12 +686,12 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
}
}
}
- } else if (container->type == NODE_HEADER) {
+ } else if (container->type == CMARK_NODE_HEADING) {
- // a header can never contain more than one line
+ // a heading can never contain more than one line
all_matched = false;
- } else if (container->type == NODE_HTML) {
+ } else if (container->type == CMARK_NODE_HTML_BLOCK) {
switch (container->as.html_block_type) {
case 1:
@@ -710,7 +713,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
exit(1);
}
- } else if (container->type == NODE_PARAGRAPH) {
+ } else if (container->type == CMARK_NODE_PARAGRAPH) {
if (parser->blank) {
all_matched = false;
@@ -730,9 +733,10 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
break_out_of_lists(parser, &container);
}
- maybe_lazy = parser->current->type == NODE_PARAGRAPH;
+ maybe_lazy = parser->current->type == CMARK_NODE_PARAGRAPH;
// try new container starts:
- while (container->type != NODE_CODE_BLOCK && container->type != NODE_HTML) {
+ while (container->type != CMARK_NODE_CODE_BLOCK &&
+ container->type != CMARK_NODE_HTML_BLOCK) {
S_find_first_nonspace(parser, &input);
indented = parser->indent >= CODE_INDENT;
@@ -744,16 +748,17 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
// optional following character
if (peek_at(&input, parser->offset) == ' ')
S_advance_offset(parser, &input, 1, false);
- container =
- add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1);
+ container = add_child(parser, container, CMARK_NODE_BLOCK_QUOTE,
+ parser->offset + 1);
- } else if (!indented && (matched = scan_atx_header_start(
+ } else if (!indented && (matched = scan_atx_heading_start(
&input, parser->first_nonspace))) {
S_advance_offset(parser, &input,
parser->first_nonspace + matched - parser->offset,
false);
- container = add_child(parser, container, NODE_HEADER, parser->offset + 1);
+ container =
+ add_child(parser, container, CMARK_NODE_HEADING, parser->offset + 1);
bufsize_t hashpos =
cmark_chunk_strchr(&input, '#', parser->first_nonspace);
@@ -763,18 +768,19 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
level++;
hashpos++;
}
- container->as.header.level = level;
- container->as.header.setext = false;
+ container->as.heading.level = level;
+ container->as.heading.setext = false;
} else if (!indented && (matched = scan_open_code_fence(
&input, parser->first_nonspace))) {
- container = add_child(parser, container, NODE_CODE_BLOCK,
+ container = add_child(parser, container, CMARK_NODE_CODE_BLOCK,
parser->first_nonspace + 1);
container->as.code.fenced = true;
container->as.code.fence_char = peek_at(&input, parser->first_nonspace);
container->as.code.fence_length = matched;
- container->as.code.fence_offset = (int8_t)(parser->first_nonspace - parser->offset);
+ container->as.code.fence_offset =
+ (int8_t)(parser->first_nonspace - parser->offset);
container->as.code.info = cmark_chunk_literal("");
S_advance_offset(parser, &input,
parser->first_nonspace + matched - parser->offset,
@@ -782,41 +788,38 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
} else if (!indented && ((matched = scan_html_block_start(
&input, parser->first_nonspace)) ||
- (container->type != NODE_PARAGRAPH &&
+ (container->type != CMARK_NODE_PARAGRAPH &&
(matched = scan_html_block_start_7(
&input, parser->first_nonspace))))) {
- container =
- add_child(parser, container, NODE_HTML, parser->first_nonspace + 1);
+ container = add_child(parser, container, CMARK_NODE_HTML_BLOCK,
+ parser->first_nonspace + 1);
container->as.html_block_type = matched;
// note, we don't adjust parser->offset because the tag is part of the
// text
- } else if (!indented && container->type == NODE_PARAGRAPH &&
+ } else if (!indented && container->type == CMARK_NODE_PARAGRAPH &&
(lev =
- scan_setext_header_line(&input, parser->first_nonspace)) &&
- // check that there is only one line in the paragraph:
- (cmark_strbuf_strrchr(
- &container->string_content, '\n',
- cmark_strbuf_len(&container->string_content) - 2) < 0)) {
-
- container->type = NODE_HEADER;
- container->as.header.level = lev;
- container->as.header.setext = true;
+ scan_setext_heading_line(&input, parser->first_nonspace))) {
+
+ container->type = CMARK_NODE_HEADING;
+ container->as.heading.level = lev;
+ container->as.heading.setext = true;
S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
} else if (!indented &&
- !(container->type == NODE_PARAGRAPH && !all_matched) &&
- (matched = scan_hrule(&input, parser->first_nonspace))) {
+ !(container->type == CMARK_NODE_PARAGRAPH && !all_matched) &&
+ (matched =
+ scan_thematic_break(&input, parser->first_nonspace))) {
- // it's only now that we know the line is not part of a setext header:
- container =
- add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1);
+ // it's only now that we know the line is not part of a setext heading:
+ container = add_child(parser, container, CMARK_NODE_THEMATIC_BREAK,
+ parser->first_nonspace + 1);
S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
} else if ((matched =
parse_list_marker(&input, parser->first_nonspace, &data)) &&
- (!indented || container->type == NODE_LIST)) {
+ (!indented || container->type == CMARK_NODE_LIST)) {
// Note that we can have new list items starting with >= 4
// spaces indent, as long as the list container is still open.
@@ -845,25 +848,25 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
data->marker_offset = parser->indent;
- if (container->type != NODE_LIST ||
+ if (container->type != CMARK_NODE_LIST ||
!lists_match(&container->as.list, data)) {
- container =
- add_child(parser, container, NODE_LIST, parser->first_nonspace + 1);
+ container = add_child(parser, container, CMARK_NODE_LIST,
+ parser->first_nonspace + 1);
memcpy(&container->as.list, data, sizeof(*data));
}
// add the list item
- container =
- add_child(parser, container, NODE_ITEM, parser->first_nonspace + 1);
+ container = add_child(parser, container, CMARK_NODE_ITEM,
+ parser->first_nonspace + 1);
/* TODO: static */
memcpy(&container->as.list, data, sizeof(*data));
free(data);
} else if (indented && !maybe_lazy && !parser->blank) {
S_advance_offset(parser, &input, CODE_INDENT, true);
- container =
- add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1);
+ container = add_child(parser, container, CMARK_NODE_CODE_BLOCK,
+ parser->offset + 1);
container->as.code.fenced = false;
container->as.code.fence_char = 0;
container->as.code.fence_length = 0;
@@ -895,11 +898,12 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
// lists or breaking out of lists. we also don't set last_line_blank
// on an empty list item.
container->last_line_blank =
- (parser->blank && container->type != NODE_BLOCK_QUOTE &&
- container->type != NODE_HEADER &&
- container->type != NODE_HRULE &&
- !(container->type == NODE_CODE_BLOCK && container->as.code.fenced) &&
- !(container->type == NODE_ITEM && container->first_child == NULL &&
+ (parser->blank && container->type != CMARK_NODE_BLOCK_QUOTE &&
+ container->type != CMARK_NODE_HEADING &&
+ container->type != CMARK_NODE_THEMATIC_BREAK &&
+ !(container->type == CMARK_NODE_CODE_BLOCK &&
+ container->as.code.fenced) &&
+ !(container->type == CMARK_NODE_ITEM && container->first_child == NULL &&
container->start_line == parser->line_number));
cmark_node *cont = container;
@@ -910,7 +914,7 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
if (parser->current != last_matched_container &&
container == last_matched_container && !parser->blank &&
- parser->current->type == NODE_PARAGRAPH &&
+ parser->current->type == CMARK_NODE_PARAGRAPH &&
cmark_strbuf_len(&parser->current->string_content) > 0) {
add_line(parser->current, &input, parser->offset);
@@ -923,11 +927,11 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
assert(parser->current != NULL);
}
- if (container->type == NODE_CODE_BLOCK) {
+ if (container->type == CMARK_NODE_CODE_BLOCK) {
add_line(container, &input, parser->offset);
- } else if (container->type == NODE_HTML) {
+ } else if (container->type == CMARK_NODE_HTML_BLOCK) {
add_line(container, &input, parser->offset);
@@ -974,15 +978,15 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
} else if (accepts_lines(container->type)) {
- if (container->type == NODE_HEADER &&
- container->as.header.setext == false) {
+ if (container->type == CMARK_NODE_HEADING &&
+ container->as.heading.setext == false) {
chop_trailing_hashtags(&input);
}
add_line(container, &input, parser->first_nonspace);
} else {
// create paragraph container for line
- container = add_child(parser, container, NODE_PARAGRAPH,
+ container = add_child(parser, container, CMARK_NODE_PARAGRAPH,
parser->first_nonspace + 1);
add_line(container, &input, parser->first_nonspace);
}
@@ -990,12 +994,12 @@ static void S_process_line(cmark_parser *parser, const unsigned char *buffer,
parser->current = container;
}
finished:
- parser->last_line_length = parser->curline->size;
+ parser->last_line_length = input.len;
if (parser->last_line_length &&
- parser->curline->ptr[parser->last_line_length - 1] == '\n')
+ input.data[parser->last_line_length - 1] == '\n')
parser->last_line_length -= 1;
if (parser->last_line_length &&
- parser->curline->ptr[parser->last_line_length - 1] == '\r')
+ input.data[parser->last_line_length - 1] == '\r')
parser->last_line_length -= 1;
cmark_strbuf_clear(parser->curline);
diff --git a/src/chunk.h b/src/chunk.h
index a8a11f6..7007492 100644
--- a/src/chunk.h
+++ b/src/chunk.h
@@ -48,8 +48,8 @@ static CMARK_INLINE void cmark_chunk_trim(cmark_chunk *c) {
cmark_chunk_rtrim(c);
}
-static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,
- bufsize_t offset) {
+static CMARK_INLINE bufsize_t
+ cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset) {
const unsigned char *p =
(unsigned char *)memchr(ch->data + offset, c, ch->len - offset);
return p ? (bufsize_t)(p - ch->data) : ch->len;
@@ -74,8 +74,7 @@ static CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_chunk *c) {
return (char *)str;
}
-static CMARK_INLINE void
-cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
+static CMARK_INLINE void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
if (c->alloc) {
free(c->data);
}
@@ -97,9 +96,8 @@ static CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) {
return c;
}
-static CMARK_INLINE
-cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,
- bufsize_t len) {
+static CMARK_INLINE cmark_chunk
+ cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len) {
cmark_chunk c = {ch->data + pos, len, 0};
return c;
}
diff --git a/src/cmark.h b/src/cmark.h
index 79bfbc5..4fa92ca 100644
--- a/src/cmark.h
+++ b/src/cmark.h
@@ -39,20 +39,22 @@ typedef enum {
CMARK_NODE_LIST,
CMARK_NODE_ITEM,
CMARK_NODE_CODE_BLOCK,
- CMARK_NODE_HTML,
+ CMARK_NODE_HTML_BLOCK,
+ CMARK_NODE_CUSTOM_BLOCK,
CMARK_NODE_PARAGRAPH,
- CMARK_NODE_HEADER,
- CMARK_NODE_HRULE,
+ CMARK_NODE_HEADING,
+ CMARK_NODE_THEMATIC_BREAK,
CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
- CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE,
+ CMARK_NODE_LAST_BLOCK = CMARK_NODE_THEMATIC_BREAK,
/* Inline */
CMARK_NODE_TEXT,
CMARK_NODE_SOFTBREAK,
CMARK_NODE_LINEBREAK,
CMARK_NODE_CODE,
- CMARK_NODE_INLINE_HTML,
+ CMARK_NODE_HTML_INLINE,
+ CMARK_NODE_CUSTOM_INLINE,
CMARK_NODE_EMPH,
CMARK_NODE_STRONG,
CMARK_NODE_LINK,
@@ -62,6 +64,12 @@ typedef enum {
CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
} cmark_node_type;
+/* For backwards compatibility: */
+#define CMARK_NODE_HEADER CMARK_NODE_HEADING
+#define CMARK_NODE_HRULE CMARK_NODE_THEMATIC_BREAK
+#define CMARK_NODE_HTML CMARK_NODE_HTML_BLOCK
+#define CMARK_NODE_INLINE_HTML CMARK_NODE_HTML_INLINE
+
typedef enum {
CMARK_NO_LIST,
CMARK_BULLET_LIST,
@@ -78,13 +86,6 @@ typedef struct cmark_node cmark_node;
typedef struct cmark_parser cmark_parser;
typedef struct cmark_iter cmark_iter;
-typedef enum {
- CMARK_EVENT_NONE,
- CMARK_EVENT_DONE,
- CMARK_EVENT_ENTER,
- CMARK_EVENT_EXIT
-} cmark_event_type;
-
/**
* ## Creating and Destroying Nodes
*/
@@ -139,7 +140,7 @@ CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node);
* One natural application is an HTML renderer, where an `ENTER` event
* outputs an open tag and an `EXIT` event outputs a close tag.
* An iterator might also be used to transform an AST in some systematic
- * way, for example, turning all level-3 headers into regular paragraphs.
+ * way, for example, turning all level-3 headings into regular paragraphs.
*
* void
* usage_example(cmark_node *root) {
@@ -157,19 +158,26 @@ CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node);
* Iterators will never return `EXIT` events for leaf nodes, which are nodes
* of type:
*
- * * CMARK_NODE_HTML
- * * CMARK_NODE_HRULE
+ * * CMARK_NODE_HTML_BLOCK
+ * * CMARK_NODE_THEMATIC_BREAK
* * CMARK_NODE_CODE_BLOCK
* * CMARK_NODE_TEXT
* * CMARK_NODE_SOFTBREAK
* * CMARK_NODE_LINEBREAK
* * CMARK_NODE_CODE
- * * CMARK_NODE_INLINE_HTML
+ * * CMARK_NODE_HTML_INLINE
*
* Nodes must only be modified after an `EXIT` event, or an `ENTER` event for
* leaf nodes.
*/
+typedef enum {
+ CMARK_EVENT_NONE,
+ CMARK_EVENT_DONE,
+ CMARK_EVENT_ENTER,
+ CMARK_EVENT_EXIT
+} cmark_event_type;
+
/** Creates a new iterator starting at 'root'. The current node and event
* type are undefined until `cmark_iter_next` is called for the first time.
*/
@@ -233,7 +241,8 @@ CMARK_EXPORT cmark_node_type cmark_node_get_type(cmark_node *node);
CMARK_EXPORT
const char *cmark_node_get_type_string(cmark_node *node);
-/** Returns the string contents of 'node', or NULL if none.
+/** Returns the string contents of 'node', or an empty
+ string if none is set.
*/
CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node);
@@ -242,13 +251,17 @@ CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node);
*/
CMARK_EXPORT int cmark_node_set_literal(cmark_node *node, const char *content);
-/** Returns the header level of 'node', or 0 if 'node' is not a header.
+/** Returns the heading level of 'node', or 0 if 'node' is not a heading.
*/
-CMARK_EXPORT int cmark_node_get_header_level(cmark_node *node);
+CMARK_EXPORT int cmark_node_get_heading_level(cmark_node *node);
+
+/* For backwards compatibility */
+#define cmark_node_get_header_level cmark_node_get_heading_level
+#define cmark_node_set_header_level cmark_node_set_heading_level
-/** Sets the header level of 'node', returning 1 on success and 0 on error.
+/** Sets the heading level of 'node', returning 1 on success and 0 on error.
*/
-CMARK_EXPORT int cmark_node_set_header_level(cmark_node *node, int level);
+CMARK_EXPORT int cmark_node_set_heading_level(cmark_node *node, int level);
/** Returns the list type of 'node', or `CMARK_NO_LIST` if 'node'
* is not a list.
@@ -288,7 +301,7 @@ CMARK_EXPORT int cmark_node_get_list_tight(cmark_node *node);
*/
CMARK_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight);
-/** Returns the info string from a fenced code block, or NULL if none.
+/** Returns the info string from a fenced code block.
*/
CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node);
@@ -297,7 +310,8 @@ CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node);
*/
CMARK_EXPORT int cmark_node_set_fence_info(cmark_node *node, const char *info);
-/** Gets the URL of a link or image 'node', or NULL if none.
+/** Returns the URL of a link or image 'node', or an empty string
+ if no URL is set.
*/
CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node);
@@ -306,7 +320,8 @@ CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node);
*/
CMARK_EXPORT int cmark_node_set_url(cmark_node *node, const char *url);
-/** Gets the title of a link or image 'node', or NULL if none.
+/** Returns the title of a link or image 'node', or an empty
+ string if no title is set.
*/
CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node);
@@ -315,6 +330,29 @@ CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node);
*/
CMARK_EXPORT int cmark_node_set_title(cmark_node *node, const char *title);
+/** Returns the literal "on enter" text for a custom 'node', or
+ an empty string if no on_enter is set.
+ */
+CMARK_EXPORT const char *cmark_node_get_on_enter(cmark_node *node);
+
+/** Sets the literal text to render "on enter" for a custom 'node'.
+ Any children of the node will be rendered after this text.
+ Returns 1 on success 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_set_on_enter(cmark_node *node,
+ const char *on_enter);
+
+/** Returns the literal "on exit" text for a custom 'node', or
+ an empty string if no on_exit is set.
+ */
+CMARK_EXPORT const char *cmark_node_get_on_exit(cmark_node *node);
+
+/** Sets the literal text to render "on exit" for a custom 'node'.
+ Any children of the node will be rendered before this text.
+ Returns 1 on success 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_set_on_exit(cmark_node *node, const char *on_exit);
+
/** Returns the line on which 'node' begins.
*/
CMARK_EXPORT int cmark_node_get_start_line(cmark_node *node);
@@ -349,6 +387,12 @@ CMARK_EXPORT int cmark_node_insert_before(cmark_node *node,
*/
CMARK_EXPORT int cmark_node_insert_after(cmark_node *node, cmark_node *sibling);
+/** Replaces 'oldnode' with 'newnode' and unlinks 'oldnode' (but does
+ * not free its memory).
+ * Returns 1 on success, 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode);
+
/** Adds 'child' to the beginning of the children of 'node'.
* Returns 1 on success, 0 on failure.
*/
@@ -447,38 +491,50 @@ char *cmark_render_commonmark(cmark_node *root, int options, int width);
CMARK_EXPORT
char *cmark_render_latex(cmark_node *root, int options, int width);
-/** Default writer options.
+/**
+ * ## Options
+ */
+
+/** Default options.
*/
#define CMARK_OPT_DEFAULT 0
+/**
+ * ### Options affecting rendering
+ */
+
/** Include a `data-sourcepos` attribute on all block elements.
*/
-#define CMARK_OPT_SOURCEPOS 1
+#define CMARK_OPT_SOURCEPOS (1 << 1)
/** Render `softbreak` elements as hard line breaks.
*/
-#define CMARK_OPT_HARDBREAKS 2
+#define CMARK_OPT_HARDBREAKS (1 << 2)
-/** Normalize tree by consolidating adjacent text nodes.
+/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,
+ * `file:`, and `data:`, except for `image/png`, `image/gif`,
+ * `image/jpeg`, or `image/webp` mime types). Raw HTML is replaced
+ * by a placeholder HTML comment. Unsafe links are replaced by
+ * empty strings.
*/
-#define CMARK_OPT_NORMALIZE 4
+#define CMARK_OPT_SAFE (1 << 3)
-/** Convert straight quotes to curly, --- to em dashes, -- to en dashes.
+/**
+ * ### Options affecting parsing
+ */
+
+/** Normalize tree by consolidating adjacent text nodes.
*/
-#define CMARK_OPT_SMART 8
+#define CMARK_OPT_NORMALIZE (1 << 8)
/** Validate UTF-8 in the input before parsing, replacing illegal
* sequences with the replacement character U+FFFD.
*/
-#define CMARK_OPT_VALIDATE_UTF8 16
+#define CMARK_OPT_VALIDATE_UTF8 (1 << 9)
-/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,
- * `file:`, and `data:`, except for `image/png`, `image/gif`,
- * `image/jpeg`, or `image/webp` mime types). Raw HTML is replaced
- * by a placeholder HTML comment. Unsafe links are replaced by
- * empty strings.
+/** Convert straight quotes to curly, --- to em dashes, -- to en dashes.
*/
-#define CMARK_OPT_SAFE 32
+#define CMARK_OPT_SMART (1 << 10)
/**
* ## Version information
@@ -513,15 +569,19 @@ const char *cmark_version_string();
#define NODE_LIST CMARK_NODE_LIST
#define NODE_ITEM CMARK_NODE_ITEM
#define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK
-#define NODE_HTML CMARK_NODE_HTML
+#define NODE_HTML_BLOCK CMARK_NODE_HTML_BLOCK
+#define NODE_CUSTOM_BLOCK CMARK_NODE_CUSTOM_BLOCK
#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH
+#define NODE_HEADING CMARK_NODE_HEADING
#define NODE_HEADER CMARK_NODE_HEADER
+#define NODE_THEMATIC_BREAK CMARK_NODE_THEMATIC_BREAK
#define NODE_HRULE CMARK_NODE_HRULE
#define NODE_TEXT CMARK_NODE_TEXT
#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK
#define NODE_LINEBREAK CMARK_NODE_LINEBREAK
#define NODE_CODE CMARK_NODE_CODE
-#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML
+#define NODE_HTML_INLINE CMARK_NODE_HTML_INLINE
+#define NODE_CUSTOM_INLINE CMARK_NODE_CUSTOM_INLINE
#define NODE_EMPH CMARK_NODE_EMPH
#define NODE_STRONG CMARK_NODE_STRONG
#define NODE_LINK CMARK_NODE_LINK
diff --git a/src/cmark_ctype.c b/src/cmark_ctype.c
index 863c35e..c9a9b0e 100644
--- a/src/cmark_ctype.c
+++ b/src/cmark_ctype.c
@@ -4,7 +4,7 @@
/** 1 = space, 2 = punct, 3 = digit, 4 = alpha, 0 = other
*/
-static const int8_t cmark_ctype_class[256] = {
+static const uint8_t cmark_ctype_class[256] = {
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
/* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,
/* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26,17 +26,17 @@ static const int8_t cmark_ctype_class[256] = {
/**
* Returns 1 if c is a "whitespace" character as defined by the spec.
*/
-int cmark_isspace(char c) { return cmark_ctype_class[(int8_t)c] == 1; }
+int cmark_isspace(char c) { return cmark_ctype_class[(uint8_t)c] == 1; }
/**
* Returns 1 if c is an ascii punctuation character.
*/
-int cmark_ispunct(char c) { return cmark_ctype_class[(int8_t)c] == 2; }
+int cmark_ispunct(char c) { return cmark_ctype_class[(uint8_t)c] == 2; }
int cmark_isalnum(char c) {
- int8_t result;
- result = cmark_ctype_class[(int8_t)c];
+ uint8_t result;
+ result = cmark_ctype_class[(uint8_t)c];
return (result == 3 || result == 4);
}
-int cmark_isdigit(char c) { return cmark_ctype_class[(int8_t)c] == 3; }
+int cmark_isdigit(char c) { return cmark_ctype_class[(uint8_t)c] == 3; }
diff --git a/src/commonmark.c b/src/commonmark.c
index c427618..cb30601 100644
--- a/src/commonmark.c
+++ b/src/commonmark.c
@@ -23,6 +23,8 @@
static inline void outc(cmark_renderer *renderer, cmark_escaping escape,
int32_t c, unsigned char nextc) {
bool needs_escaping = false;
+ bool follows_digit = renderer->buffer->size > 0 &&
+ cmark_isdigit(renderer->buffer->ptr[renderer->buffer->size - 1]);
const size_t ENCODED_SIZE = 20;
char encoded[ENCODED_SIZE];
@@ -32,9 +34,12 @@ static inline void outc(cmark_renderer *renderer, cmark_escaping escape,
(c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' ||
c == '>' || c == '\\' || c == '`' || c == '!' ||
(c == '&' && isalpha(nextc)) || (c == '!' && nextc == '[') ||
- (renderer->begin_line && (c == '-' || c == '+' || c == '=')) ||
- ((c == '.' || c == ')') &&
- isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||
+ (renderer->begin_content && (c == '-' || c == '+' || c == '=') &&
+ // begin_content doesn't get set to false til we've passed digits
+ // at the beginning of line, so...
+ !follows_digit) ||
+ (renderer->begin_content && (c == '.' || c == ')') && follows_digit &&
+ (nextc == 0 || cmark_isspace(nextc))))) ||
(escape == URL && (c == '`' || c == '<' || c == '>' || isspace(c) ||
c == '\\' || c == ')' || c == '(')) ||
(escape == TITLE &&
@@ -122,6 +127,9 @@ static bool is_autolink(cmark_node *node) {
}
link_text = node->first_child;
+ if (link_text == NULL) {
+ return false;
+ }
cmark_consolidate_text_nodes(link_text);
realurl = (char *)url->data;
realurllen = url->len;
@@ -136,12 +144,17 @@ static bool is_autolink(cmark_node *node) {
// if node is a block node, returns node.
// otherwise returns first block-level node that is an ancestor of node.
+// if there is no block-level ancestor, returns NULL.
static cmark_node *get_containing_block(cmark_node *node) {
- while (node && (node->type < CMARK_NODE_FIRST_BLOCK ||
- node->type > CMARK_NODE_LAST_BLOCK)) {
- node = node->parent;
+ while (node) {
+ if (node->type >= CMARK_NODE_FIRST_BLOCK &&
+ node->type <= CMARK_NODE_LAST_BLOCK) {
+ return node;
+ } else {
+ node = node->parent;
+ }
}
- return node;
+ return NULL;
}
static int S_render_node(cmark_renderer *renderer, cmark_node *node,
@@ -165,10 +178,11 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {
tmp = get_containing_block(node);
renderer->in_tight_list_item =
- (tmp->type == CMARK_NODE_ITEM &&
- cmark_node_get_list_tight(tmp->parent)) ||
- (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&
- cmark_node_get_list_tight(tmp->parent->parent));
+ tmp && // tmp might be NULL if there is no containing block
+ ((tmp->type == CMARK_NODE_ITEM &&
+ cmark_node_get_list_tight(tmp->parent)) ||
+ (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&
+ cmark_node_get_list_tight(tmp->parent->parent)));
}
switch (node->type) {
@@ -178,6 +192,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
case CMARK_NODE_BLOCK_QUOTE:
if (entering) {
LIT("> ");
+ renderer->begin_content = true;
cmark_strbuf_puts(renderer->prefix, "> ");
} else {
cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2);
@@ -188,15 +203,17 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
case CMARK_NODE_LIST:
if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK ||
node->next->type == CMARK_NODE_LIST)) {
- // this ensures 2 blank lines after list,
- // if before code block or list:
- LIT("\n");
+ // this ensures that a following code block or list will be
+ // inteprereted correctly.
+ CR();
+ LIT("<!-- end list -->");
+ BLANKLINE();
}
break;
case CMARK_NODE_ITEM:
if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
- marker_width = 2;
+ marker_width = 4;
} else {
list_number = cmark_node_get_list_start(node->parent);
list_delim = cmark_node_get_list_delim(node->parent);
@@ -215,13 +232,14 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
}
if (entering) {
if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
- LIT("* ");
- cmark_strbuf_puts(renderer->prefix, " ");
+ LIT(" - ");
+ renderer->begin_content = true;
} else {
LIT(listmarker);
- for (i = marker_width; i--;) {
- cmark_strbuf_putc(renderer->prefix, ' ');
- }
+ renderer->begin_content = true;
+ }
+ for (i = marker_width; i--;) {
+ cmark_strbuf_putc(renderer->prefix, ' ');
}
} else {
cmark_strbuf_truncate(renderer->prefix,
@@ -230,12 +248,13 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
}
break;
- case CMARK_NODE_HEADER:
+ case CMARK_NODE_HEADING:
if (entering) {
- for (int i = cmark_node_get_header_level(node); i > 0; i--) {
+ for (i = cmark_node_get_heading_level(node); i > 0; i--) {
LIT("#");
}
LIT(" ");
+ renderer->begin_content = true;
renderer->no_wrap = true;
} else {
renderer->no_wrap = false;
@@ -281,13 +300,20 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
BLANKLINE();
break;
- case CMARK_NODE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
BLANKLINE();
OUT(cmark_node_get_literal(node), false, LITERAL);
BLANKLINE();
break;
- case CMARK_NODE_HRULE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ BLANKLINE();
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
+ BLANKLINE();
+ break;
+
+ case CMARK_NODE_THEMATIC_BREAK:
BLANKLINE();
LIT("-----");
BLANKLINE();
@@ -305,7 +331,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
case CMARK_NODE_LINEBREAK:
if (!(CMARK_OPT_HARDBREAKS & options)) {
- LIT("\\");
+ LIT(" ");
}
CR();
break;
@@ -337,10 +363,15 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
}
break;
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_INLINE:
OUT(cmark_node_get_literal(node), false, LITERAL);
break;
+ case CMARK_NODE_CUSTOM_INLINE:
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
+ break;
+
case CMARK_NODE_STRONG:
if (entering) {
LIT("**");
@@ -370,9 +401,9 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
if (entering) {
LIT("<");
if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) {
- LIT((char *)cmark_node_get_url(node) + 7);
+ LIT((const char *)cmark_node_get_url(node) + 7);
} else {
- LIT((char *)cmark_node_get_url(node));
+ LIT((const char *)cmark_node_get_url(node));
}
LIT(">");
// return signal to skip contents of node...
diff --git a/src/config.h.in b/src/config.h.in
index 2792313..197e97e 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -23,3 +23,38 @@
#define CMARK_INLINE inline
#endif
#endif
+
+/* snprintf and vsnprintf fallbacks for MSVC before 2015,
+ due to Valentin Milea http://stackoverflow.com/questions/2915672/
+*/
+
+#if defined(_MSC_VER) && _MSC_VER < 1900
+
+#define snprintf c99_snprintf
+#define vsnprintf c99_vsnprintf
+
+CMARK_INLINE int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap)
+{
+ int count = -1;
+
+ if (size != 0)
+ count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
+ if (count == -1)
+ count = _vscprintf(format, ap);
+
+ return count;
+}
+
+CMARK_INLINE int c99_snprintf(char *outBuf, size_t size, const char *format, ...)
+{
+ int count;
+ va_list ap;
+
+ va_start(ap, format);
+ count = c99_vsnprintf(outBuf, size, format, ap);
+ va_end(ap);
+
+ return count;
+}
+
+#endif
diff --git a/src/houdini_html_u.c b/src/houdini_html_u.c
index a2d927b..6e8d620 100755..100644
--- a/src/houdini_html_u.c
+++ b/src/houdini_html_u.c
@@ -9,12 +9,13 @@
/* Binary tree lookup code for entities added by JGM */
-static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,
- int len) {
+static const unsigned char *S_lookup(int i, int low, int hi,
+ const unsigned char *s, int len) {
int j;
- int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);
+ int cmp =
+ strncmp((const char *)s, (const char *)cmark_entities[i].entity, len);
if (cmp == 0 && cmark_entities[i].entity[len] == 0) {
- return (unsigned char *)cmark_entities[i].bytes;
+ return (const unsigned char *)cmark_entities[i].bytes;
} else if (cmp < 0 && i > low) {
j = i - ((i - low) / 2);
if (j == i)
@@ -30,7 +31,7 @@ static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,
}
}
-static unsigned char *S_lookup_entity(const unsigned char *s, int len) {
+static const unsigned char *S_lookup_entity(const unsigned char *s, int len) {
return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len);
}
diff --git a/src/html.c b/src/html.c
index b0a5895..27e0586 100644
--- a/src/html.c
+++ b/src/html.c
@@ -44,8 +44,8 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
cmark_node *parent;
cmark_node *grandparent;
cmark_strbuf *html = state->html;
- char start_header[] = "<h0";
- char end_header[] = "</h0";
+ char start_heading[] = "<h0";
+ char end_heading[] = "</h0";
bool tight;
const size_t BUFFER_SIZE = 100;
char buffer[BUFFER_SIZE];
@@ -60,7 +60,7 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
switch (node->type) {
case CMARK_NODE_TEXT:
case CMARK_NODE_CODE:
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_INLINE:
escape_html(html, node->as.literal.data, node->as.literal.len);
break;
@@ -129,16 +129,16 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
}
break;
- case CMARK_NODE_HEADER:
+ case CMARK_NODE_HEADING:
if (entering) {
cr(html);
- start_header[2] = (char)('0' + node->as.header.level);
- cmark_strbuf_puts(html, start_header);
+ start_heading[2] = (char)('0' + node->as.heading.level);
+ cmark_strbuf_puts(html, start_heading);
S_render_sourcepos(node, html, options);
cmark_strbuf_putc(html, '>');
} else {
- end_header[3] = (char)('0' + node->as.header.level);
- cmark_strbuf_puts(html, end_header);
+ end_heading[3] = (char)('0' + node->as.heading.level);
+ cmark_strbuf_puts(html, end_heading);
cmark_strbuf_puts(html, ">\n");
}
break;
@@ -146,7 +146,7 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
case CMARK_NODE_CODE_BLOCK:
cr(html);
- if (!node->as.code.fenced || node->as.code.info.len == 0) {
+ if (node->as.code.info.len == 0) {
cmark_strbuf_puts(html, "<pre");
S_render_sourcepos(node, html, options);
cmark_strbuf_puts(html, "><code>");
@@ -168,7 +168,7 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
cmark_strbuf_puts(html, "</code></pre>\n");
break;
- case CMARK_NODE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
cr(html);
if (options & CMARK_OPT_SAFE) {
cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
@@ -178,7 +178,19 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
cr(html);
break;
- case CMARK_NODE_HRULE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ cr(html);
+ if (entering) {
+ cmark_strbuf_put(html, node->as.custom.on_enter.data,
+ node->as.custom.on_enter.len);
+ } else {
+ cmark_strbuf_put(html, node->as.custom.on_exit.data,
+ node->as.custom.on_exit.len);
+ }
+ cr(html);
+ break;
+
+ case CMARK_NODE_THEMATIC_BREAK:
cr(html);
cmark_strbuf_puts(html, "<hr");
S_render_sourcepos(node, html, options);
@@ -227,7 +239,7 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
cmark_strbuf_puts(html, "</code>");
break;
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_INLINE:
if (options & CMARK_OPT_SAFE) {
cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
} else {
@@ -235,6 +247,16 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
}
break;
+ case CMARK_NODE_CUSTOM_INLINE:
+ if (entering) {
+ cmark_strbuf_put(html, node->as.custom.on_enter.data,
+ node->as.custom.on_enter.len);
+ } else {
+ cmark_strbuf_put(html, node->as.custom.on_exit.data,
+ node->as.custom.on_exit.len);
+ }
+ break;
+
case CMARK_NODE_STRONG:
if (entering) {
cmark_strbuf_puts(html, "<strong>");
diff --git a/src/inlines.c b/src/inlines.c
index 3275ddd..1199831 100755..100644
--- a/src/inlines.c
+++ b/src/inlines.c
@@ -24,7 +24,7 @@ static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99";
// Macros for creating various kinds of simple.
#define make_str(s) make_literal(CMARK_NODE_TEXT, s)
#define make_code(s) make_literal(CMARK_NODE_CODE, s)
-#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)
+#define make_raw_html(s) make_literal(CMARK_NODE_HTML_INLINE, s)
#define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)
#define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)
#define make_emph() make_simple(CMARK_NODE_EMPH)
@@ -284,7 +284,7 @@ static int scan_delims(subject *subj, unsigned char c, bool *can_open,
before_char_pos -= 1;
}
len = cmark_utf8proc_iterate(subj->input.data + before_char_pos,
- subj->pos - before_char_pos, &before_char);
+ subj->pos - before_char_pos, &before_char);
if (len == -1) {
before_char = 10;
}
@@ -301,7 +301,7 @@ static int scan_delims(subject *subj, unsigned char c, bool *can_open,
}
len = cmark_utf8proc_iterate(subj->input.data + subj->pos,
- subj->input.len - subj->pos, &after_char);
+ subj->input.len - subj->pos, &after_char);
if (len == -1) {
after_char = 10;
}
@@ -309,10 +309,10 @@ static int scan_delims(subject *subj, unsigned char c, bool *can_open,
!(cmark_utf8proc_is_punctuation(after_char) &&
!cmark_utf8proc_is_space(before_char) &&
!cmark_utf8proc_is_punctuation(before_char));
- right_flanking =
- numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&
- !(cmark_utf8proc_is_punctuation(before_char) &&
- !cmark_utf8proc_is_space(after_char) && !cmark_utf8proc_is_punctuation(after_char));
+ right_flanking = numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&
+ !(cmark_utf8proc_is_punctuation(before_char) &&
+ !cmark_utf8proc_is_space(after_char) &&
+ !cmark_utf8proc_is_punctuation(after_char));
if (c == '_') {
*can_open = left_flanking &&
(!right_flanking || cmark_utf8proc_is_punctuation(before_char));
@@ -865,7 +865,6 @@ static cmark_node *handle_close_bracket(subject *subj, cmark_node *parent) {
// Next, look for a following [link label] that matches in refmap.
// skip spaces
- subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos);
raw_label = cmark_chunk_literal("");
found_label = link_label(subj, &raw_label);
if (!found_label || raw_label.len == 0) {
@@ -944,10 +943,10 @@ static cmark_node *handle_newline(subject *subj) {
bufsize_t nlpos = subj->pos;
// skip over cr, crlf, or lf:
if (peek_at(subj, subj->pos) == '\r') {
- advance(subj);
+ advance(subj);
}
if (peek_at(subj, subj->pos) == '\n') {
- advance(subj);
+ advance(subj);
}
// skip spaces at beginning of line
skip_spaces(subj);
diff --git a/src/iterator.c b/src/iterator.c
index 19dfff8..351b81f 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -7,10 +7,10 @@
#include "iterator.h"
static const int S_leaf_mask =
- (1 << CMARK_NODE_HTML) | (1 << CMARK_NODE_HRULE) |
+ (1 << CMARK_NODE_HTML_BLOCK) | (1 << CMARK_NODE_THEMATIC_BREAK) |
(1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) |
(1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) |
- (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_INLINE_HTML);
+ (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_HTML_INLINE);
cmark_iter *cmark_iter_new(cmark_node *root) {
if (root == NULL) {
@@ -89,6 +89,9 @@ cmark_event_type cmark_iter_get_event_type(cmark_iter *iter) {
cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; }
void cmark_consolidate_text_nodes(cmark_node *root) {
+ if (root == NULL) {
+ return;
+ }
cmark_iter *iter = cmark_iter_new(root);
cmark_strbuf buf = GH_BUF_INIT;
cmark_event_type ev_type;
diff --git a/src/latex.c b/src/latex.c
index 7170fab..879f813 100644
--- a/src/latex.c
+++ b/src/latex.c
@@ -142,7 +142,13 @@ static inline void outc(cmark_renderer *renderer, cmark_escaping escape,
}
}
-typedef enum { NO_LINK, URL_AUTOLINK, EMAIL_AUTOLINK, NORMAL_LINK } link_type;
+typedef enum {
+ NO_LINK,
+ URL_AUTOLINK,
+ EMAIL_AUTOLINK,
+ NORMAL_LINK,
+ INTERNAL_LINK
+} link_type;
static link_type get_link_type(cmark_node *node) {
size_t title_len, url_len;
@@ -158,6 +164,10 @@ static link_type get_link_type(cmark_node *node) {
const char *url = cmark_node_get_url(node);
cmark_chunk url_chunk = cmark_chunk_literal(url);
+ if (url && *url == '#') {
+ return INTERNAL_LINK;
+ }
+
url_len = safe_strlen(url);
if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) {
return NO_LINK;
@@ -166,30 +176,29 @@ static link_type get_link_type(cmark_node *node) {
const char *title = cmark_node_get_title(node);
title_len = safe_strlen(title);
// if it has a title, we can't treat it as an autolink:
- if (title_len > 0) {
- return NORMAL_LINK;
- }
-
- link_text = node->first_child;
- cmark_consolidate_text_nodes(link_text);
- realurl = (char *)url;
- realurllen = url_len;
- if (strncmp(realurl, "mailto:", 7) == 0) {
- realurl += 7;
- realurllen -= 7;
- isemail = true;
- }
- if (realurllen == link_text->as.literal.len &&
- strncmp(realurl, (char *)link_text->as.literal.data,
- link_text->as.literal.len) == 0) {
- if (isemail) {
- return EMAIL_AUTOLINK;
- } else {
- return URL_AUTOLINK;
+ if (title_len == 0) {
+
+ link_text = node->first_child;
+ cmark_consolidate_text_nodes(link_text);
+ realurl = (char *)url;
+ realurllen = url_len;
+ if (strncmp(realurl, "mailto:", 7) == 0) {
+ realurl += 7;
+ realurllen -= 7;
+ isemail = true;
+ }
+ if (realurllen == link_text->as.literal.len &&
+ strncmp(realurl, (char *)link_text->as.literal.data,
+ link_text->as.literal.len) == 0) {
+ if (isemail) {
+ return EMAIL_AUTOLINK;
+ } else {
+ return URL_AUTOLINK;
+ }
}
- } else {
- return NORMAL_LINK;
}
+
+ return NORMAL_LINK;
}
static int S_get_enumlevel(cmark_node *node) {
@@ -266,9 +275,9 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
}
break;
- case CMARK_NODE_HEADER:
+ case CMARK_NODE_HEADING:
if (entering) {
- switch (cmark_node_get_header_level(node)) {
+ switch (cmark_node_get_heading_level(node)) {
case 1:
LIT("\\section");
break;
@@ -302,10 +311,17 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
BLANKLINE();
break;
- case CMARK_NODE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
break;
- case CMARK_NODE_HRULE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ CR();
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
+ CR();
+ break;
+
+ case CMARK_NODE_THEMATIC_BREAK:
BLANKLINE();
LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");
BLANKLINE();
@@ -340,7 +356,12 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
LIT("}");
break;
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_INLINE:
+ break;
+
+ case CMARK_NODE_CUSTOM_INLINE:
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
break;
case CMARK_NODE_STRONG:
@@ -378,6 +399,11 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
OUT(url, false, URL);
LIT("}{");
break;
+ case INTERNAL_LINK:
+ LIT("\\protect\\hyperlink{");
+ OUT(url + 1, false, URL);
+ LIT("}{");
+ break;
case NO_LINK:
LIT("{"); // error?
}
diff --git a/src/main.c b/src/main.c
index 239d793..f9fa29c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4,7 +4,6 @@
#include <errno.h>
#include "config.h"
#include "cmark.h"
-#include "bench.h"
#if defined(_WIN32) && !defined(__CYGWIN__)
#include <io.h>
@@ -153,14 +152,12 @@ int main(int argc, char *argv[]) {
exit(1);
}
- start_timer();
while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) {
cmark_parser_feed(parser, buffer, bytes);
if (bytes < sizeof(buffer)) {
break;
}
}
- end_timer("processing lines");
fclose(fp);
}
@@ -175,18 +172,12 @@ int main(int argc, char *argv[]) {
}
}
- start_timer();
document = cmark_parser_finish(parser);
- end_timer("finishing document");
cmark_parser_free(parser);
- start_timer();
print_document(document, writer, options, width);
- end_timer("print_document");
- start_timer();
cmark_node_free(document);
- end_timer("free_blocks");
free(files);
diff --git a/src/man.c b/src/man.c
index 8617222..2ce7540 100644
--- a/src/man.c
+++ b/src/man.c
@@ -121,10 +121,10 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
}
break;
- case CMARK_NODE_HEADER:
+ case CMARK_NODE_HEADING:
if (entering) {
CR();
- LIT(cmark_node_get_header_level(node) == 1 ? ".SH" : ".SS");
+ LIT(cmark_node_get_heading_level(node) == 1 ? ".SH" : ".SS");
CR();
} else {
CR();
@@ -140,10 +140,17 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
CR();
break;
- case CMARK_NODE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
break;
- case CMARK_NODE_HRULE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ CR();
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
+ CR();
+ break;
+
+ case CMARK_NODE_THEMATIC_BREAK:
CR();
LIT(".PP\n * * * * *");
CR();
@@ -188,7 +195,12 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
LIT("\\f[]");
break;
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_INLINE:
+ break;
+
+ case CMARK_NODE_CUSTOM_INLINE:
+ OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+ false, LITERAL);
break;
case CMARK_NODE_STRONG:
diff --git a/src/node.c b/src/node.c
index 46d234a..26a8e25 100644
--- a/src/node.c
+++ b/src/node.c
@@ -51,12 +51,16 @@ static bool S_can_contain(cmark_node *node, cmark_node *child) {
case CMARK_NODE_LIST:
return child->type == CMARK_NODE_ITEM;
+ case CMARK_NODE_CUSTOM_BLOCK:
+ return true;
+
case CMARK_NODE_PARAGRAPH:
- case CMARK_NODE_HEADER:
+ case CMARK_NODE_HEADING:
case CMARK_NODE_EMPH:
case CMARK_NODE_STRONG:
case CMARK_NODE_LINK:
case CMARK_NODE_IMAGE:
+ case CMARK_NODE_CUSTOM_INLINE:
return S_is_inline(child);
default:
@@ -71,8 +75,8 @@ cmark_node *cmark_node_new(cmark_node_type type) {
node->type = type;
switch (node->type) {
- case CMARK_NODE_HEADER:
- node->as.header.level = 1;
+ case CMARK_NODE_HEADING:
+ node->as.heading.level = 1;
break;
case CMARK_NODE_LIST: {
@@ -98,21 +102,26 @@ static void S_free_nodes(cmark_node *e) {
cmark_strbuf_free(&e->string_content);
}
switch (e->type) {
- case NODE_CODE_BLOCK:
+ case CMARK_NODE_CODE_BLOCK:
cmark_chunk_free(&e->as.code.info);
cmark_chunk_free(&e->as.code.literal);
break;
- case NODE_TEXT:
- case NODE_INLINE_HTML:
- case NODE_CODE:
- case NODE_HTML:
+ case CMARK_NODE_TEXT:
+ case CMARK_NODE_HTML_INLINE:
+ case CMARK_NODE_CODE:
+ case CMARK_NODE_HTML_BLOCK:
cmark_chunk_free(&e->as.literal);
break;
- case NODE_LINK:
- case NODE_IMAGE:
+ case CMARK_NODE_LINK:
+ case CMARK_NODE_IMAGE:
cmark_chunk_free(&e->as.link.url);
cmark_chunk_free(&e->as.link.title);
break;
+ case CMARK_NODE_CUSTOM_BLOCK:
+ case CMARK_NODE_CUSTOM_INLINE:
+ cmark_chunk_free(&e->as.custom.on_enter);
+ cmark_chunk_free(&e->as.custom.on_exit);
+ break;
default:
break;
}
@@ -159,14 +168,16 @@ const char *cmark_node_get_type_string(cmark_node *node) {
return "item";
case CMARK_NODE_CODE_BLOCK:
return "code_block";
- case CMARK_NODE_HTML:
- return "html";
+ case CMARK_NODE_HTML_BLOCK:
+ return "html_block";
+ case CMARK_NODE_CUSTOM_BLOCK:
+ return "custom_block";
case CMARK_NODE_PARAGRAPH:
return "paragraph";
- case CMARK_NODE_HEADER:
- return "header";
- case CMARK_NODE_HRULE:
- return "hrule";
+ case CMARK_NODE_HEADING:
+ return "heading";
+ case CMARK_NODE_THEMATIC_BREAK:
+ return "thematic_break";
case CMARK_NODE_TEXT:
return "text";
case CMARK_NODE_SOFTBREAK:
@@ -175,8 +186,10 @@ const char *cmark_node_get_type_string(cmark_node *node) {
return "linebreak";
case CMARK_NODE_CODE:
return "code";
- case CMARK_NODE_INLINE_HTML:
- return "inline_html";
+ case CMARK_NODE_HTML_INLINE:
+ return "html_inline";
+ case CMARK_NODE_CUSTOM_INLINE:
+ return "custom_inline";
case CMARK_NODE_EMPH:
return "emph";
case CMARK_NODE_STRONG:
@@ -252,13 +265,13 @@ const char *cmark_node_get_literal(cmark_node *node) {
}
switch (node->type) {
- case NODE_HTML:
- case NODE_TEXT:
- case NODE_INLINE_HTML:
- case NODE_CODE:
+ case CMARK_NODE_HTML_BLOCK:
+ case CMARK_NODE_TEXT:
+ case CMARK_NODE_HTML_INLINE:
+ case CMARK_NODE_CODE:
return cmark_chunk_to_cstr(&node->as.literal);
- case NODE_CODE_BLOCK:
+ case CMARK_NODE_CODE_BLOCK:
return cmark_chunk_to_cstr(&node->as.code.literal);
default:
@@ -274,14 +287,14 @@ int cmark_node_set_literal(cmark_node *node, const char *content) {
}
switch (node->type) {
- case NODE_HTML:
- case NODE_TEXT:
- case NODE_INLINE_HTML:
- case NODE_CODE:
+ case CMARK_NODE_HTML_BLOCK:
+ case CMARK_NODE_TEXT:
+ case CMARK_NODE_HTML_INLINE:
+ case CMARK_NODE_CODE:
cmark_chunk_set_cstr(&node->as.literal, content);
return 1;
- case NODE_CODE_BLOCK:
+ case CMARK_NODE_CODE_BLOCK:
cmark_chunk_set_cstr(&node->as.code.literal, content);
return 1;
@@ -292,14 +305,14 @@ int cmark_node_set_literal(cmark_node *node, const char *content) {
return 0;
}
-int cmark_node_get_header_level(cmark_node *node) {
+int cmark_node_get_heading_level(cmark_node *node) {
if (node == NULL) {
return 0;
}
switch (node->type) {
- case CMARK_NODE_HEADER:
- return node->as.header.level;
+ case CMARK_NODE_HEADING:
+ return node->as.heading.level;
default:
break;
@@ -308,14 +321,14 @@ int cmark_node_get_header_level(cmark_node *node) {
return 0;
}
-int cmark_node_set_header_level(cmark_node *node, int level) {
+int cmark_node_set_heading_level(cmark_node *node, int level) {
if (node == NULL || level < 1 || level > 6) {
return 0;
}
switch (node->type) {
- case CMARK_NODE_HEADER:
- node->as.header.level = level;
+ case CMARK_NODE_HEADING:
+ node->as.heading.level = level;
return 1;
default:
@@ -438,7 +451,7 @@ const char *cmark_node_get_fence_info(cmark_node *node) {
return NULL;
}
- if (node->type == NODE_CODE_BLOCK) {
+ if (node->type == CMARK_NODE_CODE_BLOCK) {
return cmark_chunk_to_cstr(&node->as.code.info);
} else {
return NULL;
@@ -450,7 +463,7 @@ int cmark_node_set_fence_info(cmark_node *node, const char *info) {
return 0;
}
- if (node->type == NODE_CODE_BLOCK) {
+ if (node->type == CMARK_NODE_CODE_BLOCK) {
cmark_chunk_set_cstr(&node->as.code.info, info);
return 1;
} else {
@@ -464,8 +477,8 @@ const char *cmark_node_get_url(cmark_node *node) {
}
switch (node->type) {
- case NODE_LINK:
- case NODE_IMAGE:
+ case CMARK_NODE_LINK:
+ case CMARK_NODE_IMAGE:
return cmark_chunk_to_cstr(&node->as.link.url);
default:
break;
@@ -480,8 +493,8 @@ int cmark_node_set_url(cmark_node *node, const char *url) {
}
switch (node->type) {
- case NODE_LINK:
- case NODE_IMAGE:
+ case CMARK_NODE_LINK:
+ case CMARK_NODE_IMAGE:
cmark_chunk_set_cstr(&node->as.link.url, url);
return 1;
default:
@@ -497,8 +510,8 @@ const char *cmark_node_get_title(cmark_node *node) {
}
switch (node->type) {
- case NODE_LINK:
- case NODE_IMAGE:
+ case CMARK_NODE_LINK:
+ case CMARK_NODE_IMAGE:
return cmark_chunk_to_cstr(&node->as.link.title);
default:
break;
@@ -513,8 +526,8 @@ int cmark_node_set_title(cmark_node *node, const char *title) {
}
switch (node->type) {
- case NODE_LINK:
- case NODE_IMAGE:
+ case CMARK_NODE_LINK:
+ case CMARK_NODE_IMAGE:
cmark_chunk_set_cstr(&node->as.link.title, title);
return 1;
default:
@@ -524,6 +537,72 @@ int cmark_node_set_title(cmark_node *node, const char *title) {
return 0;
}
+const char *cmark_node_get_on_enter(cmark_node *node) {
+ if (node == NULL) {
+ return NULL;
+ }
+
+ switch (node->type) {
+ case CMARK_NODE_CUSTOM_INLINE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ return cmark_chunk_to_cstr(&node->as.custom.on_enter);
+ default:
+ break;
+ }
+
+ return NULL;
+}
+
+int cmark_node_set_on_enter(cmark_node *node, const char *on_enter) {
+ if (node == NULL) {
+ return 0;
+ }
+
+ switch (node->type) {
+ case CMARK_NODE_CUSTOM_INLINE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ cmark_chunk_set_cstr(&node->as.custom.on_enter, on_enter);
+ return 1;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+const char *cmark_node_get_on_exit(cmark_node *node) {
+ if (node == NULL) {
+ return NULL;
+ }
+
+ switch (node->type) {
+ case CMARK_NODE_CUSTOM_INLINE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ return cmark_chunk_to_cstr(&node->as.custom.on_exit);
+ default:
+ break;
+ }
+
+ return NULL;
+}
+
+int cmark_node_set_on_exit(cmark_node *node, const char *on_exit) {
+ if (node == NULL) {
+ return 0;
+ }
+
+ switch (node->type) {
+ case CMARK_NODE_CUSTOM_INLINE:
+ case CMARK_NODE_CUSTOM_BLOCK:
+ cmark_chunk_set_cstr(&node->as.custom.on_exit, on_exit);
+ return 1;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
int cmark_node_get_start_line(cmark_node *node) {
if (node == NULL) {
return 0;
@@ -651,6 +730,14 @@ int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) {
return 1;
}
+int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode) {
+ if (!cmark_node_insert_before(oldnode, newnode)) {
+ return 0;
+ }
+ cmark_node_unlink(oldnode);
+ return 1;
+}
+
int cmark_node_prepend_child(cmark_node *node, cmark_node *child) {
if (!S_can_contain(node, child)) {
return 0;
diff --git a/src/node.h b/src/node.h
index 48d12df..397d8e3 100644
--- a/src/node.h
+++ b/src/node.h
@@ -35,13 +35,18 @@ typedef struct {
typedef struct {
int level;
bool setext;
-} cmark_header;
+} cmark_heading;
typedef struct {
cmark_chunk url;
cmark_chunk title;
} cmark_link;
+typedef struct {
+ cmark_chunk on_enter;
+ cmark_chunk on_exit;
+} cmark_custom;
+
struct cmark_node {
struct cmark_node *next;
struct cmark_node *prev;
@@ -67,8 +72,9 @@ struct cmark_node {
cmark_chunk literal;
cmark_list list;
cmark_code code;
- cmark_header header;
+ cmark_heading heading;
cmark_link link;
+ cmark_custom custom;
int html_block_type;
} as;
};
diff --git a/src/render.c b/src/render.c
index f1ec672..2c941bf 100755
--- a/src/render.c
+++ b/src/render.c
@@ -23,6 +23,7 @@ static void S_out(cmark_renderer *renderer, const char *source, bool wrap,
unsigned char nextc;
int32_t c;
int i = 0;
+ int last_nonspace;
int len;
cmark_chunk remainder = cmark_chunk_literal("");
int k = renderer->buffer->size - 1;
@@ -44,6 +45,7 @@ static void S_out(cmark_renderer *renderer, const char *source, bool wrap,
}
renderer->column = 0;
renderer->begin_line = true;
+ renderer->begin_content = true;
renderer->need_cr -= 1;
}
@@ -62,27 +64,42 @@ static void S_out(cmark_renderer *renderer, const char *source, bool wrap,
nextc = source[i + len];
if (c == 32 && wrap) {
if (!renderer->begin_line) {
+ last_nonspace = renderer->buffer->size;
cmark_strbuf_putc(renderer->buffer, ' ');
renderer->column += 1;
renderer->begin_line = false;
- renderer->last_breakable = renderer->buffer->size - 1;
+ renderer->begin_content = false;
// skip following spaces
while (source[i + 1] == ' ') {
i++;
}
+ // We don't allow breaks that make a digit the first character
+ // because this causes problems with commonmark output.
+ if (!cmark_isdigit(source[i + 1])) {
+ renderer->last_breakable = last_nonspace;
+ }
}
} else if (c == 10) {
cmark_strbuf_putc(renderer->buffer, '\n');
renderer->column = 0;
renderer->begin_line = true;
+ renderer->begin_content = true;
renderer->last_breakable = 0;
} else if (escape == LITERAL) {
cmark_render_code_point(renderer, c);
renderer->begin_line = false;
+ // we don't set 'begin_content' to false til we've
+ // finished parsing a digit. Reason: in commonmark
+ // we need to escape a potential list marker after
+ // a digit:
+ renderer->begin_content = renderer->begin_content &&
+ cmark_isdigit(c) == 1;
} else {
(renderer->outc)(renderer, escape, c, nextc);
renderer->begin_line = false;
+ renderer->begin_content = renderer->begin_content &&
+ cmark_isdigit(c) == 1;
}
// If adding the character went beyond width, look for an
@@ -104,6 +121,7 @@ static void S_out(cmark_renderer *renderer, const char *source, bool wrap,
cmark_chunk_free(&remainder);
renderer->last_breakable = 0;
renderer->begin_line = false;
+ renderer->begin_content = false;
}
i += len;
@@ -136,7 +154,8 @@ char *cmark_render(cmark_node *root, int options, int width,
cmark_iter *iter = cmark_iter_new(root);
cmark_renderer renderer = {&buf, &pref, 0, width, 0, 0, true,
- false, false, outc, S_cr, S_blankline, S_out};
+ true, false, false,
+ outc, S_cr, S_blankline, S_out};
while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
cur = cmark_iter_get_node(iter);
diff --git a/src/render.h b/src/render.h
index 9ab347b..479936a 100644
--- a/src/render.h
+++ b/src/render.h
@@ -19,6 +19,7 @@ struct cmark_renderer {
int need_cr;
bufsize_t last_breakable;
bool begin_line;
+ bool begin_content;
bool no_wrap;
bool in_tight_list_item;
void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char);
diff --git a/src/scanners.c b/src/scanners.c
index d9f998f..28821ba 100644
--- a/src/scanners.c
+++ b/src/scanners.c
@@ -7,10 +7,9 @@ bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
bufsize_t offset) {
bufsize_t res;
unsigned char *ptr = (unsigned char *)c->data;
- unsigned char zero = '\0';
- if (ptr == NULL) {
- res = scanner(&zero);
+ if (ptr == NULL || offset > c->len) {
+ return 0;
} else {
unsigned char lim = ptr[c->len];
@@ -31,4174 +30,860 @@ bufsize_t _scan_scheme(const unsigned char *p) {
unsigned char yych;
yych = *(marker = p);
- if (yych <= 'c') {
- if (yych <= 'M') {
- if (yych <= 'E') {
- if (yych <= 'A') {
- if (yych == '\n')
- goto yy2;
- if (yych <= '@')
- goto yy29;
- goto yy6;
- } else {
- if (yych <= 'B')
- goto yy24;
- if (yych <= 'C')
- goto yy3;
- if (yych <= 'D')
- goto yy4;
- goto yy25;
- }
- } else {
- if (yych <= 'I') {
- if (yych <= 'F')
- goto yy7;
- if (yych <= 'G')
- goto yy8;
- if (yych <= 'H')
- goto yy9;
- goto yy10;
- } else {
- if (yych <= 'J')
- goto yy5;
- if (yych <= 'K')
- goto yy26;
- if (yych <= 'L')
- goto yy11;
- goto yy12;
- }
- }
+ if (yych <= 0x7F) {
+ if (yych <= ' ') {
+ if (yych == '\n')
+ goto yy2;
+ if (yych <= 0x1F)
+ goto yy4;
+ goto yy3;
} else {
- if (yych <= 'U') {
- if (yych <= 'Q') {
- if (yych <= 'N')
- goto yy13;
- if (yych <= 'O')
- goto yy14;
- if (yych <= 'P')
- goto yy15;
- goto yy27;
- } else {
- if (yych <= 'R')
- goto yy16;
- if (yych <= 'S')
- goto yy17;
- if (yych <= 'T')
- goto yy18;
- goto yy19;
- }
+ if (yych <= 'Z') {
+ if (yych <= '@')
+ goto yy4;
+ goto yy3;
} else {
- if (yych <= 'Y') {
- if (yych <= 'V')
- goto yy20;
- if (yych <= 'W')
- goto yy21;
- if (yych <= 'X')
- goto yy22;
- goto yy28;
- } else {
- if (yych <= '`') {
- if (yych <= 'Z')
- goto yy23;
- goto yy29;
- } else {
- if (yych <= 'a')
- goto yy6;
- if (yych <= 'b')
- goto yy24;
- goto yy3;
- }
- }
+ if (yych <= '`')
+ goto yy4;
+ if (yych <= 'z')
+ goto yy3;
+ goto yy4;
}
}
} else {
- if (yych <= 't') {
- if (yych <= 'k') {
- if (yych <= 'g') {
- if (yych <= 'd')
- goto yy4;
- if (yych <= 'e')
- goto yy25;
- if (yych <= 'f')
- goto yy7;
- goto yy8;
- } else {
- if (yych <= 'h')
- goto yy9;
- if (yych <= 'i')
- goto yy10;
- if (yych <= 'j')
- goto yy5;
- goto yy26;
- }
+ if (yych <= 0xED) {
+ if (yych <= 0xDF) {
+ if (yych >= 0xC2)
+ goto yy5;
} else {
- if (yych <= 'o') {
- if (yych <= 'l')
- goto yy11;
- if (yych <= 'm')
- goto yy12;
- if (yych <= 'n')
- goto yy13;
- goto yy14;
- } else {
- if (yych <= 'q') {
- if (yych <= 'p')
- goto yy15;
- goto yy27;
- } else {
- if (yych <= 'r')
- goto yy16;
- if (yych <= 's')
- goto yy17;
- goto yy18;
- }
- }
+ if (yych <= 0xE0)
+ goto yy7;
+ if (yych <= 0xEC)
+ goto yy8;
+ goto yy12;
}
} else {
- if (yych <= 0xC1) {
- if (yych <= 'x') {
- if (yych <= 'u')
- goto yy19;
- if (yych <= 'v')
- goto yy20;
- if (yych <= 'w')
- goto yy21;
- goto yy22;
- } else {
- if (yych <= 'y')
- goto yy28;
- if (yych <= 'z')
- goto yy23;
- if (yych <= 0x7F)
- goto yy29;
- }
+ if (yych <= 0xF0) {
+ if (yych <= 0xEF)
+ goto yy8;
+ goto yy9;
} else {
- if (yych <= 0xED) {
- if (yych <= 0xDF)
- goto yy30;
- if (yych <= 0xE0)
- goto yy32;
- if (yych <= 0xEC)
- goto yy33;
- goto yy37;
- } else {
- if (yych <= 0xF0) {
- if (yych <= 0xEF)
- goto yy33;
- goto yy34;
- } else {
- if (yych <= 0xF3)
- goto yy35;
- if (yych <= 0xF4)
- goto yy36;
- }
- }
+ if (yych <= 0xF3)
+ goto yy10;
+ if (yych <= 0xF4)
+ goto yy11;
}
}
}
yy2 : { return 0; }
yy3:
yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy447;
- case 'H':
- case 'h':
- goto yy446;
- case 'I':
- case 'i':
- goto yy449;
- case 'O':
- case 'o':
- goto yy445;
- case 'R':
- case 'r':
- goto yy448;
- case 'V':
- case 'v':
- goto yy444;
- default:
- goto yy2;
- }
- yy4:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy420;
- case 'I':
- case 'i':
- goto yy419;
- case 'L':
- case 'l':
- goto yy417;
- case 'N':
- case 'n':
- goto yy418;
- case 'O':
- case 'o':
- goto yy421;
- case 'T':
- case 't':
- goto yy416;
- case 'V':
- case 'v':
- goto yy415;
- default:
- goto yy2;
- }
- yy5:
- yych = *(marker = ++p);
- if (yych <= 'M') {
- if (yych == 'A')
- goto yy407;
- if (yych <= 'L')
+ if (yych <= '.') {
+ if (yych == '+')
+ goto yy13;
+ if (yych <= ',')
goto yy2;
- goto yy406;
+ goto yy13;
} else {
- if (yych <= 'a') {
- if (yych <= '`')
+ if (yych <= 'Z') {
+ if (yych <= '@')
goto yy2;
- goto yy407;
+ goto yy13;
} else {
- if (yych == 'm')
- goto yy406;
+ if (yych <= '`')
+ goto yy2;
+ if (yych <= 'z')
+ goto yy13;
goto yy2;
}
}
+ yy4:
+ yych = *++p;
+ goto yy2;
+ yy5:
+ yych = *++p;
+ if (yych <= 0x7F)
+ goto yy6;
+ if (yych <= 0xBF)
+ goto yy4;
yy6:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy388;
- case 'B':
- case 'b':
- goto yy387;
- case 'C':
- case 'c':
- goto yy386;
- case 'D':
- case 'd':
- goto yy385;
- case 'F':
- case 'f':
- goto yy384;
- case 'I':
- case 'i':
- goto yy383;
- case 'P':
- case 'p':
- goto yy382;
- case 'T':
- case 't':
- goto yy381;
- case 'W':
- case 'w':
- goto yy41;
- default:
- goto yy2;
- }
+ p = marker;
+ goto yy2;
yy7:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'E') {
- if (yych == 'A')
- goto yy368;
- if (yych <= 'D')
- goto yy2;
- goto yy367;
+ yych = *++p;
+ if (yych <= 0x9F)
+ goto yy6;
+ if (yych <= 0xBF)
+ goto yy5;
+ goto yy6;
+ yy8:
+ yych = *++p;
+ if (yych <= 0x7F)
+ goto yy6;
+ if (yych <= 0xBF)
+ goto yy5;
+ goto yy6;
+ yy9:
+ yych = *++p;
+ if (yych <= 0x8F)
+ goto yy6;
+ if (yych <= 0xBF)
+ goto yy8;
+ goto yy6;
+ yy10:
+ yych = *++p;
+ if (yych <= 0x7F)
+ goto yy6;
+ if (yych <= 0xBF)
+ goto yy8;
+ goto yy6;
+ yy11:
+ yych = *++p;
+ if (yych <= 0x7F)
+ goto yy6;
+ if (yych <= 0x8F)
+ goto yy8;
+ goto yy6;
+ yy12:
+ yych = *++p;
+ if (yych <= 0x7F)
+ goto yy6;
+ if (yych <= 0x9F)
+ goto yy5;
+ goto yy6;
+ yy13:
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ goto yy16;
} else {
- if (yych == 'I')
- goto yy366;
- if (yych <= 'S')
- goto yy2;
- goto yy369;
+ if (yych <= ',')
+ goto yy6;
+ if (yych <= '.')
+ goto yy16;
+ goto yy6;
}
} else {
- if (yych <= 'e') {
- if (yych == 'a')
- goto yy368;
- if (yych <= 'd')
- goto yy2;
- goto yy367;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
+ goto yy16;
} else {
- if (yych <= 'i') {
- if (yych <= 'h')
- goto yy2;
- goto yy366;
- } else {
- if (yych == 't')
- goto yy369;
- goto yy2;
- }
+ if (yych <= '`')
+ goto yy6;
+ if (yych <= 'z')
+ goto yy16;
+ goto yy6;
}
}
- yy8:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy351;
- case 'G':
- case 'g':
- goto yy41;
- case 'I':
- case 'i':
- goto yy349;
- case 'O':
- case 'o':
- goto yy350;
- case 'T':
- case 't':
- goto yy348;
- default:
- goto yy2;
- }
- yy9:
- yych = *(marker = ++p);
- if (yych <= 'S') {
- if (yych <= '3') {
- if (yych <= '2')
- goto yy2;
- goto yy344;
+ yy14:
+ ++p;
+ { return (bufsize_t)(p - start); }
+ yy16:
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'C')
- goto yy342;
- goto yy2;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'c') {
- if (yych <= 'T')
- goto yy343;
- if (yych <= 'b')
- goto yy2;
- goto yy342;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 't')
- goto yy343;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy10:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy324;
- case 'C':
- case 'c':
- goto yy321;
- case 'M':
- case 'm':
- goto yy323;
- case 'N':
- case 'n':
- goto yy322;
- case 'P':
- case 'p':
- goto yy320;
- case 'R':
- case 'r':
- goto yy319;
- case 'T':
- case 't':
- goto yy318;
- default:
- goto yy2;
- }
- yy11:
- yych = *(marker = ++p);
- if (yych <= 'D') {
- if (yych == 'A')
- goto yy312;
- if (yych <= 'C')
- goto yy2;
- goto yy311;
- } else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy2;
- goto yy312;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'd')
- goto yy311;
- goto yy2;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy12:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy278;
- case 'E':
- case 'e':
- goto yy277;
- case 'I':
- case 'i':
- goto yy280;
- case 'M':
- case 'm':
- goto yy276;
- case 'S':
- case 's':
- goto yy275;
- case 'T':
- case 't':
- goto yy279;
- case 'U':
- case 'u':
- goto yy274;
- case 'V':
- case 'v':
- goto yy273;
- default:
- goto yy2;
- }
- yy13:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy268;
- case 'F':
- case 'f':
- goto yy267;
- case 'I':
- case 'i':
- goto yy266;
- case 'N':
- case 'n':
- goto yy265;
- case 'O':
- case 'o':
- goto yy264;
- default:
- goto yy2;
- }
- yy14:
- yych = *(marker = ++p);
- if (yych <= 'P') {
- if (yych == 'I')
- goto yy250;
- if (yych <= 'O')
- goto yy2;
- goto yy251;
} else {
- if (yych <= 'i') {
- if (yych <= 'h')
- goto yy2;
- goto yy250;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy251;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy15:
- yych = *(marker = ++p);
- if (yych <= 'S') {
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy232;
- if (yych <= 'K')
- goto yy2;
- goto yy231;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'O') {
- if (yych <= 'N')
- goto yy2;
- goto yy233;
- } else {
- if (yych <= 'Q')
- goto yy2;
- if (yych <= 'R')
- goto yy230;
- goto yy229;
- }
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'n') {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy2;
- goto yy232;
- } else {
- if (yych == 'l')
- goto yy231;
- goto yy2;
- }
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'q') {
- if (yych <= 'o')
- goto yy233;
- goto yy2;
- } else {
- if (yych <= 'r')
- goto yy230;
- if (yych <= 's')
- goto yy229;
- goto yy2;
- }
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy16:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'L') {
- if (yych == 'E')
- goto yy219;
- goto yy2;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'M')
- goto yy218;
- if (yych <= 'R')
- goto yy2;
- if (yych <= 'S')
- goto yy217;
- goto yy216;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'm') {
- if (yych == 'e')
- goto yy219;
- if (yych <= 'l')
- goto yy2;
- goto yy218;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'r')
- goto yy2;
- if (yych <= 's')
- goto yy217;
- if (yych <= 't')
- goto yy216;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy17:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy172;
- case 'F':
- case 'f':
- goto yy171;
- case 'G':
- case 'g':
- goto yy170;
- case 'H':
- case 'h':
- goto yy175;
- case 'I':
- case 'i':
- goto yy174;
- case 'K':
- case 'k':
- goto yy169;
- case 'M':
- case 'm':
- goto yy168;
- case 'N':
- case 'n':
- goto yy173;
- case 'O':
- case 'o':
- goto yy167;
- case 'P':
- case 'p':
- goto yy166;
- case 'S':
- case 's':
- goto yy165;
- case 'T':
- case 't':
- goto yy164;
- case 'V':
- case 'v':
- goto yy163;
- default:
- goto yy2;
- }
- yy18:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy139;
- case 'E':
- case 'e':
- goto yy135;
- case 'F':
- case 'f':
- goto yy138;
- case 'H':
- case 'h':
- goto yy134;
- case 'I':
- case 'i':
- goto yy136;
- case 'N':
- case 'n':
- goto yy137;
- case 'V':
- case 'v':
- goto yy41;
- default:
- goto yy2;
- }
- yy19:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'N') {
- if (yych == 'D')
- goto yy126;
- if (yych <= 'M')
- goto yy2;
- goto yy125;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'R')
- goto yy127;
- if (yych <= 'S')
- goto yy2;
- goto yy124;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'n') {
- if (yych == 'd')
- goto yy126;
- if (yych <= 'm')
- goto yy2;
- goto yy125;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'r') {
- if (yych <= 'q')
- goto yy2;
- goto yy127;
- } else {
- if (yych == 't')
- goto yy124;
- goto yy2;
- }
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy20:
- yych = *(marker = ++p);
- if (yych <= 'I') {
- if (yych == 'E')
- goto yy108;
- if (yych <= 'H')
- goto yy2;
- goto yy107;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy2;
- goto yy108;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'i')
- goto yy107;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy21:
- yych = *(marker = ++p);
- if (yych <= 'Y') {
- if (yych <= 'R') {
- if (yych == 'E')
- goto yy97;
- goto yy2;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'S')
- goto yy98;
- if (yych <= 'T')
- goto yy96;
- if (yych <= 'X')
- goto yy2;
- goto yy95;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 's') {
- if (yych == 'e')
- goto yy97;
- if (yych <= 'r')
- goto yy2;
- goto yy98;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 't')
- goto yy96;
- if (yych == 'y')
- goto yy95;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy22:
- yych = *(marker = ++p);
- if (yych <= 'R') {
- if (yych <= 'F') {
- if (yych == 'C')
- goto yy74;
- if (yych <= 'E')
- goto yy2;
- goto yy72;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'M')
- goto yy73;
- if (yych <= 'Q')
- goto yy2;
- goto yy71;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'f') {
- if (yych == 'c')
- goto yy74;
- if (yych <= 'e')
- goto yy2;
- goto yy72;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy2;
- goto yy73;
- } else {
- if (yych == 'r')
- goto yy71;
- goto yy2;
- }
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy23:
- yych = *(marker = ++p);
- if (yych == '3')
- goto yy66;
- goto yy2;
- yy24:
- yych = *(marker = ++p);
- if (yych <= 'O') {
- if (yych <= 'H') {
- if (yych == 'E')
- goto yy56;
- goto yy2;
+ yych = *++p;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'I')
- goto yy55;
- if (yych <= 'N')
- goto yy2;
- goto yy54;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'h') {
- if (yych == 'e')
- goto yy56;
- goto yy2;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'i')
- goto yy55;
- if (yych == 'o')
- goto yy54;
- goto yy2;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy25:
- yych = *(marker = ++p);
- if (yych == 'D')
- goto yy52;
- if (yych == 'd')
- goto yy52;
- goto yy2;
- yy26:
- yych = *(marker = ++p);
- if (yych == 'E')
- goto yy47;
- if (yych == 'e')
- goto yy47;
- goto yy2;
- yy27:
- yych = *(marker = ++p);
- if (yych == 'U')
- goto yy44;
- if (yych == 'u')
- goto yy44;
- goto yy2;
- yy28:
- yych = *(marker = ++p);
- if (yych == 'M')
- goto yy38;
- if (yych == 'm')
- goto yy38;
- goto yy2;
- yy29:
- yych = *++p;
- goto yy2;
- yy30:
- yych = *++p;
- if (yych <= 0x7F)
- goto yy31;
- if (yych <= 0xBF)
- goto yy29;
- yy31:
- p = marker;
- goto yy2;
- yy32:
- yych = *++p;
- if (yych <= 0x9F)
- goto yy31;
- if (yych <= 0xBF)
- goto yy30;
- goto yy31;
- yy33:
- yych = *++p;
- if (yych <= 0x7F)
- goto yy31;
- if (yych <= 0xBF)
- goto yy30;
- goto yy31;
- yy34:
- yych = *++p;
- if (yych <= 0x8F)
- goto yy31;
- if (yych <= 0xBF)
- goto yy33;
- goto yy31;
- yy35:
- yych = *++p;
- if (yych <= 0x7F)
- goto yy31;
- if (yych <= 0xBF)
- goto yy33;
- goto yy31;
- yy36:
- yych = *++p;
- if (yych <= 0x7F)
- goto yy31;
- if (yych <= 0x8F)
- goto yy33;
- goto yy31;
- yy37:
- yych = *++p;
- if (yych <= 0x7F)
- goto yy31;
- if (yych <= 0x9F)
- goto yy30;
- goto yy31;
- yy38:
- yych = *++p;
- if (yych == 'S')
- goto yy39;
- if (yych != 's')
- goto yy31;
- yy39:
yych = *++p;
- if (yych == 'G')
- goto yy40;
- if (yych != 'g')
- goto yy31;
- yy40:
- yych = *++p;
- if (yych == 'R')
- goto yy41;
- if (yych != 'r')
- goto yy31;
- yy41:
- yych = *++p;
- if (yych != ':')
- goto yy31;
- yy42:
- ++p;
- { return (bufsize_t)(p - start); }
- yy44:
- yych = *++p;
- if (yych == 'E')
- goto yy45;
- if (yych != 'e')
- goto yy31;
- yy45:
- yych = *++p;
- if (yych == 'R')
- goto yy46;
- if (yych != 'r')
- goto yy31;
- yy46:
- yych = *++p;
- if (yych == 'Y')
- goto yy41;
- if (yych == 'y')
- goto yy41;
- goto yy31;
- yy47:
- yych = *++p;
- if (yych == 'Y')
- goto yy48;
- if (yych != 'y')
- goto yy31;
- yy48:
- yych = *++p;
- if (yych == 'P')
- goto yy49;
- if (yych != 'p')
- goto yy31;
- yy49:
- yych = *++p;
- if (yych == 'A')
- goto yy50;
- if (yych != 'a')
- goto yy31;
- yy50:
- yych = *++p;
- if (yych == 'R')
- goto yy51;
- if (yych != 'r')
- goto yy31;
- yy51:
- yych = *++p;
- if (yych == 'C')
- goto yy41;
- if (yych == 'c')
- goto yy41;
- goto yy31;
- yy52:
- yych = *++p;
- if (yych != '2')
- goto yy31;
- yych = *++p;
- if (yych == 'K')
- goto yy41;
- if (yych == 'k')
- goto yy41;
- goto yy31;
- yy54:
- yych = *++p;
- if (yych == 'L')
- goto yy65;
- if (yych == 'l')
- goto yy65;
- goto yy31;
- yy55:
- yych = *++p;
- if (yych == 'T')
- goto yy61;
- if (yych == 't')
- goto yy61;
- goto yy31;
- yy56:
- yych = *++p;
- if (yych == 'S')
- goto yy57;
- if (yych != 's')
- goto yy31;
- yy57:
- yych = *++p;
- if (yych == 'H')
- goto yy58;
- if (yych != 'h')
- goto yy31;
- yy58:
- yych = *++p;
- if (yych == 'A')
- goto yy59;
- if (yych != 'a')
- goto yy31;
- yy59:
- yych = *++p;
- if (yych == 'R')
- goto yy60;
- if (yych != 'r')
- goto yy31;
- yy60:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy61:
- yych = *++p;
- if (yych == 'C')
- goto yy62;
- if (yych != 'c')
- goto yy31;
- yy62:
- yych = *++p;
- if (yych == 'O')
- goto yy63;
- if (yych != 'o')
- goto yy31;
- yy63:
- yych = *++p;
- if (yych == 'I')
- goto yy64;
- if (yych != 'i')
- goto yy31;
- yy64:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy65:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy66:
- yych = *++p;
- if (yych != '9')
- goto yy31;
- yych = *++p;
- if (yych != '.')
- goto yy31;
- yych = *++p;
- if (yych != '5')
- goto yy31;
- yych = *++p;
- if (yych != '0')
- goto yy31;
- yych = *++p;
- if (yych <= 'Q')
- goto yy31;
- if (yych <= 'S')
- goto yy41;
- if (yych <= 'q')
- goto yy31;
- if (yych <= 's')
- goto yy41;
- goto yy31;
- yy71:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy72:
- yych = *++p;
- if (yych == 'I')
- goto yy93;
- if (yych == 'i')
- goto yy93;
- goto yy31;
- yy73:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy83;
- if (yych <= 'O')
- goto yy31;
- goto yy84;
- } else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy31;
- goto yy83;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy84;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy74:
- yych = *++p;
- if (yych == 'O')
- goto yy75;
- if (yych != 'o')
- goto yy31;
- yy75:
- yych = *++p;
- if (yych == 'N')
- goto yy76;
- if (yych != 'n')
- goto yy31;
- yy76:
- yych = *++p;
- if (yych == '-')
- goto yy77;
- if (yych == ':')
- goto yy42;
- goto yy31;
- yy77:
- yych = *++p;
- if (yych == 'U')
- goto yy78;
- if (yych != 'u')
- goto yy31;
- yy78:
- yych = *++p;
- if (yych == 'S')
- goto yy79;
- if (yych != 's')
- goto yy31;
- yy79:
- yych = *++p;
- if (yych == 'E')
- goto yy80;
- if (yych != 'e')
- goto yy31;
- yy80:
- yych = *++p;
- if (yych == 'R')
- goto yy81;
- if (yych != 'r')
- goto yy31;
- yy81:
- yych = *++p;
- if (yych == 'I')
- goto yy82;
- if (yych != 'i')
- goto yy31;
- yy82:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy83:
- yych = *++p;
- if (yych == 'R')
- goto yy85;
- if (yych == 'r')
- goto yy85;
- goto yy31;
- yy84:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy85:
- yych = *++p;
- if (yych == 'P')
- goto yy86;
- if (yych != 'p')
- goto yy31;
- yy86:
- yych = *++p;
- if (yych == 'C')
- goto yy87;
- if (yych != 'c')
- goto yy31;
- yy87:
- yych = *++p;
- if (yych != '.')
- goto yy31;
- yych = *++p;
- if (yych == 'B')
- goto yy89;
- if (yych != 'b')
- goto yy31;
- yy89:
- yych = *++p;
- if (yych == 'E')
- goto yy90;
- if (yych != 'e')
- goto yy31;
- yy90:
- yych = *++p;
- if (yych == 'E')
- goto yy91;
- if (yych != 'e')
- goto yy31;
- yy91:
- yych = *++p;
- if (yych == 'P')
- goto yy92;
- if (yych != 'p')
- goto yy31;
- yy92:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy93:
- yych = *++p;
- if (yych == 'R')
- goto yy94;
- if (yych != 'r')
- goto yy31;
- yy94:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy95:
- yych = *++p;
- if (yych == 'C')
- goto yy103;
- if (yych == 'c')
- goto yy103;
- goto yy31;
- yy96:
- yych = *++p;
- if (yych == 'A')
- goto yy102;
- if (yych == 'a')
- goto yy102;
- goto yy31;
- yy97:
- yych = *++p;
- if (yych == 'B')
- goto yy99;
- if (yych == 'b')
- goto yy99;
- goto yy31;
- yy98:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
} else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy99:
- yych = *++p;
- if (yych == 'C')
- goto yy100;
- if (yych != 'c')
- goto yy31;
- yy100:
- yych = *++p;
- if (yych == 'A')
- goto yy101;
- if (yych != 'a')
- goto yy31;
- yy101:
- yych = *++p;
- if (yych == 'L')
- goto yy41;
- if (yych == 'l')
- goto yy41;
- goto yy31;
- yy102:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy103:
- yych = *++p;
- if (yych == 'I')
- goto yy104;
- if (yych != 'i')
- goto yy31;
- yy104:
- yych = *++p;
- if (yych == 'W')
- goto yy105;
- if (yych != 'w')
- goto yy31;
- yy105:
- yych = *++p;
- if (yych == 'Y')
- goto yy106;
- if (yych != 'y')
- goto yy31;
- yy106:
- yych = *++p;
- if (yych == 'G')
- goto yy41;
- if (yych == 'g')
- goto yy41;
- goto yy31;
- yy107:
- yych = *++p;
- if (yych == 'E')
- goto yy116;
- if (yych == 'e')
- goto yy116;
- goto yy31;
- yy108:
- yych = *++p;
- if (yych <= 'N') {
- if (yych <= 'L')
- goto yy31;
- if (yych >= 'N')
- goto yy110;
- } else {
- if (yych <= 'l')
- goto yy31;
- if (yych <= 'm')
- goto yy109;
- if (yych <= 'n')
- goto yy110;
- goto yy31;
- }
- yy109:
- yych = *++p;
- if (yych == 'M')
- goto yy115;
- if (yych == 'm')
- goto yy115;
- goto yy31;
- yy110:
- yych = *++p;
- if (yych == 'T')
- goto yy111;
- if (yych != 't')
- goto yy31;
- yy111:
- yych = *++p;
- if (yych == 'R')
- goto yy112;
- if (yych != 'r')
- goto yy31;
- yy112:
- yych = *++p;
- if (yych == 'I')
- goto yy113;
- if (yych != 'i')
- goto yy31;
- yy113:
- yych = *++p;
- if (yych == 'L')
- goto yy114;
- if (yych != 'l')
- goto yy31;
- yy114:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy115:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy116:
- yych = *++p;
- if (yych == 'W')
- goto yy117;
- if (yych != 'w')
- goto yy31;
- yy117:
- yych = *++p;
- if (yych != '-')
- goto yy31;
- yych = *++p;
- if (yych == 'S')
- goto yy119;
- if (yych != 's')
- goto yy31;
- yy119:
- yych = *++p;
- if (yych == 'O')
- goto yy120;
- if (yych != 'o')
- goto yy31;
- yy120:
- yych = *++p;
- if (yych == 'U')
- goto yy121;
- if (yych != 'u')
- goto yy31;
- yy121:
- yych = *++p;
- if (yych == 'R')
- goto yy122;
- if (yych != 'r')
- goto yy31;
- yy122:
- yych = *++p;
- if (yych == 'C')
- goto yy123;
- if (yych != 'c')
- goto yy31;
- yy123:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy124:
- yych = *++p;
- if (yych == '2')
- goto yy131;
- goto yy31;
- yy125:
- yych = *++p;
- if (yych == 'R')
- goto yy128;
- if (yych == 'r')
- goto yy128;
- goto yy31;
- yy126:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy127:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy128:
- yych = *++p;
- if (yych == 'E')
- goto yy129;
- if (yych != 'e')
- goto yy31;
- yy129:
- yych = *++p;
- if (yych == 'A')
- goto yy130;
- if (yych != 'a')
- goto yy31;
- yy130:
- yych = *++p;
- if (yych == 'L')
- goto yy41;
- if (yych == 'l')
- goto yy41;
- goto yy31;
- yy131:
- yych = *++p;
- if (yych != '0')
- goto yy31;
- yych = *++p;
- if (yych != '0')
- goto yy31;
- yych = *++p;
- if (yych == '4')
- goto yy41;
- goto yy31;
- yy134:
- yych = *++p;
- if (yych == 'I')
- goto yy153;
- if (yych == 'i')
- goto yy153;
- goto yy31;
- yy135:
- yych = *++p;
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy145;
- if (yych <= 'K')
- goto yy31;
- goto yy144;
- } else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy31;
- goto yy145;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'l')
- goto yy144;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy136:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy137:
- yych = *++p;
- if (yych == '3')
- goto yy141;
- goto yy31;
- yy138:
- yych = *++p;
- if (yych == 'T')
- goto yy140;
- if (yych == 't')
- goto yy140;
- goto yy31;
- yy139:
- yych = *++p;
- if (yych == 'G')
- goto yy41;
- if (yych == 'g')
- goto yy41;
- goto yy31;
- yy140:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy141:
- yych = *++p;
- if (yych != '2')
- goto yy31;
- yych = *++p;
- if (yych != '7')
- goto yy31;
- yych = *++p;
- if (yych == '0')
- goto yy41;
- goto yy31;
- yy144:
- yych = *++p;
- if (yych <= 'M') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'N')
- goto yy151;
- if (yych == 'n')
- goto yy151;
- goto yy31;
- }
- yy145:
yych = *++p;
- if (yych == 'M')
- goto yy146;
- if (yych != 'm')
- goto yy31;
- yy146:
- yych = *++p;
- if (yych == 'S')
- goto yy147;
- if (yych != 's')
- goto yy31;
- yy147:
- yych = *++p;
- if (yych == 'P')
- goto yy148;
- if (yych != 'p')
- goto yy31;
- yy148:
- yych = *++p;
- if (yych == 'E')
- goto yy149;
- if (yych != 'e')
- goto yy31;
- yy149:
- yych = *++p;
- if (yych == 'A')
- goto yy150;
- if (yych != 'a')
- goto yy31;
- yy150:
- yych = *++p;
- if (yych == 'K')
- goto yy41;
- if (yych == 'k')
- goto yy41;
- goto yy31;
- yy151:
- yych = *++p;
- if (yych == 'E')
- goto yy152;
- if (yych != 'e')
- goto yy31;
- yy152:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy153:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'N')
- goto yy154;
- if (yych <= 'R')
- goto yy31;
- goto yy155;
- } else {
- if (yych <= 'n') {
- if (yych <= 'm')
- goto yy31;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy155;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy154:
- yych = *++p;
- if (yych == 'G')
- goto yy162;
- if (yych == 'g')
- goto yy162;
- goto yy31;
- yy155:
- yych = *++p;
- if (yych == 'M')
- goto yy156;
- if (yych != 'm')
- goto yy31;
- yy156:
- yych = *++p;
- if (yych == 'E')
- goto yy157;
- if (yych != 'e')
- goto yy31;
- yy157:
- yych = *++p;
- if (yych == 'S')
- goto yy158;
- if (yych != 's')
- goto yy31;
- yy158:
- yych = *++p;
- if (yych == 'S')
- goto yy159;
- if (yych != 's')
- goto yy31;
- yy159:
- yych = *++p;
- if (yych == 'A')
- goto yy160;
- if (yych != 'a')
- goto yy31;
- yy160:
- yych = *++p;
- if (yych == 'G')
- goto yy161;
- if (yych != 'g')
- goto yy31;
- yy161:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy162:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy163:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy164:
- yych = *++p;
- if (yych == 'E')
- goto yy214;
- if (yych == 'e')
- goto yy214;
- goto yy31;
- yy165:
- yych = *++p;
- if (yych == 'H')
- goto yy41;
- if (yych == 'h')
- goto yy41;
- goto yy31;
- yy166:
- yych = *++p;
- if (yych == 'O')
- goto yy210;
- if (yych == 'o')
- goto yy210;
- goto yy31;
- yy167:
- yych = *++p;
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy200;
- if (yych <= 'K')
- goto yy31;
- goto yy201;
} else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy31;
- goto yy200;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'l')
- goto yy201;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy168:
yych = *++p;
- if (yych <= 'S') {
- if (yych == 'B')
- goto yy41;
- if (yych <= 'R')
- goto yy31;
- goto yy41;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'b') {
- if (yych <= 'a')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy169:
- yych = *++p;
- if (yych == 'Y')
- goto yy198;
- if (yych == 'y')
- goto yy198;
- goto yy31;
- yy170:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy171:
yych = *++p;
- if (yych == 'T')
- goto yy197;
- if (yych == 't')
- goto yy197;
- goto yy31;
- yy172:
- yych = *++p;
- if (yych <= 'S') {
- if (yych <= 'C') {
- if (yych <= 'B')
- goto yy31;
- goto yy184;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'Q')
- goto yy31;
- if (yych <= 'R')
- goto yy182;
- goto yy183;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'q') {
- if (yych == 'c')
- goto yy184;
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'r')
- goto yy182;
- if (yych <= 's')
- goto yy183;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy173:
yych = *++p;
- if (yych == 'M')
- goto yy181;
- if (yych == 'm')
- goto yy181;
- goto yy31;
- yy174:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'E')
- goto yy178;
- if (yych <= 'O')
- goto yy31;
- goto yy179;
- } else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy31;
- goto yy178;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy179;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy175:
- yych = *++p;
- if (yych == 'T')
- goto yy176;
- if (yych != 't')
- goto yy31;
- yy176:
- yych = *++p;
- if (yych == 'T')
- goto yy177;
- if (yych != 't')
- goto yy31;
- yy177:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy178:
- yych = *++p;
- if (yych == 'V')
- goto yy180;
- if (yych == 'v')
- goto yy180;
- goto yy31;
- yy179:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy180:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy181:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy182:
- yych = *++p;
- if (yych == 'V')
- goto yy194;
- if (yych == 'v')
- goto yy194;
- goto yy31;
- yy183:
- yych = *++p;
- if (yych == 'S')
- goto yy191;
- if (yych == 's')
- goto yy191;
- goto yy31;
- yy184:
- yych = *++p;
- if (yych == 'O')
- goto yy185;
- if (yych != 'o')
- goto yy31;
- yy185:
- yych = *++p;
- if (yych == 'N')
- goto yy186;
- if (yych != 'n')
- goto yy31;
- yy186:
- yych = *++p;
- if (yych == 'D')
- goto yy187;
- if (yych != 'd')
- goto yy31;
- yy187:
- yych = *++p;
- if (yych == 'L')
- goto yy188;
- if (yych != 'l')
- goto yy31;
- yy188:
- yych = *++p;
- if (yych == 'I')
- goto yy189;
- if (yych != 'i')
- goto yy31;
- yy189:
- yych = *++p;
- if (yych == 'F')
- goto yy190;
- if (yych != 'f')
- goto yy31;
- yy190:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy191:
- yych = *++p;
- if (yych == 'I')
- goto yy192;
- if (yych != 'i')
- goto yy31;
- yy192:
- yych = *++p;
- if (yych == 'O')
- goto yy193;
- if (yych != 'o')
- goto yy31;
- yy193:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy194:
- yych = *++p;
- if (yych == 'I')
- goto yy195;
- if (yych != 'i')
- goto yy31;
- yy195:
- yych = *++p;
- if (yych == 'C')
- goto yy196;
- if (yych != 'c')
- goto yy31;
- yy196:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy197:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy198:
- yych = *++p;
- if (yych == 'P')
- goto yy199;
- if (yych != 'p')
- goto yy31;
- yy199:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy200:
- yych = *++p;
- if (yych == 'P')
- goto yy204;
- if (yych == 'p')
- goto yy204;
- goto yy31;
- yy201:
- yych = *++p;
- if (yych == 'D')
- goto yy202;
- if (yych != 'd')
- goto yy31;
- yy202:
- yych = *++p;
- if (yych == 'A')
- goto yy203;
- if (yych != 'a')
- goto yy31;
- yy203:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy204:
- yych = *++p;
- if (yych != '.')
- goto yy31;
- yych = *++p;
- if (yych == 'B')
- goto yy206;
- if (yych != 'b')
- goto yy31;
- yy206:
- yych = *++p;
- if (yych == 'E')
- goto yy207;
- if (yych != 'e')
- goto yy31;
- yy207:
- yych = *++p;
- if (yych == 'E')
- goto yy208;
- if (yych != 'e')
- goto yy31;
- yy208:
- yych = *++p;
- if (yych == 'P')
- goto yy209;
- if (yych != 'p')
- goto yy31;
- yy209:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
} else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy210:
- yych = *++p;
- if (yych == 'T')
- goto yy211;
- if (yych != 't')
- goto yy31;
- yy211:
- yych = *++p;
- if (yych == 'I')
- goto yy212;
- if (yych != 'i')
- goto yy31;
- yy212:
- yych = *++p;
- if (yych == 'F')
- goto yy213;
- if (yych != 'f')
- goto yy31;
- yy213:
- yych = *++p;
- if (yych == 'Y')
- goto yy41;
- if (yych == 'y')
- goto yy41;
- goto yy31;
- yy214:
- yych = *++p;
- if (yych == 'A')
- goto yy215;
- if (yych != 'a')
- goto yy31;
- yy215:
- yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy216:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'M')
- goto yy228;
- if (yych <= 'R')
- goto yy31;
- goto yy227;
- } else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy31;
- goto yy228;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy227;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy217:
yych = *++p;
- if (yych == 'Y')
- goto yy225;
- if (yych == 'y')
- goto yy225;
- goto yy31;
- yy218:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy219:
- yych = *++p;
- if (yych == 'S')
- goto yy220;
- if (yych != 's')
- goto yy31;
- yy220:
- yych = *++p;
- if (yych <= 'N') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'O')
- goto yy221;
- if (yych != 'o')
- goto yy31;
- }
- yy221:
- yych = *++p;
- if (yych == 'U')
- goto yy222;
- if (yych != 'u')
- goto yy31;
- yy222:
- yych = *++p;
- if (yych == 'R')
- goto yy223;
- if (yych != 'r')
- goto yy31;
- yy223:
- yych = *++p;
- if (yych == 'C')
- goto yy224;
- if (yych != 'c')
- goto yy31;
- yy224:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy225:
- yych = *++p;
- if (yych == 'N')
- goto yy226;
- if (yych != 'n')
- goto yy31;
- yy226:
- yych = *++p;
- if (yych == 'C')
- goto yy41;
- if (yych == 'c')
- goto yy41;
- goto yy31;
- yy227:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy228:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy229:
- yych = *++p;
- if (yych == 'Y')
- goto yy249;
- if (yych == 'y')
- goto yy249;
- goto yy31;
- yy230:
- yych = *++p;
- if (yych <= 'O') {
- if (yych == 'E')
- goto yy246;
- if (yych <= 'N')
- goto yy31;
- goto yy247;
- } else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy31;
- goto yy246;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'o')
- goto yy247;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy231:
- yych = *++p;
- if (yych == 'A')
- goto yy241;
- if (yych == 'a')
- goto yy241;
- goto yy31;
- yy232:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy234;
- if (yych <= 'O')
- goto yy31;
- goto yy235;
} else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy31;
- goto yy234;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy235;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy233:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy234:
- yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy235:
- yych = *++p;
- if (yych == 'A')
- goto yy236;
- if (yych != 'a')
- goto yy31;
- yy236:
- yych = *++p;
- if (yych == 'R')
- goto yy237;
- if (yych != 'r')
- goto yy31;
- yy237:
- yych = *++p;
- if (yych == 'A')
- goto yy238;
- if (yych != 'a')
- goto yy31;
- yy238:
- yych = *++p;
- if (yych == 'Z')
- goto yy239;
- if (yych != 'z')
- goto yy31;
- yy239:
- yych = *++p;
- if (yych == 'Z')
- goto yy240;
- if (yych != 'z')
- goto yy31;
- yy240:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy241:
- yych = *++p;
- if (yych == 'T')
- goto yy242;
- if (yych != 't')
- goto yy31;
- yy242:
- yych = *++p;
- if (yych == 'F')
- goto yy243;
- if (yych != 'f')
- goto yy31;
- yy243:
- yych = *++p;
- if (yych == 'O')
- goto yy244;
- if (yych != 'o')
- goto yy31;
- yy244:
- yych = *++p;
- if (yych == 'R')
- goto yy245;
- if (yych != 'r')
- goto yy31;
- yy245:
yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy246:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy247:
- yych = *++p;
- if (yych == 'X')
- goto yy248;
- if (yych != 'x')
- goto yy31;
- yy248:
- yych = *++p;
- if (yych == 'Y')
- goto yy41;
- if (yych == 'y')
- goto yy41;
- goto yy31;
- yy249:
- yych = *++p;
- if (yych == 'C')
- goto yy41;
- if (yych == 'c')
- goto yy41;
- goto yy31;
- yy250:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy251:
- yych = *++p;
- if (yych == 'A')
- goto yy252;
- if (yych != 'a')
- goto yy31;
- yy252:
- yych = *++p;
- if (yych == 'Q')
- goto yy253;
- if (yych != 'q')
- goto yy31;
- yy253:
- yych = *++p;
- if (yych == 'U')
- goto yy254;
- if (yych != 'u')
- goto yy31;
- yy254:
- yych = *++p;
- if (yych == 'E')
- goto yy255;
- if (yych != 'e')
- goto yy31;
- yy255:
- yych = *++p;
- if (yych == 'L')
- goto yy256;
- if (yych != 'l')
- goto yy31;
- yy256:
- yych = *++p;
- if (yych == 'O')
- goto yy257;
- if (yych != 'o')
- goto yy31;
- yy257:
- yych = *++p;
- if (yych == 'C')
- goto yy258;
- if (yych != 'c')
- goto yy31;
- yy258:
- yych = *++p;
- if (yych == 'K')
- goto yy259;
- if (yych != 'k')
- goto yy31;
- yy259:
- yych = *++p;
- if (yych == 'T')
- goto yy260;
- if (yych != 't')
- goto yy31;
- yy260:
- yych = *++p;
- if (yych == 'O')
- goto yy261;
- if (yych != 'o')
- goto yy31;
- yy261:
- yych = *++p;
- if (yych == 'K')
- goto yy262;
- if (yych != 'k')
- goto yy31;
- yy262:
- yych = *++p;
- if (yych == 'E')
- goto yy263;
- if (yych != 'e')
- goto yy31;
- yy263:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy264:
- yych = *++p;
- if (yych == 'T')
- goto yy271;
- if (yych == 't')
- goto yy271;
- goto yy31;
- yy265:
- yych = *++p;
- if (yych == 'T')
- goto yy270;
- if (yych == 't')
- goto yy270;
- goto yy31;
- yy266:
- yych = *++p;
- if (yych <= 'G') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'H')
- goto yy41;
- if (yych == 'h')
- goto yy41;
- goto yy31;
- }
- yy267:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy268:
- yych = *++p;
- if (yych == 'W')
- goto yy269;
- if (yych != 'w')
- goto yy31;
- yy269:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy270:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy271:
- yych = *++p;
- if (yych == 'E')
- goto yy272;
- if (yych != 'e')
- goto yy31;
- yy272:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy273:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy274:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'M')
- goto yy305;
- if (yych <= 'O')
- goto yy31;
- goto yy304;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy31;
- goto yy305;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy304;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy275:
yych = *++p;
- if (yych <= 'Q') {
- if (yych <= '-') {
- if (yych <= ',')
- goto yy31;
- goto yy297;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'N')
- goto yy298;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'n') {
- if (yych <= 'R')
- goto yy296;
- if (yych <= 'm')
- goto yy31;
- goto yy298;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'r')
- goto yy296;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy276:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy277:
- yych = *++p;
- if (yych == 'S')
- goto yy292;
- if (yych == 's')
- goto yy292;
- goto yy31;
- yy278:
- yych = *++p;
- switch (yych) {
- case 'G':
- case 'g':
- goto yy283;
- case 'I':
- case 'i':
- goto yy282;
- case 'P':
- case 'p':
- goto yy284;
- case 'R':
- case 'r':
- goto yy285;
- default:
- goto yy31;
- }
- yy279:
yych = *++p;
- if (yych == 'Q')
- goto yy281;
- if (yych == 'q')
- goto yy281;
- goto yy31;
- yy280:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy281:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy282:
- yych = *++p;
- if (yych == 'L')
- goto yy290;
- if (yych == 'l')
- goto yy290;
- goto yy31;
- yy283:
- yych = *++p;
- if (yych == 'N')
- goto yy288;
- if (yych == 'n')
- goto yy288;
- goto yy31;
- yy284:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy285:
- yych = *++p;
- if (yych == 'K')
- goto yy286;
- if (yych != 'k')
- goto yy31;
- yy286:
- yych = *++p;
- if (yych == 'E')
- goto yy287;
- if (yych != 'e')
- goto yy31;
- yy287:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy288:
- yych = *++p;
- if (yych == 'E')
- goto yy289;
- if (yych != 'e')
- goto yy31;
- yy289:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy290:
- yych = *++p;
- if (yych == 'T')
- goto yy291;
- if (yych != 't')
- goto yy31;
- yy291:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy292:
- yych = *++p;
- if (yych == 'S')
- goto yy293;
- if (yych != 's')
- goto yy31;
- yy293:
- yych = *++p;
- if (yych == 'A')
- goto yy294;
- if (yych != 'a')
- goto yy31;
- yy294:
- yych = *++p;
- if (yych == 'G')
- goto yy295;
- if (yych != 'g')
- goto yy31;
- yy295:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy296:
- yych = *++p;
- if (yych == 'P')
- goto yy303;
- if (yych == 'p')
- goto yy303;
- goto yy31;
- yy297:
- yych = *++p;
- if (yych == 'H')
- goto yy300;
- if (yych == 'h')
- goto yy300;
- goto yy31;
- yy298:
- yych = *++p;
- if (yych == 'I')
- goto yy299;
- if (yych != 'i')
- goto yy31;
- yy299:
- yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy300:
- yych = *++p;
- if (yych == 'E')
- goto yy301;
- if (yych != 'e')
- goto yy31;
- yy301:
- yych = *++p;
- if (yych == 'L')
- goto yy302;
- if (yych != 'l')
- goto yy31;
- yy302:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy303:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy304:
- yych = *++p;
- if (yych == 'D')
- goto yy308;
- if (yych == 'd')
- goto yy308;
- goto yy31;
- yy305:
- yych = *++p;
- if (yych == 'B')
- goto yy306;
- if (yych != 'b')
- goto yy31;
- yy306:
- yych = *++p;
- if (yych == 'L')
- goto yy307;
- if (yych != 'l')
- goto yy31;
- yy307:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy308:
- yych = *++p;
- if (yych == 'A')
- goto yy309;
- if (yych != 'a')
- goto yy31;
- yy309:
- yych = *++p;
- if (yych == 'T')
- goto yy310;
- if (yych != 't')
- goto yy31;
- yy310:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy311:
- yych = *++p;
- if (yych == 'A')
- goto yy316;
- if (yych == 'a')
- goto yy316;
- goto yy31;
- yy312:
- yych = *++p;
- if (yych == 'S')
- goto yy313;
- if (yych != 's')
- goto yy31;
- yy313:
- yych = *++p;
- if (yych == 'T')
- goto yy314;
- if (yych != 't')
- goto yy31;
- yy314:
- yych = *++p;
- if (yych == 'F')
- goto yy315;
- if (yych != 'f')
- goto yy31;
- yy315:
- yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy316:
- yych = *++p;
- if (yych == 'P')
- goto yy317;
- if (yych != 'p')
- goto yy31;
- yy317:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy318:
- yych = *++p;
- if (yych == 'M')
- goto yy341;
- if (yych == 'm')
- goto yy341;
- goto yy31;
- yy319:
- yych = *++p;
- if (yych <= 'I') {
- if (yych == 'C')
- goto yy330;
- if (yych <= 'H')
- goto yy31;
- goto yy329;
- } else {
- if (yych <= 'c') {
- if (yych <= 'b')
- goto yy31;
- goto yy330;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'i')
- goto yy329;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy320:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'N')
- goto yy41;
- if (yych <= 'O')
- goto yy31;
- goto yy41;
} else {
- if (yych <= 'n') {
- if (yych <= 'm')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy321:
yych = *++p;
- if (yych <= 'O') {
- if (yych == 'A')
- goto yy327;
- if (yych <= 'N')
- goto yy31;
- goto yy328;
- } else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy31;
- goto yy327;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych == 'o')
- goto yy328;
- goto yy31;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
- }
- yy322:
- yych = *++p;
- if (yych == 'F')
- goto yy326;
- if (yych == 'f')
- goto yy326;
- goto yy31;
- yy323:
- yych = *++p;
- if (yych <= '@') {
- if (yych == ':')
- goto yy42;
- goto yy31;
} else {
- if (yych <= 'A')
- goto yy325;
- if (yych == 'a')
- goto yy325;
- goto yy31;
- }
- yy324:
- yych = *++p;
- if (yych == 'X')
- goto yy41;
- if (yych == 'x')
- goto yy41;
- goto yy31;
- yy325:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy326:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy327:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy328:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy329:
- yych = *++p;
- if (yych == 'S')
- goto yy331;
- if (yych == 's')
- goto yy331;
- goto yy31;
- yy330:
- yych = *++p;
- if (yych <= ':') {
- if (yych == '6')
- goto yy41;
- if (yych <= '9')
- goto yy31;
- goto yy42;
- } else {
- if (yych <= 'S') {
- if (yych <= 'R')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy331:
yych = *++p;
- if (yych == '.')
- goto yy332;
- if (yych == ':')
- goto yy42;
- goto yy31;
- yy332:
- yych = *++p;
- if (yych <= 'X') {
- if (yych <= 'K') {
- if (yych == 'B')
- goto yy335;
- goto yy31;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'L')
- goto yy333;
- if (yych <= 'W')
- goto yy31;
- goto yy334;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'k') {
- if (yych == 'b')
- goto yy335;
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'l')
- goto yy333;
- if (yych == 'x')
- goto yy334;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy333:
- yych = *++p;
- if (yych == 'W')
- goto yy340;
- if (yych == 'w')
- goto yy340;
- goto yy31;
- yy334:
- yych = *++p;
- if (yych == 'P')
- goto yy338;
- if (yych == 'p')
- goto yy338;
- goto yy31;
- yy335:
- yych = *++p;
- if (yych == 'E')
- goto yy336;
- if (yych != 'e')
- goto yy31;
- yy336:
- yych = *++p;
- if (yych == 'E')
- goto yy337;
- if (yych != 'e')
- goto yy31;
- yy337:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy338:
- yych = *++p;
- if (yych == 'C')
- goto yy339;
- if (yych != 'c')
- goto yy31;
- yy339:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy340:
- yych = *++p;
- if (yych == 'Z')
- goto yy41;
- if (yych == 'z')
- goto yy41;
- goto yy31;
- yy341:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy342:
yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy343:
- yych = *++p;
- if (yych == 'T')
- goto yy346;
- if (yych == 't')
- goto yy346;
- goto yy31;
- yy344:
- yych = *++p;
- if (yych != '2')
- goto yy31;
- yych = *++p;
- if (yych == '3')
- goto yy41;
- goto yy31;
- yy346:
- yych = *++p;
- if (yych == 'P')
- goto yy347;
- if (yych != 'p')
- goto yy31;
- yy347:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- }
- yy348:
- yych = *++p;
- if (yych == 'A')
- goto yy364;
- if (yych == 'a')
- goto yy364;
- goto yy31;
- yy349:
- yych = *++p;
- if (yych <= 'Z') {
- if (yych == 'T')
- goto yy41;
- if (yych <= 'Y')
- goto yy31;
- goto yy355;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 't') {
- if (yych <= 's')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'z')
- goto yy355;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy350:
yych = *++p;
- if (yych <= 'O') {
- if (yych == ':')
- goto yy42;
- goto yy31;
- } else {
- if (yych <= 'P')
- goto yy352;
- if (yych == 'p')
- goto yy352;
- goto yy31;
- }
- yy351:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy352:
- yych = *++p;
- if (yych == 'H')
- goto yy353;
- if (yych != 'h')
- goto yy31;
- yy353:
- yych = *++p;
- if (yych == 'E')
- goto yy354;
- if (yych != 'e')
- goto yy31;
- yy354:
- yych = *++p;
- if (yych == 'R')
- goto yy41;
- if (yych == 'r')
- goto yy41;
- goto yy31;
- yy355:
- yych = *++p;
- if (yych == 'M')
- goto yy356;
- if (yych != 'm')
- goto yy31;
- yy356:
- yych = *++p;
- if (yych == 'O')
- goto yy357;
- if (yych != 'o')
- goto yy31;
- yy357:
- yych = *++p;
- if (yych == 'P')
- goto yy358;
- if (yych != 'p')
- goto yy31;
- yy358:
- yych = *++p;
- if (yych == 'R')
- goto yy359;
- if (yych != 'r')
- goto yy31;
- yy359:
- yych = *++p;
- if (yych == 'O')
- goto yy360;
- if (yych != 'o')
- goto yy31;
- yy360:
- yych = *++p;
- if (yych == 'J')
- goto yy361;
- if (yych != 'j')
- goto yy31;
- yy361:
- yych = *++p;
- if (yych == 'E')
- goto yy362;
- if (yych != 'e')
- goto yy31;
- yy362:
- yych = *++p;
- if (yych == 'C')
- goto yy363;
- if (yych != 'c')
- goto yy31;
- yy363:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy364:
- yych = *++p;
- if (yych == 'L')
- goto yy365;
- if (yych != 'l')
- goto yy31;
- yy365:
- yych = *++p;
- if (yych == 'K')
- goto yy41;
- if (yych == 'k')
- goto yy41;
- goto yy31;
- yy366:
- yych = *++p;
- if (yych <= 'S') {
- if (yych <= 'M') {
- if (yych == 'L')
- goto yy376;
- goto yy31;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'N')
- goto yy377;
- if (yych <= 'R')
- goto yy31;
- goto yy378;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'm') {
- if (yych == 'l')
- goto yy376;
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'n')
- goto yy377;
- if (yych == 's')
- goto yy378;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy367:
- yych = *++p;
- if (yych == 'E')
- goto yy375;
- if (yych == 'e')
- goto yy375;
- goto yy31;
- yy368:
- yych = *++p;
- if (yych == 'C')
- goto yy370;
- if (yych == 'c')
- goto yy370;
- goto yy31;
- yy369:
yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy370:
- yych = *++p;
- if (yych == 'E')
- goto yy371;
- if (yych != 'e')
- goto yy31;
- yy371:
- yych = *++p;
- if (yych == 'T')
- goto yy372;
- if (yych != 't')
- goto yy31;
- yy372:
- yych = *++p;
- if (yych == 'I')
- goto yy373;
- if (yych != 'i')
- goto yy31;
- yy373:
- yych = *++p;
- if (yych == 'M')
- goto yy374;
- if (yych != 'm')
- goto yy31;
- yy374:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy375:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy376:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy377:
- yych = *++p;
- if (yych == 'G')
- goto yy379;
- if (yych == 'g')
- goto yy379;
- goto yy31;
- yy378:
- yych = *++p;
- if (yych == 'H')
- goto yy41;
- if (yych == 'h')
- goto yy41;
- goto yy31;
- yy379:
- yych = *++p;
- if (yych == 'E')
- goto yy380;
- if (yych != 'e')
- goto yy31;
- yy380:
- yych = *++p;
- if (yych == 'R')
- goto yy41;
- if (yych == 'r')
- goto yy41;
- goto yy31;
- yy381:
- yych = *++p;
- if (yych == 'T')
- goto yy399;
- if (yych == 't')
- goto yy399;
- goto yy31;
- yy382:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy383:
- yych = *++p;
- if (yych == 'M')
- goto yy41;
- if (yych == 'm')
- goto yy41;
- goto yy31;
- yy384:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'P')
- goto yy41;
- if (yych <= 'R')
- goto yy31;
- goto yy41;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'p') {
- if (yych <= 'o')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy385:
yych = *++p;
- if (yych == 'I')
- goto yy393;
- if (yych == 'i')
- goto yy393;
- goto yy31;
- yy386:
- yych = *++p;
- if (yych == 'A')
- goto yy392;
- if (yych == 'a')
- goto yy392;
- goto yy31;
- yy387:
- yych = *++p;
- if (yych == 'O')
- goto yy390;
- if (yych == 'o')
- goto yy390;
- goto yy31;
- yy388:
- yych = *++p;
- if (yych == 'A')
- goto yy389;
- if (yych != 'a')
- goto yy31;
- yy389:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy42;
- goto yy31;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
+ } else {
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
+ }
}
- yy390:
- yych = *++p;
- if (yych == 'U')
- goto yy391;
- if (yych != 'u')
- goto yy31;
- yy391:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy392:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy393:
- yych = *++p;
- if (yych == 'U')
- goto yy394;
- if (yych != 'u')
- goto yy31;
- yy394:
- yych = *++p;
- if (yych == 'M')
- goto yy395;
- if (yych != 'm')
- goto yy31;
- yy395:
- yych = *++p;
- if (yych == 'X')
- goto yy396;
- if (yych != 'x')
- goto yy31;
- yy396:
- yych = *++p;
- if (yych == 'T')
- goto yy397;
- if (yych != 't')
- goto yy31;
- yy397:
yych = *++p;
- if (yych == 'R')
- goto yy398;
- if (yych != 'r')
- goto yy31;
- yy398:
- yych = *++p;
- if (yych == 'A')
- goto yy41;
- if (yych == 'a')
- goto yy41;
- goto yy31;
- yy399:
- yych = *++p;
- if (yych == 'A')
- goto yy400;
- if (yych != 'a')
- goto yy31;
- yy400:
- yych = *++p;
- if (yych == 'C')
- goto yy401;
- if (yych != 'c')
- goto yy31;
- yy401:
- yych = *++p;
- if (yych == 'H')
- goto yy402;
- if (yych != 'h')
- goto yy31;
- yy402:
- yych = *++p;
- if (yych == 'M')
- goto yy403;
- if (yych != 'm')
- goto yy31;
- yy403:
- yych = *++p;
- if (yych == 'E')
- goto yy404;
- if (yych != 'e')
- goto yy31;
- yy404:
- yych = *++p;
- if (yych == 'N')
- goto yy405;
- if (yych != 'n')
- goto yy31;
- yy405:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy406:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy407:
- yych = *++p;
- if (yych <= 'V') {
- if (yych == 'R')
- goto yy41;
- if (yych <= 'U')
- goto yy31;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'r') {
- if (yych <= 'q')
- goto yy31;
- goto yy41;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych != 'v')
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
yych = *++p;
- if (yych == 'A')
- goto yy409;
- if (yych != 'a')
- goto yy31;
- yy409:
- yych = *++p;
- if (yych == 'S')
- goto yy410;
- if (yych != 's')
- goto yy31;
- yy410:
- yych = *++p;
- if (yych == 'C')
- goto yy411;
- if (yych != 'c')
- goto yy31;
- yy411:
- yych = *++p;
- if (yych == 'R')
- goto yy412;
- if (yych != 'r')
- goto yy31;
- yy412:
- yych = *++p;
- if (yych == 'I')
- goto yy413;
- if (yych != 'i')
- goto yy31;
- yy413:
- yych = *++p;
- if (yych == 'P')
- goto yy414;
- if (yych != 'p')
- goto yy31;
- yy414:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy415:
- yych = *++p;
- if (yych == 'B')
- goto yy41;
- if (yych == 'b')
- goto yy41;
- goto yy31;
- yy416:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy417:
- yych = *++p;
- if (yych == 'N')
- goto yy424;
- if (yych == 'n')
- goto yy424;
- goto yy31;
- yy418:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy419:
- yych = *++p;
- if (yych == 'C')
- goto yy423;
- if (yych == 'c')
- goto yy423;
- goto yy31;
- yy420:
- yych = *++p;
- if (yych <= 'V') {
- if (yych == 'T')
- goto yy422;
- if (yych <= 'U')
- goto yy31;
- goto yy41;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 't') {
- if (yych <= 's')
- goto yy31;
- goto yy422;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'v')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy421:
- yych = *++p;
- if (yych == 'I')
- goto yy41;
- if (yych == 'i')
- goto yy41;
- goto yy31;
- yy422:
- yych = *++p;
- if (yych == 'A')
- goto yy41;
- if (yych == 'a')
- goto yy41;
- goto yy31;
- yy423:
yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy424:
- yych = *++p;
- if (yych == 'A')
- goto yy425;
- if (yych != 'a')
- goto yy31;
- yy425:
- yych = *++p;
- if (yych != '-')
- goto yy31;
- yych = *++p;
- if (yych == 'P')
- goto yy427;
- if (yych != 'p')
- goto yy31;
- yy427:
- yych = *++p;
- if (yych == 'L')
- goto yy428;
- if (yych != 'l')
- goto yy31;
- yy428:
- yych = *++p;
- if (yych == 'A')
- goto yy429;
- if (yych != 'a')
- goto yy31;
- yy429:
- yych = *++p;
- if (yych == 'Y')
- goto yy430;
- if (yych != 'y')
- goto yy31;
- yy430:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'C')
- goto yy431;
- if (yych <= 'R')
- goto yy31;
- goto yy432;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'c') {
- if (yych <= 'b')
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 's')
- goto yy432;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy431:
- yych = *++p;
- if (yych == 'O')
- goto yy437;
- if (yych == 'o')
- goto yy437;
- goto yy31;
- yy432:
- yych = *++p;
- if (yych == 'I')
- goto yy433;
- if (yych != 'i')
- goto yy31;
- yy433:
- yych = *++p;
- if (yych == 'N')
- goto yy434;
- if (yych != 'n')
- goto yy31;
- yy434:
- yych = *++p;
- if (yych == 'G')
- goto yy435;
- if (yych != 'g')
- goto yy31;
- yy435:
- yych = *++p;
- if (yych == 'L')
- goto yy436;
- if (yych != 'l')
- goto yy31;
- yy436:
- yych = *++p;
- if (yych == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
- yy437:
- yych = *++p;
- if (yych == 'N')
- goto yy438;
- if (yych != 'n')
- goto yy31;
- yy438:
- yych = *++p;
- if (yych == 'T')
- goto yy439;
- if (yych != 't')
- goto yy31;
- yy439:
- yych = *++p;
- if (yych == 'A')
- goto yy440;
- if (yych != 'a')
- goto yy31;
- yy440:
yych = *++p;
- if (yych == 'I')
- goto yy441;
- if (yych != 'i')
- goto yy31;
- yy441:
- yych = *++p;
- if (yych == 'N')
- goto yy442;
- if (yych != 'n')
- goto yy31;
- yy442:
- yych = *++p;
- if (yych == 'E')
- goto yy443;
- if (yych != 'e')
- goto yy31;
- yy443:
- yych = *++p;
- if (yych == 'R')
- goto yy41;
- if (yych == 'r')
- goto yy41;
- goto yy31;
- yy444:
- yych = *++p;
- if (yych == 'S')
- goto yy41;
- if (yych == 's')
- goto yy41;
- goto yy31;
- yy445:
- yych = *++p;
- if (yych <= 'N') {
- if (yych <= 'A') {
- if (yych <= '@')
- goto yy31;
- goto yy467;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
} else {
- if (yych <= 'L')
- goto yy31;
- if (yych <= 'M')
- goto yy468;
- goto yy469;
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
}
} else {
- if (yych <= 'l') {
- if (yych == 'a')
- goto yy467;
- goto yy31;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych <= 'm')
- goto yy468;
- if (yych <= 'n')
- goto yy469;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy446:
yych = *++p;
- if (yych == 'R')
- goto yy454;
- if (yych == 'r')
- goto yy454;
- goto yy31;
- yy447:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy451;
- if (yych <= 'O')
- goto yy31;
- goto yy41;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy6;
+ } else {
+ if (yych <= ',')
+ goto yy6;
+ if (yych >= '/')
+ goto yy6;
+ }
} else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy31;
- goto yy451;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy14;
+ if (yych <= '@')
+ goto yy6;
} else {
- if (yych == 'p')
- goto yy41;
- goto yy31;
+ if (yych <= '`')
+ goto yy6;
+ if (yych >= '{')
+ goto yy6;
}
}
- yy448:
- yych = *++p;
- if (yych == 'I')
- goto yy450;
- if (yych == 'i')
- goto yy450;
- goto yy31;
- yy449:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy450:
- yych = *++p;
- if (yych == 'D')
- goto yy41;
- if (yych == 'd')
- goto yy41;
- goto yy31;
- yy451:
- yych = *++p;
- if (yych == 'L')
- goto yy452;
- if (yych != 'l')
- goto yy31;
- yy452:
- yych = *++p;
- if (yych == 'T')
- goto yy453;
- if (yych != 't')
- goto yy31;
- yy453:
- yych = *++p;
- if (yych == 'O')
- goto yy41;
- if (yych == 'o')
- goto yy41;
- goto yy31;
- yy454:
- yych = *++p;
- if (yych == 'O')
- goto yy455;
- if (yych != 'o')
- goto yy31;
- yy455:
- yych = *++p;
- if (yych == 'M')
- goto yy456;
- if (yych != 'm')
- goto yy31;
- yy456:
- yych = *++p;
- if (yych == 'E')
- goto yy457;
- if (yych != 'e')
- goto yy31;
- yy457:
- yych = *++p;
- if (yych == '-')
- goto yy458;
- if (yych == ':')
- goto yy42;
- goto yy31;
- yy458:
- yych = *++p;
- if (yych == 'E')
- goto yy459;
- if (yych != 'e')
- goto yy31;
- yy459:
- yych = *++p;
- if (yych == 'X')
- goto yy460;
- if (yych != 'x')
- goto yy31;
- yy460:
- yych = *++p;
- if (yych == 'T')
- goto yy461;
- if (yych != 't')
- goto yy31;
- yy461:
- yych = *++p;
- if (yych == 'E')
- goto yy462;
- if (yych != 'e')
- goto yy31;
- yy462:
- yych = *++p;
- if (yych == 'N')
- goto yy463;
- if (yych != 'n')
- goto yy31;
- yy463:
- yych = *++p;
- if (yych == 'S')
- goto yy464;
- if (yych != 's')
- goto yy31;
- yy464:
- yych = *++p;
- if (yych == 'I')
- goto yy465;
- if (yych != 'i')
- goto yy31;
- yy465:
- yych = *++p;
- if (yych == 'O')
- goto yy466;
- if (yych != 'o')
- goto yy31;
- yy466:
- yych = *++p;
- if (yych == 'N')
- goto yy41;
- if (yych == 'n')
- goto yy41;
- goto yy31;
- yy467:
- yych = *++p;
- if (yych == 'P')
- goto yy41;
- if (yych == 'p')
- goto yy41;
- goto yy31;
- yy468:
- yych = *++p;
- if (yych == '-')
- goto yy473;
- goto yy31;
- yy469:
- yych = *++p;
- if (yych == 'T')
- goto yy470;
- if (yych != 't')
- goto yy31;
- yy470:
- yych = *++p;
- if (yych == 'E')
- goto yy471;
- if (yych != 'e')
- goto yy31;
- yy471:
- yych = *++p;
- if (yych == 'N')
- goto yy472;
- if (yych != 'n')
- goto yy31;
- yy472:
- yych = *++p;
- if (yych == 'T')
- goto yy41;
- if (yych == 't')
- goto yy41;
- goto yy31;
- yy473:
- yych = *++p;
- if (yych == 'E')
- goto yy474;
- if (yych != 'e')
- goto yy31;
- yy474:
- yych = *++p;
- if (yych == 'V')
- goto yy475;
- if (yych != 'v')
- goto yy31;
- yy475:
- yych = *++p;
- if (yych == 'E')
- goto yy476;
- if (yych != 'e')
- goto yy31;
- yy476:
- yych = *++p;
- if (yych == 'N')
- goto yy477;
- if (yych != 'n')
- goto yy31;
- yy477:
- yych = *++p;
- if (yych == 'T')
- goto yy478;
- if (yych != 't')
- goto yy31;
- yy478:
- yych = *++p;
- if (yych == 'B')
- goto yy479;
- if (yych != 'b')
- goto yy31;
- yy479:
- yych = *++p;
- if (yych == 'R')
- goto yy480;
- if (yych != 'r')
- goto yy31;
- yy480:
- yych = *++p;
- if (yych == 'I')
- goto yy481;
- if (yych != 'i')
- goto yy31;
- yy481:
- yych = *++p;
- if (yych == 'T')
- goto yy482;
- if (yych != 't')
- goto yy31;
- yy482:
- yych = *++p;
- if (yych == 'E')
- goto yy483;
- if (yych != 'e')
- goto yy31;
- yy483:
- yych = *++p;
- if (yych != '-')
- goto yy31;
- yych = *++p;
- if (yych == 'A')
- goto yy485;
- if (yych != 'a')
- goto yy31;
- yy485:
- yych = *++p;
- if (yych == 'T')
- goto yy486;
- if (yych != 't')
- goto yy31;
- yy486:
- yych = *++p;
- if (yych == 'T')
- goto yy487;
- if (yych != 't')
- goto yy31;
- yy487:
- yych = *++p;
- if (yych == 'E')
- goto yy488;
- if (yych != 'e')
- goto yy31;
- yy488:
- yych = *++p;
- if (yych == 'N')
- goto yy489;
- if (yych != 'n')
- goto yy31;
- yy489:
- yych = *++p;
- if (yych == 'D')
- goto yy490;
- if (yych != 'd')
- goto yy31;
- yy490:
- yych = *++p;
- if (yych == 'E')
- goto yy491;
- if (yych != 'e')
- goto yy31;
- yy491:
++p;
- if ((yych = *p) == 'E')
- goto yy41;
- if (yych == 'e')
- goto yy41;
- goto yy31;
+ if ((yych = *p) == ':')
+ goto yy14;
+ goto yy6;
}
}
@@ -4231,4265 +916,951 @@ bufsize_t _scan_autolink_uri(const unsigned char *p) {
0, 0, 0, 0,
};
yych = *(marker = p);
- if (yych <= 'c') {
- if (yych <= 'M') {
- if (yych <= 'E') {
- if (yych <= 'A') {
- if (yych == '\n')
- goto yy494;
- if (yych <= '@')
- goto yy521;
- goto yy498;
- } else {
- if (yych <= 'B')
- goto yy516;
- if (yych <= 'C')
- goto yy495;
- if (yych <= 'D')
- goto yy496;
- goto yy517;
- }
- } else {
- if (yych <= 'I') {
- if (yych <= 'F')
- goto yy499;
- if (yych <= 'G')
- goto yy500;
- if (yych <= 'H')
- goto yy501;
- goto yy502;
- } else {
- if (yych <= 'J')
- goto yy497;
- if (yych <= 'K')
- goto yy518;
- if (yych <= 'L')
- goto yy503;
- goto yy504;
- }
- }
- } else {
- if (yych <= 'U') {
- if (yych <= 'Q') {
- if (yych <= 'N')
- goto yy505;
- if (yych <= 'O')
- goto yy506;
- if (yych <= 'P')
- goto yy507;
- goto yy519;
- } else {
- if (yych <= 'R')
- goto yy508;
- if (yych <= 'S')
- goto yy509;
- if (yych <= 'T')
- goto yy510;
- goto yy511;
- }
- } else {
- if (yych <= 'Y') {
- if (yych <= 'V')
- goto yy512;
- if (yych <= 'W')
- goto yy513;
- if (yych <= 'X')
- goto yy514;
- goto yy520;
- } else {
- if (yych <= '`') {
- if (yych <= 'Z')
- goto yy515;
- goto yy521;
- } else {
- if (yych <= 'a')
- goto yy498;
- if (yych <= 'b')
- goto yy516;
- goto yy495;
- }
- }
- }
- }
- } else {
- if (yych <= 't') {
- if (yych <= 'k') {
- if (yych <= 'g') {
- if (yych <= 'd')
- goto yy496;
- if (yych <= 'e')
- goto yy517;
- if (yych <= 'f')
- goto yy499;
- goto yy500;
- } else {
- if (yych <= 'h')
- goto yy501;
- if (yych <= 'i')
- goto yy502;
- if (yych <= 'j')
- goto yy497;
- goto yy518;
- }
- } else {
- if (yych <= 'o') {
- if (yych <= 'l')
- goto yy503;
- if (yych <= 'm')
- goto yy504;
- if (yych <= 'n')
- goto yy505;
- goto yy506;
- } else {
- if (yych <= 'q') {
- if (yych <= 'p')
- goto yy507;
- goto yy519;
- } else {
- if (yych <= 'r')
- goto yy508;
- if (yych <= 's')
- goto yy509;
- goto yy510;
- }
- }
- }
- } else {
- if (yych <= 0xC1) {
- if (yych <= 'x') {
- if (yych <= 'u')
- goto yy511;
- if (yych <= 'v')
- goto yy512;
- if (yych <= 'w')
- goto yy513;
- goto yy514;
- } else {
- if (yych <= 'y')
- goto yy520;
- if (yych <= 'z')
- goto yy515;
- if (yych <= 0x7F)
- goto yy521;
- }
- } else {
- if (yych <= 0xED) {
- if (yych <= 0xDF)
- goto yy522;
- if (yych <= 0xE0)
- goto yy524;
- if (yych <= 0xEC)
- goto yy525;
- goto yy529;
- } else {
- if (yych <= 0xF0) {
- if (yych <= 0xEF)
- goto yy525;
- goto yy526;
- } else {
- if (yych <= 0xF3)
- goto yy527;
- if (yych <= 0xF4)
- goto yy528;
- }
- }
- }
- }
- }
- yy494 : { return 0; }
- yy495:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy948;
- case 'H':
- case 'h':
- goto yy947;
- case 'I':
- case 'i':
- goto yy950;
- case 'O':
- case 'o':
- goto yy946;
- case 'R':
- case 'r':
- goto yy949;
- case 'V':
- case 'v':
- goto yy945;
- default:
- goto yy494;
- }
- yy496:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy921;
- case 'I':
- case 'i':
- goto yy920;
- case 'L':
- case 'l':
- goto yy918;
- case 'N':
- case 'n':
- goto yy919;
- case 'O':
- case 'o':
- goto yy922;
- case 'T':
- case 't':
- goto yy917;
- case 'V':
- case 'v':
- goto yy916;
- default:
- goto yy494;
- }
- yy497:
- yych = *(marker = ++p);
- if (yych <= 'M') {
- if (yych == 'A')
- goto yy908;
- if (yych <= 'L')
- goto yy494;
- goto yy907;
- } else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy494;
- goto yy908;
- } else {
- if (yych == 'm')
- goto yy907;
- goto yy494;
- }
- }
- yy498:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy889;
- case 'B':
- case 'b':
- goto yy888;
- case 'C':
- case 'c':
- goto yy887;
- case 'D':
- case 'd':
- goto yy886;
- case 'F':
- case 'f':
- goto yy885;
- case 'I':
- case 'i':
- goto yy884;
- case 'P':
- case 'p':
- goto yy883;
- case 'T':
- case 't':
- goto yy882;
- case 'W':
- case 'w':
- goto yy533;
- default:
- goto yy494;
- }
- yy499:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'E') {
- if (yych == 'A')
- goto yy869;
- if (yych <= 'D')
- goto yy494;
- goto yy868;
- } else {
- if (yych == 'I')
- goto yy867;
- if (yych <= 'S')
- goto yy494;
- goto yy870;
- }
- } else {
- if (yych <= 'e') {
- if (yych == 'a')
- goto yy869;
- if (yych <= 'd')
- goto yy494;
- goto yy868;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h')
- goto yy494;
- goto yy867;
- } else {
- if (yych == 't')
- goto yy870;
- goto yy494;
- }
- }
- }
- yy500:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy852;
- case 'G':
- case 'g':
- goto yy533;
- case 'I':
- case 'i':
- goto yy850;
- case 'O':
- case 'o':
- goto yy851;
- case 'T':
- case 't':
- goto yy849;
- default:
- goto yy494;
- }
- yy501:
- yych = *(marker = ++p);
- if (yych <= 'S') {
- if (yych <= '3') {
- if (yych <= '2')
- goto yy494;
- goto yy845;
- } else {
- if (yych == 'C')
- goto yy843;
- goto yy494;
- }
- } else {
- if (yych <= 'c') {
- if (yych <= 'T')
- goto yy844;
- if (yych <= 'b')
- goto yy494;
- goto yy843;
- } else {
- if (yych == 't')
- goto yy844;
- goto yy494;
- }
- }
- yy502:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy825;
- case 'C':
- case 'c':
- goto yy822;
- case 'M':
- case 'm':
- goto yy824;
- case 'N':
- case 'n':
- goto yy823;
- case 'P':
- case 'p':
- goto yy821;
- case 'R':
- case 'r':
- goto yy820;
- case 'T':
- case 't':
- goto yy819;
- default:
- goto yy494;
- }
- yy503:
- yych = *(marker = ++p);
- if (yych <= 'D') {
- if (yych == 'A')
- goto yy813;
- if (yych <= 'C')
- goto yy494;
- goto yy812;
- } else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy494;
- goto yy813;
- } else {
- if (yych == 'd')
- goto yy812;
- goto yy494;
- }
- }
- yy504:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy779;
- case 'E':
- case 'e':
- goto yy778;
- case 'I':
- case 'i':
- goto yy781;
- case 'M':
- case 'm':
- goto yy777;
- case 'S':
- case 's':
- goto yy776;
- case 'T':
- case 't':
- goto yy780;
- case 'U':
- case 'u':
- goto yy775;
- case 'V':
- case 'v':
- goto yy774;
- default:
- goto yy494;
- }
- yy505:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy769;
- case 'F':
- case 'f':
- goto yy768;
- case 'I':
- case 'i':
- goto yy767;
- case 'N':
- case 'n':
- goto yy766;
- case 'O':
- case 'o':
- goto yy765;
- default:
- goto yy494;
- }
- yy506:
- yych = *(marker = ++p);
- if (yych <= 'P') {
- if (yych == 'I')
- goto yy751;
- if (yych <= 'O')
- goto yy494;
- goto yy752;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h')
- goto yy494;
- goto yy751;
- } else {
- if (yych == 'p')
- goto yy752;
- goto yy494;
- }
- }
- yy507:
- yych = *(marker = ++p);
- if (yych <= 'S') {
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy733;
- if (yych <= 'K')
- goto yy494;
- goto yy732;
+ if (yych <= 0x7F) {
+ if (yych <= ' ') {
+ if (yych == '\n')
+ goto yy48;
+ if (yych <= 0x1F)
+ goto yy50;
+ goto yy49;
} else {
- if (yych <= 'O') {
- if (yych <= 'N')
- goto yy494;
- goto yy734;
+ if (yych <= 'Z') {
+ if (yych <= '@')
+ goto yy50;
+ goto yy49;
} else {
- if (yych <= 'Q')
- goto yy494;
- if (yych <= 'R')
- goto yy731;
- goto yy730;
- }
- }
- } else {
- if (yych <= 'n') {
- if (yych <= 'a') {
if (yych <= '`')
- goto yy494;
- goto yy733;
- } else {
- if (yych == 'l')
- goto yy732;
- goto yy494;
- }
- } else {
- if (yych <= 'q') {
- if (yych <= 'o')
- goto yy734;
- goto yy494;
- } else {
- if (yych <= 'r')
- goto yy731;
- if (yych <= 's')
- goto yy730;
- goto yy494;
+ goto yy50;
+ if (yych <= 'z')
+ goto yy49;
+ goto yy50;
}
}
- }
- yy508:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'L') {
- if (yych == 'E')
- goto yy720;
- goto yy494;
- } else {
- if (yych <= 'M')
- goto yy719;
- if (yych <= 'R')
- goto yy494;
- if (yych <= 'S')
- goto yy718;
- goto yy717;
- }
- } else {
- if (yych <= 'm') {
- if (yych == 'e')
- goto yy720;
- if (yych <= 'l')
- goto yy494;
- goto yy719;
- } else {
- if (yych <= 'r')
- goto yy494;
- if (yych <= 's')
- goto yy718;
- if (yych <= 't')
- goto yy717;
- goto yy494;
- }
- }
- yy509:
- yych = *(marker = ++p);
- switch (yych) {
- case 'E':
- case 'e':
- goto yy673;
- case 'F':
- case 'f':
- goto yy672;
- case 'G':
- case 'g':
- goto yy671;
- case 'H':
- case 'h':
- goto yy676;
- case 'I':
- case 'i':
- goto yy675;
- case 'K':
- case 'k':
- goto yy670;
- case 'M':
- case 'm':
- goto yy669;
- case 'N':
- case 'n':
- goto yy674;
- case 'O':
- case 'o':
- goto yy668;
- case 'P':
- case 'p':
- goto yy667;
- case 'S':
- case 's':
- goto yy666;
- case 'T':
- case 't':
- goto yy665;
- case 'V':
- case 'v':
- goto yy664;
- default:
- goto yy494;
- }
- yy510:
- yych = *(marker = ++p);
- switch (yych) {
- case 'A':
- case 'a':
- goto yy640;
- case 'E':
- case 'e':
- goto yy636;
- case 'F':
- case 'f':
- goto yy639;
- case 'H':
- case 'h':
- goto yy635;
- case 'I':
- case 'i':
- goto yy637;
- case 'N':
- case 'n':
- goto yy638;
- case 'V':
- case 'v':
- goto yy533;
- default:
- goto yy494;
- }
- yy511:
- yych = *(marker = ++p);
- if (yych <= 'T') {
- if (yych <= 'N') {
- if (yych == 'D')
- goto yy627;
- if (yych <= 'M')
- goto yy494;
- goto yy626;
- } else {
- if (yych == 'R')
- goto yy628;
- if (yych <= 'S')
- goto yy494;
- goto yy625;
- }
} else {
- if (yych <= 'n') {
- if (yych == 'd')
- goto yy627;
- if (yych <= 'm')
- goto yy494;
- goto yy626;
- } else {
- if (yych <= 'r') {
- if (yych <= 'q')
- goto yy494;
- goto yy628;
+ if (yych <= 0xED) {
+ if (yych <= 0xDF) {
+ if (yych >= 0xC2)
+ goto yy51;
} else {
- if (yych == 't')
- goto yy625;
- goto yy494;
+ if (yych <= 0xE0)
+ goto yy53;
+ if (yych <= 0xEC)
+ goto yy54;
+ goto yy58;
}
- }
- }
- yy512:
- yych = *(marker = ++p);
- if (yych <= 'I') {
- if (yych == 'E')
- goto yy609;
- if (yych <= 'H')
- goto yy494;
- goto yy608;
- } else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy494;
- goto yy609;
- } else {
- if (yych == 'i')
- goto yy608;
- goto yy494;
- }
- }
- yy513:
- yych = *(marker = ++p);
- if (yych <= 'Y') {
- if (yych <= 'R') {
- if (yych == 'E')
- goto yy598;
- goto yy494;
} else {
- if (yych <= 'S')
- goto yy599;
- if (yych <= 'T')
- goto yy597;
- if (yych <= 'X')
- goto yy494;
- goto yy596;
- }
- } else {
- if (yych <= 's') {
- if (yych == 'e')
- goto yy598;
- if (yych <= 'r')
- goto yy494;
- goto yy599;
- } else {
- if (yych <= 't')
- goto yy597;
- if (yych == 'y')
- goto yy596;
- goto yy494;
- }
- }
- yy514:
- yych = *(marker = ++p);
- if (yych <= 'R') {
- if (yych <= 'F') {
- if (yych == 'C')
- goto yy575;
- if (yych <= 'E')
- goto yy494;
- goto yy573;
- } else {
- if (yych == 'M')
- goto yy574;
- if (yych <= 'Q')
- goto yy494;
- goto yy572;
- }
- } else {
- if (yych <= 'f') {
- if (yych == 'c')
- goto yy575;
- if (yych <= 'e')
- goto yy494;
- goto yy573;
- } else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy494;
- goto yy574;
+ if (yych <= 0xF0) {
+ if (yych <= 0xEF)
+ goto yy54;
+ goto yy55;
} else {
- if (yych == 'r')
- goto yy572;
- goto yy494;
+ if (yych <= 0xF3)
+ goto yy56;
+ if (yych <= 0xF4)
+ goto yy57;
}
}
}
- yy515:
- yych = *(marker = ++p);
- if (yych == '3')
- goto yy567;
- goto yy494;
- yy516:
+ yy48 : { return 0; }
+ yy49:
yych = *(marker = ++p);
- if (yych <= 'O') {
- if (yych <= 'H') {
- if (yych == 'E')
- goto yy557;
- goto yy494;
- } else {
- if (yych <= 'I')
- goto yy556;
- if (yych <= 'N')
- goto yy494;
- goto yy555;
- }
+ if (yych <= '.') {
+ if (yych == '+')
+ goto yy59;
+ if (yych <= ',')
+ goto yy48;
+ goto yy59;
} else {
- if (yych <= 'h') {
- if (yych == 'e')
- goto yy557;
- goto yy494;
+ if (yych <= 'Z') {
+ if (yych <= '@')
+ goto yy48;
+ goto yy59;
} else {
- if (yych <= 'i')
- goto yy556;
- if (yych == 'o')
- goto yy555;
- goto yy494;
+ if (yych <= '`')
+ goto yy48;
+ if (yych <= 'z')
+ goto yy59;
+ goto yy48;
}
}
- yy517:
- yych = *(marker = ++p);
- if (yych == 'D')
- goto yy553;
- if (yych == 'd')
- goto yy553;
- goto yy494;
- yy518:
- yych = *(marker = ++p);
- if (yych == 'E')
- goto yy548;
- if (yych == 'e')
- goto yy548;
- goto yy494;
- yy519:
- yych = *(marker = ++p);
- if (yych == 'U')
- goto yy545;
- if (yych == 'u')
- goto yy545;
- goto yy494;
- yy520:
- yych = *(marker = ++p);
- if (yych == 'M')
- goto yy530;
- if (yych == 'm')
- goto yy530;
- goto yy494;
- yy521:
+ yy50:
yych = *++p;
- goto yy494;
- yy522:
+ goto yy48;
+ yy51:
yych = *++p;
if (yych <= 0x7F)
- goto yy523;
+ goto yy52;
if (yych <= 0xBF)
- goto yy521;
- yy523:
+ goto yy50;
+ yy52:
p = marker;
- goto yy494;
- yy524:
+ goto yy48;
+ yy53:
yych = *++p;
if (yych <= 0x9F)
- goto yy523;
+ goto yy52;
if (yych <= 0xBF)
- goto yy522;
- goto yy523;
- yy525:
+ goto yy51;
+ goto yy52;
+ yy54:
yych = *++p;
if (yych <= 0x7F)
- goto yy523;
+ goto yy52;
if (yych <= 0xBF)
- goto yy522;
- goto yy523;
- yy526:
+ goto yy51;
+ goto yy52;
+ yy55:
yych = *++p;
if (yych <= 0x8F)
- goto yy523;
+ goto yy52;
if (yych <= 0xBF)
- goto yy525;
- goto yy523;
- yy527:
+ goto yy54;
+ goto yy52;
+ yy56:
yych = *++p;
if (yych <= 0x7F)
- goto yy523;
+ goto yy52;
if (yych <= 0xBF)
- goto yy525;
- goto yy523;
- yy528:
+ goto yy54;
+ goto yy52;
+ yy57:
yych = *++p;
if (yych <= 0x7F)
- goto yy523;
+ goto yy52;
if (yych <= 0x8F)
- goto yy525;
- goto yy523;
- yy529:
+ goto yy54;
+ goto yy52;
+ yy58:
yych = *++p;
if (yych <= 0x7F)
- goto yy523;
+ goto yy52;
if (yych <= 0x9F)
- goto yy522;
- goto yy523;
- yy530:
- yych = *++p;
- if (yych == 'S')
- goto yy531;
- if (yych != 's')
- goto yy523;
- yy531:
- yych = *++p;
- if (yych == 'G')
- goto yy532;
- if (yych != 'g')
- goto yy523;
- yy532:
- yych = *++p;
- if (yych == 'R')
- goto yy533;
- if (yych != 'r')
- goto yy523;
- yy533:
+ goto yy51;
+ goto yy52;
+ yy59:
yych = *++p;
- if (yych != ':')
- goto yy523;
- yy534:
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ goto yy62;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych <= '.')
+ goto yy62;
+ goto yy52;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ goto yy62;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych <= 'z')
+ goto yy62;
+ goto yy52;
+ }
+ }
+ yy60:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy534;
+ goto yy60;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '<')
- goto yy523;
+ goto yy52;
if (yych <= '>')
- goto yy543;
- goto yy523;
+ goto yy99;
+ goto yy52;
} else {
if (yych <= 0xDF)
- goto yy536;
+ goto yy92;
if (yych <= 0xE0)
- goto yy537;
- goto yy538;
+ goto yy93;
+ goto yy94;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy542;
+ goto yy98;
if (yych <= 0xEF)
- goto yy538;
- goto yy539;
+ goto yy94;
+ goto yy95;
} else {
if (yych <= 0xF3)
- goto yy540;
+ goto yy96;
if (yych <= 0xF4)
- goto yy541;
- goto yy523;
+ goto yy97;
+ goto yy52;
}
}
- yy536:
- ++p;
- yych = *p;
- if (yych <= 0x7F)
- goto yy523;
- if (yych <= 0xBF)
- goto yy534;
- goto yy523;
- yy537:
- ++p;
- yych = *p;
- if (yych <= 0x9F)
- goto yy523;
- if (yych <= 0xBF)
- goto yy536;
- goto yy523;
- yy538:
- ++p;
- yych = *p;
- if (yych <= 0x7F)
- goto yy523;
- if (yych <= 0xBF)
- goto yy536;
- goto yy523;
- yy539:
- ++p;
- yych = *p;
- if (yych <= 0x8F)
- goto yy523;
- if (yych <= 0xBF)
- goto yy538;
- goto yy523;
- yy540:
- ++p;
- yych = *p;
- if (yych <= 0x7F)
- goto yy523;
- if (yych <= 0xBF)
- goto yy538;
- goto yy523;
- yy541:
- ++p;
- yych = *p;
- if (yych <= 0x7F)
- goto yy523;
- if (yych <= 0x8F)
- goto yy538;
- goto yy523;
- yy542:
- ++p;
- yych = *p;
- if (yych <= 0x7F)
- goto yy523;
- if (yych <= 0x9F)
- goto yy536;
- goto yy523;
- yy543:
- ++p;
- { return (bufsize_t)(p - start); }
- yy545:
- yych = *++p;
- if (yych == 'E')
- goto yy546;
- if (yych != 'e')
- goto yy523;
- yy546:
- yych = *++p;
- if (yych == 'R')
- goto yy547;
- if (yych != 'r')
- goto yy523;
- yy547:
- yych = *++p;
- if (yych == 'Y')
- goto yy533;
- if (yych == 'y')
- goto yy533;
- goto yy523;
- yy548:
- yych = *++p;
- if (yych == 'Y')
- goto yy549;
- if (yych != 'y')
- goto yy523;
- yy549:
- yych = *++p;
- if (yych == 'P')
- goto yy550;
- if (yych != 'p')
- goto yy523;
- yy550:
- yych = *++p;
- if (yych == 'A')
- goto yy551;
- if (yych != 'a')
- goto yy523;
- yy551:
- yych = *++p;
- if (yych == 'R')
- goto yy552;
- if (yych != 'r')
- goto yy523;
- yy552:
- yych = *++p;
- if (yych == 'C')
- goto yy533;
- if (yych == 'c')
- goto yy533;
- goto yy523;
- yy553:
- yych = *++p;
- if (yych != '2')
- goto yy523;
- yych = *++p;
- if (yych == 'K')
- goto yy533;
- if (yych == 'k')
- goto yy533;
- goto yy523;
- yy555:
- yych = *++p;
- if (yych == 'L')
- goto yy566;
- if (yych == 'l')
- goto yy566;
- goto yy523;
- yy556:
- yych = *++p;
- if (yych == 'T')
- goto yy562;
- if (yych == 't')
- goto yy562;
- goto yy523;
- yy557:
- yych = *++p;
- if (yych == 'S')
- goto yy558;
- if (yych != 's')
- goto yy523;
- yy558:
- yych = *++p;
- if (yych == 'H')
- goto yy559;
- if (yych != 'h')
- goto yy523;
- yy559:
- yych = *++p;
- if (yych == 'A')
- goto yy560;
- if (yych != 'a')
- goto yy523;
- yy560:
- yych = *++p;
- if (yych == 'R')
- goto yy561;
- if (yych != 'r')
- goto yy523;
- yy561:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy562:
- yych = *++p;
- if (yych == 'C')
- goto yy563;
- if (yych != 'c')
- goto yy523;
- yy563:
- yych = *++p;
- if (yych == 'O')
- goto yy564;
- if (yych != 'o')
- goto yy523;
- yy564:
- yych = *++p;
- if (yych == 'I')
- goto yy565;
- if (yych != 'i')
- goto yy523;
- yy565:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy566:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy567:
- yych = *++p;
- if (yych != '9')
- goto yy523;
- yych = *++p;
- if (yych != '.')
- goto yy523;
- yych = *++p;
- if (yych != '5')
- goto yy523;
- yych = *++p;
- if (yych != '0')
- goto yy523;
- yych = *++p;
- if (yych <= 'Q')
- goto yy523;
- if (yych <= 'S')
- goto yy533;
- if (yych <= 'q')
- goto yy523;
- if (yych <= 's')
- goto yy533;
- goto yy523;
- yy572:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy573:
- yych = *++p;
- if (yych == 'I')
- goto yy594;
- if (yych == 'i')
- goto yy594;
- goto yy523;
- yy574:
+ yy62:
yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy584;
- if (yych <= 'O')
- goto yy523;
- goto yy585;
- } else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy523;
- goto yy584;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy585;
- goto yy523;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
- }
- yy575:
- yych = *++p;
- if (yych == 'O')
- goto yy576;
- if (yych != 'o')
- goto yy523;
- yy576:
- yych = *++p;
- if (yych == 'N')
- goto yy577;
- if (yych != 'n')
- goto yy523;
- yy577:
- yych = *++p;
- if (yych == '-')
- goto yy578;
- if (yych == ':')
- goto yy534;
- goto yy523;
- yy578:
- yych = *++p;
- if (yych == 'U')
- goto yy579;
- if (yych != 'u')
- goto yy523;
- yy579:
- yych = *++p;
- if (yych == 'S')
- goto yy580;
- if (yych != 's')
- goto yy523;
- yy580:
- yych = *++p;
- if (yych == 'E')
- goto yy581;
- if (yych != 'e')
- goto yy523;
- yy581:
- yych = *++p;
- if (yych == 'R')
- goto yy582;
- if (yych != 'r')
- goto yy523;
- yy582:
- yych = *++p;
- if (yych == 'I')
- goto yy583;
- if (yych != 'i')
- goto yy523;
- yy583:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy584:
- yych = *++p;
- if (yych == 'R')
- goto yy586;
- if (yych == 'r')
- goto yy586;
- goto yy523;
- yy585:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy586:
- yych = *++p;
- if (yych == 'P')
- goto yy587;
- if (yych != 'p')
- goto yy523;
- yy587:
- yych = *++p;
- if (yych == 'C')
- goto yy588;
- if (yych != 'c')
- goto yy523;
- yy588:
- yych = *++p;
- if (yych != '.')
- goto yy523;
- yych = *++p;
- if (yych == 'B')
- goto yy590;
- if (yych != 'b')
- goto yy523;
- yy590:
- yych = *++p;
- if (yych == 'E')
- goto yy591;
- if (yych != 'e')
- goto yy523;
- yy591:
- yych = *++p;
- if (yych == 'E')
- goto yy592;
- if (yych != 'e')
- goto yy523;
- yy592:
- yych = *++p;
- if (yych == 'P')
- goto yy593;
- if (yych != 'p')
- goto yy523;
- yy593:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
- } else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- }
- yy594:
- yych = *++p;
- if (yych == 'R')
- goto yy595;
- if (yych != 'r')
- goto yy523;
- yy595:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy596:
- yych = *++p;
- if (yych == 'C')
- goto yy604;
- if (yych == 'c')
- goto yy604;
- goto yy523;
- yy597:
- yych = *++p;
- if (yych == 'A')
- goto yy603;
- if (yych == 'a')
- goto yy603;
- goto yy523;
- yy598:
- yych = *++p;
- if (yych == 'B')
- goto yy600;
- if (yych == 'b')
- goto yy600;
- goto yy523;
- yy599:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
- } else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- }
- yy600:
- yych = *++p;
- if (yych == 'C')
- goto yy601;
- if (yych != 'c')
- goto yy523;
- yy601:
- yych = *++p;
- if (yych == 'A')
- goto yy602;
- if (yych != 'a')
- goto yy523;
- yy602:
- yych = *++p;
- if (yych == 'L')
- goto yy533;
- if (yych == 'l')
- goto yy533;
- goto yy523;
- yy603:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy604:
- yych = *++p;
- if (yych == 'I')
- goto yy605;
- if (yych != 'i')
- goto yy523;
- yy605:
- yych = *++p;
- if (yych == 'W')
- goto yy606;
- if (yych != 'w')
- goto yy523;
- yy606:
- yych = *++p;
- if (yych == 'Y')
- goto yy607;
- if (yych != 'y')
- goto yy523;
- yy607:
- yych = *++p;
- if (yych == 'G')
- goto yy533;
- if (yych == 'g')
- goto yy533;
- goto yy523;
- yy608:
- yych = *++p;
- if (yych == 'E')
- goto yy617;
- if (yych == 'e')
- goto yy617;
- goto yy523;
- yy609:
- yych = *++p;
- if (yych <= 'N') {
- if (yych <= 'L')
- goto yy523;
- if (yych >= 'N')
- goto yy611;
- } else {
- if (yych <= 'l')
- goto yy523;
- if (yych <= 'm')
- goto yy610;
- if (yych <= 'n')
- goto yy611;
- goto yy523;
- }
- yy610:
- yych = *++p;
- if (yych == 'M')
- goto yy616;
- if (yych == 'm')
- goto yy616;
- goto yy523;
- yy611:
- yych = *++p;
- if (yych == 'T')
- goto yy612;
- if (yych != 't')
- goto yy523;
- yy612:
- yych = *++p;
- if (yych == 'R')
- goto yy613;
- if (yych != 'r')
- goto yy523;
- yy613:
- yych = *++p;
- if (yych == 'I')
- goto yy614;
- if (yych != 'i')
- goto yy523;
- yy614:
- yych = *++p;
- if (yych == 'L')
- goto yy615;
- if (yych != 'l')
- goto yy523;
- yy615:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy616:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy617:
- yych = *++p;
- if (yych == 'W')
- goto yy618;
- if (yych != 'w')
- goto yy523;
- yy618:
- yych = *++p;
- if (yych != '-')
- goto yy523;
- yych = *++p;
- if (yych == 'S')
- goto yy620;
- if (yych != 's')
- goto yy523;
- yy620:
- yych = *++p;
- if (yych == 'O')
- goto yy621;
- if (yych != 'o')
- goto yy523;
- yy621:
- yych = *++p;
- if (yych == 'U')
- goto yy622;
- if (yych != 'u')
- goto yy523;
- yy622:
- yych = *++p;
- if (yych == 'R')
- goto yy623;
- if (yych != 'r')
- goto yy523;
- yy623:
- yych = *++p;
- if (yych == 'C')
- goto yy624;
- if (yych != 'c')
- goto yy523;
- yy624:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy625:
- yych = *++p;
- if (yych == '2')
- goto yy632;
- goto yy523;
- yy626:
- yych = *++p;
- if (yych == 'R')
- goto yy629;
- if (yych == 'r')
- goto yy629;
- goto yy523;
- yy627:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy628:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy629:
- yych = *++p;
- if (yych == 'E')
- goto yy630;
- if (yych != 'e')
- goto yy523;
- yy630:
- yych = *++p;
- if (yych == 'A')
- goto yy631;
- if (yych != 'a')
- goto yy523;
- yy631:
- yych = *++p;
- if (yych == 'L')
- goto yy533;
- if (yych == 'l')
- goto yy533;
- goto yy523;
- yy632:
- yych = *++p;
- if (yych != '0')
- goto yy523;
- yych = *++p;
- if (yych != '0')
- goto yy523;
- yych = *++p;
- if (yych == '4')
- goto yy533;
- goto yy523;
- yy635:
- yych = *++p;
- if (yych == 'I')
- goto yy654;
- if (yych == 'i')
- goto yy654;
- goto yy523;
- yy636:
- yych = *++p;
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy646;
- if (yych <= 'K')
- goto yy523;
- goto yy645;
} else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy523;
- goto yy646;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'l')
- goto yy645;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy637:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy638:
- yych = *++p;
- if (yych == '3')
- goto yy642;
- goto yy523;
- yy639:
- yych = *++p;
- if (yych == 'T')
- goto yy641;
- if (yych == 't')
- goto yy641;
- goto yy523;
- yy640:
- yych = *++p;
- if (yych == 'G')
- goto yy533;
- if (yych == 'g')
- goto yy533;
- goto yy523;
- yy641:
yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy642:
- yych = *++p;
- if (yych != '2')
- goto yy523;
- yych = *++p;
- if (yych != '7')
- goto yy523;
- yych = *++p;
- if (yych == '0')
- goto yy533;
- goto yy523;
- yy645:
- yych = *++p;
- if (yych <= 'M') {
- if (yych == ':')
- goto yy534;
- goto yy523;
- } else {
- if (yych <= 'N')
- goto yy652;
- if (yych == 'n')
- goto yy652;
- goto yy523;
- }
- yy646:
- yych = *++p;
- if (yych == 'M')
- goto yy647;
- if (yych != 'm')
- goto yy523;
- yy647:
- yych = *++p;
- if (yych == 'S')
- goto yy648;
- if (yych != 's')
- goto yy523;
- yy648:
- yych = *++p;
- if (yych == 'P')
- goto yy649;
- if (yych != 'p')
- goto yy523;
- yy649:
- yych = *++p;
- if (yych == 'E')
- goto yy650;
- if (yych != 'e')
- goto yy523;
- yy650:
- yych = *++p;
- if (yych == 'A')
- goto yy651;
- if (yych != 'a')
- goto yy523;
- yy651:
- yych = *++p;
- if (yych == 'K')
- goto yy533;
- if (yych == 'k')
- goto yy533;
- goto yy523;
- yy652:
- yych = *++p;
- if (yych == 'E')
- goto yy653;
- if (yych != 'e')
- goto yy523;
- yy653:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy654:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'N')
- goto yy655;
- if (yych <= 'R')
- goto yy523;
- goto yy656;
- } else {
- if (yych <= 'n') {
- if (yych <= 'm')
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy656;
- goto yy523;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
- }
- yy655:
- yych = *++p;
- if (yych == 'G')
- goto yy663;
- if (yych == 'g')
- goto yy663;
- goto yy523;
- yy656:
- yych = *++p;
- if (yych == 'M')
- goto yy657;
- if (yych != 'm')
- goto yy523;
- yy657:
- yych = *++p;
- if (yych == 'E')
- goto yy658;
- if (yych != 'e')
- goto yy523;
- yy658:
- yych = *++p;
- if (yych == 'S')
- goto yy659;
- if (yych != 's')
- goto yy523;
- yy659:
- yych = *++p;
- if (yych == 'S')
- goto yy660;
- if (yych != 's')
- goto yy523;
- yy660:
- yych = *++p;
- if (yych == 'A')
- goto yy661;
- if (yych != 'a')
- goto yy523;
- yy661:
- yych = *++p;
- if (yych == 'G')
- goto yy662;
- if (yych != 'g')
- goto yy523;
- yy662:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy663:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy664:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy665:
- yych = *++p;
- if (yych == 'E')
- goto yy715;
- if (yych == 'e')
- goto yy715;
- goto yy523;
- yy666:
- yych = *++p;
- if (yych == 'H')
- goto yy533;
- if (yych == 'h')
- goto yy533;
- goto yy523;
- yy667:
- yych = *++p;
- if (yych == 'O')
- goto yy711;
- if (yych == 'o')
- goto yy711;
- goto yy523;
- yy668:
- yych = *++p;
- if (yych <= 'L') {
- if (yych == 'A')
- goto yy701;
- if (yych <= 'K')
- goto yy523;
- goto yy702;
} else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy523;
- goto yy701;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'l')
- goto yy702;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy669:
yych = *++p;
- if (yych <= 'S') {
- if (yych == 'B')
- goto yy533;
- if (yych <= 'R')
- goto yy523;
- goto yy533;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'b') {
- if (yych <= 'a')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy670:
- yych = *++p;
- if (yych == 'Y')
- goto yy699;
- if (yych == 'y')
- goto yy699;
- goto yy523;
- yy671:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy672:
- yych = *++p;
- if (yych == 'T')
- goto yy698;
- if (yych == 't')
- goto yy698;
- goto yy523;
- yy673:
yych = *++p;
- if (yych <= 'S') {
- if (yych <= 'C') {
- if (yych <= 'B')
- goto yy523;
- goto yy685;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych <= 'Q')
- goto yy523;
- if (yych <= 'R')
- goto yy683;
- goto yy684;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
} else {
- if (yych <= 'q') {
- if (yych == 'c')
- goto yy685;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych <= 'r')
- goto yy683;
- if (yych <= 's')
- goto yy684;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy674:
yych = *++p;
- if (yych == 'M')
- goto yy682;
- if (yych == 'm')
- goto yy682;
- goto yy523;
- yy675:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'E')
- goto yy679;
- if (yych <= 'O')
- goto yy523;
- goto yy680;
- } else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy523;
- goto yy679;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy680;
- goto yy523;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
- }
- yy676:
- yych = *++p;
- if (yych == 'T')
- goto yy677;
- if (yych != 't')
- goto yy523;
- yy677:
- yych = *++p;
- if (yych == 'T')
- goto yy678;
- if (yych != 't')
- goto yy523;
- yy678:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy679:
- yych = *++p;
- if (yych == 'V')
- goto yy681;
- if (yych == 'v')
- goto yy681;
- goto yy523;
- yy680:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- }
- yy681:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy682:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy683:
- yych = *++p;
- if (yych == 'V')
- goto yy695;
- if (yych == 'v')
- goto yy695;
- goto yy523;
- yy684:
- yych = *++p;
- if (yych == 'S')
- goto yy692;
- if (yych == 's')
- goto yy692;
- goto yy523;
- yy685:
- yych = *++p;
- if (yych == 'O')
- goto yy686;
- if (yych != 'o')
- goto yy523;
- yy686:
- yych = *++p;
- if (yych == 'N')
- goto yy687;
- if (yych != 'n')
- goto yy523;
- yy687:
- yych = *++p;
- if (yych == 'D')
- goto yy688;
- if (yych != 'd')
- goto yy523;
- yy688:
- yych = *++p;
- if (yych == 'L')
- goto yy689;
- if (yych != 'l')
- goto yy523;
- yy689:
- yych = *++p;
- if (yych == 'I')
- goto yy690;
- if (yych != 'i')
- goto yy523;
- yy690:
- yych = *++p;
- if (yych == 'F')
- goto yy691;
- if (yych != 'f')
- goto yy523;
- yy691:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy692:
- yych = *++p;
- if (yych == 'I')
- goto yy693;
- if (yych != 'i')
- goto yy523;
- yy693:
- yych = *++p;
- if (yych == 'O')
- goto yy694;
- if (yych != 'o')
- goto yy523;
- yy694:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy695:
- yych = *++p;
- if (yych == 'I')
- goto yy696;
- if (yych != 'i')
- goto yy523;
- yy696:
- yych = *++p;
- if (yych == 'C')
- goto yy697;
- if (yych != 'c')
- goto yy523;
- yy697:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy698:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy699:
- yych = *++p;
- if (yych == 'P')
- goto yy700;
- if (yych != 'p')
- goto yy523;
- yy700:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy701:
- yych = *++p;
- if (yych == 'P')
- goto yy705;
- if (yych == 'p')
- goto yy705;
- goto yy523;
- yy702:
- yych = *++p;
- if (yych == 'D')
- goto yy703;
- if (yych != 'd')
- goto yy523;
- yy703:
- yych = *++p;
- if (yych == 'A')
- goto yy704;
- if (yych != 'a')
- goto yy523;
- yy704:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy705:
- yych = *++p;
- if (yych != '.')
- goto yy523;
- yych = *++p;
- if (yych == 'B')
- goto yy707;
- if (yych != 'b')
- goto yy523;
- yy707:
- yych = *++p;
- if (yych == 'E')
- goto yy708;
- if (yych != 'e')
- goto yy523;
- yy708:
- yych = *++p;
- if (yych == 'E')
- goto yy709;
- if (yych != 'e')
- goto yy523;
- yy709:
- yych = *++p;
- if (yych == 'P')
- goto yy710;
- if (yych != 'p')
- goto yy523;
- yy710:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
- } else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- }
- yy711:
- yych = *++p;
- if (yych == 'T')
- goto yy712;
- if (yych != 't')
- goto yy523;
- yy712:
- yych = *++p;
- if (yych == 'I')
- goto yy713;
- if (yych != 'i')
- goto yy523;
- yy713:
- yych = *++p;
- if (yych == 'F')
- goto yy714;
- if (yych != 'f')
- goto yy523;
- yy714:
- yych = *++p;
- if (yych == 'Y')
- goto yy533;
- if (yych == 'y')
- goto yy533;
- goto yy523;
- yy715:
- yych = *++p;
- if (yych == 'A')
- goto yy716;
- if (yych != 'a')
- goto yy523;
- yy716:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy717:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'M')
- goto yy729;
- if (yych <= 'R')
- goto yy523;
- goto yy728;
- } else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy523;
- goto yy729;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy728;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy718:
yych = *++p;
- if (yych == 'Y')
- goto yy726;
- if (yych == 'y')
- goto yy726;
- goto yy523;
- yy719:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy720:
- yych = *++p;
- if (yych == 'S')
- goto yy721;
- if (yych != 's')
- goto yy523;
- yy721:
- yych = *++p;
- if (yych <= 'N') {
- if (yych == ':')
- goto yy534;
- goto yy523;
- } else {
- if (yych <= 'O')
- goto yy722;
- if (yych != 'o')
- goto yy523;
- }
- yy722:
- yych = *++p;
- if (yych == 'U')
- goto yy723;
- if (yych != 'u')
- goto yy523;
- yy723:
- yych = *++p;
- if (yych == 'R')
- goto yy724;
- if (yych != 'r')
- goto yy523;
- yy724:
- yych = *++p;
- if (yych == 'C')
- goto yy725;
- if (yych != 'c')
- goto yy523;
- yy725:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy726:
- yych = *++p;
- if (yych == 'N')
- goto yy727;
- if (yych != 'n')
- goto yy523;
- yy727:
- yych = *++p;
- if (yych == 'C')
- goto yy533;
- if (yych == 'c')
- goto yy533;
- goto yy523;
- yy728:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy729:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy730:
- yych = *++p;
- if (yych == 'Y')
- goto yy750;
- if (yych == 'y')
- goto yy750;
- goto yy523;
- yy731:
- yych = *++p;
- if (yych <= 'O') {
- if (yych == 'E')
- goto yy747;
- if (yych <= 'N')
- goto yy523;
- goto yy748;
- } else {
- if (yych <= 'e') {
- if (yych <= 'd')
- goto yy523;
- goto yy747;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych == 'o')
- goto yy748;
- goto yy523;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
- }
- yy732:
- yych = *++p;
- if (yych == 'A')
- goto yy742;
- if (yych == 'a')
- goto yy742;
- goto yy523;
- yy733:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy735;
- if (yych <= 'O')
- goto yy523;
- goto yy736;
} else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy523;
- goto yy735;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy736;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy734:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy735:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy736:
- yych = *++p;
- if (yych == 'A')
- goto yy737;
- if (yych != 'a')
- goto yy523;
- yy737:
- yych = *++p;
- if (yych == 'R')
- goto yy738;
- if (yych != 'r')
- goto yy523;
- yy738:
- yych = *++p;
- if (yych == 'A')
- goto yy739;
- if (yych != 'a')
- goto yy523;
- yy739:
- yych = *++p;
- if (yych == 'Z')
- goto yy740;
- if (yych != 'z')
- goto yy523;
- yy740:
- yych = *++p;
- if (yych == 'Z')
- goto yy741;
- if (yych != 'z')
- goto yy523;
- yy741:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy742:
- yych = *++p;
- if (yych == 'T')
- goto yy743;
- if (yych != 't')
- goto yy523;
- yy743:
- yych = *++p;
- if (yych == 'F')
- goto yy744;
- if (yych != 'f')
- goto yy523;
- yy744:
- yych = *++p;
- if (yych == 'O')
- goto yy745;
- if (yych != 'o')
- goto yy523;
- yy745:
- yych = *++p;
- if (yych == 'R')
- goto yy746;
- if (yych != 'r')
- goto yy523;
- yy746:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy747:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy748:
- yych = *++p;
- if (yych == 'X')
- goto yy749;
- if (yych != 'x')
- goto yy523;
- yy749:
- yych = *++p;
- if (yych == 'Y')
- goto yy533;
- if (yych == 'y')
- goto yy533;
- goto yy523;
- yy750:
- yych = *++p;
- if (yych == 'C')
- goto yy533;
- if (yych == 'c')
- goto yy533;
- goto yy523;
- yy751:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy752:
- yych = *++p;
- if (yych == 'A')
- goto yy753;
- if (yych != 'a')
- goto yy523;
- yy753:
- yych = *++p;
- if (yych == 'Q')
- goto yy754;
- if (yych != 'q')
- goto yy523;
- yy754:
- yych = *++p;
- if (yych == 'U')
- goto yy755;
- if (yych != 'u')
- goto yy523;
- yy755:
- yych = *++p;
- if (yych == 'E')
- goto yy756;
- if (yych != 'e')
- goto yy523;
- yy756:
- yych = *++p;
- if (yych == 'L')
- goto yy757;
- if (yych != 'l')
- goto yy523;
- yy757:
- yych = *++p;
- if (yych == 'O')
- goto yy758;
- if (yych != 'o')
- goto yy523;
- yy758:
- yych = *++p;
- if (yych == 'C')
- goto yy759;
- if (yych != 'c')
- goto yy523;
- yy759:
- yych = *++p;
- if (yych == 'K')
- goto yy760;
- if (yych != 'k')
- goto yy523;
- yy760:
yych = *++p;
- if (yych == 'T')
- goto yy761;
- if (yych != 't')
- goto yy523;
- yy761:
- yych = *++p;
- if (yych == 'O')
- goto yy762;
- if (yych != 'o')
- goto yy523;
- yy762:
- yych = *++p;
- if (yych == 'K')
- goto yy763;
- if (yych != 'k')
- goto yy523;
- yy763:
- yych = *++p;
- if (yych == 'E')
- goto yy764;
- if (yych != 'e')
- goto yy523;
- yy764:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy765:
- yych = *++p;
- if (yych == 'T')
- goto yy772;
- if (yych == 't')
- goto yy772;
- goto yy523;
- yy766:
- yych = *++p;
- if (yych == 'T')
- goto yy771;
- if (yych == 't')
- goto yy771;
- goto yy523;
- yy767:
- yych = *++p;
- if (yych <= 'G') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'H')
- goto yy533;
- if (yych == 'h')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy768:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy769:
- yych = *++p;
- if (yych == 'W')
- goto yy770;
- if (yych != 'w')
- goto yy523;
- yy770:
yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy771:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy772:
- yych = *++p;
- if (yych == 'E')
- goto yy773;
- if (yych != 'e')
- goto yy523;
- yy773:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy774:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy775:
- yych = *++p;
- if (yych <= 'P') {
- if (yych == 'M')
- goto yy806;
- if (yych <= 'O')
- goto yy523;
- goto yy805;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'm') {
- if (yych <= 'l')
- goto yy523;
- goto yy806;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy805;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy776:
yych = *++p;
- if (yych <= 'Q') {
- if (yych <= '-') {
- if (yych <= ',')
- goto yy523;
- goto yy798;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych == 'N')
- goto yy799;
- goto yy523;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
} else {
- if (yych <= 'n') {
- if (yych <= 'R')
- goto yy797;
- if (yych <= 'm')
- goto yy523;
- goto yy799;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'r')
- goto yy797;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy777:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy778:
- yych = *++p;
- if (yych == 'S')
- goto yy793;
- if (yych == 's')
- goto yy793;
- goto yy523;
- yy779:
- yych = *++p;
- switch (yych) {
- case 'G':
- case 'g':
- goto yy784;
- case 'I':
- case 'i':
- goto yy783;
- case 'P':
- case 'p':
- goto yy785;
- case 'R':
- case 'r':
- goto yy786;
- default:
- goto yy523;
- }
- yy780:
- yych = *++p;
- if (yych == 'Q')
- goto yy782;
- if (yych == 'q')
- goto yy782;
- goto yy523;
- yy781:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy782:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy783:
- yych = *++p;
- if (yych == 'L')
- goto yy791;
- if (yych == 'l')
- goto yy791;
- goto yy523;
- yy784:
- yych = *++p;
- if (yych == 'N')
- goto yy789;
- if (yych == 'n')
- goto yy789;
- goto yy523;
- yy785:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy786:
- yych = *++p;
- if (yych == 'K')
- goto yy787;
- if (yych != 'k')
- goto yy523;
- yy787:
- yych = *++p;
- if (yych == 'E')
- goto yy788;
- if (yych != 'e')
- goto yy523;
- yy788:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy789:
- yych = *++p;
- if (yych == 'E')
- goto yy790;
- if (yych != 'e')
- goto yy523;
- yy790:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy791:
- yych = *++p;
- if (yych == 'T')
- goto yy792;
- if (yych != 't')
- goto yy523;
- yy792:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy793:
- yych = *++p;
- if (yych == 'S')
- goto yy794;
- if (yych != 's')
- goto yy523;
- yy794:
- yych = *++p;
- if (yych == 'A')
- goto yy795;
- if (yych != 'a')
- goto yy523;
- yy795:
- yych = *++p;
- if (yych == 'G')
- goto yy796;
- if (yych != 'g')
- goto yy523;
- yy796:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy797:
- yych = *++p;
- if (yych == 'P')
- goto yy804;
- if (yych == 'p')
- goto yy804;
- goto yy523;
- yy798:
- yych = *++p;
- if (yych == 'H')
- goto yy801;
- if (yych == 'h')
- goto yy801;
- goto yy523;
- yy799:
- yych = *++p;
- if (yych == 'I')
- goto yy800;
- if (yych != 'i')
- goto yy523;
- yy800:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy801:
- yych = *++p;
- if (yych == 'E')
- goto yy802;
- if (yych != 'e')
- goto yy523;
- yy802:
yych = *++p;
- if (yych == 'L')
- goto yy803;
- if (yych != 'l')
- goto yy523;
- yy803:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy804:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy805:
- yych = *++p;
- if (yych == 'D')
- goto yy809;
- if (yych == 'd')
- goto yy809;
- goto yy523;
- yy806:
- yych = *++p;
- if (yych == 'B')
- goto yy807;
- if (yych != 'b')
- goto yy523;
- yy807:
- yych = *++p;
- if (yych == 'L')
- goto yy808;
- if (yych != 'l')
- goto yy523;
- yy808:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy809:
- yych = *++p;
- if (yych == 'A')
- goto yy810;
- if (yych != 'a')
- goto yy523;
- yy810:
- yych = *++p;
- if (yych == 'T')
- goto yy811;
- if (yych != 't')
- goto yy523;
- yy811:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy812:
- yych = *++p;
- if (yych == 'A')
- goto yy817;
- if (yych == 'a')
- goto yy817;
- goto yy523;
- yy813:
- yych = *++p;
- if (yych == 'S')
- goto yy814;
- if (yych != 's')
- goto yy523;
- yy814:
- yych = *++p;
- if (yych == 'T')
- goto yy815;
- if (yych != 't')
- goto yy523;
- yy815:
- yych = *++p;
- if (yych == 'F')
- goto yy816;
- if (yych != 'f')
- goto yy523;
- yy816:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy817:
- yych = *++p;
- if (yych == 'P')
- goto yy818;
- if (yych != 'p')
- goto yy523;
- yy818:
yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy819:
- yych = *++p;
- if (yych == 'M')
- goto yy842;
- if (yych == 'm')
- goto yy842;
- goto yy523;
- yy820:
yych = *++p;
- if (yych <= 'I') {
- if (yych == 'C')
- goto yy831;
- if (yych <= 'H')
- goto yy523;
- goto yy830;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'c') {
- if (yych <= 'b')
- goto yy523;
- goto yy831;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'i')
- goto yy830;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy821:
yych = *++p;
- if (yych <= 'P') {
- if (yych == 'N')
- goto yy533;
- if (yych <= 'O')
- goto yy523;
- goto yy533;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'n') {
- if (yych <= 'm')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy822:
yych = *++p;
- if (yych <= 'O') {
- if (yych == 'A')
- goto yy828;
- if (yych <= 'N')
- goto yy523;
- goto yy829;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'a') {
- if (yych <= '`')
- goto yy523;
- goto yy828;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'o')
- goto yy829;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy823:
- yych = *++p;
- if (yych == 'F')
- goto yy827;
- if (yych == 'f')
- goto yy827;
- goto yy523;
- yy824:
yych = *++p;
- if (yych <= '@') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'A')
- goto yy826;
- if (yych == 'a')
- goto yy826;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy825:
- yych = *++p;
- if (yych == 'X')
- goto yy533;
- if (yych == 'x')
- goto yy533;
- goto yy523;
- yy826:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy827:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy828:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy829:
yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy830:
- yych = *++p;
- if (yych == 'S')
- goto yy832;
- if (yych == 's')
- goto yy832;
- goto yy523;
- yy831:
- yych = *++p;
- if (yych <= ':') {
- if (yych == '6')
- goto yy533;
- if (yych <= '9')
- goto yy523;
- goto yy534;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S') {
- if (yych <= 'R')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy832:
yych = *++p;
- if (yych == '.')
- goto yy833;
- if (yych == ':')
- goto yy534;
- goto yy523;
- yy833:
- yych = *++p;
- if (yych <= 'X') {
- if (yych <= 'K') {
- if (yych == 'B')
- goto yy836;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych <= 'L')
- goto yy834;
- if (yych <= 'W')
- goto yy523;
- goto yy835;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
} else {
- if (yych <= 'k') {
- if (yych == 'b')
- goto yy836;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych <= 'l')
- goto yy834;
- if (yych == 'x')
- goto yy835;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy834:
- yych = *++p;
- if (yych == 'W')
- goto yy841;
- if (yych == 'w')
- goto yy841;
- goto yy523;
- yy835:
- yych = *++p;
- if (yych == 'P')
- goto yy839;
- if (yych == 'p')
- goto yy839;
- goto yy523;
- yy836:
yych = *++p;
- if (yych == 'E')
- goto yy837;
- if (yych != 'e')
- goto yy523;
- yy837:
- yych = *++p;
- if (yych == 'E')
- goto yy838;
- if (yych != 'e')
- goto yy523;
- yy838:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy839:
- yych = *++p;
- if (yych == 'C')
- goto yy840;
- if (yych != 'c')
- goto yy523;
- yy840:
- yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy841:
- yych = *++p;
- if (yych == 'Z')
- goto yy533;
- if (yych == 'z')
- goto yy533;
- goto yy523;
- yy842:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy843:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy844:
- yych = *++p;
- if (yych == 'T')
- goto yy847;
- if (yych == 't')
- goto yy847;
- goto yy523;
- yy845:
- yych = *++p;
- if (yych != '2')
- goto yy523;
- yych = *++p;
- if (yych == '3')
- goto yy533;
- goto yy523;
- yy847:
- yych = *++p;
- if (yych == 'P')
- goto yy848;
- if (yych != 'p')
- goto yy523;
- yy848:
yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy849:
yych = *++p;
- if (yych == 'A')
- goto yy865;
- if (yych == 'a')
- goto yy865;
- goto yy523;
- yy850:
- yych = *++p;
- if (yych <= 'Z') {
- if (yych == 'T')
- goto yy533;
- if (yych <= 'Y')
- goto yy523;
- goto yy856;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 't') {
- if (yych <= 's')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'z')
- goto yy856;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy851:
yych = *++p;
- if (yych <= 'O') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'P')
- goto yy853;
- if (yych == 'p')
- goto yy853;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy852:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy853:
- yych = *++p;
- if (yych == 'H')
- goto yy854;
- if (yych != 'h')
- goto yy523;
- yy854:
- yych = *++p;
- if (yych == 'E')
- goto yy855;
- if (yych != 'e')
- goto yy523;
- yy855:
- yych = *++p;
- if (yych == 'R')
- goto yy533;
- if (yych == 'r')
- goto yy533;
- goto yy523;
- yy856:
- yych = *++p;
- if (yych == 'M')
- goto yy857;
- if (yych != 'm')
- goto yy523;
- yy857:
- yych = *++p;
- if (yych == 'O')
- goto yy858;
- if (yych != 'o')
- goto yy523;
- yy858:
- yych = *++p;
- if (yych == 'P')
- goto yy859;
- if (yych != 'p')
- goto yy523;
- yy859:
- yych = *++p;
- if (yych == 'R')
- goto yy860;
- if (yych != 'r')
- goto yy523;
- yy860:
- yych = *++p;
- if (yych == 'O')
- goto yy861;
- if (yych != 'o')
- goto yy523;
- yy861:
- yych = *++p;
- if (yych == 'J')
- goto yy862;
- if (yych != 'j')
- goto yy523;
- yy862:
- yych = *++p;
- if (yych == 'E')
- goto yy863;
- if (yych != 'e')
- goto yy523;
- yy863:
- yych = *++p;
- if (yych == 'C')
- goto yy864;
- if (yych != 'c')
- goto yy523;
- yy864:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy865:
- yych = *++p;
- if (yych == 'L')
- goto yy866;
- if (yych != 'l')
- goto yy523;
- yy866:
- yych = *++p;
- if (yych == 'K')
- goto yy533;
- if (yych == 'k')
- goto yy533;
- goto yy523;
- yy867:
yych = *++p;
- if (yych <= 'S') {
- if (yych <= 'M') {
- if (yych == 'L')
- goto yy877;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych <= 'N')
- goto yy878;
- if (yych <= 'R')
- goto yy523;
- goto yy879;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
} else {
- if (yych <= 'm') {
- if (yych == 'l')
- goto yy877;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych <= 'n')
- goto yy878;
- if (yych == 's')
- goto yy879;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy868:
- yych = *++p;
- if (yych == 'E')
- goto yy876;
- if (yych == 'e')
- goto yy876;
- goto yy523;
- yy869:
- yych = *++p;
- if (yych == 'C')
- goto yy871;
- if (yych == 'c')
- goto yy871;
- goto yy523;
- yy870:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy871:
yych = *++p;
- if (yych == 'E')
- goto yy872;
- if (yych != 'e')
- goto yy523;
- yy872:
- yych = *++p;
- if (yych == 'T')
- goto yy873;
- if (yych != 't')
- goto yy523;
- yy873:
- yych = *++p;
- if (yych == 'I')
- goto yy874;
- if (yych != 'i')
- goto yy523;
- yy874:
- yych = *++p;
- if (yych == 'M')
- goto yy875;
- if (yych != 'm')
- goto yy523;
- yy875:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy876:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy877:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy878:
- yych = *++p;
- if (yych == 'G')
- goto yy880;
- if (yych == 'g')
- goto yy880;
- goto yy523;
- yy879:
- yych = *++p;
- if (yych == 'H')
- goto yy533;
- if (yych == 'h')
- goto yy533;
- goto yy523;
- yy880:
- yych = *++p;
- if (yych == 'E')
- goto yy881;
- if (yych != 'e')
- goto yy523;
- yy881:
- yych = *++p;
- if (yych == 'R')
- goto yy533;
- if (yych == 'r')
- goto yy533;
- goto yy523;
- yy882:
- yych = *++p;
- if (yych == 'T')
- goto yy900;
- if (yych == 't')
- goto yy900;
- goto yy523;
- yy883:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy884:
- yych = *++p;
- if (yych == 'M')
- goto yy533;
- if (yych == 'm')
- goto yy533;
- goto yy523;
- yy885:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'P')
- goto yy533;
- if (yych <= 'R')
- goto yy523;
- goto yy533;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'p') {
- if (yych <= 'o')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy886:
- yych = *++p;
- if (yych == 'I')
- goto yy894;
- if (yych == 'i')
- goto yy894;
- goto yy523;
- yy887:
- yych = *++p;
- if (yych == 'A')
- goto yy893;
- if (yych == 'a')
- goto yy893;
- goto yy523;
- yy888:
- yych = *++p;
- if (yych == 'O')
- goto yy891;
- if (yych == 'o')
- goto yy891;
- goto yy523;
- yy889:
- yych = *++p;
- if (yych == 'A')
- goto yy890;
- if (yych != 'a')
- goto yy523;
- yy890:
yych = *++p;
- if (yych <= 'R') {
- if (yych == ':')
- goto yy534;
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
+ } else {
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
+ }
}
- yy891:
- yych = *++p;
- if (yych == 'U')
- goto yy892;
- if (yych != 'u')
- goto yy523;
- yy892:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy893:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy894:
- yych = *++p;
- if (yych == 'U')
- goto yy895;
- if (yych != 'u')
- goto yy523;
- yy895:
- yych = *++p;
- if (yych == 'M')
- goto yy896;
- if (yych != 'm')
- goto yy523;
- yy896:
- yych = *++p;
- if (yych == 'X')
- goto yy897;
- if (yych != 'x')
- goto yy523;
- yy897:
yych = *++p;
- if (yych == 'T')
- goto yy898;
- if (yych != 't')
- goto yy523;
- yy898:
- yych = *++p;
- if (yych == 'R')
- goto yy899;
- if (yych != 'r')
- goto yy523;
- yy899:
- yych = *++p;
- if (yych == 'A')
- goto yy533;
- if (yych == 'a')
- goto yy533;
- goto yy523;
- yy900:
- yych = *++p;
- if (yych == 'A')
- goto yy901;
- if (yych != 'a')
- goto yy523;
- yy901:
- yych = *++p;
- if (yych == 'C')
- goto yy902;
- if (yych != 'c')
- goto yy523;
- yy902:
- yych = *++p;
- if (yych == 'H')
- goto yy903;
- if (yych != 'h')
- goto yy523;
- yy903:
- yych = *++p;
- if (yych == 'M')
- goto yy904;
- if (yych != 'm')
- goto yy523;
- yy904:
- yych = *++p;
- if (yych == 'E')
- goto yy905;
- if (yych != 'e')
- goto yy523;
- yy905:
- yych = *++p;
- if (yych == 'N')
- goto yy906;
- if (yych != 'n')
- goto yy523;
- yy906:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy907:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy908:
- yych = *++p;
- if (yych <= 'V') {
- if (yych == 'R')
- goto yy533;
- if (yych <= 'U')
- goto yy523;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'r') {
- if (yych <= 'q')
- goto yy523;
- goto yy533;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych != 'v')
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
yych = *++p;
- if (yych == 'A')
- goto yy910;
- if (yych != 'a')
- goto yy523;
- yy910:
- yych = *++p;
- if (yych == 'S')
- goto yy911;
- if (yych != 's')
- goto yy523;
- yy911:
- yych = *++p;
- if (yych == 'C')
- goto yy912;
- if (yych != 'c')
- goto yy523;
- yy912:
- yych = *++p;
- if (yych == 'R')
- goto yy913;
- if (yych != 'r')
- goto yy523;
- yy913:
- yych = *++p;
- if (yych == 'I')
- goto yy914;
- if (yych != 'i')
- goto yy523;
- yy914:
- yych = *++p;
- if (yych == 'P')
- goto yy915;
- if (yych != 'p')
- goto yy523;
- yy915:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy916:
- yych = *++p;
- if (yych == 'B')
- goto yy533;
- if (yych == 'b')
- goto yy533;
- goto yy523;
- yy917:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy918:
- yych = *++p;
- if (yych == 'N')
- goto yy925;
- if (yych == 'n')
- goto yy925;
- goto yy523;
- yy919:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy920:
- yych = *++p;
- if (yych == 'C')
- goto yy924;
- if (yych == 'c')
- goto yy924;
- goto yy523;
- yy921:
- yych = *++p;
- if (yych <= 'V') {
- if (yych == 'T')
- goto yy923;
- if (yych <= 'U')
- goto yy523;
- goto yy533;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 't') {
- if (yych <= 's')
- goto yy523;
- goto yy923;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'v')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy922:
- yych = *++p;
- if (yych == 'I')
- goto yy533;
- if (yych == 'i')
- goto yy533;
- goto yy523;
- yy923:
- yych = *++p;
- if (yych == 'A')
- goto yy533;
- if (yych == 'a')
- goto yy533;
- goto yy523;
- yy924:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy925:
- yych = *++p;
- if (yych == 'A')
- goto yy926;
- if (yych != 'a')
- goto yy523;
- yy926:
- yych = *++p;
- if (yych != '-')
- goto yy523;
- yych = *++p;
- if (yych == 'P')
- goto yy928;
- if (yych != 'p')
- goto yy523;
- yy928:
- yych = *++p;
- if (yych == 'L')
- goto yy929;
- if (yych != 'l')
- goto yy523;
- yy929:
- yych = *++p;
- if (yych == 'A')
- goto yy930;
- if (yych != 'a')
- goto yy523;
- yy930:
yych = *++p;
- if (yych == 'Y')
- goto yy931;
- if (yych != 'y')
- goto yy523;
- yy931:
- yych = *++p;
- if (yych <= 'S') {
- if (yych == 'C')
- goto yy932;
- if (yych <= 'R')
- goto yy523;
- goto yy933;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'c') {
- if (yych <= 'b')
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 's')
- goto yy933;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy932:
- yych = *++p;
- if (yych == 'O')
- goto yy938;
- if (yych == 'o')
- goto yy938;
- goto yy523;
- yy933:
- yych = *++p;
- if (yych == 'I')
- goto yy934;
- if (yych != 'i')
- goto yy523;
- yy934:
- yych = *++p;
- if (yych == 'N')
- goto yy935;
- if (yych != 'n')
- goto yy523;
- yy935:
yych = *++p;
- if (yych == 'G')
- goto yy936;
- if (yych != 'g')
- goto yy523;
- yy936:
- yych = *++p;
- if (yych == 'L')
- goto yy937;
- if (yych != 'l')
- goto yy523;
- yy937:
- yych = *++p;
- if (yych == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
- yy938:
- yych = *++p;
- if (yych == 'N')
- goto yy939;
- if (yych != 'n')
- goto yy523;
- yy939:
- yych = *++p;
- if (yych == 'T')
- goto yy940;
- if (yych != 't')
- goto yy523;
- yy940:
- yych = *++p;
- if (yych == 'A')
- goto yy941;
- if (yych != 'a')
- goto yy523;
- yy941:
- yych = *++p;
- if (yych == 'I')
- goto yy942;
- if (yych != 'i')
- goto yy523;
- yy942:
- yych = *++p;
- if (yych == 'N')
- goto yy943;
- if (yych != 'n')
- goto yy523;
- yy943:
- yych = *++p;
- if (yych == 'E')
- goto yy944;
- if (yych != 'e')
- goto yy523;
- yy944:
- yych = *++p;
- if (yych == 'R')
- goto yy533;
- if (yych == 'r')
- goto yy533;
- goto yy523;
- yy945:
- yych = *++p;
- if (yych == 'S')
- goto yy533;
- if (yych == 's')
- goto yy533;
- goto yy523;
- yy946:
- yych = *++p;
- if (yych <= 'N') {
- if (yych <= 'A') {
- if (yych <= '@')
- goto yy523;
- goto yy968;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
} else {
- if (yych <= 'L')
- goto yy523;
- if (yych <= 'M')
- goto yy969;
- goto yy970;
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
}
} else {
- if (yych <= 'l') {
- if (yych == 'a')
- goto yy968;
- goto yy523;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych <= 'm')
- goto yy969;
- if (yych <= 'n')
- goto yy970;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy947:
- yych = *++p;
- if (yych == 'R')
- goto yy955;
- if (yych == 'r')
- goto yy955;
- goto yy523;
- yy948:
yych = *++p;
- if (yych <= 'P') {
- if (yych == 'L')
- goto yy952;
- if (yych <= 'O')
- goto yy523;
- goto yy533;
+ if (yych <= '9') {
+ if (yych <= '+') {
+ if (yych <= '*')
+ goto yy52;
+ } else {
+ if (yych <= ',')
+ goto yy52;
+ if (yych >= '/')
+ goto yy52;
+ }
} else {
- if (yych <= 'l') {
- if (yych <= 'k')
- goto yy523;
- goto yy952;
+ if (yych <= 'Z') {
+ if (yych <= ':')
+ goto yy60;
+ if (yych <= '@')
+ goto yy52;
} else {
- if (yych == 'p')
- goto yy533;
- goto yy523;
+ if (yych <= '`')
+ goto yy52;
+ if (yych >= '{')
+ goto yy52;
}
}
- yy949:
- yych = *++p;
- if (yych == 'I')
- goto yy951;
- if (yych == 'i')
- goto yy951;
- goto yy523;
- yy950:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy951:
- yych = *++p;
- if (yych == 'D')
- goto yy533;
- if (yych == 'd')
- goto yy533;
- goto yy523;
- yy952:
- yych = *++p;
- if (yych == 'L')
- goto yy953;
- if (yych != 'l')
- goto yy523;
- yy953:
yych = *++p;
- if (yych == 'T')
- goto yy954;
- if (yych != 't')
- goto yy523;
- yy954:
- yych = *++p;
- if (yych == 'O')
- goto yy533;
- if (yych == 'o')
- goto yy533;
- goto yy523;
- yy955:
- yych = *++p;
- if (yych == 'O')
- goto yy956;
- if (yych != 'o')
- goto yy523;
- yy956:
- yych = *++p;
- if (yych == 'M')
- goto yy957;
- if (yych != 'm')
- goto yy523;
- yy957:
- yych = *++p;
- if (yych == 'E')
- goto yy958;
- if (yych != 'e')
- goto yy523;
- yy958:
- yych = *++p;
- if (yych == '-')
- goto yy959;
if (yych == ':')
- goto yy534;
- goto yy523;
- yy959:
- yych = *++p;
- if (yych == 'E')
- goto yy960;
- if (yych != 'e')
- goto yy523;
- yy960:
- yych = *++p;
- if (yych == 'X')
- goto yy961;
- if (yych != 'x')
- goto yy523;
- yy961:
- yych = *++p;
- if (yych == 'T')
- goto yy962;
- if (yych != 't')
- goto yy523;
- yy962:
- yych = *++p;
- if (yych == 'E')
- goto yy963;
- if (yych != 'e')
- goto yy523;
- yy963:
- yych = *++p;
- if (yych == 'N')
- goto yy964;
- if (yych != 'n')
- goto yy523;
- yy964:
- yych = *++p;
- if (yych == 'S')
- goto yy965;
- if (yych != 's')
- goto yy523;
- yy965:
- yych = *++p;
- if (yych == 'I')
- goto yy966;
- if (yych != 'i')
- goto yy523;
- yy966:
- yych = *++p;
- if (yych == 'O')
- goto yy967;
- if (yych != 'o')
- goto yy523;
- yy967:
- yych = *++p;
- if (yych == 'N')
- goto yy533;
- if (yych == 'n')
- goto yy533;
- goto yy523;
- yy968:
- yych = *++p;
- if (yych == 'P')
- goto yy533;
- if (yych == 'p')
- goto yy533;
- goto yy523;
- yy969:
- yych = *++p;
- if (yych == '-')
- goto yy974;
- goto yy523;
- yy970:
- yych = *++p;
- if (yych == 'T')
- goto yy971;
- if (yych != 't')
- goto yy523;
- yy971:
- yych = *++p;
- if (yych == 'E')
- goto yy972;
- if (yych != 'e')
- goto yy523;
- yy972:
- yych = *++p;
- if (yych == 'N')
- goto yy973;
- if (yych != 'n')
- goto yy523;
- yy973:
- yych = *++p;
- if (yych == 'T')
- goto yy533;
- if (yych == 't')
- goto yy533;
- goto yy523;
- yy974:
- yych = *++p;
- if (yych == 'E')
- goto yy975;
- if (yych != 'e')
- goto yy523;
- yy975:
- yych = *++p;
- if (yych == 'V')
- goto yy976;
- if (yych != 'v')
- goto yy523;
- yy976:
- yych = *++p;
- if (yych == 'E')
- goto yy977;
- if (yych != 'e')
- goto yy523;
- yy977:
- yych = *++p;
- if (yych == 'N')
- goto yy978;
- if (yych != 'n')
- goto yy523;
- yy978:
- yych = *++p;
- if (yych == 'T')
- goto yy979;
- if (yych != 't')
- goto yy523;
- yy979:
- yych = *++p;
- if (yych == 'B')
- goto yy980;
- if (yych != 'b')
- goto yy523;
- yy980:
- yych = *++p;
- if (yych == 'R')
- goto yy981;
- if (yych != 'r')
- goto yy523;
- yy981:
- yych = *++p;
- if (yych == 'I')
- goto yy982;
- if (yych != 'i')
- goto yy523;
- yy982:
- yych = *++p;
- if (yych == 'T')
- goto yy983;
- if (yych != 't')
- goto yy523;
- yy983:
- yych = *++p;
- if (yych == 'E')
- goto yy984;
- if (yych != 'e')
- goto yy523;
- yy984:
- yych = *++p;
- if (yych != '-')
- goto yy523;
- yych = *++p;
- if (yych == 'A')
- goto yy986;
- if (yych != 'a')
- goto yy523;
- yy986:
- yych = *++p;
- if (yych == 'T')
- goto yy987;
- if (yych != 't')
- goto yy523;
- yy987:
- yych = *++p;
- if (yych == 'T')
- goto yy988;
- if (yych != 't')
- goto yy523;
- yy988:
- yych = *++p;
- if (yych == 'E')
- goto yy989;
- if (yych != 'e')
- goto yy523;
- yy989:
- yych = *++p;
- if (yych == 'N')
- goto yy990;
- if (yych != 'n')
- goto yy523;
- yy990:
- yych = *++p;
- if (yych == 'D')
- goto yy991;
- if (yych != 'd')
- goto yy523;
- yy991:
- yych = *++p;
- if (yych == 'E')
- goto yy992;
- if (yych != 'e')
- goto yy523;
- yy992:
+ goto yy60;
+ goto yy52;
+ yy92:
++p;
- if ((yych = *p) == 'E')
- goto yy533;
- if (yych == 'e')
- goto yy533;
- goto yy523;
+ yych = *p;
+ if (yych <= 0x7F)
+ goto yy52;
+ if (yych <= 0xBF)
+ goto yy60;
+ goto yy52;
+ yy93:
+ ++p;
+ yych = *p;
+ if (yych <= 0x9F)
+ goto yy52;
+ if (yych <= 0xBF)
+ goto yy92;
+ goto yy52;
+ yy94:
+ ++p;
+ yych = *p;
+ if (yych <= 0x7F)
+ goto yy52;
+ if (yych <= 0xBF)
+ goto yy92;
+ goto yy52;
+ yy95:
+ ++p;
+ yych = *p;
+ if (yych <= 0x8F)
+ goto yy52;
+ if (yych <= 0xBF)
+ goto yy94;
+ goto yy52;
+ yy96:
+ ++p;
+ yych = *p;
+ if (yych <= 0x7F)
+ goto yy52;
+ if (yych <= 0xBF)
+ goto yy94;
+ goto yy52;
+ yy97:
+ ++p;
+ yych = *p;
+ if (yych <= 0x7F)
+ goto yy52;
+ if (yych <= 0x8F)
+ goto yy94;
+ goto yy52;
+ yy98:
+ ++p;
+ yych = *p;
+ if (yych <= 0x7F)
+ goto yy52;
+ if (yych <= 0x9F)
+ goto yy92;
+ goto yy52;
+ yy99:
+ ++p;
+ { return (bufsize_t)(p - start); }
}
}
@@ -8526,6594 +1897,6594 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
if (yych <= ')') {
if (yych <= ' ') {
if (yych != '\n')
- goto yy997;
+ goto yy105;
} else {
if (yych == '"')
- goto yy997;
+ goto yy105;
if (yych <= '\'')
- goto yy996;
- goto yy997;
+ goto yy104;
+ goto yy105;
}
} else {
if (yych <= '9') {
if (yych == ',')
- goto yy997;
- goto yy996;
+ goto yy105;
+ goto yy104;
} else {
if (yych == '=')
- goto yy996;
+ goto yy104;
if (yych <= '>')
- goto yy997;
- goto yy996;
+ goto yy105;
+ goto yy104;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= ']') {
if (yych <= '@')
- goto yy997;
+ goto yy105;
if (yych <= 'Z')
- goto yy996;
- goto yy997;
+ goto yy104;
+ goto yy105;
} else {
if (yych <= '~')
- goto yy996;
+ goto yy104;
if (yych <= 0x7F)
- goto yy997;
+ goto yy105;
if (yych >= 0xC2)
- goto yy998;
+ goto yy106;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1000;
+ goto yy108;
if (yych == 0xED)
- goto yy1005;
- goto yy1001;
+ goto yy113;
+ goto yy109;
} else {
if (yych <= 0xF0)
- goto yy1002;
+ goto yy110;
if (yych <= 0xF3)
- goto yy1003;
+ goto yy111;
if (yych <= 0xF4)
- goto yy1004;
+ goto yy112;
}
}
}
- yy995 : { return 0; }
- yy996:
+ yy103 : { return 0; }
+ yy104:
yych = *(marker = ++p);
if (yych <= ',') {
if (yych <= '"') {
if (yych == '!')
- goto yy1008;
- goto yy995;
+ goto yy116;
+ goto yy103;
} else {
if (yych <= '\'')
- goto yy1008;
+ goto yy116;
if (yych <= ')')
- goto yy995;
+ goto yy103;
if (yych <= '+')
- goto yy1008;
- goto yy995;
+ goto yy116;
+ goto yy103;
}
} else {
if (yych <= '>') {
if (yych <= '9')
- goto yy1008;
+ goto yy116;
if (yych == '=')
- goto yy1008;
- goto yy995;
+ goto yy116;
+ goto yy103;
} else {
if (yych <= 'Z')
- goto yy1008;
+ goto yy116;
if (yych <= ']')
- goto yy995;
+ goto yy103;
if (yych <= '~')
- goto yy1008;
- goto yy995;
+ goto yy116;
+ goto yy103;
}
}
- yy997:
+ yy105:
yych = *++p;
- goto yy995;
- yy998:
+ goto yy103;
+ yy106:
yych = *++p;
if (yych <= 0x7F)
- goto yy999;
+ goto yy107;
if (yych <= 0xBF)
- goto yy997;
- yy999:
+ goto yy105;
+ yy107:
p = marker;
- goto yy995;
- yy1000:
+ goto yy103;
+ yy108:
yych = *++p;
if (yych <= 0x9F)
- goto yy999;
+ goto yy107;
if (yych <= 0xBF)
- goto yy998;
- goto yy999;
- yy1001:
+ goto yy106;
+ goto yy107;
+ yy109:
yych = *++p;
if (yych <= 0x7F)
- goto yy999;
+ goto yy107;
if (yych <= 0xBF)
- goto yy998;
- goto yy999;
- yy1002:
+ goto yy106;
+ goto yy107;
+ yy110:
yych = *++p;
if (yych <= 0x8F)
- goto yy999;
+ goto yy107;
if (yych <= 0xBF)
- goto yy1001;
- goto yy999;
- yy1003:
+ goto yy109;
+ goto yy107;
+ yy111:
yych = *++p;
if (yych <= 0x7F)
- goto yy999;
+ goto yy107;
if (yych <= 0xBF)
- goto yy1001;
- goto yy999;
- yy1004:
+ goto yy109;
+ goto yy107;
+ yy112:
yych = *++p;
if (yych <= 0x7F)
- goto yy999;
+ goto yy107;
if (yych <= 0x8F)
- goto yy1001;
- goto yy999;
- yy1005:
+ goto yy109;
+ goto yy107;
+ yy113:
yych = *++p;
if (yych <= 0x7F)
- goto yy999;
+ goto yy107;
if (yych <= 0x9F)
- goto yy998;
- goto yy999;
- yy1006:
+ goto yy106;
+ goto yy107;
+ yy114:
yych = *++p;
if (yych <= '@') {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1009;
- goto yy999;
+ goto yy117;
+ goto yy107;
} else {
if (yych <= 'Z')
- goto yy1009;
+ goto yy117;
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1009;
- goto yy999;
+ goto yy117;
+ goto yy107;
}
- yy1007:
+ yy115:
++p;
yych = *p;
- yy1008:
+ yy116:
if (yybm[0 + yych] & 128) {
- goto yy1007;
+ goto yy115;
}
if (yych <= '>')
- goto yy999;
+ goto yy107;
if (yych <= '@')
- goto yy1006;
- goto yy999;
- yy1009:
+ goto yy114;
+ goto yy107;
+ yy117:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1011;
- goto yy999;
+ goto yy119;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1011;
+ goto yy107;
+ goto yy119;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1011;
- goto yy999;
+ goto yy119;
+ goto yy107;
}
}
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1139;
+ goto yy247;
if (yych <= '/')
- goto yy999;
- goto yy1140;
+ goto yy107;
+ goto yy248;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1140;
+ goto yy107;
+ goto yy248;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1140;
- goto yy999;
+ goto yy248;
+ goto yy107;
}
}
- yy1011:
+ yy119:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych <= '-')
- goto yy1139;
+ goto yy247;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1140;
- goto yy999;
+ goto yy248;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1140;
+ goto yy107;
+ goto yy248;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1140;
- goto yy999;
+ goto yy248;
+ goto yy107;
}
}
- yy1012:
+ yy120:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1015;
- goto yy999;
+ goto yy123;
+ goto yy107;
} else {
if (yych <= 'Z')
- goto yy1015;
+ goto yy123;
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1015;
- goto yy999;
+ goto yy123;
+ goto yy107;
}
- yy1013:
+ yy121:
++p;
{ return (bufsize_t)(p - start); }
- yy1015:
+ yy123:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1017;
- goto yy999;
+ goto yy125;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1017;
+ goto yy107;
+ goto yy125;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1017;
- goto yy999;
+ goto yy125;
+ goto yy107;
}
}
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1018;
+ goto yy126;
if (yych <= '/')
- goto yy999;
- goto yy1019;
+ goto yy107;
+ goto yy127;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1019;
+ goto yy107;
+ goto yy127;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1019;
- goto yy999;
+ goto yy127;
+ goto yy107;
}
}
- yy1017:
+ yy125:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1019;
- goto yy999;
+ goto yy127;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1019;
+ goto yy107;
+ goto yy127;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1019;
- goto yy999;
+ goto yy127;
+ goto yy107;
}
}
- yy1018:
+ yy126:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1020;
+ goto yy128;
if (yych <= '/')
- goto yy999;
- goto yy1021;
+ goto yy107;
+ goto yy129;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1021;
+ goto yy107;
+ goto yy129;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1021;
- goto yy999;
+ goto yy129;
+ goto yy107;
}
}
- yy1019:
+ yy127:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1021;
- goto yy999;
+ goto yy129;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1021;
+ goto yy107;
+ goto yy129;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1021;
- goto yy999;
+ goto yy129;
+ goto yy107;
}
}
- yy1020:
+ yy128:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1022;
+ goto yy130;
if (yych <= '/')
- goto yy999;
- goto yy1023;
+ goto yy107;
+ goto yy131;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1023;
+ goto yy107;
+ goto yy131;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1023;
- goto yy999;
+ goto yy131;
+ goto yy107;
}
}
- yy1021:
+ yy129:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1023;
- goto yy999;
+ goto yy131;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1023;
+ goto yy107;
+ goto yy131;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1023;
- goto yy999;
+ goto yy131;
+ goto yy107;
}
}
- yy1022:
+ yy130:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1024;
+ goto yy132;
if (yych <= '/')
- goto yy999;
- goto yy1025;
+ goto yy107;
+ goto yy133;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1025;
+ goto yy107;
+ goto yy133;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1025;
- goto yy999;
+ goto yy133;
+ goto yy107;
}
}
- yy1023:
+ yy131:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1025;
- goto yy999;
+ goto yy133;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1025;
+ goto yy107;
+ goto yy133;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1025;
- goto yy999;
+ goto yy133;
+ goto yy107;
}
}
- yy1024:
+ yy132:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1026;
+ goto yy134;
if (yych <= '/')
- goto yy999;
- goto yy1027;
+ goto yy107;
+ goto yy135;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1027;
+ goto yy107;
+ goto yy135;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1027;
- goto yy999;
+ goto yy135;
+ goto yy107;
}
}
- yy1025:
+ yy133:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1027;
- goto yy999;
+ goto yy135;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1027;
+ goto yy107;
+ goto yy135;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1027;
- goto yy999;
+ goto yy135;
+ goto yy107;
}
}
- yy1026:
+ yy134:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1028;
+ goto yy136;
if (yych <= '/')
- goto yy999;
- goto yy1029;
+ goto yy107;
+ goto yy137;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1029;
+ goto yy107;
+ goto yy137;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1029;
- goto yy999;
+ goto yy137;
+ goto yy107;
}
}
- yy1027:
+ yy135:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1029;
- goto yy999;
+ goto yy137;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1029;
+ goto yy107;
+ goto yy137;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1029;
- goto yy999;
+ goto yy137;
+ goto yy107;
}
}
- yy1028:
+ yy136:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1030;
+ goto yy138;
if (yych <= '/')
- goto yy999;
- goto yy1031;
+ goto yy107;
+ goto yy139;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1031;
+ goto yy107;
+ goto yy139;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1031;
- goto yy999;
+ goto yy139;
+ goto yy107;
}
}
- yy1029:
+ yy137:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1031;
- goto yy999;
+ goto yy139;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1031;
+ goto yy107;
+ goto yy139;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1031;
- goto yy999;
+ goto yy139;
+ goto yy107;
}
}
- yy1030:
+ yy138:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1032;
+ goto yy140;
if (yych <= '/')
- goto yy999;
- goto yy1033;
+ goto yy107;
+ goto yy141;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1033;
+ goto yy107;
+ goto yy141;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1033;
- goto yy999;
+ goto yy141;
+ goto yy107;
}
}
- yy1031:
+ yy139:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1033;
- goto yy999;
+ goto yy141;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1033;
+ goto yy107;
+ goto yy141;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1033;
- goto yy999;
+ goto yy141;
+ goto yy107;
}
}
- yy1032:
+ yy140:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1034;
+ goto yy142;
if (yych <= '/')
- goto yy999;
- goto yy1035;
+ goto yy107;
+ goto yy143;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1035;
+ goto yy107;
+ goto yy143;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1035;
- goto yy999;
+ goto yy143;
+ goto yy107;
}
}
- yy1033:
+ yy141:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1035;
- goto yy999;
+ goto yy143;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1035;
+ goto yy107;
+ goto yy143;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1035;
- goto yy999;
+ goto yy143;
+ goto yy107;
}
}
- yy1034:
+ yy142:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1036;
+ goto yy144;
if (yych <= '/')
- goto yy999;
- goto yy1037;
+ goto yy107;
+ goto yy145;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1037;
+ goto yy107;
+ goto yy145;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1037;
- goto yy999;
+ goto yy145;
+ goto yy107;
}
}
- yy1035:
+ yy143:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1037;
- goto yy999;
+ goto yy145;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1037;
+ goto yy107;
+ goto yy145;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1037;
- goto yy999;
+ goto yy145;
+ goto yy107;
}
}
- yy1036:
+ yy144:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1038;
+ goto yy146;
if (yych <= '/')
- goto yy999;
- goto yy1039;
+ goto yy107;
+ goto yy147;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1039;
+ goto yy107;
+ goto yy147;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1039;
- goto yy999;
+ goto yy147;
+ goto yy107;
}
}
- yy1037:
+ yy145:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1039;
- goto yy999;
+ goto yy147;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1039;
+ goto yy107;
+ goto yy147;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1039;
- goto yy999;
+ goto yy147;
+ goto yy107;
}
}
- yy1038:
+ yy146:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1040;
+ goto yy148;
if (yych <= '/')
- goto yy999;
- goto yy1041;
+ goto yy107;
+ goto yy149;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1041;
+ goto yy107;
+ goto yy149;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1041;
- goto yy999;
+ goto yy149;
+ goto yy107;
}
}
- yy1039:
+ yy147:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1041;
- goto yy999;
+ goto yy149;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1041;
+ goto yy107;
+ goto yy149;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1041;
- goto yy999;
+ goto yy149;
+ goto yy107;
}
}
- yy1040:
+ yy148:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1042;
+ goto yy150;
if (yych <= '/')
- goto yy999;
- goto yy1043;
+ goto yy107;
+ goto yy151;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1043;
+ goto yy107;
+ goto yy151;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1043;
- goto yy999;
+ goto yy151;
+ goto yy107;
}
}
- yy1041:
+ yy149:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1043;
- goto yy999;
+ goto yy151;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1043;
+ goto yy107;
+ goto yy151;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1043;
- goto yy999;
+ goto yy151;
+ goto yy107;
}
}
- yy1042:
+ yy150:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1044;
+ goto yy152;
if (yych <= '/')
- goto yy999;
- goto yy1045;
+ goto yy107;
+ goto yy153;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1045;
+ goto yy107;
+ goto yy153;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1045;
- goto yy999;
+ goto yy153;
+ goto yy107;
}
}
- yy1043:
+ yy151:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1045;
- goto yy999;
+ goto yy153;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1045;
+ goto yy107;
+ goto yy153;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1045;
- goto yy999;
+ goto yy153;
+ goto yy107;
}
}
- yy1044:
+ yy152:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1046;
+ goto yy154;
if (yych <= '/')
- goto yy999;
- goto yy1047;
+ goto yy107;
+ goto yy155;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1047;
+ goto yy107;
+ goto yy155;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1047;
- goto yy999;
+ goto yy155;
+ goto yy107;
}
}
- yy1045:
+ yy153:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1047;
- goto yy999;
+ goto yy155;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1047;
+ goto yy107;
+ goto yy155;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1047;
- goto yy999;
+ goto yy155;
+ goto yy107;
}
}
- yy1046:
+ yy154:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1048;
+ goto yy156;
if (yych <= '/')
- goto yy999;
- goto yy1049;
+ goto yy107;
+ goto yy157;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1049;
+ goto yy107;
+ goto yy157;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1049;
- goto yy999;
+ goto yy157;
+ goto yy107;
}
}
- yy1047:
+ yy155:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1049;
- goto yy999;
+ goto yy157;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1049;
+ goto yy107;
+ goto yy157;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1049;
- goto yy999;
+ goto yy157;
+ goto yy107;
}
}
- yy1048:
+ yy156:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1050;
+ goto yy158;
if (yych <= '/')
- goto yy999;
- goto yy1051;
+ goto yy107;
+ goto yy159;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1051;
+ goto yy107;
+ goto yy159;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1051;
- goto yy999;
+ goto yy159;
+ goto yy107;
}
}
- yy1049:
+ yy157:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1051;
- goto yy999;
+ goto yy159;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1051;
+ goto yy107;
+ goto yy159;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1051;
- goto yy999;
+ goto yy159;
+ goto yy107;
}
}
- yy1050:
+ yy158:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1052;
+ goto yy160;
if (yych <= '/')
- goto yy999;
- goto yy1053;
+ goto yy107;
+ goto yy161;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1053;
+ goto yy107;
+ goto yy161;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1053;
- goto yy999;
+ goto yy161;
+ goto yy107;
}
}
- yy1051:
+ yy159:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1053;
- goto yy999;
+ goto yy161;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1053;
+ goto yy107;
+ goto yy161;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1053;
- goto yy999;
+ goto yy161;
+ goto yy107;
}
}
- yy1052:
+ yy160:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1054;
+ goto yy162;
if (yych <= '/')
- goto yy999;
- goto yy1055;
+ goto yy107;
+ goto yy163;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1055;
+ goto yy107;
+ goto yy163;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1055;
- goto yy999;
+ goto yy163;
+ goto yy107;
}
}
- yy1053:
+ yy161:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1055;
- goto yy999;
+ goto yy163;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1055;
+ goto yy107;
+ goto yy163;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1055;
- goto yy999;
+ goto yy163;
+ goto yy107;
}
}
- yy1054:
+ yy162:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1056;
+ goto yy164;
if (yych <= '/')
- goto yy999;
- goto yy1057;
+ goto yy107;
+ goto yy165;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1057;
+ goto yy107;
+ goto yy165;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1057;
- goto yy999;
+ goto yy165;
+ goto yy107;
}
}
- yy1055:
+ yy163:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1057;
- goto yy999;
+ goto yy165;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1057;
+ goto yy107;
+ goto yy165;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1057;
- goto yy999;
+ goto yy165;
+ goto yy107;
}
}
- yy1056:
+ yy164:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1058;
+ goto yy166;
if (yych <= '/')
- goto yy999;
- goto yy1059;
+ goto yy107;
+ goto yy167;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1059;
+ goto yy107;
+ goto yy167;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1059;
- goto yy999;
+ goto yy167;
+ goto yy107;
}
}
- yy1057:
+ yy165:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1059;
- goto yy999;
+ goto yy167;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1059;
+ goto yy107;
+ goto yy167;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1059;
- goto yy999;
+ goto yy167;
+ goto yy107;
}
}
- yy1058:
+ yy166:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1060;
+ goto yy168;
if (yych <= '/')
- goto yy999;
- goto yy1061;
+ goto yy107;
+ goto yy169;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1061;
+ goto yy107;
+ goto yy169;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1061;
- goto yy999;
+ goto yy169;
+ goto yy107;
}
}
- yy1059:
+ yy167:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1061;
- goto yy999;
+ goto yy169;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1061;
+ goto yy107;
+ goto yy169;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1061;
- goto yy999;
+ goto yy169;
+ goto yy107;
}
}
- yy1060:
+ yy168:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1062;
+ goto yy170;
if (yych <= '/')
- goto yy999;
- goto yy1063;
+ goto yy107;
+ goto yy171;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1063;
+ goto yy107;
+ goto yy171;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1063;
- goto yy999;
+ goto yy171;
+ goto yy107;
}
}
- yy1061:
+ yy169:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1063;
- goto yy999;
+ goto yy171;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1063;
+ goto yy107;
+ goto yy171;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1063;
- goto yy999;
+ goto yy171;
+ goto yy107;
}
}
- yy1062:
+ yy170:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1064;
+ goto yy172;
if (yych <= '/')
- goto yy999;
- goto yy1065;
+ goto yy107;
+ goto yy173;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1065;
+ goto yy107;
+ goto yy173;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1065;
- goto yy999;
+ goto yy173;
+ goto yy107;
}
}
- yy1063:
+ yy171:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1065;
- goto yy999;
+ goto yy173;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1065;
+ goto yy107;
+ goto yy173;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1065;
- goto yy999;
+ goto yy173;
+ goto yy107;
}
}
- yy1064:
+ yy172:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1066;
+ goto yy174;
if (yych <= '/')
- goto yy999;
- goto yy1067;
+ goto yy107;
+ goto yy175;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1067;
+ goto yy107;
+ goto yy175;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1067;
- goto yy999;
+ goto yy175;
+ goto yy107;
}
}
- yy1065:
+ yy173:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1067;
- goto yy999;
+ goto yy175;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1067;
+ goto yy107;
+ goto yy175;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1067;
- goto yy999;
+ goto yy175;
+ goto yy107;
}
}
- yy1066:
+ yy174:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1068;
+ goto yy176;
if (yych <= '/')
- goto yy999;
- goto yy1069;
+ goto yy107;
+ goto yy177;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1069;
+ goto yy107;
+ goto yy177;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1069;
- goto yy999;
+ goto yy177;
+ goto yy107;
}
}
- yy1067:
+ yy175:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1069;
- goto yy999;
+ goto yy177;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1069;
+ goto yy107;
+ goto yy177;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1069;
- goto yy999;
+ goto yy177;
+ goto yy107;
}
}
- yy1068:
+ yy176:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1070;
+ goto yy178;
if (yych <= '/')
- goto yy999;
- goto yy1071;
+ goto yy107;
+ goto yy179;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1071;
+ goto yy107;
+ goto yy179;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1071;
- goto yy999;
+ goto yy179;
+ goto yy107;
}
}
- yy1069:
+ yy177:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1071;
- goto yy999;
+ goto yy179;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1071;
+ goto yy107;
+ goto yy179;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1071;
- goto yy999;
+ goto yy179;
+ goto yy107;
}
}
- yy1070:
+ yy178:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1072;
+ goto yy180;
if (yych <= '/')
- goto yy999;
- goto yy1073;
+ goto yy107;
+ goto yy181;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1073;
+ goto yy107;
+ goto yy181;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1073;
- goto yy999;
+ goto yy181;
+ goto yy107;
}
}
- yy1071:
+ yy179:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1073;
- goto yy999;
+ goto yy181;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1073;
+ goto yy107;
+ goto yy181;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1073;
- goto yy999;
+ goto yy181;
+ goto yy107;
}
}
- yy1072:
+ yy180:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1074;
+ goto yy182;
if (yych <= '/')
- goto yy999;
- goto yy1075;
+ goto yy107;
+ goto yy183;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1075;
+ goto yy107;
+ goto yy183;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1075;
- goto yy999;
+ goto yy183;
+ goto yy107;
}
}
- yy1073:
+ yy181:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1075;
- goto yy999;
+ goto yy183;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1075;
+ goto yy107;
+ goto yy183;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1075;
- goto yy999;
+ goto yy183;
+ goto yy107;
}
}
- yy1074:
+ yy182:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1076;
+ goto yy184;
if (yych <= '/')
- goto yy999;
- goto yy1077;
+ goto yy107;
+ goto yy185;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1077;
+ goto yy107;
+ goto yy185;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1077;
- goto yy999;
+ goto yy185;
+ goto yy107;
}
}
- yy1075:
+ yy183:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1077;
- goto yy999;
+ goto yy185;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1077;
+ goto yy107;
+ goto yy185;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1077;
- goto yy999;
+ goto yy185;
+ goto yy107;
}
}
- yy1076:
+ yy184:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1078;
+ goto yy186;
if (yych <= '/')
- goto yy999;
- goto yy1079;
+ goto yy107;
+ goto yy187;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1079;
+ goto yy107;
+ goto yy187;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1079;
- goto yy999;
+ goto yy187;
+ goto yy107;
}
}
- yy1077:
+ yy185:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1079;
- goto yy999;
+ goto yy187;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1079;
+ goto yy107;
+ goto yy187;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1079;
- goto yy999;
+ goto yy187;
+ goto yy107;
}
}
- yy1078:
+ yy186:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1080;
+ goto yy188;
if (yych <= '/')
- goto yy999;
- goto yy1081;
+ goto yy107;
+ goto yy189;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1081;
+ goto yy107;
+ goto yy189;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1081;
- goto yy999;
+ goto yy189;
+ goto yy107;
}
}
- yy1079:
+ yy187:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1081;
- goto yy999;
+ goto yy189;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1081;
+ goto yy107;
+ goto yy189;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1081;
- goto yy999;
+ goto yy189;
+ goto yy107;
}
}
- yy1080:
+ yy188:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1082;
+ goto yy190;
if (yych <= '/')
- goto yy999;
- goto yy1083;
+ goto yy107;
+ goto yy191;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1083;
+ goto yy107;
+ goto yy191;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1083;
- goto yy999;
+ goto yy191;
+ goto yy107;
}
}
- yy1081:
+ yy189:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1083;
- goto yy999;
+ goto yy191;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1083;
+ goto yy107;
+ goto yy191;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1083;
- goto yy999;
+ goto yy191;
+ goto yy107;
}
}
- yy1082:
+ yy190:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1084;
+ goto yy192;
if (yych <= '/')
- goto yy999;
- goto yy1085;
+ goto yy107;
+ goto yy193;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1085;
+ goto yy107;
+ goto yy193;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1085;
- goto yy999;
+ goto yy193;
+ goto yy107;
}
}
- yy1083:
+ yy191:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1085;
- goto yy999;
+ goto yy193;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1085;
+ goto yy107;
+ goto yy193;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1085;
- goto yy999;
+ goto yy193;
+ goto yy107;
}
}
- yy1084:
+ yy192:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1086;
+ goto yy194;
if (yych <= '/')
- goto yy999;
- goto yy1087;
+ goto yy107;
+ goto yy195;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1087;
+ goto yy107;
+ goto yy195;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1087;
- goto yy999;
+ goto yy195;
+ goto yy107;
}
}
- yy1085:
+ yy193:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1087;
- goto yy999;
+ goto yy195;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1087;
+ goto yy107;
+ goto yy195;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1087;
- goto yy999;
+ goto yy195;
+ goto yy107;
}
}
- yy1086:
+ yy194:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1088;
+ goto yy196;
if (yych <= '/')
- goto yy999;
- goto yy1089;
+ goto yy107;
+ goto yy197;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1089;
+ goto yy107;
+ goto yy197;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1089;
- goto yy999;
+ goto yy197;
+ goto yy107;
}
}
- yy1087:
+ yy195:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1089;
- goto yy999;
+ goto yy197;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1089;
+ goto yy107;
+ goto yy197;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1089;
- goto yy999;
+ goto yy197;
+ goto yy107;
}
}
- yy1088:
+ yy196:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1090;
+ goto yy198;
if (yych <= '/')
- goto yy999;
- goto yy1091;
+ goto yy107;
+ goto yy199;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1091;
+ goto yy107;
+ goto yy199;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1091;
- goto yy999;
+ goto yy199;
+ goto yy107;
}
}
- yy1089:
+ yy197:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1091;
- goto yy999;
+ goto yy199;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1091;
+ goto yy107;
+ goto yy199;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1091;
- goto yy999;
+ goto yy199;
+ goto yy107;
}
}
- yy1090:
+ yy198:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1092;
+ goto yy200;
if (yych <= '/')
- goto yy999;
- goto yy1093;
+ goto yy107;
+ goto yy201;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1093;
+ goto yy107;
+ goto yy201;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1093;
- goto yy999;
+ goto yy201;
+ goto yy107;
}
}
- yy1091:
+ yy199:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1093;
- goto yy999;
+ goto yy201;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1093;
+ goto yy107;
+ goto yy201;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1093;
- goto yy999;
+ goto yy201;
+ goto yy107;
}
}
- yy1092:
+ yy200:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1094;
+ goto yy202;
if (yych <= '/')
- goto yy999;
- goto yy1095;
+ goto yy107;
+ goto yy203;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1095;
+ goto yy107;
+ goto yy203;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1095;
- goto yy999;
+ goto yy203;
+ goto yy107;
}
}
- yy1093:
+ yy201:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1095;
- goto yy999;
+ goto yy203;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1095;
+ goto yy107;
+ goto yy203;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1095;
- goto yy999;
+ goto yy203;
+ goto yy107;
}
}
- yy1094:
+ yy202:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1096;
+ goto yy204;
if (yych <= '/')
- goto yy999;
- goto yy1097;
+ goto yy107;
+ goto yy205;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1097;
+ goto yy107;
+ goto yy205;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1097;
- goto yy999;
+ goto yy205;
+ goto yy107;
}
}
- yy1095:
+ yy203:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1097;
- goto yy999;
+ goto yy205;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1097;
+ goto yy107;
+ goto yy205;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1097;
- goto yy999;
+ goto yy205;
+ goto yy107;
}
}
- yy1096:
+ yy204:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1098;
+ goto yy206;
if (yych <= '/')
- goto yy999;
- goto yy1099;
+ goto yy107;
+ goto yy207;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1099;
+ goto yy107;
+ goto yy207;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1099;
- goto yy999;
+ goto yy207;
+ goto yy107;
}
}
- yy1097:
+ yy205:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1099;
- goto yy999;
+ goto yy207;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1099;
+ goto yy107;
+ goto yy207;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1099;
- goto yy999;
+ goto yy207;
+ goto yy107;
}
}
- yy1098:
+ yy206:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1100;
+ goto yy208;
if (yych <= '/')
- goto yy999;
- goto yy1101;
+ goto yy107;
+ goto yy209;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1101;
+ goto yy107;
+ goto yy209;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1101;
- goto yy999;
+ goto yy209;
+ goto yy107;
}
}
- yy1099:
+ yy207:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1101;
- goto yy999;
+ goto yy209;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1101;
+ goto yy107;
+ goto yy209;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1101;
- goto yy999;
+ goto yy209;
+ goto yy107;
}
}
- yy1100:
+ yy208:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1102;
+ goto yy210;
if (yych <= '/')
- goto yy999;
- goto yy1103;
+ goto yy107;
+ goto yy211;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1103;
+ goto yy107;
+ goto yy211;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1103;
- goto yy999;
+ goto yy211;
+ goto yy107;
}
}
- yy1101:
+ yy209:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1103;
- goto yy999;
+ goto yy211;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1103;
+ goto yy107;
+ goto yy211;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1103;
- goto yy999;
+ goto yy211;
+ goto yy107;
}
}
- yy1102:
+ yy210:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1104;
+ goto yy212;
if (yych <= '/')
- goto yy999;
- goto yy1105;
+ goto yy107;
+ goto yy213;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1105;
+ goto yy107;
+ goto yy213;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1105;
- goto yy999;
+ goto yy213;
+ goto yy107;
}
}
- yy1103:
+ yy211:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1105;
- goto yy999;
+ goto yy213;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1105;
+ goto yy107;
+ goto yy213;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1105;
- goto yy999;
+ goto yy213;
+ goto yy107;
}
}
- yy1104:
+ yy212:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1106;
+ goto yy214;
if (yych <= '/')
- goto yy999;
- goto yy1107;
+ goto yy107;
+ goto yy215;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1107;
+ goto yy107;
+ goto yy215;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1107;
- goto yy999;
+ goto yy215;
+ goto yy107;
}
}
- yy1105:
+ yy213:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1107;
- goto yy999;
+ goto yy215;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1107;
+ goto yy107;
+ goto yy215;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1107;
- goto yy999;
+ goto yy215;
+ goto yy107;
}
}
- yy1106:
+ yy214:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1108;
+ goto yy216;
if (yych <= '/')
- goto yy999;
- goto yy1109;
+ goto yy107;
+ goto yy217;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1109;
+ goto yy107;
+ goto yy217;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1109;
- goto yy999;
+ goto yy217;
+ goto yy107;
}
}
- yy1107:
+ yy215:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1109;
- goto yy999;
+ goto yy217;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1109;
+ goto yy107;
+ goto yy217;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1109;
- goto yy999;
+ goto yy217;
+ goto yy107;
}
}
- yy1108:
+ yy216:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1110;
+ goto yy218;
if (yych <= '/')
- goto yy999;
- goto yy1111;
+ goto yy107;
+ goto yy219;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1111;
+ goto yy107;
+ goto yy219;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1111;
- goto yy999;
+ goto yy219;
+ goto yy107;
}
}
- yy1109:
+ yy217:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1111;
- goto yy999;
+ goto yy219;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1111;
+ goto yy107;
+ goto yy219;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1111;
- goto yy999;
+ goto yy219;
+ goto yy107;
}
}
- yy1110:
+ yy218:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1112;
+ goto yy220;
if (yych <= '/')
- goto yy999;
- goto yy1113;
+ goto yy107;
+ goto yy221;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1113;
+ goto yy107;
+ goto yy221;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1113;
- goto yy999;
+ goto yy221;
+ goto yy107;
}
}
- yy1111:
+ yy219:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1113;
- goto yy999;
+ goto yy221;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1113;
+ goto yy107;
+ goto yy221;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1113;
- goto yy999;
+ goto yy221;
+ goto yy107;
}
}
- yy1112:
+ yy220:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1114;
+ goto yy222;
if (yych <= '/')
- goto yy999;
- goto yy1115;
+ goto yy107;
+ goto yy223;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1115;
+ goto yy107;
+ goto yy223;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1115;
- goto yy999;
+ goto yy223;
+ goto yy107;
}
}
- yy1113:
+ yy221:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1115;
- goto yy999;
+ goto yy223;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1115;
+ goto yy107;
+ goto yy223;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1115;
- goto yy999;
+ goto yy223;
+ goto yy107;
}
}
- yy1114:
+ yy222:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1116;
+ goto yy224;
if (yych <= '/')
- goto yy999;
- goto yy1117;
+ goto yy107;
+ goto yy225;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1117;
+ goto yy107;
+ goto yy225;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1117;
- goto yy999;
+ goto yy225;
+ goto yy107;
}
}
- yy1115:
+ yy223:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1117;
- goto yy999;
+ goto yy225;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1117;
+ goto yy107;
+ goto yy225;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1117;
- goto yy999;
+ goto yy225;
+ goto yy107;
}
}
- yy1116:
+ yy224:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1118;
+ goto yy226;
if (yych <= '/')
- goto yy999;
- goto yy1119;
+ goto yy107;
+ goto yy227;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1119;
+ goto yy107;
+ goto yy227;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1119;
- goto yy999;
+ goto yy227;
+ goto yy107;
}
}
- yy1117:
+ yy225:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1119;
- goto yy999;
+ goto yy227;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1119;
+ goto yy107;
+ goto yy227;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1119;
- goto yy999;
+ goto yy227;
+ goto yy107;
}
}
- yy1118:
+ yy226:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1120;
+ goto yy228;
if (yych <= '/')
- goto yy999;
- goto yy1121;
+ goto yy107;
+ goto yy229;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1121;
+ goto yy107;
+ goto yy229;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1121;
- goto yy999;
+ goto yy229;
+ goto yy107;
}
}
- yy1119:
+ yy227:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1121;
- goto yy999;
+ goto yy229;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1121;
+ goto yy107;
+ goto yy229;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1121;
- goto yy999;
+ goto yy229;
+ goto yy107;
}
}
- yy1120:
+ yy228:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1122;
+ goto yy230;
if (yych <= '/')
- goto yy999;
- goto yy1123;
+ goto yy107;
+ goto yy231;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1123;
+ goto yy107;
+ goto yy231;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1123;
- goto yy999;
+ goto yy231;
+ goto yy107;
}
}
- yy1121:
+ yy229:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1123;
- goto yy999;
+ goto yy231;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1123;
+ goto yy107;
+ goto yy231;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1123;
- goto yy999;
+ goto yy231;
+ goto yy107;
}
}
- yy1122:
+ yy230:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1124;
+ goto yy232;
if (yych <= '/')
- goto yy999;
- goto yy1125;
+ goto yy107;
+ goto yy233;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1125;
+ goto yy107;
+ goto yy233;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1125;
- goto yy999;
+ goto yy233;
+ goto yy107;
}
}
- yy1123:
+ yy231:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1125;
- goto yy999;
+ goto yy233;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1125;
+ goto yy107;
+ goto yy233;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1125;
- goto yy999;
+ goto yy233;
+ goto yy107;
}
}
- yy1124:
+ yy232:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1126;
+ goto yy234;
if (yych <= '/')
- goto yy999;
- goto yy1127;
+ goto yy107;
+ goto yy235;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1127;
+ goto yy107;
+ goto yy235;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1127;
- goto yy999;
+ goto yy235;
+ goto yy107;
}
}
- yy1125:
+ yy233:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1127;
- goto yy999;
+ goto yy235;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1127;
+ goto yy107;
+ goto yy235;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1127;
- goto yy999;
+ goto yy235;
+ goto yy107;
}
}
- yy1126:
+ yy234:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1128;
+ goto yy236;
if (yych <= '/')
- goto yy999;
- goto yy1129;
+ goto yy107;
+ goto yy237;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1129;
+ goto yy107;
+ goto yy237;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1129;
- goto yy999;
+ goto yy237;
+ goto yy107;
}
}
- yy1127:
+ yy235:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1129;
- goto yy999;
+ goto yy237;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1129;
+ goto yy107;
+ goto yy237;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1129;
- goto yy999;
+ goto yy237;
+ goto yy107;
}
}
- yy1128:
+ yy236:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1130;
+ goto yy238;
if (yych <= '/')
- goto yy999;
- goto yy1131;
+ goto yy107;
+ goto yy239;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1131;
+ goto yy107;
+ goto yy239;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1131;
- goto yy999;
+ goto yy239;
+ goto yy107;
}
}
- yy1129:
+ yy237:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1131;
- goto yy999;
+ goto yy239;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1131;
+ goto yy107;
+ goto yy239;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1131;
- goto yy999;
+ goto yy239;
+ goto yy107;
}
}
- yy1130:
+ yy238:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1132;
+ goto yy240;
if (yych <= '/')
- goto yy999;
- goto yy1133;
+ goto yy107;
+ goto yy241;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1133;
+ goto yy107;
+ goto yy241;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1133;
- goto yy999;
+ goto yy241;
+ goto yy107;
}
}
- yy1131:
+ yy239:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1133;
- goto yy999;
+ goto yy241;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1133;
+ goto yy107;
+ goto yy241;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1133;
- goto yy999;
+ goto yy241;
+ goto yy107;
}
}
- yy1132:
+ yy240:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1134;
+ goto yy242;
if (yych <= '/')
- goto yy999;
- goto yy1135;
+ goto yy107;
+ goto yy243;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1135;
+ goto yy107;
+ goto yy243;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1135;
- goto yy999;
+ goto yy243;
+ goto yy107;
}
}
- yy1133:
+ yy241:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1135;
- goto yy999;
+ goto yy243;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1135;
+ goto yy107;
+ goto yy243;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1135;
- goto yy999;
+ goto yy243;
+ goto yy107;
}
}
- yy1134:
+ yy242:
++p;
yych = *p;
if (yych <= '9') {
if (yych == '-')
- goto yy1136;
+ goto yy244;
if (yych <= '/')
- goto yy999;
- goto yy1137;
+ goto yy107;
+ goto yy245;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1137;
+ goto yy107;
+ goto yy245;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1137;
- goto yy999;
+ goto yy245;
+ goto yy107;
}
}
- yy1135:
+ yy243:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1137;
- goto yy999;
+ goto yy245;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1137;
+ goto yy107;
+ goto yy245;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1137;
- goto yy999;
+ goto yy245;
+ goto yy107;
}
}
- yy1136:
+ yy244:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
} else {
if (yych <= 'Z')
- goto yy1138;
+ goto yy246;
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
}
- yy1137:
+ yy245:
++p;
yych = *p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= '-')
- goto yy999;
- goto yy1012;
+ goto yy107;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych >= ':')
- goto yy999;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
+ goto yy107;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych >= '{')
- goto yy999;
+ goto yy107;
}
}
- yy1138:
+ yy246:
++p;
yych = *p;
if (yych == '.')
- goto yy1012;
+ goto yy120;
if (yych == '>')
- goto yy1013;
- goto yy999;
- yy1139:
+ goto yy121;
+ goto yy107;
+ yy247:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1141;
+ goto yy249;
if (yych <= '/')
- goto yy999;
- goto yy1142;
+ goto yy107;
+ goto yy250;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1142;
+ goto yy107;
+ goto yy250;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1142;
- goto yy999;
+ goto yy250;
+ goto yy107;
}
}
- yy1140:
+ yy248:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1142;
- goto yy999;
+ goto yy250;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1142;
+ goto yy107;
+ goto yy250;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1142;
- goto yy999;
+ goto yy250;
+ goto yy107;
}
}
- yy1141:
+ yy249:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1143;
+ goto yy251;
if (yych <= '/')
- goto yy999;
- goto yy1144;
+ goto yy107;
+ goto yy252;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1144;
+ goto yy107;
+ goto yy252;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1144;
- goto yy999;
+ goto yy252;
+ goto yy107;
}
}
- yy1142:
+ yy250:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1144;
- goto yy999;
+ goto yy252;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1144;
+ goto yy107;
+ goto yy252;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1144;
- goto yy999;
+ goto yy252;
+ goto yy107;
}
}
- yy1143:
+ yy251:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1145;
+ goto yy253;
if (yych <= '/')
- goto yy999;
- goto yy1146;
+ goto yy107;
+ goto yy254;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1146;
+ goto yy107;
+ goto yy254;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1146;
- goto yy999;
+ goto yy254;
+ goto yy107;
}
}
- yy1144:
+ yy252:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1146;
- goto yy999;
+ goto yy254;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1146;
+ goto yy107;
+ goto yy254;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1146;
- goto yy999;
+ goto yy254;
+ goto yy107;
}
}
- yy1145:
+ yy253:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1147;
+ goto yy255;
if (yych <= '/')
- goto yy999;
- goto yy1148;
+ goto yy107;
+ goto yy256;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1148;
+ goto yy107;
+ goto yy256;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1148;
- goto yy999;
+ goto yy256;
+ goto yy107;
}
}
- yy1146:
+ yy254:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1148;
- goto yy999;
+ goto yy256;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1148;
+ goto yy107;
+ goto yy256;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1148;
- goto yy999;
+ goto yy256;
+ goto yy107;
}
}
- yy1147:
+ yy255:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1149;
+ goto yy257;
if (yych <= '/')
- goto yy999;
- goto yy1150;
+ goto yy107;
+ goto yy258;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1150;
+ goto yy107;
+ goto yy258;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1150;
- goto yy999;
+ goto yy258;
+ goto yy107;
}
}
- yy1148:
+ yy256:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1150;
- goto yy999;
+ goto yy258;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1150;
+ goto yy107;
+ goto yy258;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1150;
- goto yy999;
+ goto yy258;
+ goto yy107;
}
}
- yy1149:
+ yy257:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1151;
+ goto yy259;
if (yych <= '/')
- goto yy999;
- goto yy1152;
+ goto yy107;
+ goto yy260;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1152;
+ goto yy107;
+ goto yy260;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1152;
- goto yy999;
+ goto yy260;
+ goto yy107;
}
}
- yy1150:
+ yy258:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1152;
- goto yy999;
+ goto yy260;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1152;
+ goto yy107;
+ goto yy260;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1152;
- goto yy999;
+ goto yy260;
+ goto yy107;
}
}
- yy1151:
+ yy259:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1153;
+ goto yy261;
if (yych <= '/')
- goto yy999;
- goto yy1154;
+ goto yy107;
+ goto yy262;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1154;
+ goto yy107;
+ goto yy262;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1154;
- goto yy999;
+ goto yy262;
+ goto yy107;
}
}
- yy1152:
+ yy260:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1154;
- goto yy999;
+ goto yy262;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1154;
+ goto yy107;
+ goto yy262;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1154;
- goto yy999;
+ goto yy262;
+ goto yy107;
}
}
- yy1153:
+ yy261:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1155;
+ goto yy263;
if (yych <= '/')
- goto yy999;
- goto yy1156;
+ goto yy107;
+ goto yy264;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1156;
+ goto yy107;
+ goto yy264;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1156;
- goto yy999;
+ goto yy264;
+ goto yy107;
}
}
- yy1154:
+ yy262:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1156;
- goto yy999;
+ goto yy264;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1156;
+ goto yy107;
+ goto yy264;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1156;
- goto yy999;
+ goto yy264;
+ goto yy107;
}
}
- yy1155:
+ yy263:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1157;
+ goto yy265;
if (yych <= '/')
- goto yy999;
- goto yy1158;
+ goto yy107;
+ goto yy266;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1158;
+ goto yy107;
+ goto yy266;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1158;
- goto yy999;
+ goto yy266;
+ goto yy107;
}
}
- yy1156:
+ yy264:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1158;
- goto yy999;
+ goto yy266;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1158;
+ goto yy107;
+ goto yy266;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1158;
- goto yy999;
+ goto yy266;
+ goto yy107;
}
}
- yy1157:
+ yy265:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1159;
+ goto yy267;
if (yych <= '/')
- goto yy999;
- goto yy1160;
+ goto yy107;
+ goto yy268;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1160;
+ goto yy107;
+ goto yy268;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1160;
- goto yy999;
+ goto yy268;
+ goto yy107;
}
}
- yy1158:
+ yy266:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1160;
- goto yy999;
+ goto yy268;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1160;
+ goto yy107;
+ goto yy268;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1160;
- goto yy999;
+ goto yy268;
+ goto yy107;
}
}
- yy1159:
+ yy267:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1161;
+ goto yy269;
if (yych <= '/')
- goto yy999;
- goto yy1162;
+ goto yy107;
+ goto yy270;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1162;
+ goto yy107;
+ goto yy270;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1162;
- goto yy999;
+ goto yy270;
+ goto yy107;
}
}
- yy1160:
+ yy268:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1162;
- goto yy999;
+ goto yy270;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1162;
+ goto yy107;
+ goto yy270;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1162;
- goto yy999;
+ goto yy270;
+ goto yy107;
}
}
- yy1161:
+ yy269:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1163;
+ goto yy271;
if (yych <= '/')
- goto yy999;
- goto yy1164;
+ goto yy107;
+ goto yy272;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1164;
+ goto yy107;
+ goto yy272;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1164;
- goto yy999;
+ goto yy272;
+ goto yy107;
}
}
- yy1162:
+ yy270:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1164;
- goto yy999;
+ goto yy272;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1164;
+ goto yy107;
+ goto yy272;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1164;
- goto yy999;
+ goto yy272;
+ goto yy107;
}
}
- yy1163:
+ yy271:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1165;
+ goto yy273;
if (yych <= '/')
- goto yy999;
- goto yy1166;
+ goto yy107;
+ goto yy274;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1166;
+ goto yy107;
+ goto yy274;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1166;
- goto yy999;
+ goto yy274;
+ goto yy107;
}
}
- yy1164:
+ yy272:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1166;
- goto yy999;
+ goto yy274;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1166;
+ goto yy107;
+ goto yy274;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1166;
- goto yy999;
+ goto yy274;
+ goto yy107;
}
}
- yy1165:
+ yy273:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1167;
+ goto yy275;
if (yych <= '/')
- goto yy999;
- goto yy1168;
+ goto yy107;
+ goto yy276;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1168;
+ goto yy107;
+ goto yy276;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1168;
- goto yy999;
+ goto yy276;
+ goto yy107;
}
}
- yy1166:
+ yy274:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1168;
- goto yy999;
+ goto yy276;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1168;
+ goto yy107;
+ goto yy276;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1168;
- goto yy999;
+ goto yy276;
+ goto yy107;
}
}
- yy1167:
+ yy275:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1169;
+ goto yy277;
if (yych <= '/')
- goto yy999;
- goto yy1170;
+ goto yy107;
+ goto yy278;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1170;
+ goto yy107;
+ goto yy278;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1170;
- goto yy999;
+ goto yy278;
+ goto yy107;
}
}
- yy1168:
+ yy276:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1170;
- goto yy999;
+ goto yy278;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1170;
+ goto yy107;
+ goto yy278;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1170;
- goto yy999;
+ goto yy278;
+ goto yy107;
}
}
- yy1169:
+ yy277:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1171;
+ goto yy279;
if (yych <= '/')
- goto yy999;
- goto yy1172;
+ goto yy107;
+ goto yy280;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1172;
+ goto yy107;
+ goto yy280;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1172;
- goto yy999;
+ goto yy280;
+ goto yy107;
}
}
- yy1170:
+ yy278:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1172;
- goto yy999;
+ goto yy280;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1172;
+ goto yy107;
+ goto yy280;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1172;
- goto yy999;
+ goto yy280;
+ goto yy107;
}
}
- yy1171:
+ yy279:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1173;
+ goto yy281;
if (yych <= '/')
- goto yy999;
- goto yy1174;
+ goto yy107;
+ goto yy282;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1174;
+ goto yy107;
+ goto yy282;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1174;
- goto yy999;
+ goto yy282;
+ goto yy107;
}
}
- yy1172:
+ yy280:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1174;
- goto yy999;
+ goto yy282;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1174;
+ goto yy107;
+ goto yy282;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1174;
- goto yy999;
+ goto yy282;
+ goto yy107;
}
}
- yy1173:
+ yy281:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1175;
+ goto yy283;
if (yych <= '/')
- goto yy999;
- goto yy1176;
+ goto yy107;
+ goto yy284;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1176;
+ goto yy107;
+ goto yy284;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1176;
- goto yy999;
+ goto yy284;
+ goto yy107;
}
}
- yy1174:
+ yy282:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1176;
- goto yy999;
+ goto yy284;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1176;
+ goto yy107;
+ goto yy284;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1176;
- goto yy999;
+ goto yy284;
+ goto yy107;
}
}
- yy1175:
+ yy283:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1177;
+ goto yy285;
if (yych <= '/')
- goto yy999;
- goto yy1178;
+ goto yy107;
+ goto yy286;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1178;
+ goto yy107;
+ goto yy286;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1178;
- goto yy999;
+ goto yy286;
+ goto yy107;
}
}
- yy1176:
+ yy284:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1178;
- goto yy999;
+ goto yy286;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1178;
+ goto yy107;
+ goto yy286;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1178;
- goto yy999;
+ goto yy286;
+ goto yy107;
}
}
- yy1177:
+ yy285:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1179;
+ goto yy287;
if (yych <= '/')
- goto yy999;
- goto yy1180;
+ goto yy107;
+ goto yy288;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1180;
+ goto yy107;
+ goto yy288;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1180;
- goto yy999;
+ goto yy288;
+ goto yy107;
}
}
- yy1178:
+ yy286:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1180;
- goto yy999;
+ goto yy288;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1180;
+ goto yy107;
+ goto yy288;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1180;
- goto yy999;
+ goto yy288;
+ goto yy107;
}
}
- yy1179:
+ yy287:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1181;
+ goto yy289;
if (yych <= '/')
- goto yy999;
- goto yy1182;
+ goto yy107;
+ goto yy290;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1182;
+ goto yy107;
+ goto yy290;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1182;
- goto yy999;
+ goto yy290;
+ goto yy107;
}
}
- yy1180:
+ yy288:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1182;
- goto yy999;
+ goto yy290;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1182;
+ goto yy107;
+ goto yy290;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1182;
- goto yy999;
+ goto yy290;
+ goto yy107;
}
}
- yy1181:
+ yy289:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1183;
+ goto yy291;
if (yych <= '/')
- goto yy999;
- goto yy1184;
+ goto yy107;
+ goto yy292;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1184;
+ goto yy107;
+ goto yy292;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1184;
- goto yy999;
+ goto yy292;
+ goto yy107;
}
}
- yy1182:
+ yy290:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1184;
- goto yy999;
+ goto yy292;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1184;
+ goto yy107;
+ goto yy292;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1184;
- goto yy999;
+ goto yy292;
+ goto yy107;
}
}
- yy1183:
+ yy291:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1185;
+ goto yy293;
if (yych <= '/')
- goto yy999;
- goto yy1186;
+ goto yy107;
+ goto yy294;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1186;
+ goto yy107;
+ goto yy294;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1186;
- goto yy999;
+ goto yy294;
+ goto yy107;
}
}
- yy1184:
+ yy292:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1186;
- goto yy999;
+ goto yy294;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1186;
+ goto yy107;
+ goto yy294;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1186;
- goto yy999;
+ goto yy294;
+ goto yy107;
}
}
- yy1185:
+ yy293:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1187;
+ goto yy295;
if (yych <= '/')
- goto yy999;
- goto yy1188;
+ goto yy107;
+ goto yy296;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1188;
+ goto yy107;
+ goto yy296;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1188;
- goto yy999;
+ goto yy296;
+ goto yy107;
}
}
- yy1186:
+ yy294:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1188;
- goto yy999;
+ goto yy296;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1188;
+ goto yy107;
+ goto yy296;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1188;
- goto yy999;
+ goto yy296;
+ goto yy107;
}
}
- yy1187:
+ yy295:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1189;
+ goto yy297;
if (yych <= '/')
- goto yy999;
- goto yy1190;
+ goto yy107;
+ goto yy298;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1190;
+ goto yy107;
+ goto yy298;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1190;
- goto yy999;
+ goto yy298;
+ goto yy107;
}
}
- yy1188:
+ yy296:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1190;
- goto yy999;
+ goto yy298;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1190;
+ goto yy107;
+ goto yy298;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1190;
- goto yy999;
+ goto yy298;
+ goto yy107;
}
}
- yy1189:
+ yy297:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1191;
+ goto yy299;
if (yych <= '/')
- goto yy999;
- goto yy1192;
+ goto yy107;
+ goto yy300;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1192;
+ goto yy107;
+ goto yy300;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1192;
- goto yy999;
+ goto yy300;
+ goto yy107;
}
}
- yy1190:
+ yy298:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1192;
- goto yy999;
+ goto yy300;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1192;
+ goto yy107;
+ goto yy300;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1192;
- goto yy999;
+ goto yy300;
+ goto yy107;
}
}
- yy1191:
+ yy299:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1193;
+ goto yy301;
if (yych <= '/')
- goto yy999;
- goto yy1194;
+ goto yy107;
+ goto yy302;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1194;
+ goto yy107;
+ goto yy302;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1194;
- goto yy999;
+ goto yy302;
+ goto yy107;
}
}
- yy1192:
+ yy300:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1194;
- goto yy999;
+ goto yy302;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1194;
+ goto yy107;
+ goto yy302;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1194;
- goto yy999;
+ goto yy302;
+ goto yy107;
}
}
- yy1193:
+ yy301:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1195;
+ goto yy303;
if (yych <= '/')
- goto yy999;
- goto yy1196;
+ goto yy107;
+ goto yy304;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1196;
+ goto yy107;
+ goto yy304;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1196;
- goto yy999;
+ goto yy304;
+ goto yy107;
}
}
- yy1194:
+ yy302:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1196;
- goto yy999;
+ goto yy304;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1196;
+ goto yy107;
+ goto yy304;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1196;
- goto yy999;
+ goto yy304;
+ goto yy107;
}
}
- yy1195:
+ yy303:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1197;
+ goto yy305;
if (yych <= '/')
- goto yy999;
- goto yy1198;
+ goto yy107;
+ goto yy306;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1198;
+ goto yy107;
+ goto yy306;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1198;
- goto yy999;
+ goto yy306;
+ goto yy107;
}
}
- yy1196:
+ yy304:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1198;
- goto yy999;
+ goto yy306;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1198;
+ goto yy107;
+ goto yy306;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1198;
- goto yy999;
+ goto yy306;
+ goto yy107;
}
}
- yy1197:
+ yy305:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1199;
+ goto yy307;
if (yych <= '/')
- goto yy999;
- goto yy1200;
+ goto yy107;
+ goto yy308;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1200;
+ goto yy107;
+ goto yy308;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1200;
- goto yy999;
+ goto yy308;
+ goto yy107;
}
}
- yy1198:
+ yy306:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1200;
- goto yy999;
+ goto yy308;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1200;
+ goto yy107;
+ goto yy308;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1200;
- goto yy999;
+ goto yy308;
+ goto yy107;
}
}
- yy1199:
+ yy307:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1201;
+ goto yy309;
if (yych <= '/')
- goto yy999;
- goto yy1202;
+ goto yy107;
+ goto yy310;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1202;
+ goto yy107;
+ goto yy310;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1202;
- goto yy999;
+ goto yy310;
+ goto yy107;
}
}
- yy1200:
+ yy308:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1202;
- goto yy999;
+ goto yy310;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1202;
+ goto yy107;
+ goto yy310;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1202;
- goto yy999;
+ goto yy310;
+ goto yy107;
}
}
- yy1201:
+ yy309:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1203;
+ goto yy311;
if (yych <= '/')
- goto yy999;
- goto yy1204;
+ goto yy107;
+ goto yy312;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1204;
+ goto yy107;
+ goto yy312;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1204;
- goto yy999;
+ goto yy312;
+ goto yy107;
}
}
- yy1202:
+ yy310:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1204;
- goto yy999;
+ goto yy312;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1204;
+ goto yy107;
+ goto yy312;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1204;
- goto yy999;
+ goto yy312;
+ goto yy107;
}
}
- yy1203:
+ yy311:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1205;
+ goto yy313;
if (yych <= '/')
- goto yy999;
- goto yy1206;
+ goto yy107;
+ goto yy314;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1206;
+ goto yy107;
+ goto yy314;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1206;
- goto yy999;
+ goto yy314;
+ goto yy107;
}
}
- yy1204:
+ yy312:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1206;
- goto yy999;
+ goto yy314;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1206;
+ goto yy107;
+ goto yy314;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1206;
- goto yy999;
+ goto yy314;
+ goto yy107;
}
}
- yy1205:
+ yy313:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1207;
+ goto yy315;
if (yych <= '/')
- goto yy999;
- goto yy1208;
+ goto yy107;
+ goto yy316;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1208;
+ goto yy107;
+ goto yy316;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1208;
- goto yy999;
+ goto yy316;
+ goto yy107;
}
}
- yy1206:
+ yy314:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1208;
- goto yy999;
+ goto yy316;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1208;
+ goto yy107;
+ goto yy316;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1208;
- goto yy999;
+ goto yy316;
+ goto yy107;
}
}
- yy1207:
+ yy315:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1209;
+ goto yy317;
if (yych <= '/')
- goto yy999;
- goto yy1210;
+ goto yy107;
+ goto yy318;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1210;
+ goto yy107;
+ goto yy318;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1210;
- goto yy999;
+ goto yy318;
+ goto yy107;
}
}
- yy1208:
+ yy316:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1210;
- goto yy999;
+ goto yy318;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1210;
+ goto yy107;
+ goto yy318;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1210;
- goto yy999;
+ goto yy318;
+ goto yy107;
}
}
- yy1209:
+ yy317:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1211;
+ goto yy319;
if (yych <= '/')
- goto yy999;
- goto yy1212;
+ goto yy107;
+ goto yy320;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1212;
+ goto yy107;
+ goto yy320;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1212;
- goto yy999;
+ goto yy320;
+ goto yy107;
}
}
- yy1210:
+ yy318:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1212;
- goto yy999;
+ goto yy320;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1212;
+ goto yy107;
+ goto yy320;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1212;
- goto yy999;
+ goto yy320;
+ goto yy107;
}
}
- yy1211:
+ yy319:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1213;
+ goto yy321;
if (yych <= '/')
- goto yy999;
- goto yy1214;
+ goto yy107;
+ goto yy322;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1214;
+ goto yy107;
+ goto yy322;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1214;
- goto yy999;
+ goto yy322;
+ goto yy107;
}
}
- yy1212:
+ yy320:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1214;
- goto yy999;
+ goto yy322;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1214;
+ goto yy107;
+ goto yy322;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1214;
- goto yy999;
+ goto yy322;
+ goto yy107;
}
}
- yy1213:
+ yy321:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1215;
+ goto yy323;
if (yych <= '/')
- goto yy999;
- goto yy1216;
+ goto yy107;
+ goto yy324;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1216;
+ goto yy107;
+ goto yy324;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1216;
- goto yy999;
+ goto yy324;
+ goto yy107;
}
}
- yy1214:
+ yy322:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1216;
- goto yy999;
+ goto yy324;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1216;
+ goto yy107;
+ goto yy324;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1216;
- goto yy999;
+ goto yy324;
+ goto yy107;
}
}
- yy1215:
+ yy323:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1217;
+ goto yy325;
if (yych <= '/')
- goto yy999;
- goto yy1218;
+ goto yy107;
+ goto yy326;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1218;
+ goto yy107;
+ goto yy326;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1218;
- goto yy999;
+ goto yy326;
+ goto yy107;
}
}
- yy1216:
+ yy324:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1218;
- goto yy999;
+ goto yy326;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1218;
+ goto yy107;
+ goto yy326;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1218;
- goto yy999;
+ goto yy326;
+ goto yy107;
}
}
- yy1217:
+ yy325:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1219;
+ goto yy327;
if (yych <= '/')
- goto yy999;
- goto yy1220;
+ goto yy107;
+ goto yy328;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1220;
+ goto yy107;
+ goto yy328;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1220;
- goto yy999;
+ goto yy328;
+ goto yy107;
}
}
- yy1218:
+ yy326:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1220;
- goto yy999;
+ goto yy328;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1220;
+ goto yy107;
+ goto yy328;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1220;
- goto yy999;
+ goto yy328;
+ goto yy107;
}
}
- yy1219:
+ yy327:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1221;
+ goto yy329;
if (yych <= '/')
- goto yy999;
- goto yy1222;
+ goto yy107;
+ goto yy330;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1222;
+ goto yy107;
+ goto yy330;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1222;
- goto yy999;
+ goto yy330;
+ goto yy107;
}
}
- yy1220:
+ yy328:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1222;
- goto yy999;
+ goto yy330;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1222;
+ goto yy107;
+ goto yy330;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1222;
- goto yy999;
+ goto yy330;
+ goto yy107;
}
}
- yy1221:
+ yy329:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1223;
+ goto yy331;
if (yych <= '/')
- goto yy999;
- goto yy1224;
+ goto yy107;
+ goto yy332;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1224;
+ goto yy107;
+ goto yy332;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1224;
- goto yy999;
+ goto yy332;
+ goto yy107;
}
}
- yy1222:
+ yy330:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1224;
- goto yy999;
+ goto yy332;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1224;
+ goto yy107;
+ goto yy332;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1224;
- goto yy999;
+ goto yy332;
+ goto yy107;
}
}
- yy1223:
+ yy331:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1225;
+ goto yy333;
if (yych <= '/')
- goto yy999;
- goto yy1226;
+ goto yy107;
+ goto yy334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1226;
+ goto yy107;
+ goto yy334;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1226;
- goto yy999;
+ goto yy334;
+ goto yy107;
}
}
- yy1224:
+ yy332:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1226;
- goto yy999;
+ goto yy334;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1226;
+ goto yy107;
+ goto yy334;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1226;
- goto yy999;
+ goto yy334;
+ goto yy107;
}
}
- yy1225:
+ yy333:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1227;
+ goto yy335;
if (yych <= '/')
- goto yy999;
- goto yy1228;
+ goto yy107;
+ goto yy336;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1228;
+ goto yy107;
+ goto yy336;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1228;
- goto yy999;
+ goto yy336;
+ goto yy107;
}
}
- yy1226:
+ yy334:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1228;
- goto yy999;
+ goto yy336;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1228;
+ goto yy107;
+ goto yy336;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1228;
- goto yy999;
+ goto yy336;
+ goto yy107;
}
}
- yy1227:
+ yy335:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1229;
+ goto yy337;
if (yych <= '/')
- goto yy999;
- goto yy1230;
+ goto yy107;
+ goto yy338;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1230;
+ goto yy107;
+ goto yy338;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1230;
- goto yy999;
+ goto yy338;
+ goto yy107;
}
}
- yy1228:
+ yy336:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1230;
- goto yy999;
+ goto yy338;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1230;
+ goto yy107;
+ goto yy338;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1230;
- goto yy999;
+ goto yy338;
+ goto yy107;
}
}
- yy1229:
+ yy337:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1231;
+ goto yy339;
if (yych <= '/')
- goto yy999;
- goto yy1232;
+ goto yy107;
+ goto yy340;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1232;
+ goto yy107;
+ goto yy340;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1232;
- goto yy999;
+ goto yy340;
+ goto yy107;
}
}
- yy1230:
+ yy338:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1232;
- goto yy999;
+ goto yy340;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1232;
+ goto yy107;
+ goto yy340;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1232;
- goto yy999;
+ goto yy340;
+ goto yy107;
}
}
- yy1231:
+ yy339:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1233;
+ goto yy341;
if (yych <= '/')
- goto yy999;
- goto yy1234;
+ goto yy107;
+ goto yy342;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1234;
+ goto yy107;
+ goto yy342;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1234;
- goto yy999;
+ goto yy342;
+ goto yy107;
}
}
- yy1232:
+ yy340:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1234;
- goto yy999;
+ goto yy342;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1234;
+ goto yy107;
+ goto yy342;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1234;
- goto yy999;
+ goto yy342;
+ goto yy107;
}
}
- yy1233:
+ yy341:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1235;
+ goto yy343;
if (yych <= '/')
- goto yy999;
- goto yy1236;
+ goto yy107;
+ goto yy344;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1236;
+ goto yy107;
+ goto yy344;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1236;
- goto yy999;
+ goto yy344;
+ goto yy107;
}
}
- yy1234:
+ yy342:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1236;
- goto yy999;
+ goto yy344;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1236;
+ goto yy107;
+ goto yy344;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1236;
- goto yy999;
+ goto yy344;
+ goto yy107;
}
}
- yy1235:
+ yy343:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1237;
+ goto yy345;
if (yych <= '/')
- goto yy999;
- goto yy1238;
+ goto yy107;
+ goto yy346;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1238;
+ goto yy107;
+ goto yy346;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1238;
- goto yy999;
+ goto yy346;
+ goto yy107;
}
}
- yy1236:
+ yy344:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1238;
- goto yy999;
+ goto yy346;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1238;
+ goto yy107;
+ goto yy346;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1238;
- goto yy999;
+ goto yy346;
+ goto yy107;
}
}
- yy1237:
+ yy345:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1239;
+ goto yy347;
if (yych <= '/')
- goto yy999;
- goto yy1240;
+ goto yy107;
+ goto yy348;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1240;
+ goto yy107;
+ goto yy348;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1240;
- goto yy999;
+ goto yy348;
+ goto yy107;
}
}
- yy1238:
+ yy346:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1240;
- goto yy999;
+ goto yy348;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1240;
+ goto yy107;
+ goto yy348;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1240;
- goto yy999;
+ goto yy348;
+ goto yy107;
}
}
- yy1239:
+ yy347:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1241;
+ goto yy349;
if (yych <= '/')
- goto yy999;
- goto yy1242;
+ goto yy107;
+ goto yy350;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1242;
+ goto yy107;
+ goto yy350;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1242;
- goto yy999;
+ goto yy350;
+ goto yy107;
}
}
- yy1240:
+ yy348:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1242;
- goto yy999;
+ goto yy350;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1242;
+ goto yy107;
+ goto yy350;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1242;
- goto yy999;
+ goto yy350;
+ goto yy107;
}
}
- yy1241:
+ yy349:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1243;
+ goto yy351;
if (yych <= '/')
- goto yy999;
- goto yy1244;
+ goto yy107;
+ goto yy352;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1244;
+ goto yy107;
+ goto yy352;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1244;
- goto yy999;
+ goto yy352;
+ goto yy107;
}
}
- yy1242:
+ yy350:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1244;
- goto yy999;
+ goto yy352;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1244;
+ goto yy107;
+ goto yy352;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1244;
- goto yy999;
+ goto yy352;
+ goto yy107;
}
}
- yy1243:
+ yy351:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1245;
+ goto yy353;
if (yych <= '/')
- goto yy999;
- goto yy1246;
+ goto yy107;
+ goto yy354;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1246;
+ goto yy107;
+ goto yy354;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1246;
- goto yy999;
+ goto yy354;
+ goto yy107;
}
}
- yy1244:
+ yy352:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1246;
- goto yy999;
+ goto yy354;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1246;
+ goto yy107;
+ goto yy354;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1246;
- goto yy999;
+ goto yy354;
+ goto yy107;
}
}
- yy1245:
+ yy353:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1247;
+ goto yy355;
if (yych <= '/')
- goto yy999;
- goto yy1248;
+ goto yy107;
+ goto yy356;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1248;
+ goto yy107;
+ goto yy356;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1248;
- goto yy999;
+ goto yy356;
+ goto yy107;
}
}
- yy1246:
+ yy354:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1248;
- goto yy999;
+ goto yy356;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1248;
+ goto yy107;
+ goto yy356;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1248;
- goto yy999;
+ goto yy356;
+ goto yy107;
}
}
- yy1247:
+ yy355:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1249;
+ goto yy357;
if (yych <= '/')
- goto yy999;
- goto yy1250;
+ goto yy107;
+ goto yy358;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1250;
+ goto yy107;
+ goto yy358;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1250;
- goto yy999;
+ goto yy358;
+ goto yy107;
}
}
- yy1248:
+ yy356:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1250;
- goto yy999;
+ goto yy358;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1250;
+ goto yy107;
+ goto yy358;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1250;
- goto yy999;
+ goto yy358;
+ goto yy107;
}
}
- yy1249:
+ yy357:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1251;
+ goto yy359;
if (yych <= '/')
- goto yy999;
- goto yy1252;
+ goto yy107;
+ goto yy360;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1252;
+ goto yy107;
+ goto yy360;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1252;
- goto yy999;
+ goto yy360;
+ goto yy107;
}
}
- yy1250:
+ yy358:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1252;
- goto yy999;
+ goto yy360;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1252;
+ goto yy107;
+ goto yy360;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1252;
- goto yy999;
+ goto yy360;
+ goto yy107;
}
}
- yy1251:
+ yy359:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1253;
+ goto yy361;
if (yych <= '/')
- goto yy999;
- goto yy1254;
+ goto yy107;
+ goto yy362;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1254;
+ goto yy107;
+ goto yy362;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1254;
- goto yy999;
+ goto yy362;
+ goto yy107;
}
}
- yy1252:
+ yy360:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1254;
- goto yy999;
+ goto yy362;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1254;
+ goto yy107;
+ goto yy362;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1254;
- goto yy999;
+ goto yy362;
+ goto yy107;
}
}
- yy1253:
+ yy361:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1255;
+ goto yy363;
if (yych <= '/')
- goto yy999;
- goto yy1256;
+ goto yy107;
+ goto yy364;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1256;
+ goto yy107;
+ goto yy364;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1256;
- goto yy999;
+ goto yy364;
+ goto yy107;
}
}
- yy1254:
+ yy362:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1256;
- goto yy999;
+ goto yy364;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1256;
+ goto yy107;
+ goto yy364;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1256;
- goto yy999;
+ goto yy364;
+ goto yy107;
}
}
- yy1255:
+ yy363:
yych = *++p;
if (yych <= '9') {
if (yych == '-')
- goto yy1257;
+ goto yy365;
if (yych <= '/')
- goto yy999;
- goto yy1258;
+ goto yy107;
+ goto yy366;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy999;
- goto yy1258;
+ goto yy107;
+ goto yy366;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1258;
- goto yy999;
+ goto yy366;
+ goto yy107;
}
}
- yy1256:
+ yy364:
yych = *++p;
if (yych <= '=') {
if (yych <= '.') {
if (yych <= ',')
- goto yy999;
+ goto yy107;
if (yych >= '.')
- goto yy1012;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1258;
- goto yy999;
+ goto yy366;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1258;
+ goto yy107;
+ goto yy366;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1258;
- goto yy999;
+ goto yy366;
+ goto yy107;
}
}
- yy1257:
+ yy365:
yych = *++p;
if (yych <= '@') {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
} else {
if (yych <= 'Z')
- goto yy1138;
+ goto yy246;
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
}
- yy1258:
+ yy366:
++p;
if ((yych = *p) <= '=') {
if (yych <= '.') {
if (yych <= '-')
- goto yy999;
- goto yy1012;
+ goto yy107;
+ goto yy120;
} else {
if (yych <= '/')
- goto yy999;
+ goto yy107;
if (yych <= '9')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1013;
+ goto yy121;
if (yych <= '@')
- goto yy999;
- goto yy1138;
+ goto yy107;
+ goto yy246;
} else {
if (yych <= '`')
- goto yy999;
+ goto yy107;
if (yych <= 'z')
- goto yy1138;
- goto yy999;
+ goto yy246;
+ goto yy107;
}
}
}
@@ -15165,909 +8536,909 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
if (yych <= '.') {
if (yych <= '\n') {
if (yych <= '\t')
- goto yy1266;
+ goto yy374;
} else {
if (yych == '!')
- goto yy1264;
- goto yy1266;
+ goto yy372;
+ goto yy374;
}
} else {
if (yych <= '?') {
if (yych <= '/')
- goto yy1263;
+ goto yy371;
if (yych <= '>')
- goto yy1266;
- goto yy1265;
+ goto yy374;
+ goto yy373;
} else {
if (yych <= '@')
- goto yy1266;
+ goto yy374;
if (yych <= 'Z')
- goto yy1262;
- goto yy1266;
+ goto yy370;
+ goto yy374;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 'z')
- goto yy1262;
+ goto yy370;
if (yych <= 0x7F)
- goto yy1266;
+ goto yy374;
} else {
if (yych <= 0xDF)
- goto yy1267;
+ goto yy375;
if (yych <= 0xE0)
- goto yy1269;
- goto yy1270;
+ goto yy377;
+ goto yy378;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1274;
+ goto yy382;
if (yych <= 0xEF)
- goto yy1270;
- goto yy1271;
+ goto yy378;
+ goto yy379;
} else {
if (yych <= 0xF3)
- goto yy1272;
+ goto yy380;
if (yych <= 0xF4)
- goto yy1273;
+ goto yy381;
}
}
}
- yy1261 : { return 0; }
- yy1262:
+ yy369 : { return 0; }
+ yy370:
yych = *(marker = ++p);
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1261;
+ goto yy369;
if (yych <= '\r')
- goto yy1366;
+ goto yy474;
if (yych <= 0x1F)
- goto yy1261;
- goto yy1366;
+ goto yy369;
+ goto yy474;
} else {
if (yych == '-')
- goto yy1364;
+ goto yy472;
if (yych <= '.')
- goto yy1261;
- goto yy1368;
+ goto yy369;
+ goto yy476;
}
} else {
if (yych <= '@') {
if (yych <= '9')
- goto yy1364;
+ goto yy472;
if (yych == '>')
- goto yy1285;
- goto yy1261;
+ goto yy393;
+ goto yy369;
} else {
if (yych <= 'Z')
- goto yy1364;
+ goto yy472;
if (yych <= '`')
- goto yy1261;
+ goto yy369;
if (yych <= 'z')
- goto yy1364;
- goto yy1261;
+ goto yy472;
+ goto yy369;
}
}
- yy1263:
+ yy371:
yych = *(marker = ++p);
if (yych <= '@')
- goto yy1261;
+ goto yy369;
if (yych <= 'Z')
- goto yy1360;
+ goto yy468;
if (yych <= '`')
- goto yy1261;
+ goto yy369;
if (yych <= 'z')
- goto yy1360;
- goto yy1261;
- yy1264:
+ goto yy468;
+ goto yy369;
+ yy372:
yych = *(marker = ++p);
if (yybm[256 + yych] & 64) {
- goto yy1295;
+ goto yy403;
}
if (yych == '-')
- goto yy1297;
+ goto yy405;
if (yych <= '@')
- goto yy1261;
+ goto yy369;
if (yych <= '[')
- goto yy1294;
- goto yy1261;
- yy1265:
+ goto yy402;
+ goto yy369;
+ yy373:
yych = *(marker = ++p);
if (yych <= 0x00)
- goto yy1261;
+ goto yy369;
if (yych <= 0x7F)
- goto yy1276;
+ goto yy384;
if (yych <= 0xC1)
- goto yy1261;
+ goto yy369;
if (yych <= 0xF4)
- goto yy1276;
- goto yy1261;
- yy1266:
+ goto yy384;
+ goto yy369;
+ yy374:
yych = *++p;
- goto yy1261;
- yy1267:
+ goto yy369;
+ yy375:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1266;
- yy1268:
+ goto yy374;
+ yy376:
p = marker;
- goto yy1261;
- yy1269:
+ goto yy369;
+ yy377:
yych = *++p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1267;
- goto yy1268;
- yy1270:
+ goto yy375;
+ goto yy376;
+ yy378:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1267;
- goto yy1268;
- yy1271:
+ goto yy375;
+ goto yy376;
+ yy379:
yych = *++p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1270;
- goto yy1268;
- yy1272:
+ goto yy378;
+ goto yy376;
+ yy380:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1270;
- goto yy1268;
- yy1273:
+ goto yy378;
+ goto yy376;
+ yy381:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1270;
- goto yy1268;
- yy1274:
+ goto yy378;
+ goto yy376;
+ yy382:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1267;
- goto yy1268;
- yy1275:
+ goto yy375;
+ goto yy376;
+ yy383:
++p;
yych = *p;
- yy1276:
+ yy384:
if (yybm[256 + yych] & 32) {
- goto yy1275;
+ goto yy383;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '?')
- goto yy1284;
- goto yy1268;
+ goto yy392;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1277;
+ goto yy385;
if (yych <= 0xE0)
- goto yy1278;
- goto yy1279;
+ goto yy386;
+ goto yy387;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1283;
+ goto yy391;
if (yych <= 0xEF)
- goto yy1279;
- goto yy1280;
+ goto yy387;
+ goto yy388;
} else {
if (yych <= 0xF3)
- goto yy1281;
+ goto yy389;
if (yych <= 0xF4)
- goto yy1282;
- goto yy1268;
+ goto yy390;
+ goto yy376;
}
}
- yy1277:
+ yy385:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1275;
- goto yy1268;
- yy1278:
+ goto yy383;
+ goto yy376;
+ yy386:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1277;
- goto yy1268;
- yy1279:
+ goto yy385;
+ goto yy376;
+ yy387:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1277;
- goto yy1268;
- yy1280:
+ goto yy385;
+ goto yy376;
+ yy388:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1279;
- goto yy1268;
- yy1281:
+ goto yy387;
+ goto yy376;
+ yy389:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1279;
- goto yy1268;
- yy1282:
+ goto yy387;
+ goto yy376;
+ yy390:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1279;
- goto yy1268;
- yy1283:
+ goto yy387;
+ goto yy376;
+ yy391:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1277;
- goto yy1268;
- yy1284:
+ goto yy385;
+ goto yy376;
+ yy392:
++p;
yych = *p;
if (yych <= 0xE0) {
if (yych <= '>') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '=')
- goto yy1275;
+ goto yy383;
} else {
if (yych <= 0x7F)
- goto yy1275;
+ goto yy383;
if (yych <= 0xC1)
- goto yy1268;
+ goto yy376;
if (yych <= 0xDF)
- goto yy1287;
- goto yy1288;
+ goto yy395;
+ goto yy396;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1293;
- goto yy1289;
+ goto yy401;
+ goto yy397;
} else {
if (yych <= 0xF0)
- goto yy1290;
+ goto yy398;
if (yych <= 0xF3)
- goto yy1291;
+ goto yy399;
if (yych <= 0xF4)
- goto yy1292;
- goto yy1268;
+ goto yy400;
+ goto yy376;
}
}
- yy1285:
+ yy393:
++p;
{ return (bufsize_t)(p - start); }
- yy1287:
+ yy395:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1275;
- goto yy1268;
- yy1288:
+ goto yy383;
+ goto yy376;
+ yy396:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1287;
- goto yy1268;
- yy1289:
+ goto yy395;
+ goto yy376;
+ yy397:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1287;
- goto yy1268;
- yy1290:
+ goto yy395;
+ goto yy376;
+ yy398:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1289;
- goto yy1268;
- yy1291:
+ goto yy397;
+ goto yy376;
+ yy399:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1289;
- goto yy1268;
- yy1292:
+ goto yy397;
+ goto yy376;
+ yy400:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1289;
- goto yy1268;
- yy1293:
+ goto yy397;
+ goto yy376;
+ yy401:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1287;
- goto yy1268;
- yy1294:
+ goto yy395;
+ goto yy376;
+ yy402:
yych = *++p;
if (yych == 'C')
- goto yy1330;
+ goto yy438;
if (yych == 'c')
- goto yy1330;
- goto yy1268;
- yy1295:
+ goto yy438;
+ goto yy376;
+ yy403:
++p;
yych = *p;
if (yybm[0 + yych] & 1) {
- goto yy1319;
+ goto yy427;
}
if (yych <= '@')
- goto yy1268;
+ goto yy376;
if (yych <= 'Z')
- goto yy1295;
- goto yy1268;
- yy1297:
+ goto yy403;
+ goto yy376;
+ yy405:
yych = *++p;
if (yych != '-')
- goto yy1268;
+ goto yy376;
yych = *++p;
if (yych <= 0xE0) {
if (yych <= '=') {
if (yych != '-')
- goto yy1301;
+ goto yy409;
} else {
if (yych <= '>')
- goto yy1268;
+ goto yy376;
if (yych <= 0xC1)
- goto yy1301;
+ goto yy409;
if (yych <= 0xDF)
- goto yy1302;
- goto yy1303;
+ goto yy410;
+ goto yy411;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1308;
- goto yy1304;
+ goto yy416;
+ goto yy412;
} else {
if (yych <= 0xF0)
- goto yy1305;
+ goto yy413;
if (yych <= 0xF3)
- goto yy1306;
+ goto yy414;
if (yych <= 0xF4)
- goto yy1307;
- goto yy1301;
+ goto yy415;
+ goto yy409;
}
}
yych = *++p;
if (yych <= 0xE0) {
if (yych <= '=') {
if (yych == '-')
- goto yy1318;
- goto yy1301;
+ goto yy426;
+ goto yy409;
} else {
if (yych <= '>')
- goto yy1268;
+ goto yy376;
if (yych <= 0xC1)
- goto yy1301;
+ goto yy409;
if (yych <= 0xDF)
- goto yy1302;
- goto yy1303;
+ goto yy410;
+ goto yy411;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1308;
- goto yy1304;
+ goto yy416;
+ goto yy412;
} else {
if (yych <= 0xF0)
- goto yy1305;
+ goto yy413;
if (yych <= 0xF3)
- goto yy1306;
+ goto yy414;
if (yych <= 0xF4)
- goto yy1307;
- goto yy1301;
+ goto yy415;
+ goto yy409;
}
}
- yy1300:
+ yy408:
++p;
yych = *p;
- yy1301:
+ yy409:
if (yybm[256 + yych] & 128) {
- goto yy1300;
+ goto yy408;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '-')
- goto yy1309;
- goto yy1268;
+ goto yy417;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1310;
+ goto yy418;
if (yych <= 0xE0)
- goto yy1311;
- goto yy1312;
+ goto yy419;
+ goto yy420;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1316;
+ goto yy424;
if (yych <= 0xEF)
- goto yy1312;
- goto yy1313;
+ goto yy420;
+ goto yy421;
} else {
if (yych <= 0xF3)
- goto yy1314;
+ goto yy422;
if (yych <= 0xF4)
- goto yy1315;
- goto yy1268;
+ goto yy423;
+ goto yy376;
}
}
- yy1302:
+ yy410:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1300;
- goto yy1268;
- yy1303:
+ goto yy408;
+ goto yy376;
+ yy411:
yych = *++p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1302;
- goto yy1268;
- yy1304:
+ goto yy410;
+ goto yy376;
+ yy412:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1302;
- goto yy1268;
- yy1305:
+ goto yy410;
+ goto yy376;
+ yy413:
yych = *++p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1304;
- goto yy1268;
- yy1306:
+ goto yy412;
+ goto yy376;
+ yy414:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1304;
- goto yy1268;
- yy1307:
+ goto yy412;
+ goto yy376;
+ yy415:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1304;
- goto yy1268;
- yy1308:
+ goto yy412;
+ goto yy376;
+ yy416:
yych = *++p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1302;
- goto yy1268;
- yy1309:
+ goto yy410;
+ goto yy376;
+ yy417:
++p;
yych = *p;
if (yybm[256 + yych] & 128) {
- goto yy1300;
+ goto yy408;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '-')
- goto yy1317;
- goto yy1268;
+ goto yy425;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1310;
+ goto yy418;
if (yych <= 0xE0)
- goto yy1311;
- goto yy1312;
+ goto yy419;
+ goto yy420;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1316;
+ goto yy424;
if (yych <= 0xEF)
- goto yy1312;
- goto yy1313;
+ goto yy420;
+ goto yy421;
} else {
if (yych <= 0xF3)
- goto yy1314;
+ goto yy422;
if (yych <= 0xF4)
- goto yy1315;
- goto yy1268;
+ goto yy423;
+ goto yy376;
}
}
- yy1310:
+ yy418:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1300;
- goto yy1268;
- yy1311:
+ goto yy408;
+ goto yy376;
+ yy419:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1310;
- goto yy1268;
- yy1312:
+ goto yy418;
+ goto yy376;
+ yy420:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1310;
- goto yy1268;
- yy1313:
+ goto yy418;
+ goto yy376;
+ yy421:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1312;
- goto yy1268;
- yy1314:
+ goto yy420;
+ goto yy376;
+ yy422:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1312;
- goto yy1268;
- yy1315:
+ goto yy420;
+ goto yy376;
+ yy423:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1312;
- goto yy1268;
- yy1316:
+ goto yy420;
+ goto yy376;
+ yy424:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1310;
- goto yy1268;
- yy1317:
+ goto yy418;
+ goto yy376;
+ yy425:
yych = *++p;
if (yych == '>')
- goto yy1285;
- goto yy1268;
- yy1318:
+ goto yy393;
+ goto yy376;
+ yy426:
yych = *++p;
if (yych == '>')
- goto yy1285;
- goto yy1268;
- yy1319:
+ goto yy393;
+ goto yy376;
+ yy427:
++p;
yych = *p;
if (yybm[0 + yych] & 1) {
- goto yy1319;
+ goto yy427;
}
if (yych <= 0xE0) {
if (yych <= '>') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych >= '>')
- goto yy1285;
+ goto yy393;
} else {
if (yych <= 0x7F)
- goto yy1321;
+ goto yy429;
if (yych <= 0xC1)
- goto yy1268;
+ goto yy376;
if (yych <= 0xDF)
- goto yy1323;
- goto yy1324;
+ goto yy431;
+ goto yy432;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1329;
- goto yy1325;
+ goto yy437;
+ goto yy433;
} else {
if (yych <= 0xF0)
- goto yy1326;
+ goto yy434;
if (yych <= 0xF3)
- goto yy1327;
+ goto yy435;
if (yych <= 0xF4)
- goto yy1328;
- goto yy1268;
+ goto yy436;
+ goto yy376;
}
}
- yy1321:
+ yy429:
++p;
yych = *p;
if (yybm[0 + yych] & 2) {
- goto yy1321;
+ goto yy429;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1323;
+ goto yy431;
if (yych <= 0xE0)
- goto yy1324;
- goto yy1325;
+ goto yy432;
+ goto yy433;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1329;
+ goto yy437;
if (yych <= 0xEF)
- goto yy1325;
- goto yy1326;
+ goto yy433;
+ goto yy434;
} else {
if (yych <= 0xF3)
- goto yy1327;
+ goto yy435;
if (yych <= 0xF4)
- goto yy1328;
- goto yy1268;
+ goto yy436;
+ goto yy376;
}
}
- yy1323:
+ yy431:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1321;
- goto yy1268;
- yy1324:
+ goto yy429;
+ goto yy376;
+ yy432:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1323;
- goto yy1268;
- yy1325:
+ goto yy431;
+ goto yy376;
+ yy433:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1323;
- goto yy1268;
- yy1326:
+ goto yy431;
+ goto yy376;
+ yy434:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1325;
- goto yy1268;
- yy1327:
+ goto yy433;
+ goto yy376;
+ yy435:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1325;
- goto yy1268;
- yy1328:
+ goto yy433;
+ goto yy376;
+ yy436:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1325;
- goto yy1268;
- yy1329:
+ goto yy433;
+ goto yy376;
+ yy437:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1323;
- goto yy1268;
- yy1330:
+ goto yy431;
+ goto yy376;
+ yy438:
yych = *++p;
if (yych == 'D')
- goto yy1331;
+ goto yy439;
if (yych != 'd')
- goto yy1268;
- yy1331:
+ goto yy376;
+ yy439:
yych = *++p;
if (yych == 'A')
- goto yy1332;
+ goto yy440;
if (yych != 'a')
- goto yy1268;
- yy1332:
+ goto yy376;
+ yy440:
yych = *++p;
if (yych == 'T')
- goto yy1333;
+ goto yy441;
if (yych != 't')
- goto yy1268;
- yy1333:
+ goto yy376;
+ yy441:
yych = *++p;
if (yych == 'A')
- goto yy1334;
+ goto yy442;
if (yych != 'a')
- goto yy1268;
- yy1334:
+ goto yy376;
+ yy442:
yych = *++p;
if (yych != '[')
- goto yy1268;
- yy1335:
+ goto yy376;
+ yy443:
++p;
yych = *p;
if (yybm[0 + yych] & 4) {
- goto yy1335;
+ goto yy443;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= ']')
- goto yy1344;
- goto yy1268;
+ goto yy452;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1337;
+ goto yy445;
if (yych <= 0xE0)
- goto yy1338;
- goto yy1339;
+ goto yy446;
+ goto yy447;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1343;
+ goto yy451;
if (yych <= 0xEF)
- goto yy1339;
- goto yy1340;
+ goto yy447;
+ goto yy448;
} else {
if (yych <= 0xF3)
- goto yy1341;
+ goto yy449;
if (yych <= 0xF4)
- goto yy1342;
- goto yy1268;
+ goto yy450;
+ goto yy376;
}
}
- yy1337:
+ yy445:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1335;
- goto yy1268;
- yy1338:
+ goto yy443;
+ goto yy376;
+ yy446:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1337;
- goto yy1268;
- yy1339:
+ goto yy445;
+ goto yy376;
+ yy447:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1337;
- goto yy1268;
- yy1340:
+ goto yy445;
+ goto yy376;
+ yy448:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1339;
- goto yy1268;
- yy1341:
+ goto yy447;
+ goto yy376;
+ yy449:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1339;
- goto yy1268;
- yy1342:
+ goto yy447;
+ goto yy376;
+ yy450:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1339;
- goto yy1268;
- yy1343:
+ goto yy447;
+ goto yy376;
+ yy451:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1337;
- goto yy1268;
- yy1344:
+ goto yy445;
+ goto yy376;
+ yy452:
++p;
yych = *p;
if (yybm[0 + yych] & 4) {
- goto yy1335;
+ goto yy443;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych >= '^')
- goto yy1268;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1346;
+ goto yy454;
if (yych <= 0xE0)
- goto yy1347;
- goto yy1348;
+ goto yy455;
+ goto yy456;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1352;
+ goto yy460;
if (yych <= 0xEF)
- goto yy1348;
- goto yy1349;
+ goto yy456;
+ goto yy457;
} else {
if (yych <= 0xF3)
- goto yy1350;
+ goto yy458;
if (yych <= 0xF4)
- goto yy1351;
- goto yy1268;
+ goto yy459;
+ goto yy376;
}
}
++p;
@@ -16075,812 +9446,812 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
if (yych <= 0xE0) {
if (yych <= '>') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '=')
- goto yy1335;
- goto yy1285;
+ goto yy443;
+ goto yy393;
} else {
if (yych <= 0x7F)
- goto yy1335;
+ goto yy443;
if (yych <= 0xC1)
- goto yy1268;
+ goto yy376;
if (yych <= 0xDF)
- goto yy1353;
- goto yy1354;
+ goto yy461;
+ goto yy462;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1359;
- goto yy1355;
+ goto yy467;
+ goto yy463;
} else {
if (yych <= 0xF0)
- goto yy1356;
+ goto yy464;
if (yych <= 0xF3)
- goto yy1357;
+ goto yy465;
if (yych <= 0xF4)
- goto yy1358;
- goto yy1268;
+ goto yy466;
+ goto yy376;
}
}
- yy1346:
+ yy454:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1335;
- goto yy1268;
- yy1347:
+ goto yy443;
+ goto yy376;
+ yy455:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1346;
- goto yy1268;
- yy1348:
+ goto yy454;
+ goto yy376;
+ yy456:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1346;
- goto yy1268;
- yy1349:
+ goto yy454;
+ goto yy376;
+ yy457:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1348;
- goto yy1268;
- yy1350:
+ goto yy456;
+ goto yy376;
+ yy458:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1348;
- goto yy1268;
- yy1351:
+ goto yy456;
+ goto yy376;
+ yy459:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1348;
- goto yy1268;
- yy1352:
+ goto yy456;
+ goto yy376;
+ yy460:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1346;
- goto yy1268;
- yy1353:
+ goto yy454;
+ goto yy376;
+ yy461:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1335;
- goto yy1268;
- yy1354:
+ goto yy443;
+ goto yy376;
+ yy462:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1353;
- goto yy1268;
- yy1355:
+ goto yy461;
+ goto yy376;
+ yy463:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1353;
- goto yy1268;
- yy1356:
+ goto yy461;
+ goto yy376;
+ yy464:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1355;
- goto yy1268;
- yy1357:
+ goto yy463;
+ goto yy376;
+ yy465:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1355;
- goto yy1268;
- yy1358:
+ goto yy463;
+ goto yy376;
+ yy466:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1355;
- goto yy1268;
- yy1359:
+ goto yy463;
+ goto yy376;
+ yy467:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1353;
- goto yy1268;
- yy1360:
+ goto yy461;
+ goto yy376;
+ yy468:
++p;
yych = *p;
if (yybm[0 + yych] & 8) {
- goto yy1360;
+ goto yy468;
}
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych >= 0x0E)
- goto yy1268;
+ goto yy376;
} else {
if (yych <= ' ')
- goto yy1362;
+ goto yy470;
if (yych == '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
}
- yy1362:
+ yy470:
++p;
yych = *p;
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych <= '\r')
- goto yy1362;
- goto yy1268;
+ goto yy470;
+ goto yy376;
} else {
if (yych <= ' ')
- goto yy1362;
+ goto yy470;
if (yych == '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
}
- yy1364:
+ yy472:
++p;
yych = *p;
if (yych <= '/') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych <= '\r')
- goto yy1366;
+ goto yy474;
if (yych <= 0x1F)
- goto yy1268;
+ goto yy376;
} else {
if (yych == '-')
- goto yy1364;
+ goto yy472;
if (yych <= '.')
- goto yy1268;
- goto yy1368;
+ goto yy376;
+ goto yy476;
}
} else {
if (yych <= '@') {
if (yych <= '9')
- goto yy1364;
+ goto yy472;
if (yych == '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
} else {
if (yych <= 'Z')
- goto yy1364;
+ goto yy472;
if (yych <= '`')
- goto yy1268;
+ goto yy376;
if (yych <= 'z')
- goto yy1364;
- goto yy1268;
+ goto yy472;
+ goto yy376;
}
}
- yy1366:
+ yy474:
++p;
yych = *p;
if (yych <= ':') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych <= '\r')
- goto yy1366;
+ goto yy474;
if (yych <= 0x1F)
- goto yy1268;
- goto yy1366;
+ goto yy376;
+ goto yy474;
} else {
if (yych == '/')
- goto yy1368;
+ goto yy476;
if (yych <= '9')
- goto yy1268;
- goto yy1369;
+ goto yy376;
+ goto yy477;
}
} else {
if (yych <= 'Z') {
if (yych == '>')
- goto yy1285;
+ goto yy393;
if (yych <= '@')
- goto yy1268;
- goto yy1369;
+ goto yy376;
+ goto yy477;
} else {
if (yych <= '_') {
if (yych <= '^')
- goto yy1268;
- goto yy1369;
+ goto yy376;
+ goto yy477;
} else {
if (yych <= '`')
- goto yy1268;
+ goto yy376;
if (yych <= 'z')
- goto yy1369;
- goto yy1268;
+ goto yy477;
+ goto yy376;
}
}
}
- yy1368:
+ yy476:
yych = *++p;
if (yych == '>')
- goto yy1285;
- goto yy1268;
- yy1369:
+ goto yy393;
+ goto yy376;
+ yy477:
++p;
yych = *p;
if (yybm[0 + yych] & 16) {
- goto yy1369;
+ goto yy477;
}
if (yych <= ',') {
if (yych <= '\r') {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
} else {
if (yych != ' ')
- goto yy1268;
+ goto yy376;
}
} else {
if (yych <= '<') {
if (yych <= '/')
- goto yy1368;
- goto yy1268;
+ goto yy476;
+ goto yy376;
} else {
if (yych <= '=')
- goto yy1373;
+ goto yy481;
if (yych <= '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
}
}
- yy1371:
+ yy479:
++p;
yych = *p;
if (yych <= '<') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych <= '\r')
- goto yy1371;
+ goto yy479;
if (yych <= 0x1F)
- goto yy1268;
- goto yy1371;
+ goto yy376;
+ goto yy479;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1268;
- goto yy1368;
+ goto yy376;
+ goto yy476;
} else {
if (yych == ':')
- goto yy1369;
- goto yy1268;
+ goto yy477;
+ goto yy376;
}
}
} else {
if (yych <= 'Z') {
if (yych <= '=')
- goto yy1373;
+ goto yy481;
if (yych <= '>')
- goto yy1285;
+ goto yy393;
if (yych <= '@')
- goto yy1268;
- goto yy1369;
+ goto yy376;
+ goto yy477;
} else {
if (yych <= '_') {
if (yych <= '^')
- goto yy1268;
- goto yy1369;
+ goto yy376;
+ goto yy477;
} else {
if (yych <= '`')
- goto yy1268;
+ goto yy376;
if (yych <= 'z')
- goto yy1369;
- goto yy1268;
+ goto yy477;
+ goto yy376;
}
}
}
- yy1373:
+ yy481:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1375;
+ goto yy483;
}
if (yych <= 0xE0) {
if (yych <= '"') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych >= '!')
- goto yy1386;
+ goto yy494;
} else {
if (yych <= '\'')
- goto yy1384;
+ goto yy492;
if (yych <= 0xC1)
- goto yy1268;
+ goto yy376;
if (yych <= 0xDF)
- goto yy1377;
- goto yy1378;
+ goto yy485;
+ goto yy486;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1375;
+ goto yy483;
}
if (yych <= 0xDF) {
if (yych <= '\'') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= ' ')
- goto yy1409;
+ goto yy517;
if (yych <= '"')
- goto yy1386;
- goto yy1384;
+ goto yy494;
+ goto yy492;
} else {
if (yych == '>')
- goto yy1285;
+ goto yy393;
if (yych <= 0xC1)
- goto yy1268;
- goto yy1377;
+ goto yy376;
+ goto yy485;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1378;
+ goto yy486;
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
- yy1375:
+ yy483:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1375;
+ goto yy483;
}
if (yych <= 0xE0) {
if (yych <= '=') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= ' ')
- goto yy1403;
- goto yy1268;
+ goto yy511;
+ goto yy376;
} else {
if (yych <= '>')
- goto yy1285;
+ goto yy393;
if (yych <= 0xC1)
- goto yy1268;
+ goto yy376;
if (yych >= 0xE0)
- goto yy1378;
+ goto yy486;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
- yy1377:
+ yy485:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1375;
- goto yy1268;
- yy1378:
+ goto yy483;
+ goto yy376;
+ yy486:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1377;
- goto yy1268;
- yy1379:
+ goto yy485;
+ goto yy376;
+ yy487:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1377;
- goto yy1268;
- yy1380:
+ goto yy485;
+ goto yy376;
+ yy488:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1379;
- goto yy1268;
- yy1381:
+ goto yy487;
+ goto yy376;
+ yy489:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1379;
- goto yy1268;
- yy1382:
+ goto yy487;
+ goto yy376;
+ yy490:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1379;
- goto yy1268;
- yy1383:
+ goto yy487;
+ goto yy376;
+ yy491:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1377;
- goto yy1268;
- yy1384:
+ goto yy485;
+ goto yy376;
+ yy492:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1384;
+ goto yy492;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '\'')
- goto yy1395;
- goto yy1268;
+ goto yy503;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1396;
+ goto yy504;
if (yych <= 0xE0)
- goto yy1397;
- goto yy1398;
+ goto yy505;
+ goto yy506;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1402;
+ goto yy510;
if (yych <= 0xEF)
- goto yy1398;
- goto yy1399;
+ goto yy506;
+ goto yy507;
} else {
if (yych <= 0xF3)
- goto yy1400;
+ goto yy508;
if (yych <= 0xF4)
- goto yy1401;
- goto yy1268;
+ goto yy509;
+ goto yy376;
}
}
- yy1386:
+ yy494:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1386;
+ goto yy494;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= '"')
- goto yy1395;
- goto yy1268;
+ goto yy503;
+ goto yy376;
} else {
if (yych <= 0xDF)
- goto yy1388;
+ goto yy496;
if (yych <= 0xE0)
- goto yy1389;
- goto yy1390;
+ goto yy497;
+ goto yy498;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1394;
+ goto yy502;
if (yych <= 0xEF)
- goto yy1390;
- goto yy1391;
+ goto yy498;
+ goto yy499;
} else {
if (yych <= 0xF3)
- goto yy1392;
+ goto yy500;
if (yych <= 0xF4)
- goto yy1393;
- goto yy1268;
+ goto yy501;
+ goto yy376;
}
}
- yy1388:
+ yy496:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1386;
- goto yy1268;
- yy1389:
+ goto yy494;
+ goto yy376;
+ yy497:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1388;
- goto yy1268;
- yy1390:
+ goto yy496;
+ goto yy376;
+ yy498:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1388;
- goto yy1268;
- yy1391:
+ goto yy496;
+ goto yy376;
+ yy499:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1390;
- goto yy1268;
- yy1392:
+ goto yy498;
+ goto yy376;
+ yy500:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1390;
- goto yy1268;
- yy1393:
+ goto yy498;
+ goto yy376;
+ yy501:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1390;
- goto yy1268;
- yy1394:
+ goto yy498;
+ goto yy376;
+ yy502:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1388;
- goto yy1268;
- yy1395:
+ goto yy496;
+ goto yy376;
+ yy503:
++p;
yych = *p;
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1268;
+ goto yy376;
if (yych <= '\r')
- goto yy1366;
+ goto yy474;
if (yych <= 0x1F)
- goto yy1268;
- goto yy1366;
+ goto yy376;
+ goto yy474;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1268;
- goto yy1368;
+ goto yy376;
+ goto yy476;
} else {
if (yych == '>')
- goto yy1285;
- goto yy1268;
+ goto yy393;
+ goto yy376;
}
}
- yy1396:
+ yy504:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1384;
- goto yy1268;
- yy1397:
+ goto yy492;
+ goto yy376;
+ yy505:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1396;
- goto yy1268;
- yy1398:
+ goto yy504;
+ goto yy376;
+ yy506:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1396;
- goto yy1268;
- yy1399:
+ goto yy504;
+ goto yy376;
+ yy507:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1398;
- goto yy1268;
- yy1400:
+ goto yy506;
+ goto yy376;
+ yy508:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0xBF)
- goto yy1398;
- goto yy1268;
- yy1401:
+ goto yy506;
+ goto yy376;
+ yy509:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x8F)
- goto yy1398;
- goto yy1268;
- yy1402:
+ goto yy506;
+ goto yy376;
+ yy510:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1268;
+ goto yy376;
if (yych <= 0x9F)
- goto yy1396;
- goto yy1268;
- yy1403:
+ goto yy504;
+ goto yy376;
+ yy511:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '"') {
if (yych <= '\r') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= 0x08)
- goto yy1375;
- goto yy1403;
+ goto yy483;
+ goto yy511;
} else {
if (yych == ' ')
- goto yy1403;
+ goto yy511;
if (yych <= '!')
- goto yy1375;
- goto yy1268;
+ goto yy483;
+ goto yy376;
}
} else {
if (yych <= ':') {
if (yych == '\'')
- goto yy1268;
+ goto yy376;
if (yych <= '9')
- goto yy1375;
+ goto yy483;
} else {
if (yych <= ';')
- goto yy1375;
+ goto yy483;
if (yych <= '=')
- goto yy1268;
+ goto yy376;
if (yych <= '>')
- goto yy1285;
- goto yy1375;
+ goto yy393;
+ goto yy483;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1405;
+ goto yy513;
if (yych <= '^')
- goto yy1375;
+ goto yy483;
if (yych >= '`')
- goto yy1268;
+ goto yy376;
} else {
if (yych <= 'z')
- goto yy1405;
+ goto yy513;
if (yych <= 0x7F)
- goto yy1375;
+ goto yy483;
if (yych <= 0xC1)
- goto yy1268;
- goto yy1377;
+ goto yy376;
+ goto yy485;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1378;
+ goto yy486;
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
}
- yy1405:
+ yy513:
++p;
yych = *p;
if (yych <= '>') {
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= 0x08)
- goto yy1375;
+ goto yy483;
if (yych >= 0x0E)
- goto yy1375;
+ goto yy483;
} else {
if (yych <= ' ')
- goto yy1407;
+ goto yy515;
if (yych == '"')
- goto yy1268;
- goto yy1375;
+ goto yy376;
+ goto yy483;
}
} else {
if (yych <= '/') {
if (yych <= '\'')
- goto yy1268;
+ goto yy376;
if (yych <= ',')
- goto yy1375;
+ goto yy483;
if (yych <= '.')
- goto yy1405;
- goto yy1375;
+ goto yy513;
+ goto yy483;
} else {
if (yych <= ';') {
if (yych <= ':')
- goto yy1405;
- goto yy1375;
+ goto yy513;
+ goto yy483;
} else {
if (yych <= '<')
- goto yy1268;
+ goto yy376;
if (yych <= '=')
- goto yy1373;
- goto yy1285;
+ goto yy481;
+ goto yy393;
}
}
}
@@ -16888,188 +10259,188 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '_') {
if (yych <= '@')
- goto yy1375;
+ goto yy483;
if (yych <= 'Z')
- goto yy1405;
+ goto yy513;
if (yych <= '^')
- goto yy1375;
- goto yy1405;
+ goto yy483;
+ goto yy513;
} else {
if (yych <= '`')
- goto yy1268;
+ goto yy376;
if (yych <= 'z')
- goto yy1405;
+ goto yy513;
if (yych <= 0x7F)
- goto yy1375;
- goto yy1268;
+ goto yy483;
+ goto yy376;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1377;
+ goto yy485;
if (yych <= 0xE0)
- goto yy1378;
+ goto yy486;
if (yych <= 0xEC)
- goto yy1379;
- goto yy1383;
+ goto yy487;
+ goto yy491;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1379;
- goto yy1380;
+ goto yy487;
+ goto yy488;
} else {
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
}
}
- yy1407:
+ yy515:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= 0x08)
- goto yy1375;
+ goto yy483;
if (yych <= '\r')
- goto yy1407;
- goto yy1375;
+ goto yy515;
+ goto yy483;
} else {
if (yych <= ' ')
- goto yy1407;
+ goto yy515;
if (yych == '"')
- goto yy1268;
- goto yy1375;
+ goto yy376;
+ goto yy483;
}
} else {
if (yych <= ';') {
if (yych <= '\'')
- goto yy1268;
+ goto yy376;
if (yych == ':')
- goto yy1405;
- goto yy1375;
+ goto yy513;
+ goto yy483;
} else {
if (yych <= '<')
- goto yy1268;
+ goto yy376;
if (yych <= '=')
- goto yy1373;
+ goto yy481;
if (yych <= '>')
- goto yy1285;
- goto yy1375;
+ goto yy393;
+ goto yy483;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1405;
+ goto yy513;
if (yych <= '^')
- goto yy1375;
+ goto yy483;
if (yych <= '_')
- goto yy1405;
- goto yy1268;
+ goto yy513;
+ goto yy376;
} else {
if (yych <= 'z')
- goto yy1405;
+ goto yy513;
if (yych <= 0x7F)
- goto yy1375;
+ goto yy483;
if (yych <= 0xC1)
- goto yy1268;
- goto yy1377;
+ goto yy376;
+ goto yy485;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1378;
+ goto yy486;
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
}
- yy1409:
+ yy517:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '"') {
if (yych <= '\r') {
if (yych <= 0x00)
- goto yy1268;
+ goto yy376;
if (yych <= 0x08)
- goto yy1375;
- goto yy1409;
+ goto yy483;
+ goto yy517;
} else {
if (yych == ' ')
- goto yy1409;
+ goto yy517;
if (yych <= '!')
- goto yy1375;
- goto yy1386;
+ goto yy483;
+ goto yy494;
}
} else {
if (yych <= ':') {
if (yych == '\'')
- goto yy1384;
+ goto yy492;
if (yych <= '9')
- goto yy1375;
- goto yy1405;
+ goto yy483;
+ goto yy513;
} else {
if (yych <= ';')
- goto yy1375;
+ goto yy483;
if (yych <= '=')
- goto yy1268;
+ goto yy376;
if (yych <= '>')
- goto yy1285;
- goto yy1375;
+ goto yy393;
+ goto yy483;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1405;
+ goto yy513;
if (yych <= '^')
- goto yy1375;
+ goto yy483;
if (yych <= '_')
- goto yy1405;
- goto yy1268;
+ goto yy513;
+ goto yy376;
} else {
if (yych <= 'z')
- goto yy1405;
+ goto yy513;
if (yych <= 0x7F)
- goto yy1375;
+ goto yy483;
if (yych <= 0xC1)
- goto yy1268;
- goto yy1377;
+ goto yy376;
+ goto yy485;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1378;
+ goto yy486;
if (yych == 0xED)
- goto yy1383;
- goto yy1379;
+ goto yy491;
+ goto yy487;
} else {
if (yych <= 0xF0)
- goto yy1380;
+ goto yy488;
if (yych <= 0xF3)
- goto yy1381;
+ goto yy489;
if (yych <= 0xF4)
- goto yy1382;
- goto yy1268;
+ goto yy490;
+ goto yy376;
}
}
}
@@ -17088,313 +10459,313 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= ';') {
if (yych != '\n')
- goto yy1415;
+ goto yy523;
} else {
if (yych <= '<')
- goto yy1414;
+ goto yy522;
if (yych <= 0x7F)
- goto yy1415;
+ goto yy523;
if (yych >= 0xC2)
- goto yy1416;
+ goto yy524;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1418;
+ goto yy526;
if (yych == 0xED)
- goto yy1423;
- goto yy1419;
+ goto yy531;
+ goto yy527;
} else {
if (yych <= 0xF0)
- goto yy1420;
+ goto yy528;
if (yych <= 0xF3)
- goto yy1421;
+ goto yy529;
if (yych <= 0xF4)
- goto yy1422;
+ goto yy530;
}
}
- yy1413 : { return 0; }
- yy1414:
+ yy521 : { return 0; }
+ yy522:
yych = *(marker = ++p);
switch (yych) {
case '!':
- goto yy1440;
+ goto yy548;
case '/':
- goto yy1424;
+ goto yy532;
case '?':
- goto yy1441;
+ goto yy549;
case 'A':
case 'a':
- goto yy1426;
+ goto yy534;
case 'B':
case 'b':
- goto yy1427;
+ goto yy535;
case 'C':
case 'c':
- goto yy1428;
+ goto yy536;
case 'D':
case 'd':
- goto yy1429;
+ goto yy537;
case 'F':
case 'f':
- goto yy1430;
+ goto yy538;
case 'H':
case 'h':
- goto yy1431;
+ goto yy539;
case 'I':
case 'i':
- goto yy1432;
+ goto yy540;
case 'L':
case 'l':
- goto yy1433;
+ goto yy541;
case 'M':
case 'm':
- goto yy1434;
+ goto yy542;
case 'N':
case 'n':
- goto yy1435;
+ goto yy543;
case 'O':
case 'o':
- goto yy1436;
+ goto yy544;
case 'P':
case 'p':
- goto yy1425;
+ goto yy533;
case 'S':
case 's':
- goto yy1437;
+ goto yy545;
case 'T':
case 't':
- goto yy1438;
+ goto yy546;
case 'U':
case 'u':
- goto yy1439;
+ goto yy547;
default:
- goto yy1413;
+ goto yy521;
}
- yy1415:
+ yy523:
yych = *++p;
- goto yy1413;
- yy1416:
+ goto yy521;
+ yy524:
yych = *++p;
if (yych <= 0x7F)
- goto yy1417;
+ goto yy525;
if (yych <= 0xBF)
- goto yy1415;
- yy1417:
+ goto yy523;
+ yy525:
p = marker;
- goto yy1413;
- yy1418:
+ goto yy521;
+ yy526:
yych = *++p;
if (yych <= 0x9F)
- goto yy1417;
+ goto yy525;
if (yych <= 0xBF)
- goto yy1416;
- goto yy1417;
- yy1419:
+ goto yy524;
+ goto yy525;
+ yy527:
yych = *++p;
if (yych <= 0x7F)
- goto yy1417;
+ goto yy525;
if (yych <= 0xBF)
- goto yy1416;
- goto yy1417;
- yy1420:
+ goto yy524;
+ goto yy525;
+ yy528:
yych = *++p;
if (yych <= 0x8F)
- goto yy1417;
+ goto yy525;
if (yych <= 0xBF)
- goto yy1419;
- goto yy1417;
- yy1421:
+ goto yy527;
+ goto yy525;
+ yy529:
yych = *++p;
if (yych <= 0x7F)
- goto yy1417;
+ goto yy525;
if (yych <= 0xBF)
- goto yy1419;
- goto yy1417;
- yy1422:
+ goto yy527;
+ goto yy525;
+ yy530:
yych = *++p;
if (yych <= 0x7F)
- goto yy1417;
+ goto yy525;
if (yych <= 0x8F)
- goto yy1419;
- goto yy1417;
- yy1423:
+ goto yy527;
+ goto yy525;
+ yy531:
yych = *++p;
if (yych <= 0x7F)
- goto yy1417;
+ goto yy525;
if (yych <= 0x9F)
- goto yy1416;
- goto yy1417;
- yy1424:
+ goto yy524;
+ goto yy525;
+ yy532:
yych = *++p;
switch (yych) {
case 'A':
case 'a':
- goto yy1426;
+ goto yy534;
case 'B':
case 'b':
- goto yy1427;
+ goto yy535;
case 'C':
case 'c':
- goto yy1428;
+ goto yy536;
case 'D':
case 'd':
- goto yy1429;
+ goto yy537;
case 'F':
case 'f':
- goto yy1430;
+ goto yy538;
case 'H':
case 'h':
- goto yy1431;
+ goto yy539;
case 'I':
case 'i':
- goto yy1432;
+ goto yy540;
case 'L':
case 'l':
- goto yy1433;
+ goto yy541;
case 'M':
case 'm':
- goto yy1434;
+ goto yy542;
case 'N':
case 'n':
- goto yy1435;
+ goto yy543;
case 'O':
case 'o':
- goto yy1436;
+ goto yy544;
case 'P':
case 'p':
- goto yy1625;
+ goto yy733;
case 'S':
case 's':
- goto yy1626;
+ goto yy734;
case 'T':
case 't':
- goto yy1438;
+ goto yy546;
case 'U':
case 'u':
- goto yy1439;
+ goto yy547;
default:
- goto yy1417;
+ goto yy525;
}
- yy1425:
+ yy533:
yych = *++p;
if (yych <= '>') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
+ goto yy565;
if (yych <= 0x1F)
- goto yy1417;
- goto yy1457;
+ goto yy525;
+ goto yy565;
} else {
if (yych == '/')
- goto yy1459;
+ goto yy567;
if (yych <= '=')
- goto yy1417;
- goto yy1457;
+ goto yy525;
+ goto yy565;
}
} else {
if (yych <= 'R') {
if (yych == 'A')
- goto yy1622;
+ goto yy730;
if (yych <= 'Q')
- goto yy1417;
- goto yy1621;
+ goto yy525;
+ goto yy729;
} else {
if (yych <= 'a') {
if (yych <= '`')
- goto yy1417;
- goto yy1622;
+ goto yy525;
+ goto yy730;
} else {
if (yych == 'r')
- goto yy1621;
- goto yy1417;
+ goto yy729;
+ goto yy525;
}
}
}
- yy1426:
+ yy534:
yych = *++p;
if (yych <= 'S') {
if (yych <= 'D') {
if (yych <= 'C')
- goto yy1417;
- goto yy1610;
+ goto yy525;
+ goto yy718;
} else {
if (yych <= 'Q')
- goto yy1417;
+ goto yy525;
if (yych <= 'R')
- goto yy1609;
- goto yy1608;
+ goto yy717;
+ goto yy716;
}
} else {
if (yych <= 'q') {
if (yych == 'd')
- goto yy1610;
- goto yy1417;
+ goto yy718;
+ goto yy525;
} else {
if (yych <= 'r')
- goto yy1609;
+ goto yy717;
if (yych <= 's')
- goto yy1608;
- goto yy1417;
+ goto yy716;
+ goto yy525;
}
}
- yy1427:
+ yy535:
yych = *++p;
if (yych <= 'O') {
if (yych <= 'K') {
if (yych == 'A')
- goto yy1594;
- goto yy1417;
+ goto yy702;
+ goto yy525;
} else {
if (yych <= 'L')
- goto yy1593;
+ goto yy701;
if (yych <= 'N')
- goto yy1417;
- goto yy1592;
+ goto yy525;
+ goto yy700;
}
} else {
if (yych <= 'k') {
if (yych == 'a')
- goto yy1594;
- goto yy1417;
+ goto yy702;
+ goto yy525;
} else {
if (yych <= 'l')
- goto yy1593;
+ goto yy701;
if (yych == 'o')
- goto yy1592;
- goto yy1417;
+ goto yy700;
+ goto yy525;
}
}
- yy1428:
+ yy536:
yych = *++p;
if (yych <= 'O') {
if (yych <= 'D') {
if (yych == 'A')
- goto yy1579;
- goto yy1417;
+ goto yy687;
+ goto yy525;
} else {
if (yych <= 'E')
- goto yy1578;
+ goto yy686;
if (yych <= 'N')
- goto yy1417;
- goto yy1577;
+ goto yy525;
+ goto yy685;
}
} else {
if (yych <= 'd') {
if (yych == 'a')
- goto yy1579;
- goto yy1417;
+ goto yy687;
+ goto yy525;
} else {
if (yych <= 'e')
- goto yy1578;
+ goto yy686;
if (yych == 'o')
- goto yy1577;
- goto yy1417;
+ goto yy685;
+ goto yy525;
}
}
- yy1429:
+ yy537:
yych = *++p;
switch (yych) {
case 'D':
@@ -17403,1688 +10774,1688 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
case 'd':
case 'l':
case 't':
- goto yy1456;
+ goto yy564;
case 'E':
case 'e':
- goto yy1569;
+ goto yy677;
case 'I':
case 'i':
- goto yy1568;
+ goto yy676;
default:
- goto yy1417;
+ goto yy525;
}
- yy1430:
+ yy538:
yych = *++p;
if (yych <= 'R') {
if (yych <= 'N') {
if (yych == 'I')
- goto yy1544;
- goto yy1417;
+ goto yy652;
+ goto yy525;
} else {
if (yych <= 'O')
- goto yy1543;
+ goto yy651;
if (yych <= 'Q')
- goto yy1417;
- goto yy1542;
+ goto yy525;
+ goto yy650;
}
} else {
if (yych <= 'n') {
if (yych == 'i')
- goto yy1544;
- goto yy1417;
+ goto yy652;
+ goto yy525;
} else {
if (yych <= 'o')
- goto yy1543;
+ goto yy651;
if (yych == 'r')
- goto yy1542;
- goto yy1417;
+ goto yy650;
+ goto yy525;
}
}
- yy1431:
+ yy539:
yych = *++p;
if (yych <= 'S') {
if (yych <= 'D') {
if (yych == '1')
- goto yy1456;
- goto yy1417;
+ goto yy564;
+ goto yy525;
} else {
if (yych <= 'E')
- goto yy1537;
+ goto yy645;
if (yych == 'R')
- goto yy1456;
- goto yy1417;
+ goto yy564;
+ goto yy525;
}
} else {
if (yych <= 'q') {
if (yych <= 'T')
- goto yy1536;
+ goto yy644;
if (yych == 'e')
- goto yy1537;
- goto yy1417;
+ goto yy645;
+ goto yy525;
} else {
if (yych <= 'r')
- goto yy1456;
+ goto yy564;
if (yych == 't')
- goto yy1536;
- goto yy1417;
+ goto yy644;
+ goto yy525;
}
}
- yy1432:
+ yy540:
yych = *++p;
if (yych == 'F')
- goto yy1532;
+ goto yy640;
if (yych == 'f')
- goto yy1532;
- goto yy1417;
- yy1433:
+ goto yy640;
+ goto yy525;
+ yy541:
yych = *++p;
if (yych <= 'I') {
if (yych == 'E')
- goto yy1527;
+ goto yy635;
if (yych <= 'H')
- goto yy1417;
- goto yy1526;
+ goto yy525;
+ goto yy634;
} else {
if (yych <= 'e') {
if (yych <= 'd')
- goto yy1417;
- goto yy1527;
+ goto yy525;
+ goto yy635;
} else {
if (yych == 'i')
- goto yy1526;
- goto yy1417;
+ goto yy634;
+ goto yy525;
}
}
- yy1434:
+ yy542:
yych = *++p;
if (yych <= 'E') {
if (yych == 'A')
- goto yy1518;
+ goto yy626;
if (yych <= 'D')
- goto yy1417;
- goto yy1517;
+ goto yy525;
+ goto yy625;
} else {
if (yych <= 'a') {
if (yych <= '`')
- goto yy1417;
- goto yy1518;
+ goto yy525;
+ goto yy626;
} else {
if (yych == 'e')
- goto yy1517;
- goto yy1417;
+ goto yy625;
+ goto yy525;
}
}
- yy1435:
+ yy543:
yych = *++p;
if (yych <= 'O') {
if (yych == 'A')
- goto yy1511;
+ goto yy619;
if (yych <= 'N')
- goto yy1417;
- goto yy1510;
+ goto yy525;
+ goto yy618;
} else {
if (yych <= 'a') {
if (yych <= '`')
- goto yy1417;
- goto yy1511;
+ goto yy525;
+ goto yy619;
} else {
if (yych == 'o')
- goto yy1510;
- goto yy1417;
+ goto yy618;
+ goto yy525;
}
}
- yy1436:
+ yy544:
yych = *++p;
if (yych <= 'P') {
if (yych == 'L')
- goto yy1456;
+ goto yy564;
if (yych <= 'O')
- goto yy1417;
- goto yy1502;
+ goto yy525;
+ goto yy610;
} else {
if (yych <= 'l') {
if (yych <= 'k')
- goto yy1417;
- goto yy1456;
+ goto yy525;
+ goto yy564;
} else {
if (yych == 'p')
- goto yy1502;
- goto yy1417;
+ goto yy610;
+ goto yy525;
}
}
- yy1437:
+ yy545:
yych = *++p;
if (yych <= 'U') {
if (yych <= 'E') {
if (yych == 'C')
- goto yy1479;
+ goto yy587;
if (yych <= 'D')
- goto yy1417;
- goto yy1482;
+ goto yy525;
+ goto yy590;
} else {
if (yych <= 'O') {
if (yych <= 'N')
- goto yy1417;
- goto yy1481;
+ goto yy525;
+ goto yy589;
} else {
if (yych <= 'S')
- goto yy1417;
+ goto yy525;
if (yych <= 'T')
- goto yy1478;
- goto yy1480;
+ goto yy586;
+ goto yy588;
}
}
} else {
if (yych <= 'n') {
if (yych <= 'c') {
if (yych <= 'b')
- goto yy1417;
- goto yy1479;
+ goto yy525;
+ goto yy587;
} else {
if (yych == 'e')
- goto yy1482;
- goto yy1417;
+ goto yy590;
+ goto yy525;
}
} else {
if (yych <= 's') {
if (yych <= 'o')
- goto yy1481;
- goto yy1417;
+ goto yy589;
+ goto yy525;
} else {
if (yych <= 't')
- goto yy1478;
+ goto yy586;
if (yych <= 'u')
- goto yy1480;
- goto yy1417;
+ goto yy588;
+ goto yy525;
}
}
}
- yy1438:
+ yy546:
yych = *++p;
switch (yych) {
case 'A':
case 'a':
- goto yy1465;
+ goto yy573;
case 'B':
case 'b':
- goto yy1464;
+ goto yy572;
case 'D':
case 'd':
- goto yy1456;
+ goto yy564;
case 'F':
case 'f':
- goto yy1463;
+ goto yy571;
case 'H':
case 'h':
- goto yy1462;
+ goto yy570;
case 'I':
case 'i':
- goto yy1461;
+ goto yy569;
case 'R':
case 'r':
- goto yy1460;
+ goto yy568;
default:
- goto yy1417;
+ goto yy525;
}
- yy1439:
+ yy547:
yych = *++p;
if (yych == 'L')
- goto yy1456;
+ goto yy564;
if (yych == 'l')
- goto yy1456;
- goto yy1417;
- yy1440:
+ goto yy564;
+ goto yy525;
+ yy548:
yych = *++p;
if (yych <= '@') {
if (yych == '-')
- goto yy1443;
- goto yy1417;
+ goto yy551;
+ goto yy525;
} else {
if (yych <= 'Z')
- goto yy1444;
+ goto yy552;
if (yych <= '[')
- goto yy1446;
- goto yy1417;
+ goto yy554;
+ goto yy525;
}
- yy1441:
+ yy549:
++p;
{ return 3; }
- yy1443:
+ yy551:
yych = *++p;
if (yych == '-')
- goto yy1454;
- goto yy1417;
- yy1444:
+ goto yy562;
+ goto yy525;
+ yy552:
++p;
{ return 4; }
- yy1446:
+ yy554:
yych = *++p;
if (yych == 'C')
- goto yy1447;
+ goto yy555;
if (yych != 'c')
- goto yy1417;
- yy1447:
+ goto yy525;
+ yy555:
yych = *++p;
if (yych == 'D')
- goto yy1448;
+ goto yy556;
if (yych != 'd')
- goto yy1417;
- yy1448:
+ goto yy525;
+ yy556:
yych = *++p;
if (yych == 'A')
- goto yy1449;
+ goto yy557;
if (yych != 'a')
- goto yy1417;
- yy1449:
+ goto yy525;
+ yy557:
yych = *++p;
if (yych == 'T')
- goto yy1450;
+ goto yy558;
if (yych != 't')
- goto yy1417;
- yy1450:
+ goto yy525;
+ yy558:
yych = *++p;
if (yych == 'A')
- goto yy1451;
+ goto yy559;
if (yych != 'a')
- goto yy1417;
- yy1451:
+ goto yy525;
+ yy559:
yych = *++p;
if (yych != '[')
- goto yy1417;
+ goto yy525;
++p;
{ return 5; }
- yy1454:
+ yy562:
++p;
{ return 2; }
- yy1456:
+ yy564:
yych = *++p;
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
+ goto yy565;
if (yych <= 0x1F)
- goto yy1417;
+ goto yy525;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
} else {
if (yych != '>')
- goto yy1417;
+ goto yy525;
}
}
- yy1457:
+ yy565:
++p;
{ return 6; }
- yy1459:
+ yy567:
yych = *++p;
if (yych == '>')
- goto yy1457;
- goto yy1417;
- yy1460:
+ goto yy565;
+ goto yy525;
+ yy568:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= '@') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'A')
- goto yy1476;
+ goto yy584;
if (yych == 'a')
- goto yy1476;
- goto yy1417;
+ goto yy584;
+ goto yy525;
}
}
- yy1461:
+ yy569:
yych = *++p;
if (yych == 'T')
- goto yy1474;
+ goto yy582;
if (yych == 't')
- goto yy1474;
- goto yy1417;
- yy1462:
+ goto yy582;
+ goto yy525;
+ yy570:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'D') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'E')
- goto yy1472;
+ goto yy580;
if (yych == 'e')
- goto yy1472;
- goto yy1417;
+ goto yy580;
+ goto yy525;
}
}
- yy1463:
+ yy571:
yych = *++p;
if (yych == 'O')
- goto yy1470;
+ goto yy578;
if (yych == 'o')
- goto yy1470;
- goto yy1417;
- yy1464:
+ goto yy578;
+ goto yy525;
+ yy572:
yych = *++p;
if (yych == 'O')
- goto yy1468;
+ goto yy576;
if (yych == 'o')
- goto yy1468;
- goto yy1417;
- yy1465:
+ goto yy576;
+ goto yy525;
+ yy573:
yych = *++p;
if (yych == 'B')
- goto yy1466;
+ goto yy574;
if (yych != 'b')
- goto yy1417;
- yy1466:
+ goto yy525;
+ yy574:
yych = *++p;
if (yych == 'L')
- goto yy1467;
+ goto yy575;
if (yych != 'l')
- goto yy1417;
- yy1467:
+ goto yy525;
+ yy575:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1468:
+ goto yy564;
+ goto yy525;
+ yy576:
yych = *++p;
if (yych == 'D')
- goto yy1469;
+ goto yy577;
if (yych != 'd')
- goto yy1417;
- yy1469:
+ goto yy525;
+ yy577:
yych = *++p;
if (yych == 'Y')
- goto yy1456;
+ goto yy564;
if (yych == 'y')
- goto yy1456;
- goto yy1417;
- yy1470:
+ goto yy564;
+ goto yy525;
+ yy578:
yych = *++p;
if (yych == 'O')
- goto yy1471;
+ goto yy579;
if (yych != 'o')
- goto yy1417;
- yy1471:
+ goto yy525;
+ yy579:
yych = *++p;
if (yych == 'T')
- goto yy1456;
+ goto yy564;
if (yych == 't')
- goto yy1456;
- goto yy1417;
- yy1472:
+ goto yy564;
+ goto yy525;
+ yy580:
yych = *++p;
if (yych == 'A')
- goto yy1473;
+ goto yy581;
if (yych != 'a')
- goto yy1417;
- yy1473:
+ goto yy525;
+ yy581:
yych = *++p;
if (yych == 'D')
- goto yy1456;
+ goto yy564;
if (yych == 'd')
- goto yy1456;
- goto yy1417;
- yy1474:
+ goto yy564;
+ goto yy525;
+ yy582:
yych = *++p;
if (yych == 'L')
- goto yy1475;
+ goto yy583;
if (yych != 'l')
- goto yy1417;
- yy1475:
+ goto yy525;
+ yy583:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1476:
+ goto yy564;
+ goto yy525;
+ yy584:
yych = *++p;
if (yych == 'C')
- goto yy1477;
+ goto yy585;
if (yych != 'c')
- goto yy1417;
- yy1477:
+ goto yy525;
+ yy585:
yych = *++p;
if (yych == 'K')
- goto yy1456;
+ goto yy564;
if (yych == 'k')
- goto yy1456;
- goto yy1417;
- yy1478:
+ goto yy564;
+ goto yy525;
+ yy586:
yych = *++p;
if (yych == 'Y')
- goto yy1500;
+ goto yy608;
if (yych == 'y')
- goto yy1500;
- goto yy1417;
- yy1479:
+ goto yy608;
+ goto yy525;
+ yy587:
yych = *++p;
if (yych == 'R')
- goto yy1494;
+ goto yy602;
if (yych == 'r')
- goto yy1494;
- goto yy1417;
- yy1480:
+ goto yy602;
+ goto yy525;
+ yy588:
yych = *++p;
if (yych == 'M')
- goto yy1490;
+ goto yy598;
if (yych == 'm')
- goto yy1490;
- goto yy1417;
- yy1481:
+ goto yy598;
+ goto yy525;
+ yy589:
yych = *++p;
if (yych == 'U')
- goto yy1487;
+ goto yy595;
if (yych == 'u')
- goto yy1487;
- goto yy1417;
- yy1482:
+ goto yy595;
+ goto yy525;
+ yy590:
yych = *++p;
if (yych == 'C')
- goto yy1483;
+ goto yy591;
if (yych != 'c')
- goto yy1417;
- yy1483:
+ goto yy525;
+ yy591:
yych = *++p;
if (yych == 'T')
- goto yy1484;
+ goto yy592;
if (yych != 't')
- goto yy1417;
- yy1484:
+ goto yy525;
+ yy592:
yych = *++p;
if (yych == 'I')
- goto yy1485;
+ goto yy593;
if (yych != 'i')
- goto yy1417;
- yy1485:
+ goto yy525;
+ yy593:
yych = *++p;
if (yych == 'O')
- goto yy1486;
+ goto yy594;
if (yych != 'o')
- goto yy1417;
- yy1486:
+ goto yy525;
+ yy594:
yych = *++p;
if (yych == 'N')
- goto yy1456;
+ goto yy564;
if (yych == 'n')
- goto yy1456;
- goto yy1417;
- yy1487:
+ goto yy564;
+ goto yy525;
+ yy595:
yych = *++p;
if (yych == 'R')
- goto yy1488;
+ goto yy596;
if (yych != 'r')
- goto yy1417;
- yy1488:
+ goto yy525;
+ yy596:
yych = *++p;
if (yych == 'C')
- goto yy1489;
+ goto yy597;
if (yych != 'c')
- goto yy1417;
- yy1489:
+ goto yy525;
+ yy597:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1490:
+ goto yy564;
+ goto yy525;
+ yy598:
yych = *++p;
if (yych == 'M')
- goto yy1491;
+ goto yy599;
if (yych != 'm')
- goto yy1417;
- yy1491:
+ goto yy525;
+ yy599:
yych = *++p;
if (yych == 'A')
- goto yy1492;
+ goto yy600;
if (yych != 'a')
- goto yy1417;
- yy1492:
+ goto yy525;
+ yy600:
yych = *++p;
if (yych == 'R')
- goto yy1493;
+ goto yy601;
if (yych != 'r')
- goto yy1417;
- yy1493:
+ goto yy525;
+ yy601:
yych = *++p;
if (yych == 'Y')
- goto yy1456;
+ goto yy564;
if (yych == 'y')
- goto yy1456;
- goto yy1417;
- yy1494:
+ goto yy564;
+ goto yy525;
+ yy602:
yych = *++p;
if (yych == 'I')
- goto yy1495;
+ goto yy603;
if (yych != 'i')
- goto yy1417;
- yy1495:
+ goto yy525;
+ yy603:
yych = *++p;
if (yych == 'P')
- goto yy1496;
+ goto yy604;
if (yych != 'p')
- goto yy1417;
- yy1496:
+ goto yy525;
+ yy604:
yych = *++p;
if (yych == 'T')
- goto yy1497;
+ goto yy605;
if (yych != 't')
- goto yy1417;
- yy1497:
+ goto yy525;
+ yy605:
yych = *++p;
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych >= 0x0E)
- goto yy1417;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1498;
+ goto yy606;
if (yych != '>')
- goto yy1417;
+ goto yy525;
}
- yy1498:
+ yy606:
++p;
{ return 1; }
- yy1500:
+ yy608:
yych = *++p;
if (yych == 'L')
- goto yy1501;
+ goto yy609;
if (yych != 'l')
- goto yy1417;
- yy1501:
+ goto yy525;
+ yy609:
yych = *++p;
if (yych == 'E')
- goto yy1497;
+ goto yy605;
if (yych == 'e')
- goto yy1497;
- goto yy1417;
- yy1502:
+ goto yy605;
+ goto yy525;
+ yy610:
yych = *++p;
if (yych == 'T')
- goto yy1503;
+ goto yy611;
if (yych != 't')
- goto yy1417;
- yy1503:
+ goto yy525;
+ yy611:
yych = *++p;
if (yych <= 'I') {
if (yych == 'G')
- goto yy1505;
+ goto yy613;
if (yych <= 'H')
- goto yy1417;
+ goto yy525;
} else {
if (yych <= 'g') {
if (yych <= 'f')
- goto yy1417;
- goto yy1505;
+ goto yy525;
+ goto yy613;
} else {
if (yych != 'i')
- goto yy1417;
+ goto yy525;
}
}
yych = *++p;
if (yych == 'O')
- goto yy1509;
+ goto yy617;
if (yych == 'o')
- goto yy1509;
- goto yy1417;
- yy1505:
+ goto yy617;
+ goto yy525;
+ yy613:
yych = *++p;
if (yych == 'R')
- goto yy1506;
+ goto yy614;
if (yych != 'r')
- goto yy1417;
- yy1506:
+ goto yy525;
+ yy614:
yych = *++p;
if (yych == 'O')
- goto yy1507;
+ goto yy615;
if (yych != 'o')
- goto yy1417;
- yy1507:
+ goto yy525;
+ yy615:
yych = *++p;
if (yych == 'U')
- goto yy1508;
+ goto yy616;
if (yych != 'u')
- goto yy1417;
- yy1508:
+ goto yy525;
+ yy616:
yych = *++p;
if (yych == 'P')
- goto yy1456;
+ goto yy564;
if (yych == 'p')
- goto yy1456;
- goto yy1417;
- yy1509:
+ goto yy564;
+ goto yy525;
+ yy617:
yych = *++p;
if (yych == 'N')
- goto yy1456;
+ goto yy564;
if (yych == 'n')
- goto yy1456;
- goto yy1417;
- yy1510:
+ goto yy564;
+ goto yy525;
+ yy618:
yych = *++p;
if (yych == 'F')
- goto yy1512;
+ goto yy620;
if (yych == 'f')
- goto yy1512;
- goto yy1417;
- yy1511:
+ goto yy620;
+ goto yy525;
+ yy619:
yych = *++p;
if (yych == 'V')
- goto yy1456;
+ goto yy564;
if (yych == 'v')
- goto yy1456;
- goto yy1417;
- yy1512:
+ goto yy564;
+ goto yy525;
+ yy620:
yych = *++p;
if (yych == 'R')
- goto yy1513;
+ goto yy621;
if (yych != 'r')
- goto yy1417;
- yy1513:
+ goto yy525;
+ yy621:
yych = *++p;
if (yych == 'A')
- goto yy1514;
+ goto yy622;
if (yych != 'a')
- goto yy1417;
- yy1514:
+ goto yy525;
+ yy622:
yych = *++p;
if (yych == 'M')
- goto yy1515;
+ goto yy623;
if (yych != 'm')
- goto yy1417;
- yy1515:
+ goto yy525;
+ yy623:
yych = *++p;
if (yych == 'E')
- goto yy1516;
+ goto yy624;
if (yych != 'e')
- goto yy1417;
- yy1516:
+ goto yy525;
+ yy624:
yych = *++p;
if (yych == 'S')
- goto yy1456;
+ goto yy564;
if (yych == 's')
- goto yy1456;
- goto yy1417;
- yy1517:
+ goto yy564;
+ goto yy525;
+ yy625:
yych = *++p;
if (yych <= 'T') {
if (yych == 'N')
- goto yy1520;
+ goto yy628;
if (yych <= 'S')
- goto yy1417;
- goto yy1521;
+ goto yy525;
+ goto yy629;
} else {
if (yych <= 'n') {
if (yych <= 'm')
- goto yy1417;
- goto yy1520;
+ goto yy525;
+ goto yy628;
} else {
if (yych == 't')
- goto yy1521;
- goto yy1417;
+ goto yy629;
+ goto yy525;
}
}
- yy1518:
+ yy626:
yych = *++p;
if (yych == 'I')
- goto yy1519;
+ goto yy627;
if (yych != 'i')
- goto yy1417;
- yy1519:
+ goto yy525;
+ yy627:
yych = *++p;
if (yych == 'N')
- goto yy1456;
+ goto yy564;
if (yych == 'n')
- goto yy1456;
- goto yy1417;
- yy1520:
+ goto yy564;
+ goto yy525;
+ yy628:
yych = *++p;
if (yych == 'U')
- goto yy1522;
+ goto yy630;
if (yych == 'u')
- goto yy1522;
- goto yy1417;
- yy1521:
+ goto yy630;
+ goto yy525;
+ yy629:
yych = *++p;
if (yych == 'A')
- goto yy1456;
+ goto yy564;
if (yych == 'a')
- goto yy1456;
- goto yy1417;
- yy1522:
+ goto yy564;
+ goto yy525;
+ yy630:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'H') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'I')
- goto yy1523;
+ goto yy631;
if (yych != 'i')
- goto yy1417;
+ goto yy525;
}
}
- yy1523:
+ yy631:
yych = *++p;
if (yych == 'T')
- goto yy1524;
+ goto yy632;
if (yych != 't')
- goto yy1417;
- yy1524:
+ goto yy525;
+ yy632:
yych = *++p;
if (yych == 'E')
- goto yy1525;
+ goto yy633;
if (yych != 'e')
- goto yy1417;
- yy1525:
+ goto yy525;
+ yy633:
yych = *++p;
if (yych == 'M')
- goto yy1456;
+ goto yy564;
if (yych == 'm')
- goto yy1456;
- goto yy1417;
- yy1526:
+ goto yy564;
+ goto yy525;
+ yy634:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'M') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'N')
- goto yy1531;
+ goto yy639;
if (yych == 'n')
- goto yy1531;
- goto yy1417;
+ goto yy639;
+ goto yy525;
}
}
- yy1527:
+ yy635:
yych = *++p;
if (yych == 'G')
- goto yy1528;
+ goto yy636;
if (yych != 'g')
- goto yy1417;
- yy1528:
+ goto yy525;
+ yy636:
yych = *++p;
if (yych == 'E')
- goto yy1529;
+ goto yy637;
if (yych != 'e')
- goto yy1417;
- yy1529:
+ goto yy525;
+ yy637:
yych = *++p;
if (yych == 'N')
- goto yy1530;
+ goto yy638;
if (yych != 'n')
- goto yy1417;
- yy1530:
+ goto yy525;
+ yy638:
yych = *++p;
if (yych == 'D')
- goto yy1456;
+ goto yy564;
if (yych == 'd')
- goto yy1456;
- goto yy1417;
- yy1531:
+ goto yy564;
+ goto yy525;
+ yy639:
yych = *++p;
if (yych == 'K')
- goto yy1456;
+ goto yy564;
if (yych == 'k')
- goto yy1456;
- goto yy1417;
- yy1532:
+ goto yy564;
+ goto yy525;
+ yy640:
yych = *++p;
if (yych == 'R')
- goto yy1533;
+ goto yy641;
if (yych != 'r')
- goto yy1417;
- yy1533:
+ goto yy525;
+ yy641:
yych = *++p;
if (yych == 'A')
- goto yy1534;
+ goto yy642;
if (yych != 'a')
- goto yy1417;
- yy1534:
+ goto yy525;
+ yy642:
yych = *++p;
if (yych == 'M')
- goto yy1535;
+ goto yy643;
if (yych != 'm')
- goto yy1417;
- yy1535:
+ goto yy525;
+ yy643:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1536:
+ goto yy564;
+ goto yy525;
+ yy644:
yych = *++p;
if (yych == 'M')
- goto yy1541;
+ goto yy649;
if (yych == 'm')
- goto yy1541;
- goto yy1417;
- yy1537:
+ goto yy649;
+ goto yy525;
+ yy645:
yych = *++p;
if (yych == 'A')
- goto yy1538;
+ goto yy646;
if (yych != 'a')
- goto yy1417;
- yy1538:
+ goto yy525;
+ yy646:
yych = *++p;
if (yych == 'D')
- goto yy1539;
+ goto yy647;
if (yych != 'd')
- goto yy1417;
- yy1539:
+ goto yy525;
+ yy647:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'D') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'E')
- goto yy1540;
+ goto yy648;
if (yych != 'e')
- goto yy1417;
+ goto yy525;
}
}
- yy1540:
+ yy648:
yych = *++p;
if (yych == 'R')
- goto yy1456;
+ goto yy564;
if (yych == 'r')
- goto yy1456;
- goto yy1417;
- yy1541:
+ goto yy564;
+ goto yy525;
+ yy649:
yych = *++p;
if (yych == 'L')
- goto yy1456;
+ goto yy564;
if (yych == 'l')
- goto yy1456;
- goto yy1417;
- yy1542:
+ goto yy564;
+ goto yy525;
+ yy650:
yych = *++p;
if (yych == 'A')
- goto yy1563;
+ goto yy671;
if (yych == 'a')
- goto yy1563;
- goto yy1417;
- yy1543:
+ goto yy671;
+ goto yy525;
+ yy651:
yych = *++p;
if (yych <= 'R') {
if (yych == 'O')
- goto yy1559;
+ goto yy667;
if (yych <= 'Q')
- goto yy1417;
- goto yy1560;
+ goto yy525;
+ goto yy668;
} else {
if (yych <= 'o') {
if (yych <= 'n')
- goto yy1417;
- goto yy1559;
+ goto yy525;
+ goto yy667;
} else {
if (yych == 'r')
- goto yy1560;
- goto yy1417;
+ goto yy668;
+ goto yy525;
}
}
- yy1544:
+ yy652:
yych = *++p;
if (yych <= 'G') {
if (yych == 'E')
- goto yy1545;
+ goto yy653;
if (yych <= 'F')
- goto yy1417;
- goto yy1546;
+ goto yy525;
+ goto yy654;
} else {
if (yych <= 'e') {
if (yych <= 'd')
- goto yy1417;
+ goto yy525;
} else {
if (yych == 'g')
- goto yy1546;
- goto yy1417;
+ goto yy654;
+ goto yy525;
}
}
- yy1545:
+ yy653:
yych = *++p;
if (yych == 'L')
- goto yy1555;
+ goto yy663;
if (yych == 'l')
- goto yy1555;
- goto yy1417;
- yy1546:
+ goto yy663;
+ goto yy525;
+ yy654:
yych = *++p;
if (yych <= 'U') {
if (yych == 'C')
- goto yy1548;
+ goto yy656;
if (yych <= 'T')
- goto yy1417;
+ goto yy525;
} else {
if (yych <= 'c') {
if (yych <= 'b')
- goto yy1417;
- goto yy1548;
+ goto yy525;
+ goto yy656;
} else {
if (yych != 'u')
- goto yy1417;
+ goto yy525;
}
}
yych = *++p;
if (yych == 'R')
- goto yy1554;
+ goto yy662;
if (yych == 'r')
- goto yy1554;
- goto yy1417;
- yy1548:
+ goto yy662;
+ goto yy525;
+ yy656:
yych = *++p;
if (yych == 'A')
- goto yy1549;
+ goto yy657;
if (yych != 'a')
- goto yy1417;
- yy1549:
+ goto yy525;
+ yy657:
yych = *++p;
if (yych == 'P')
- goto yy1550;
+ goto yy658;
if (yych != 'p')
- goto yy1417;
- yy1550:
+ goto yy525;
+ yy658:
yych = *++p;
if (yych == 'T')
- goto yy1551;
+ goto yy659;
if (yych != 't')
- goto yy1417;
- yy1551:
+ goto yy525;
+ yy659:
yych = *++p;
if (yych == 'I')
- goto yy1552;
+ goto yy660;
if (yych != 'i')
- goto yy1417;
- yy1552:
+ goto yy525;
+ yy660:
yych = *++p;
if (yych == 'O')
- goto yy1553;
+ goto yy661;
if (yych != 'o')
- goto yy1417;
- yy1553:
+ goto yy525;
+ yy661:
yych = *++p;
if (yych == 'N')
- goto yy1456;
+ goto yy564;
if (yych == 'n')
- goto yy1456;
- goto yy1417;
- yy1554:
+ goto yy564;
+ goto yy525;
+ yy662:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1555:
+ goto yy564;
+ goto yy525;
+ yy663:
yych = *++p;
if (yych == 'D')
- goto yy1556;
+ goto yy664;
if (yych != 'd')
- goto yy1417;
- yy1556:
+ goto yy525;
+ yy664:
yych = *++p;
if (yych == 'S')
- goto yy1557;
+ goto yy665;
if (yych != 's')
- goto yy1417;
- yy1557:
+ goto yy525;
+ yy665:
yych = *++p;
if (yych == 'E')
- goto yy1558;
+ goto yy666;
if (yych != 'e')
- goto yy1417;
- yy1558:
+ goto yy525;
+ yy666:
yych = *++p;
if (yych == 'T')
- goto yy1456;
+ goto yy564;
if (yych == 't')
- goto yy1456;
- goto yy1417;
- yy1559:
+ goto yy564;
+ goto yy525;
+ yy667:
yych = *++p;
if (yych == 'T')
- goto yy1561;
+ goto yy669;
if (yych == 't')
- goto yy1561;
- goto yy1417;
- yy1560:
+ goto yy669;
+ goto yy525;
+ yy668:
yych = *++p;
if (yych == 'M')
- goto yy1456;
+ goto yy564;
if (yych == 'm')
- goto yy1456;
- goto yy1417;
- yy1561:
+ goto yy564;
+ goto yy525;
+ yy669:
yych = *++p;
if (yych == 'E')
- goto yy1562;
+ goto yy670;
if (yych != 'e')
- goto yy1417;
- yy1562:
+ goto yy525;
+ yy670:
yych = *++p;
if (yych == 'R')
- goto yy1456;
+ goto yy564;
if (yych == 'r')
- goto yy1456;
- goto yy1417;
- yy1563:
+ goto yy564;
+ goto yy525;
+ yy671:
yych = *++p;
if (yych == 'M')
- goto yy1564;
+ goto yy672;
if (yych != 'm')
- goto yy1417;
- yy1564:
+ goto yy525;
+ yy672:
yych = *++p;
if (yych == 'E')
- goto yy1565;
+ goto yy673;
if (yych != 'e')
- goto yy1417;
- yy1565:
+ goto yy525;
+ yy673:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'R') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'S')
- goto yy1566;
+ goto yy674;
if (yych != 's')
- goto yy1417;
+ goto yy525;
}
}
- yy1566:
+ yy674:
yych = *++p;
if (yych == 'E')
- goto yy1567;
+ goto yy675;
if (yych != 'e')
- goto yy1417;
- yy1567:
+ goto yy525;
+ yy675:
yych = *++p;
if (yych == 'T')
- goto yy1456;
+ goto yy564;
if (yych == 't')
- goto yy1456;
- goto yy1417;
- yy1568:
+ goto yy564;
+ goto yy525;
+ yy676:
yych = *++p;
if (yych <= 'V') {
if (yych <= 'Q') {
if (yych == 'A')
- goto yy1574;
- goto yy1417;
+ goto yy682;
+ goto yy525;
} else {
if (yych <= 'R')
- goto yy1456;
+ goto yy564;
if (yych <= 'U')
- goto yy1417;
- goto yy1456;
+ goto yy525;
+ goto yy564;
}
} else {
if (yych <= 'q') {
if (yych == 'a')
- goto yy1574;
- goto yy1417;
+ goto yy682;
+ goto yy525;
} else {
if (yych <= 'r')
- goto yy1456;
+ goto yy564;
if (yych == 'v')
- goto yy1456;
- goto yy1417;
+ goto yy564;
+ goto yy525;
}
}
- yy1569:
+ yy677:
yych = *++p;
if (yych == 'T')
- goto yy1570;
+ goto yy678;
if (yych != 't')
- goto yy1417;
- yy1570:
+ goto yy525;
+ yy678:
yych = *++p;
if (yych == 'A')
- goto yy1571;
+ goto yy679;
if (yych != 'a')
- goto yy1417;
- yy1571:
+ goto yy525;
+ yy679:
yych = *++p;
if (yych == 'I')
- goto yy1572;
+ goto yy680;
if (yych != 'i')
- goto yy1417;
- yy1572:
+ goto yy525;
+ yy680:
yych = *++p;
if (yych == 'L')
- goto yy1573;
+ goto yy681;
if (yych != 'l')
- goto yy1417;
- yy1573:
+ goto yy525;
+ yy681:
yych = *++p;
if (yych == 'S')
- goto yy1456;
+ goto yy564;
if (yych == 's')
- goto yy1456;
- goto yy1417;
- yy1574:
+ goto yy564;
+ goto yy525;
+ yy682:
yych = *++p;
if (yych == 'L')
- goto yy1575;
+ goto yy683;
if (yych != 'l')
- goto yy1417;
- yy1575:
+ goto yy525;
+ yy683:
yych = *++p;
if (yych == 'O')
- goto yy1576;
+ goto yy684;
if (yych != 'o')
- goto yy1417;
- yy1576:
+ goto yy525;
+ yy684:
yych = *++p;
if (yych == 'G')
- goto yy1456;
+ goto yy564;
if (yych == 'g')
- goto yy1456;
- goto yy1417;
- yy1577:
+ goto yy564;
+ goto yy525;
+ yy685:
yych = *++p;
if (yych == 'L')
- goto yy1587;
+ goto yy695;
if (yych == 'l')
- goto yy1587;
- goto yy1417;
- yy1578:
+ goto yy695;
+ goto yy525;
+ yy686:
yych = *++p;
if (yych == 'N')
- goto yy1584;
+ goto yy692;
if (yych == 'n')
- goto yy1584;
- goto yy1417;
- yy1579:
+ goto yy692;
+ goto yy525;
+ yy687:
yych = *++p;
if (yych == 'P')
- goto yy1580;
+ goto yy688;
if (yych != 'p')
- goto yy1417;
- yy1580:
+ goto yy525;
+ yy688:
yych = *++p;
if (yych == 'T')
- goto yy1581;
+ goto yy689;
if (yych != 't')
- goto yy1417;
- yy1581:
+ goto yy525;
+ yy689:
yych = *++p;
if (yych == 'I')
- goto yy1582;
+ goto yy690;
if (yych != 'i')
- goto yy1417;
- yy1582:
+ goto yy525;
+ yy690:
yych = *++p;
if (yych == 'O')
- goto yy1583;
+ goto yy691;
if (yych != 'o')
- goto yy1417;
- yy1583:
+ goto yy525;
+ yy691:
yych = *++p;
if (yych == 'N')
- goto yy1456;
+ goto yy564;
if (yych == 'n')
- goto yy1456;
- goto yy1417;
- yy1584:
+ goto yy564;
+ goto yy525;
+ yy692:
yych = *++p;
if (yych == 'T')
- goto yy1585;
+ goto yy693;
if (yych != 't')
- goto yy1417;
- yy1585:
+ goto yy525;
+ yy693:
yych = *++p;
if (yych == 'E')
- goto yy1586;
+ goto yy694;
if (yych != 'e')
- goto yy1417;
- yy1586:
+ goto yy525;
+ yy694:
yych = *++p;
if (yych == 'R')
- goto yy1456;
+ goto yy564;
if (yych == 'r')
- goto yy1456;
- goto yy1417;
- yy1587:
+ goto yy564;
+ goto yy525;
+ yy695:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'F') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'G')
- goto yy1588;
+ goto yy696;
if (yych != 'g')
- goto yy1417;
+ goto yy525;
}
}
- yy1588:
+ yy696:
yych = *++p;
if (yych == 'R')
- goto yy1589;
+ goto yy697;
if (yych != 'r')
- goto yy1417;
- yy1589:
+ goto yy525;
+ yy697:
yych = *++p;
if (yych == 'O')
- goto yy1590;
+ goto yy698;
if (yych != 'o')
- goto yy1417;
- yy1590:
+ goto yy525;
+ yy698:
yych = *++p;
if (yych == 'U')
- goto yy1591;
+ goto yy699;
if (yych != 'u')
- goto yy1417;
- yy1591:
+ goto yy525;
+ yy699:
yych = *++p;
if (yych == 'P')
- goto yy1456;
+ goto yy564;
if (yych == 'p')
- goto yy1456;
- goto yy1417;
- yy1592:
+ goto yy564;
+ goto yy525;
+ yy700:
yych = *++p;
if (yych == 'D')
- goto yy1607;
+ goto yy715;
if (yych == 'd')
- goto yy1607;
- goto yy1417;
- yy1593:
+ goto yy715;
+ goto yy525;
+ yy701:
yych = *++p;
if (yych == 'O')
- goto yy1600;
+ goto yy708;
if (yych == 'o')
- goto yy1600;
- goto yy1417;
- yy1594:
+ goto yy708;
+ goto yy525;
+ yy702:
yych = *++p;
if (yych == 'S')
- goto yy1595;
+ goto yy703;
if (yych != 's')
- goto yy1417;
- yy1595:
+ goto yy525;
+ yy703:
yych = *++p;
if (yych == 'E')
- goto yy1596;
+ goto yy704;
if (yych != 'e')
- goto yy1417;
- yy1596:
+ goto yy525;
+ yy704:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= 'E') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'F')
- goto yy1597;
+ goto yy705;
if (yych != 'f')
- goto yy1417;
+ goto yy525;
}
}
- yy1597:
+ yy705:
yych = *++p;
if (yych == 'O')
- goto yy1598;
+ goto yy706;
if (yych != 'o')
- goto yy1417;
- yy1598:
+ goto yy525;
+ yy706:
yych = *++p;
if (yych == 'N')
- goto yy1599;
+ goto yy707;
if (yych != 'n')
- goto yy1417;
- yy1599:
+ goto yy525;
+ yy707:
yych = *++p;
if (yych == 'T')
- goto yy1456;
+ goto yy564;
if (yych == 't')
- goto yy1456;
- goto yy1417;
- yy1600:
+ goto yy564;
+ goto yy525;
+ yy708:
yych = *++p;
if (yych == 'C')
- goto yy1601;
+ goto yy709;
if (yych != 'c')
- goto yy1417;
- yy1601:
+ goto yy525;
+ yy709:
yych = *++p;
if (yych == 'K')
- goto yy1602;
+ goto yy710;
if (yych != 'k')
- goto yy1417;
- yy1602:
+ goto yy525;
+ yy710:
yych = *++p;
if (yych == 'Q')
- goto yy1603;
+ goto yy711;
if (yych != 'q')
- goto yy1417;
- yy1603:
+ goto yy525;
+ yy711:
yych = *++p;
if (yych == 'U')
- goto yy1604;
+ goto yy712;
if (yych != 'u')
- goto yy1417;
- yy1604:
+ goto yy525;
+ yy712:
yych = *++p;
if (yych == 'O')
- goto yy1605;
+ goto yy713;
if (yych != 'o')
- goto yy1417;
- yy1605:
+ goto yy525;
+ yy713:
yych = *++p;
if (yych == 'T')
- goto yy1606;
+ goto yy714;
if (yych != 't')
- goto yy1417;
- yy1606:
+ goto yy525;
+ yy714:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1607:
+ goto yy564;
+ goto yy525;
+ yy715:
yych = *++p;
if (yych == 'Y')
- goto yy1456;
+ goto yy564;
if (yych == 'y')
- goto yy1456;
- goto yy1417;
- yy1608:
+ goto yy564;
+ goto yy525;
+ yy716:
yych = *++p;
if (yych == 'I')
- goto yy1619;
+ goto yy727;
if (yych == 'i')
- goto yy1619;
- goto yy1417;
- yy1609:
+ goto yy727;
+ goto yy525;
+ yy717:
yych = *++p;
if (yych == 'T')
- goto yy1615;
+ goto yy723;
if (yych == 't')
- goto yy1615;
- goto yy1417;
- yy1610:
+ goto yy723;
+ goto yy525;
+ yy718:
yych = *++p;
if (yych == 'D')
- goto yy1611;
+ goto yy719;
if (yych != 'd')
- goto yy1417;
- yy1611:
+ goto yy525;
+ yy719:
yych = *++p;
if (yych == 'R')
- goto yy1612;
+ goto yy720;
if (yych != 'r')
- goto yy1417;
- yy1612:
+ goto yy525;
+ yy720:
yych = *++p;
if (yych == 'E')
- goto yy1613;
+ goto yy721;
if (yych != 'e')
- goto yy1417;
- yy1613:
+ goto yy525;
+ yy721:
yych = *++p;
if (yych == 'S')
- goto yy1614;
+ goto yy722;
if (yych != 's')
- goto yy1417;
- yy1614:
+ goto yy525;
+ yy722:
yych = *++p;
if (yych == 'S')
- goto yy1456;
+ goto yy564;
if (yych == 's')
- goto yy1456;
- goto yy1417;
- yy1615:
+ goto yy564;
+ goto yy525;
+ yy723:
yych = *++p;
if (yych == 'I')
- goto yy1616;
+ goto yy724;
if (yych != 'i')
- goto yy1417;
- yy1616:
+ goto yy525;
+ yy724:
yych = *++p;
if (yych == 'C')
- goto yy1617;
+ goto yy725;
if (yych != 'c')
- goto yy1417;
- yy1617:
+ goto yy525;
+ yy725:
yych = *++p;
if (yych == 'L')
- goto yy1618;
+ goto yy726;
if (yych != 'l')
- goto yy1417;
- yy1618:
+ goto yy525;
+ yy726:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1619:
+ goto yy564;
+ goto yy525;
+ yy727:
yych = *++p;
if (yych == 'D')
- goto yy1620;
+ goto yy728;
if (yych != 'd')
- goto yy1417;
- yy1620:
+ goto yy525;
+ yy728:
yych = *++p;
if (yych == 'E')
- goto yy1456;
+ goto yy564;
if (yych == 'e')
- goto yy1456;
- goto yy1417;
- yy1621:
+ goto yy564;
+ goto yy525;
+ yy729:
yych = *++p;
if (yych == 'E')
- goto yy1497;
+ goto yy605;
if (yych == 'e')
- goto yy1497;
- goto yy1417;
- yy1622:
+ goto yy605;
+ goto yy525;
+ yy730:
yych = *++p;
if (yych == 'R')
- goto yy1623;
+ goto yy731;
if (yych != 'r')
- goto yy1417;
- yy1623:
+ goto yy525;
+ yy731:
yych = *++p;
if (yych == 'A')
- goto yy1624;
+ goto yy732;
if (yych != 'a')
- goto yy1417;
- yy1624:
+ goto yy525;
+ yy732:
yych = *++p;
if (yych == 'M')
- goto yy1456;
+ goto yy564;
if (yych == 'm')
- goto yy1456;
- goto yy1417;
- yy1625:
+ goto yy564;
+ goto yy525;
+ yy733:
yych = *++p;
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= 0x08)
- goto yy1417;
+ goto yy525;
if (yych <= '\r')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= ' ')
- goto yy1457;
+ goto yy565;
if (yych <= '.')
- goto yy1417;
- goto yy1459;
+ goto yy525;
+ goto yy567;
}
} else {
if (yych <= '@') {
if (yych == '>')
- goto yy1457;
- goto yy1417;
+ goto yy565;
+ goto yy525;
} else {
if (yych <= 'A')
- goto yy1622;
+ goto yy730;
if (yych == 'a')
- goto yy1622;
- goto yy1417;
+ goto yy730;
+ goto yy525;
}
}
- yy1626:
+ yy734:
++p;
if ((yych = *p) <= 'U') {
if (yych <= 'N') {
if (yych == 'E')
- goto yy1482;
- goto yy1417;
+ goto yy590;
+ goto yy525;
} else {
if (yych <= 'O')
- goto yy1481;
+ goto yy589;
if (yych <= 'T')
- goto yy1417;
- goto yy1480;
+ goto yy525;
+ goto yy588;
}
} else {
if (yych <= 'n') {
if (yych == 'e')
- goto yy1482;
- goto yy1417;
+ goto yy590;
+ goto yy525;
} else {
if (yych <= 'o')
- goto yy1481;
+ goto yy589;
if (yych == 'u')
- goto yy1480;
- goto yy1417;
+ goto yy588;
+ goto yy525;
}
}
}
@@ -19123,813 +12494,813 @@ bufsize_t _scan_html_block_start_7(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= ';') {
if (yych != '\n')
- goto yy1631;
+ goto yy739;
} else {
if (yych <= '<')
- goto yy1630;
+ goto yy738;
if (yych <= 0x7F)
- goto yy1631;
+ goto yy739;
if (yych >= 0xC2)
- goto yy1632;
+ goto yy740;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1634;
+ goto yy742;
if (yych == 0xED)
- goto yy1639;
- goto yy1635;
+ goto yy747;
+ goto yy743;
} else {
if (yych <= 0xF0)
- goto yy1636;
+ goto yy744;
if (yych <= 0xF3)
- goto yy1637;
+ goto yy745;
if (yych <= 0xF4)
- goto yy1638;
+ goto yy746;
}
}
- yy1629 : { return 0; }
- yy1630:
+ yy737 : { return 0; }
+ yy738:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= '@') {
if (yych == '/')
- goto yy1642;
- goto yy1629;
+ goto yy750;
+ goto yy737;
} else {
if (yych <= 'Z')
- goto yy1640;
+ goto yy748;
if (yych <= '`')
- goto yy1629;
+ goto yy737;
if (yych <= 'z')
- goto yy1640;
- goto yy1629;
+ goto yy748;
+ goto yy737;
}
- yy1631:
+ yy739:
yych = *++p;
- goto yy1629;
- yy1632:
+ goto yy737;
+ yy740:
yych = *++p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1631;
- yy1633:
+ goto yy739;
+ yy741:
p = marker;
if (yyaccept == 0) {
- goto yy1629;
+ goto yy737;
} else {
- goto yy1651;
+ goto yy759;
}
- yy1634:
+ yy742:
yych = *++p;
if (yych <= 0x9F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1632;
- goto yy1633;
- yy1635:
+ goto yy740;
+ goto yy741;
+ yy743:
yych = *++p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1632;
- goto yy1633;
- yy1636:
+ goto yy740;
+ goto yy741;
+ yy744:
yych = *++p;
if (yych <= 0x8F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1635;
- goto yy1633;
- yy1637:
+ goto yy743;
+ goto yy741;
+ yy745:
yych = *++p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1635;
- goto yy1633;
- yy1638:
+ goto yy743;
+ goto yy741;
+ yy746:
yych = *++p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x8F)
- goto yy1635;
- goto yy1633;
- yy1639:
+ goto yy743;
+ goto yy741;
+ yy747:
yych = *++p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x9F)
- goto yy1632;
- goto yy1633;
- yy1640:
+ goto yy740;
+ goto yy741;
+ yy748:
++p;
yych = *p;
if (yybm[0 + yych] & 1) {
- goto yy1640;
+ goto yy748;
}
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
if (yych <= '\r')
- goto yy1653;
+ goto yy761;
if (yych <= 0x1F)
- goto yy1633;
- goto yy1653;
+ goto yy741;
+ goto yy761;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1633;
- goto yy1655;
+ goto yy741;
+ goto yy763;
} else {
if (yych == '>')
- goto yy1647;
- goto yy1633;
+ goto yy755;
+ goto yy741;
}
}
- yy1642:
+ yy750:
yych = *++p;
if (yych <= '@')
- goto yy1633;
+ goto yy741;
if (yych <= 'Z')
- goto yy1643;
+ goto yy751;
if (yych <= '`')
- goto yy1633;
+ goto yy741;
if (yych >= '{')
- goto yy1633;
- yy1643:
+ goto yy741;
+ yy751:
++p;
yych = *p;
if (yybm[0 + yych] & 2) {
- goto yy1645;
+ goto yy753;
}
if (yych <= '=') {
if (yych <= '-') {
if (yych <= ',')
- goto yy1633;
- goto yy1643;
+ goto yy741;
+ goto yy751;
} else {
if (yych <= '/')
- goto yy1633;
+ goto yy741;
if (yych <= '9')
- goto yy1643;
- goto yy1633;
+ goto yy751;
+ goto yy741;
}
} else {
if (yych <= 'Z') {
if (yych <= '>')
- goto yy1647;
+ goto yy755;
if (yych <= '@')
- goto yy1633;
- goto yy1643;
+ goto yy741;
+ goto yy751;
} else {
if (yych <= '`')
- goto yy1633;
+ goto yy741;
if (yych <= 'z')
- goto yy1643;
- goto yy1633;
+ goto yy751;
+ goto yy741;
}
}
- yy1645:
+ yy753:
++p;
yych = *p;
if (yybm[0 + yych] & 2) {
- goto yy1645;
+ goto yy753;
}
if (yych != '>')
- goto yy1633;
- yy1647:
+ goto yy741;
+ yy755:
++p;
yych = *p;
if (yybm[0 + yych] & 4) {
- goto yy1647;
+ goto yy755;
}
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
if (yych <= '\n')
- goto yy1649;
+ goto yy757;
if (yych <= '\v')
- goto yy1633;
+ goto yy741;
if (yych <= '\r')
- goto yy1652;
- goto yy1633;
- yy1649:
+ goto yy760;
+ goto yy741;
+ yy757:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 4) {
- goto yy1647;
+ goto yy755;
}
if (yych <= 0x08)
- goto yy1651;
+ goto yy759;
if (yych <= '\n')
- goto yy1649;
+ goto yy757;
if (yych <= '\v')
- goto yy1651;
+ goto yy759;
if (yych <= '\r')
- goto yy1652;
- yy1651 : { return 7; }
- yy1652:
+ goto yy760;
+ yy759 : { return 7; }
+ yy760:
yych = *++p;
- goto yy1651;
- yy1653:
+ goto yy759;
+ yy761:
++p;
yych = *p;
if (yych <= ':') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
if (yych <= '\r')
- goto yy1653;
+ goto yy761;
if (yych <= 0x1F)
- goto yy1633;
- goto yy1653;
+ goto yy741;
+ goto yy761;
} else {
if (yych == '/')
- goto yy1655;
+ goto yy763;
if (yych <= '9')
- goto yy1633;
- goto yy1656;
+ goto yy741;
+ goto yy764;
}
} else {
if (yych <= 'Z') {
if (yych == '>')
- goto yy1647;
+ goto yy755;
if (yych <= '@')
- goto yy1633;
- goto yy1656;
+ goto yy741;
+ goto yy764;
} else {
if (yych <= '_') {
if (yych <= '^')
- goto yy1633;
- goto yy1656;
+ goto yy741;
+ goto yy764;
} else {
if (yych <= '`')
- goto yy1633;
+ goto yy741;
if (yych <= 'z')
- goto yy1656;
- goto yy1633;
+ goto yy764;
+ goto yy741;
}
}
}
- yy1655:
+ yy763:
yych = *++p;
if (yych == '>')
- goto yy1647;
- goto yy1633;
- yy1656:
+ goto yy755;
+ goto yy741;
+ yy764:
++p;
yych = *p;
if (yybm[0 + yych] & 16) {
- goto yy1656;
+ goto yy764;
}
if (yych <= ',') {
if (yych <= '\r') {
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
} else {
if (yych != ' ')
- goto yy1633;
+ goto yy741;
}
} else {
if (yych <= '<') {
if (yych <= '/')
- goto yy1655;
- goto yy1633;
+ goto yy763;
+ goto yy741;
} else {
if (yych <= '=')
- goto yy1660;
+ goto yy768;
if (yych <= '>')
- goto yy1647;
- goto yy1633;
+ goto yy755;
+ goto yy741;
}
}
- yy1658:
+ yy766:
++p;
yych = *p;
if (yych <= '<') {
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
if (yych <= '\r')
- goto yy1658;
+ goto yy766;
if (yych <= 0x1F)
- goto yy1633;
- goto yy1658;
+ goto yy741;
+ goto yy766;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1633;
- goto yy1655;
+ goto yy741;
+ goto yy763;
} else {
if (yych == ':')
- goto yy1656;
- goto yy1633;
+ goto yy764;
+ goto yy741;
}
}
} else {
if (yych <= 'Z') {
if (yych <= '=')
- goto yy1660;
+ goto yy768;
if (yych <= '>')
- goto yy1647;
+ goto yy755;
if (yych <= '@')
- goto yy1633;
- goto yy1656;
+ goto yy741;
+ goto yy764;
} else {
if (yych <= '_') {
if (yych <= '^')
- goto yy1633;
- goto yy1656;
+ goto yy741;
+ goto yy764;
} else {
if (yych <= '`')
- goto yy1633;
+ goto yy741;
if (yych <= 'z')
- goto yy1656;
- goto yy1633;
+ goto yy764;
+ goto yy741;
}
}
}
- yy1660:
+ yy768:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1662;
+ goto yy770;
}
if (yych <= 0xE0) {
if (yych <= '"') {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych >= '!')
- goto yy1673;
+ goto yy781;
} else {
if (yych <= '\'')
- goto yy1671;
+ goto yy779;
if (yych <= 0xC1)
- goto yy1633;
+ goto yy741;
if (yych <= 0xDF)
- goto yy1664;
- goto yy1665;
+ goto yy772;
+ goto yy773;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1662;
+ goto yy770;
}
if (yych <= 0xDF) {
if (yych <= '\'') {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= ' ')
- goto yy1696;
+ goto yy804;
if (yych <= '"')
- goto yy1673;
- goto yy1671;
+ goto yy781;
+ goto yy779;
} else {
if (yych == '>')
- goto yy1647;
+ goto yy755;
if (yych <= 0xC1)
- goto yy1633;
- goto yy1664;
+ goto yy741;
+ goto yy772;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1665;
+ goto yy773;
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
- yy1662:
+ yy770:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1662;
+ goto yy770;
}
if (yych <= 0xE0) {
if (yych <= '=') {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= ' ')
- goto yy1690;
- goto yy1633;
+ goto yy798;
+ goto yy741;
} else {
if (yych <= '>')
- goto yy1647;
+ goto yy755;
if (yych <= 0xC1)
- goto yy1633;
+ goto yy741;
if (yych >= 0xE0)
- goto yy1665;
+ goto yy773;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
- yy1664:
+ yy772:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1662;
- goto yy1633;
- yy1665:
+ goto yy770;
+ goto yy741;
+ yy773:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1664;
- goto yy1633;
- yy1666:
+ goto yy772;
+ goto yy741;
+ yy774:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1664;
- goto yy1633;
- yy1667:
+ goto yy772;
+ goto yy741;
+ yy775:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1666;
- goto yy1633;
- yy1668:
+ goto yy774;
+ goto yy741;
+ yy776:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1666;
- goto yy1633;
- yy1669:
+ goto yy774;
+ goto yy741;
+ yy777:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x8F)
- goto yy1666;
- goto yy1633;
- yy1670:
+ goto yy774;
+ goto yy741;
+ yy778:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x9F)
- goto yy1664;
- goto yy1633;
- yy1671:
+ goto yy772;
+ goto yy741;
+ yy779:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1671;
+ goto yy779;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= '\'')
- goto yy1682;
- goto yy1633;
+ goto yy790;
+ goto yy741;
} else {
if (yych <= 0xDF)
- goto yy1683;
+ goto yy791;
if (yych <= 0xE0)
- goto yy1684;
- goto yy1685;
+ goto yy792;
+ goto yy793;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1689;
+ goto yy797;
if (yych <= 0xEF)
- goto yy1685;
- goto yy1686;
+ goto yy793;
+ goto yy794;
} else {
if (yych <= 0xF3)
- goto yy1687;
+ goto yy795;
if (yych <= 0xF4)
- goto yy1688;
- goto yy1633;
+ goto yy796;
+ goto yy741;
}
}
- yy1673:
+ yy781:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1673;
+ goto yy781;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= '"')
- goto yy1682;
- goto yy1633;
+ goto yy790;
+ goto yy741;
} else {
if (yych <= 0xDF)
- goto yy1675;
+ goto yy783;
if (yych <= 0xE0)
- goto yy1676;
- goto yy1677;
+ goto yy784;
+ goto yy785;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1681;
+ goto yy789;
if (yych <= 0xEF)
- goto yy1677;
- goto yy1678;
+ goto yy785;
+ goto yy786;
} else {
if (yych <= 0xF3)
- goto yy1679;
+ goto yy787;
if (yych <= 0xF4)
- goto yy1680;
- goto yy1633;
+ goto yy788;
+ goto yy741;
}
}
- yy1675:
+ yy783:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1673;
- goto yy1633;
- yy1676:
+ goto yy781;
+ goto yy741;
+ yy784:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1675;
- goto yy1633;
- yy1677:
+ goto yy783;
+ goto yy741;
+ yy785:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1675;
- goto yy1633;
- yy1678:
+ goto yy783;
+ goto yy741;
+ yy786:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1677;
- goto yy1633;
- yy1679:
+ goto yy785;
+ goto yy741;
+ yy787:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1677;
- goto yy1633;
- yy1680:
+ goto yy785;
+ goto yy741;
+ yy788:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x8F)
- goto yy1677;
- goto yy1633;
- yy1681:
+ goto yy785;
+ goto yy741;
+ yy789:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x9F)
- goto yy1675;
- goto yy1633;
- yy1682:
+ goto yy783;
+ goto yy741;
+ yy790:
++p;
yych = *p;
if (yych <= ' ') {
if (yych <= 0x08)
- goto yy1633;
+ goto yy741;
if (yych <= '\r')
- goto yy1653;
+ goto yy761;
if (yych <= 0x1F)
- goto yy1633;
- goto yy1653;
+ goto yy741;
+ goto yy761;
} else {
if (yych <= '/') {
if (yych <= '.')
- goto yy1633;
- goto yy1655;
+ goto yy741;
+ goto yy763;
} else {
if (yych == '>')
- goto yy1647;
- goto yy1633;
+ goto yy755;
+ goto yy741;
}
}
- yy1683:
+ yy791:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1671;
- goto yy1633;
- yy1684:
+ goto yy779;
+ goto yy741;
+ yy792:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1683;
- goto yy1633;
- yy1685:
+ goto yy791;
+ goto yy741;
+ yy793:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1683;
- goto yy1633;
- yy1686:
+ goto yy791;
+ goto yy741;
+ yy794:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1685;
- goto yy1633;
- yy1687:
+ goto yy793;
+ goto yy741;
+ yy795:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0xBF)
- goto yy1685;
- goto yy1633;
- yy1688:
+ goto yy793;
+ goto yy741;
+ yy796:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x8F)
- goto yy1685;
- goto yy1633;
- yy1689:
+ goto yy793;
+ goto yy741;
+ yy797:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1633;
+ goto yy741;
if (yych <= 0x9F)
- goto yy1683;
- goto yy1633;
- yy1690:
+ goto yy791;
+ goto yy741;
+ yy798:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '"') {
if (yych <= '\r') {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= 0x08)
- goto yy1662;
- goto yy1690;
+ goto yy770;
+ goto yy798;
} else {
if (yych == ' ')
- goto yy1690;
+ goto yy798;
if (yych <= '!')
- goto yy1662;
- goto yy1633;
+ goto yy770;
+ goto yy741;
}
} else {
if (yych <= ':') {
if (yych == '\'')
- goto yy1633;
+ goto yy741;
if (yych <= '9')
- goto yy1662;
+ goto yy770;
} else {
if (yych <= ';')
- goto yy1662;
+ goto yy770;
if (yych <= '=')
- goto yy1633;
+ goto yy741;
if (yych <= '>')
- goto yy1647;
- goto yy1662;
+ goto yy755;
+ goto yy770;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1692;
+ goto yy800;
if (yych <= '^')
- goto yy1662;
+ goto yy770;
if (yych >= '`')
- goto yy1633;
+ goto yy741;
} else {
if (yych <= 'z')
- goto yy1692;
+ goto yy800;
if (yych <= 0x7F)
- goto yy1662;
+ goto yy770;
if (yych <= 0xC1)
- goto yy1633;
- goto yy1664;
+ goto yy741;
+ goto yy772;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1665;
+ goto yy773;
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
}
- yy1692:
+ yy800:
++p;
yych = *p;
if (yych <= '>') {
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= 0x08)
- goto yy1662;
+ goto yy770;
if (yych >= 0x0E)
- goto yy1662;
+ goto yy770;
} else {
if (yych <= ' ')
- goto yy1694;
+ goto yy802;
if (yych == '"')
- goto yy1633;
- goto yy1662;
+ goto yy741;
+ goto yy770;
}
} else {
if (yych <= '/') {
if (yych <= '\'')
- goto yy1633;
+ goto yy741;
if (yych <= ',')
- goto yy1662;
+ goto yy770;
if (yych <= '.')
- goto yy1692;
- goto yy1662;
+ goto yy800;
+ goto yy770;
} else {
if (yych <= ';') {
if (yych <= ':')
- goto yy1692;
- goto yy1662;
+ goto yy800;
+ goto yy770;
} else {
if (yych <= '<')
- goto yy1633;
+ goto yy741;
if (yych <= '=')
- goto yy1660;
- goto yy1647;
+ goto yy768;
+ goto yy755;
}
}
}
@@ -19937,188 +13308,188 @@ bufsize_t _scan_html_block_start_7(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '_') {
if (yych <= '@')
- goto yy1662;
+ goto yy770;
if (yych <= 'Z')
- goto yy1692;
+ goto yy800;
if (yych <= '^')
- goto yy1662;
- goto yy1692;
+ goto yy770;
+ goto yy800;
} else {
if (yych <= '`')
- goto yy1633;
+ goto yy741;
if (yych <= 'z')
- goto yy1692;
+ goto yy800;
if (yych <= 0x7F)
- goto yy1662;
- goto yy1633;
+ goto yy770;
+ goto yy741;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1664;
+ goto yy772;
if (yych <= 0xE0)
- goto yy1665;
+ goto yy773;
if (yych <= 0xEC)
- goto yy1666;
- goto yy1670;
+ goto yy774;
+ goto yy778;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1666;
- goto yy1667;
+ goto yy774;
+ goto yy775;
} else {
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
}
}
- yy1694:
+ yy802:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= 0x08)
- goto yy1662;
+ goto yy770;
if (yych <= '\r')
- goto yy1694;
- goto yy1662;
+ goto yy802;
+ goto yy770;
} else {
if (yych <= ' ')
- goto yy1694;
+ goto yy802;
if (yych == '"')
- goto yy1633;
- goto yy1662;
+ goto yy741;
+ goto yy770;
}
} else {
if (yych <= ';') {
if (yych <= '\'')
- goto yy1633;
+ goto yy741;
if (yych == ':')
- goto yy1692;
- goto yy1662;
+ goto yy800;
+ goto yy770;
} else {
if (yych <= '<')
- goto yy1633;
+ goto yy741;
if (yych <= '=')
- goto yy1660;
+ goto yy768;
if (yych <= '>')
- goto yy1647;
- goto yy1662;
+ goto yy755;
+ goto yy770;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1692;
+ goto yy800;
if (yych <= '^')
- goto yy1662;
+ goto yy770;
if (yych <= '_')
- goto yy1692;
- goto yy1633;
+ goto yy800;
+ goto yy741;
} else {
if (yych <= 'z')
- goto yy1692;
+ goto yy800;
if (yych <= 0x7F)
- goto yy1662;
+ goto yy770;
if (yych <= 0xC1)
- goto yy1633;
- goto yy1664;
+ goto yy741;
+ goto yy772;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1665;
+ goto yy773;
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
}
- yy1696:
+ yy804:
++p;
yych = *p;
if (yych <= '@') {
if (yych <= '"') {
if (yych <= '\r') {
if (yych <= 0x00)
- goto yy1633;
+ goto yy741;
if (yych <= 0x08)
- goto yy1662;
- goto yy1696;
+ goto yy770;
+ goto yy804;
} else {
if (yych == ' ')
- goto yy1696;
+ goto yy804;
if (yych <= '!')
- goto yy1662;
- goto yy1673;
+ goto yy770;
+ goto yy781;
}
} else {
if (yych <= ':') {
if (yych == '\'')
- goto yy1671;
+ goto yy779;
if (yych <= '9')
- goto yy1662;
- goto yy1692;
+ goto yy770;
+ goto yy800;
} else {
if (yych <= ';')
- goto yy1662;
+ goto yy770;
if (yych <= '=')
- goto yy1633;
+ goto yy741;
if (yych <= '>')
- goto yy1647;
- goto yy1662;
+ goto yy755;
+ goto yy770;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= '`') {
if (yych <= 'Z')
- goto yy1692;
+ goto yy800;
if (yych <= '^')
- goto yy1662;
+ goto yy770;
if (yych <= '_')
- goto yy1692;
- goto yy1633;
+ goto yy800;
+ goto yy741;
} else {
if (yych <= 'z')
- goto yy1692;
+ goto yy800;
if (yych <= 0x7F)
- goto yy1662;
+ goto yy770;
if (yych <= 0xC1)
- goto yy1633;
- goto yy1664;
+ goto yy741;
+ goto yy772;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1665;
+ goto yy773;
if (yych == 0xED)
- goto yy1670;
- goto yy1666;
+ goto yy778;
+ goto yy774;
} else {
if (yych <= 0xF0)
- goto yy1667;
+ goto yy775;
if (yych <= 0xF3)
- goto yy1668;
+ goto yy776;
if (yych <= 0xF4)
- goto yy1669;
- goto yy1633;
+ goto yy777;
+ goto yy741;
}
}
}
@@ -20158,813 +13529,813 @@ bufsize_t _scan_html_block_end_1(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= ';') {
if (yych != '\n')
- goto yy1701;
+ goto yy809;
} else {
if (yych <= '<')
- goto yy1702;
+ goto yy810;
if (yych <= 0x7F)
- goto yy1701;
+ goto yy809;
if (yych >= 0xC2)
- goto yy1703;
+ goto yy811;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1705;
+ goto yy813;
if (yych == 0xED)
- goto yy1710;
- goto yy1706;
+ goto yy818;
+ goto yy814;
} else {
if (yych <= 0xF0)
- goto yy1707;
+ goto yy815;
if (yych <= 0xF3)
- goto yy1708;
+ goto yy816;
if (yych <= 0xF4)
- goto yy1709;
+ goto yy817;
}
}
- yy1700 : { return 0; }
- yy1701:
+ yy808 : { return 0; }
+ yy809:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1700;
- goto yy1715;
+ goto yy808;
+ goto yy823;
} else {
if (yych <= 0xC1)
- goto yy1700;
+ goto yy808;
if (yych <= 0xF4)
- goto yy1715;
- goto yy1700;
+ goto yy823;
+ goto yy808;
}
- yy1702:
+ yy810:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= '/') {
if (yych == '\n')
- goto yy1700;
+ goto yy808;
if (yych <= '.')
- goto yy1715;
- goto yy1711;
+ goto yy823;
+ goto yy819;
} else {
if (yych <= 0x7F)
- goto yy1715;
+ goto yy823;
if (yych <= 0xC1)
- goto yy1700;
+ goto yy808;
if (yych <= 0xF4)
- goto yy1715;
- goto yy1700;
+ goto yy823;
+ goto yy808;
}
- yy1703:
+ yy811:
yych = *++p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1701;
- yy1704:
+ goto yy809;
+ yy812:
p = marker;
if (yyaccept == 0) {
- goto yy1700;
+ goto yy808;
} else {
- goto yy1732;
+ goto yy840;
}
- yy1705:
+ yy813:
yych = *++p;
if (yych <= 0x9F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1703;
- goto yy1704;
- yy1706:
+ goto yy811;
+ goto yy812;
+ yy814:
yych = *++p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1703;
- goto yy1704;
- yy1707:
+ goto yy811;
+ goto yy812;
+ yy815:
yych = *++p;
if (yych <= 0x8F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1706;
- goto yy1704;
- yy1708:
+ goto yy814;
+ goto yy812;
+ yy816:
yych = *++p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1706;
- goto yy1704;
- yy1709:
+ goto yy814;
+ goto yy812;
+ yy817:
yych = *++p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0x8F)
- goto yy1706;
- goto yy1704;
- yy1710:
+ goto yy814;
+ goto yy812;
+ yy818:
yych = *++p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0x9F)
- goto yy1703;
- goto yy1704;
- yy1711:
+ goto yy811;
+ goto yy812;
+ yy819:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 's') {
if (yych <= 'R') {
if (yych <= '\n') {
if (yych <= '\t')
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
} else {
if (yych == 'P')
- goto yy1723;
- goto yy1714;
+ goto yy831;
+ goto yy822;
}
} else {
if (yych <= 'o') {
if (yych <= 'S')
- goto yy1724;
- goto yy1714;
+ goto yy832;
+ goto yy822;
} else {
if (yych <= 'p')
- goto yy1723;
+ goto yy831;
if (yych <= 'r')
- goto yy1714;
- goto yy1724;
+ goto yy822;
+ goto yy832;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
} else {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
- goto yy1718;
+ goto yy825;
+ goto yy826;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1722;
+ goto yy830;
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1712:
+ yy820:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xDF) {
if (yych <= '.') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
} else {
if (yych <= '/')
- goto yy1711;
+ goto yy819;
if (yych <= 0x7F)
- goto yy1714;
+ goto yy822;
if (yych <= 0xC1)
- goto yy1704;
- goto yy1716;
+ goto yy812;
+ goto yy824;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych == 0xED)
- goto yy1722;
- goto yy1718;
+ goto yy830;
+ goto yy826;
} else {
if (yych <= 0xF0)
- goto yy1719;
+ goto yy827;
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
- yy1714:
+ yy822:
++p;
yych = *p;
- yy1715:
+ yy823:
if (yybm[0 + yych] & 128) {
- goto yy1714;
+ goto yy822;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1704;
+ goto yy812;
if (yych <= '<')
- goto yy1712;
- goto yy1704;
+ goto yy820;
+ goto yy812;
} else {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
- goto yy1718;
+ goto yy825;
+ goto yy826;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1722;
+ goto yy830;
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
- yy1716:
+ yy824:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1714;
- goto yy1704;
- yy1717:
+ goto yy822;
+ goto yy812;
+ yy825:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1716;
- goto yy1704;
- yy1718:
+ goto yy824;
+ goto yy812;
+ yy826:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1716;
- goto yy1704;
- yy1719:
+ goto yy824;
+ goto yy812;
+ yy827:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1718;
- goto yy1704;
- yy1720:
+ goto yy826;
+ goto yy812;
+ yy828:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0xBF)
- goto yy1718;
- goto yy1704;
- yy1721:
+ goto yy826;
+ goto yy812;
+ yy829:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0x8F)
- goto yy1718;
- goto yy1704;
- yy1722:
+ goto yy826;
+ goto yy812;
+ yy830:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1704;
+ goto yy812;
if (yych <= 0x9F)
- goto yy1716;
- goto yy1704;
- yy1723:
+ goto yy824;
+ goto yy812;
+ yy831:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'R') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'Q')
- goto yy1714;
- goto yy1735;
+ goto yy822;
+ goto yy843;
} else {
if (yych == 'r')
- goto yy1735;
+ goto yy843;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1724:
+ yy832:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 't') {
if (yych <= 'S') {
if (yych <= '\n') {
if (yych <= '\t')
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
} else {
if (yych == 'C')
- goto yy1726;
- goto yy1714;
+ goto yy834;
+ goto yy822;
}
} else {
if (yych <= 'b') {
if (yych >= 'U')
- goto yy1714;
+ goto yy822;
} else {
if (yych <= 'c')
- goto yy1726;
+ goto yy834;
if (yych <= 's')
- goto yy1714;
+ goto yy822;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
} else {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
- goto yy1718;
+ goto yy825;
+ goto yy826;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1722;
+ goto yy830;
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'Y') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'X')
- goto yy1714;
- goto yy1733;
+ goto yy822;
+ goto yy841;
} else {
if (yych == 'y')
- goto yy1733;
+ goto yy841;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1726:
+ yy834:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'R') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'Q')
- goto yy1714;
+ goto yy822;
} else {
if (yych == 'r')
- goto yy1727;
+ goto yy835;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1727:
+ yy835:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'I') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'H')
- goto yy1714;
+ goto yy822;
} else {
if (yych == 'i')
- goto yy1728;
+ goto yy836;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1728:
+ yy836:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'P') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'O')
- goto yy1714;
+ goto yy822;
} else {
if (yych == 'p')
- goto yy1729;
+ goto yy837;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1729:
+ yy837:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'T') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'S')
- goto yy1714;
+ goto yy822;
} else {
if (yych == 't')
- goto yy1730;
+ goto yy838;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1730:
+ yy838:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xDF) {
if (yych <= '=') {
if (yych == '\n')
- goto yy1704;
- goto yy1714;
+ goto yy812;
+ goto yy822;
} else {
if (yych <= '>')
- goto yy1731;
+ goto yy839;
if (yych <= 0x7F)
- goto yy1714;
+ goto yy822;
if (yych <= 0xC1)
- goto yy1704;
- goto yy1716;
+ goto yy812;
+ goto yy824;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych == 0xED)
- goto yy1722;
- goto yy1718;
+ goto yy830;
+ goto yy826;
} else {
if (yych <= 0xF0)
- goto yy1719;
+ goto yy827;
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
- yy1731:
+ yy839:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1714;
+ goto yy822;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1732;
+ goto yy840;
if (yych <= '<')
- goto yy1712;
+ goto yy820;
} else {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
- goto yy1718;
+ goto yy825;
+ goto yy826;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1722;
+ goto yy830;
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
+ goto yy829;
}
}
- yy1732 : { return (bufsize_t)(p - start); }
- yy1733:
+ yy840 : { return (bufsize_t)(p - start); }
+ yy841:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'L') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'K')
- goto yy1714;
+ goto yy822;
} else {
if (yych == 'l')
- goto yy1734;
+ goto yy842;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1734:
+ yy842:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'E') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'D')
- goto yy1714;
- goto yy1730;
+ goto yy822;
+ goto yy838;
} else {
if (yych == 'e')
- goto yy1730;
+ goto yy838;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
- yy1735:
+ yy843:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1712;
+ goto yy820;
}
if (yych <= 0xC1) {
if (yych <= 'E') {
if (yych == '\n')
- goto yy1704;
+ goto yy812;
if (yych <= 'D')
- goto yy1714;
- goto yy1730;
+ goto yy822;
+ goto yy838;
} else {
if (yych == 'e')
- goto yy1730;
+ goto yy838;
if (yych <= 0x7F)
- goto yy1714;
- goto yy1704;
+ goto yy822;
+ goto yy812;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1716;
+ goto yy824;
if (yych <= 0xE0)
- goto yy1717;
+ goto yy825;
if (yych <= 0xEC)
- goto yy1718;
- goto yy1722;
+ goto yy826;
+ goto yy830;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1718;
- goto yy1719;
+ goto yy826;
+ goto yy827;
} else {
if (yych <= 0xF3)
- goto yy1720;
+ goto yy828;
if (yych <= 0xF4)
- goto yy1721;
- goto yy1704;
+ goto yy829;
+ goto yy812;
}
}
}
@@ -21004,316 +14375,316 @@ bufsize_t _scan_html_block_end_2(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= ',') {
if (yych != '\n')
- goto yy1739;
+ goto yy847;
} else {
if (yych <= '-')
- goto yy1740;
+ goto yy848;
if (yych <= 0x7F)
- goto yy1739;
+ goto yy847;
if (yych >= 0xC2)
- goto yy1741;
+ goto yy849;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1743;
+ goto yy851;
if (yych == 0xED)
- goto yy1748;
- goto yy1744;
+ goto yy856;
+ goto yy852;
} else {
if (yych <= 0xF0)
- goto yy1745;
+ goto yy853;
if (yych <= 0xF3)
- goto yy1746;
+ goto yy854;
if (yych <= 0xF4)
- goto yy1747;
+ goto yy855;
}
}
- yy1738 : { return 0; }
- yy1739:
+ yy846 : { return 0; }
+ yy847:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1738;
- goto yy1752;
+ goto yy846;
+ goto yy860;
} else {
if (yych <= 0xC1)
- goto yy1738;
+ goto yy846;
if (yych <= 0xF4)
- goto yy1752;
- goto yy1738;
+ goto yy860;
+ goto yy846;
}
- yy1740:
+ yy848:
yyaccept = 0;
yych = *(marker = ++p);
if (yybm[0 + yych] & 64) {
- goto yy1749;
+ goto yy857;
}
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1738;
- goto yy1752;
+ goto yy846;
+ goto yy860;
} else {
if (yych <= 0xC1)
- goto yy1738;
+ goto yy846;
if (yych <= 0xF4)
- goto yy1752;
- goto yy1738;
+ goto yy860;
+ goto yy846;
}
- yy1741:
+ yy849:
yych = *++p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1739;
- yy1742:
+ goto yy847;
+ yy850:
p = marker;
if (yyaccept == 0) {
- goto yy1738;
+ goto yy846;
} else {
- goto yy1762;
+ goto yy870;
}
- yy1743:
+ yy851:
yych = *++p;
if (yych <= 0x9F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1741;
- goto yy1742;
- yy1744:
+ goto yy849;
+ goto yy850;
+ yy852:
yych = *++p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1741;
- goto yy1742;
- yy1745:
+ goto yy849;
+ goto yy850;
+ yy853:
yych = *++p;
if (yych <= 0x8F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1744;
- goto yy1742;
- yy1746:
+ goto yy852;
+ goto yy850;
+ yy854:
yych = *++p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1744;
- goto yy1742;
- yy1747:
+ goto yy852;
+ goto yy850;
+ yy855:
yych = *++p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0x8F)
- goto yy1744;
- goto yy1742;
- yy1748:
+ goto yy852;
+ goto yy850;
+ yy856:
yych = *++p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0x9F)
- goto yy1741;
- goto yy1742;
- yy1749:
+ goto yy849;
+ goto yy850;
+ yy857:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1749;
+ goto yy857;
}
if (yych <= 0xDF) {
if (yych <= '=') {
if (yych == '\n')
- goto yy1742;
+ goto yy850;
} else {
if (yych <= '>')
- goto yy1761;
+ goto yy869;
if (yych <= 0x7F)
- goto yy1751;
+ goto yy859;
if (yych <= 0xC1)
- goto yy1742;
- goto yy1753;
+ goto yy850;
+ goto yy861;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1754;
+ goto yy862;
if (yych == 0xED)
- goto yy1759;
- goto yy1755;
+ goto yy867;
+ goto yy863;
} else {
if (yych <= 0xF0)
- goto yy1756;
+ goto yy864;
if (yych <= 0xF3)
- goto yy1757;
+ goto yy865;
if (yych <= 0xF4)
- goto yy1758;
- goto yy1742;
+ goto yy866;
+ goto yy850;
}
}
- yy1751:
+ yy859:
++p;
yych = *p;
- yy1752:
+ yy860:
if (yybm[0 + yych] & 128) {
- goto yy1751;
+ goto yy859;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1742;
+ goto yy850;
if (yych <= '-')
- goto yy1760;
- goto yy1742;
+ goto yy868;
+ goto yy850;
} else {
if (yych <= 0xDF)
- goto yy1753;
+ goto yy861;
if (yych <= 0xE0)
- goto yy1754;
- goto yy1755;
+ goto yy862;
+ goto yy863;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1759;
+ goto yy867;
if (yych <= 0xEF)
- goto yy1755;
- goto yy1756;
+ goto yy863;
+ goto yy864;
} else {
if (yych <= 0xF3)
- goto yy1757;
+ goto yy865;
if (yych <= 0xF4)
- goto yy1758;
- goto yy1742;
+ goto yy866;
+ goto yy850;
}
}
- yy1753:
+ yy861:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1751;
- goto yy1742;
- yy1754:
+ goto yy859;
+ goto yy850;
+ yy862:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1753;
- goto yy1742;
- yy1755:
+ goto yy861;
+ goto yy850;
+ yy863:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1753;
- goto yy1742;
- yy1756:
+ goto yy861;
+ goto yy850;
+ yy864:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1755;
- goto yy1742;
- yy1757:
+ goto yy863;
+ goto yy850;
+ yy865:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0xBF)
- goto yy1755;
- goto yy1742;
- yy1758:
+ goto yy863;
+ goto yy850;
+ yy866:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0x8F)
- goto yy1755;
- goto yy1742;
- yy1759:
+ goto yy863;
+ goto yy850;
+ yy867:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1742;
+ goto yy850;
if (yych <= 0x9F)
- goto yy1753;
- goto yy1742;
- yy1760:
+ goto yy861;
+ goto yy850;
+ yy868:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1751;
+ goto yy859;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1742;
+ goto yy850;
if (yych <= '-')
- goto yy1749;
- goto yy1742;
+ goto yy857;
+ goto yy850;
} else {
if (yych <= 0xDF)
- goto yy1753;
+ goto yy861;
if (yych <= 0xE0)
- goto yy1754;
- goto yy1755;
+ goto yy862;
+ goto yy863;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1759;
+ goto yy867;
if (yych <= 0xEF)
- goto yy1755;
- goto yy1756;
+ goto yy863;
+ goto yy864;
} else {
if (yych <= 0xF3)
- goto yy1757;
+ goto yy865;
if (yych <= 0xF4)
- goto yy1758;
- goto yy1742;
+ goto yy866;
+ goto yy850;
}
}
- yy1761:
+ yy869:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1751;
+ goto yy859;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1762;
+ goto yy870;
if (yych <= '-')
- goto yy1760;
+ goto yy868;
} else {
if (yych <= 0xDF)
- goto yy1753;
+ goto yy861;
if (yych <= 0xE0)
- goto yy1754;
- goto yy1755;
+ goto yy862;
+ goto yy863;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1759;
+ goto yy867;
if (yych <= 0xEF)
- goto yy1755;
- goto yy1756;
+ goto yy863;
+ goto yy864;
} else {
if (yych <= 0xF3)
- goto yy1757;
+ goto yy865;
if (yych <= 0xF4)
- goto yy1758;
+ goto yy866;
}
}
- yy1762 : { return (bufsize_t)(p - start); }
+ yy870 : { return (bufsize_t)(p - start); }
}
}
@@ -21350,282 +14721,282 @@ bufsize_t _scan_html_block_end_3(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= '>') {
if (yych != '\n')
- goto yy1766;
+ goto yy874;
} else {
if (yych <= '?')
- goto yy1767;
+ goto yy875;
if (yych <= 0x7F)
- goto yy1766;
+ goto yy874;
if (yych >= 0xC2)
- goto yy1768;
+ goto yy876;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1770;
+ goto yy878;
if (yych == 0xED)
- goto yy1775;
- goto yy1771;
+ goto yy883;
+ goto yy879;
} else {
if (yych <= 0xF0)
- goto yy1772;
+ goto yy880;
if (yych <= 0xF3)
- goto yy1773;
+ goto yy881;
if (yych <= 0xF4)
- goto yy1774;
+ goto yy882;
}
}
- yy1765 : { return 0; }
- yy1766:
+ yy873 : { return 0; }
+ yy874:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1765;
- goto yy1781;
+ goto yy873;
+ goto yy889;
} else {
if (yych <= 0xC1)
- goto yy1765;
+ goto yy873;
if (yych <= 0xF4)
- goto yy1781;
- goto yy1765;
+ goto yy889;
+ goto yy873;
}
- yy1767:
+ yy875:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= '>') {
if (yych == '\n')
- goto yy1765;
+ goto yy873;
if (yych <= '=')
- goto yy1781;
- goto yy1776;
+ goto yy889;
+ goto yy884;
} else {
if (yych <= 0x7F)
- goto yy1781;
+ goto yy889;
if (yych <= 0xC1)
- goto yy1765;
+ goto yy873;
if (yych <= 0xF4)
- goto yy1781;
- goto yy1765;
+ goto yy889;
+ goto yy873;
}
- yy1768:
+ yy876:
yych = *++p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1766;
- yy1769:
+ goto yy874;
+ yy877:
p = marker;
if (yyaccept == 0) {
- goto yy1765;
+ goto yy873;
} else {
- goto yy1777;
+ goto yy885;
}
- yy1770:
+ yy878:
yych = *++p;
if (yych <= 0x9F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1768;
- goto yy1769;
- yy1771:
+ goto yy876;
+ goto yy877;
+ yy879:
yych = *++p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1768;
- goto yy1769;
- yy1772:
+ goto yy876;
+ goto yy877;
+ yy880:
yych = *++p;
if (yych <= 0x8F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1771;
- goto yy1769;
- yy1773:
+ goto yy879;
+ goto yy877;
+ yy881:
yych = *++p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1771;
- goto yy1769;
- yy1774:
+ goto yy879;
+ goto yy877;
+ yy882:
yych = *++p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0x8F)
- goto yy1771;
- goto yy1769;
- yy1775:
+ goto yy879;
+ goto yy877;
+ yy883:
yych = *++p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0x9F)
- goto yy1768;
- goto yy1769;
- yy1776:
+ goto yy876;
+ goto yy877;
+ yy884:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1780;
+ goto yy888;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1777;
+ goto yy885;
if (yych <= '?')
- goto yy1778;
+ goto yy886;
} else {
if (yych <= 0xDF)
- goto yy1782;
+ goto yy890;
if (yych <= 0xE0)
- goto yy1783;
- goto yy1784;
+ goto yy891;
+ goto yy892;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1788;
+ goto yy896;
if (yych <= 0xEF)
- goto yy1784;
- goto yy1785;
+ goto yy892;
+ goto yy893;
} else {
if (yych <= 0xF3)
- goto yy1786;
+ goto yy894;
if (yych <= 0xF4)
- goto yy1787;
+ goto yy895;
}
}
- yy1777 : { return (bufsize_t)(p - start); }
- yy1778:
+ yy885 : { return (bufsize_t)(p - start); }
+ yy886:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1778;
+ goto yy886;
}
if (yych <= 0xDF) {
if (yych <= '=') {
if (yych == '\n')
- goto yy1769;
+ goto yy877;
} else {
if (yych <= '>')
- goto yy1776;
+ goto yy884;
if (yych <= 0x7F)
- goto yy1780;
+ goto yy888;
if (yych <= 0xC1)
- goto yy1769;
- goto yy1782;
+ goto yy877;
+ goto yy890;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1783;
+ goto yy891;
if (yych == 0xED)
- goto yy1788;
- goto yy1784;
+ goto yy896;
+ goto yy892;
} else {
if (yych <= 0xF0)
- goto yy1785;
+ goto yy893;
if (yych <= 0xF3)
- goto yy1786;
+ goto yy894;
if (yych <= 0xF4)
- goto yy1787;
- goto yy1769;
+ goto yy895;
+ goto yy877;
}
}
- yy1780:
+ yy888:
++p;
yych = *p;
- yy1781:
+ yy889:
if (yybm[0 + yych] & 128) {
- goto yy1780;
+ goto yy888;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1769;
+ goto yy877;
if (yych <= '?')
- goto yy1778;
- goto yy1769;
+ goto yy886;
+ goto yy877;
} else {
if (yych <= 0xDF)
- goto yy1782;
+ goto yy890;
if (yych <= 0xE0)
- goto yy1783;
- goto yy1784;
+ goto yy891;
+ goto yy892;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1788;
+ goto yy896;
if (yych <= 0xEF)
- goto yy1784;
- goto yy1785;
+ goto yy892;
+ goto yy893;
} else {
if (yych <= 0xF3)
- goto yy1786;
+ goto yy894;
if (yych <= 0xF4)
- goto yy1787;
- goto yy1769;
+ goto yy895;
+ goto yy877;
}
}
- yy1782:
+ yy890:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1780;
- goto yy1769;
- yy1783:
+ goto yy888;
+ goto yy877;
+ yy891:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1782;
- goto yy1769;
- yy1784:
+ goto yy890;
+ goto yy877;
+ yy892:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1782;
- goto yy1769;
- yy1785:
+ goto yy890;
+ goto yy877;
+ yy893:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1784;
- goto yy1769;
- yy1786:
+ goto yy892;
+ goto yy877;
+ yy894:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0xBF)
- goto yy1784;
- goto yy1769;
- yy1787:
+ goto yy892;
+ goto yy877;
+ yy895:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0x8F)
- goto yy1784;
- goto yy1769;
- yy1788:
+ goto yy892;
+ goto yy877;
+ yy896:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1769;
+ goto yy877;
if (yych <= 0x9F)
- goto yy1782;
- goto yy1769;
+ goto yy890;
+ goto yy877;
}
}
@@ -21662,242 +15033,242 @@ bufsize_t _scan_html_block_end_4(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= '=') {
if (yych != '\n')
- goto yy1792;
+ goto yy900;
} else {
if (yych <= '>')
- goto yy1793;
+ goto yy901;
if (yych <= 0x7F)
- goto yy1792;
+ goto yy900;
if (yych >= 0xC2)
- goto yy1795;
+ goto yy903;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1797;
+ goto yy905;
if (yych == 0xED)
- goto yy1802;
- goto yy1798;
+ goto yy910;
+ goto yy906;
} else {
if (yych <= 0xF0)
- goto yy1799;
+ goto yy907;
if (yych <= 0xF3)
- goto yy1800;
+ goto yy908;
if (yych <= 0xF4)
- goto yy1801;
+ goto yy909;
}
}
- yy1791 : { return 0; }
- yy1792:
+ yy899 : { return 0; }
+ yy900:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1791;
- goto yy1806;
+ goto yy899;
+ goto yy914;
} else {
if (yych <= 0xC1)
- goto yy1791;
+ goto yy899;
if (yych <= 0xF4)
- goto yy1806;
- goto yy1791;
+ goto yy914;
+ goto yy899;
}
- yy1793:
+ yy901:
yyaccept = 1;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych != '\n')
- goto yy1806;
+ goto yy914;
} else {
if (yych <= 0xC1)
- goto yy1794;
+ goto yy902;
if (yych <= 0xF4)
- goto yy1806;
+ goto yy914;
}
- yy1794 : { return (bufsize_t)(p - start); }
- yy1795:
+ yy902 : { return (bufsize_t)(p - start); }
+ yy903:
yych = *++p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1792;
- yy1796:
+ goto yy900;
+ yy904:
p = marker;
if (yyaccept == 0) {
- goto yy1791;
+ goto yy899;
} else {
- goto yy1794;
+ goto yy902;
}
- yy1797:
+ yy905:
yych = *++p;
if (yych <= 0x9F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1795;
- goto yy1796;
- yy1798:
+ goto yy903;
+ goto yy904;
+ yy906:
yych = *++p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1795;
- goto yy1796;
- yy1799:
+ goto yy903;
+ goto yy904;
+ yy907:
yych = *++p;
if (yych <= 0x8F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1798;
- goto yy1796;
- yy1800:
+ goto yy906;
+ goto yy904;
+ yy908:
yych = *++p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1798;
- goto yy1796;
- yy1801:
+ goto yy906;
+ goto yy904;
+ yy909:
yych = *++p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0x8F)
- goto yy1798;
- goto yy1796;
- yy1802:
+ goto yy906;
+ goto yy904;
+ yy910:
yych = *++p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0x9F)
- goto yy1795;
- goto yy1796;
- yy1803:
+ goto yy903;
+ goto yy904;
+ yy911:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1805;
+ goto yy913;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1794;
+ goto yy902;
if (yych <= '>')
- goto yy1803;
- goto yy1794;
+ goto yy911;
+ goto yy902;
} else {
if (yych <= 0xDF)
- goto yy1807;
+ goto yy915;
if (yych <= 0xE0)
- goto yy1808;
- goto yy1809;
+ goto yy916;
+ goto yy917;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1813;
+ goto yy921;
if (yych <= 0xEF)
- goto yy1809;
- goto yy1810;
+ goto yy917;
+ goto yy918;
} else {
if (yych <= 0xF3)
- goto yy1811;
+ goto yy919;
if (yych <= 0xF4)
- goto yy1812;
- goto yy1794;
+ goto yy920;
+ goto yy902;
}
}
- yy1805:
+ yy913:
++p;
yych = *p;
- yy1806:
+ yy914:
if (yybm[0 + yych] & 128) {
- goto yy1805;
+ goto yy913;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1796;
+ goto yy904;
if (yych <= '>')
- goto yy1803;
- goto yy1796;
+ goto yy911;
+ goto yy904;
} else {
if (yych <= 0xDF)
- goto yy1807;
+ goto yy915;
if (yych <= 0xE0)
- goto yy1808;
- goto yy1809;
+ goto yy916;
+ goto yy917;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1813;
+ goto yy921;
if (yych <= 0xEF)
- goto yy1809;
- goto yy1810;
+ goto yy917;
+ goto yy918;
} else {
if (yych <= 0xF3)
- goto yy1811;
+ goto yy919;
if (yych <= 0xF4)
- goto yy1812;
- goto yy1796;
+ goto yy920;
+ goto yy904;
}
}
- yy1807:
+ yy915:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1805;
- goto yy1796;
- yy1808:
+ goto yy913;
+ goto yy904;
+ yy916:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1807;
- goto yy1796;
- yy1809:
+ goto yy915;
+ goto yy904;
+ yy917:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1807;
- goto yy1796;
- yy1810:
+ goto yy915;
+ goto yy904;
+ yy918:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1809;
- goto yy1796;
- yy1811:
+ goto yy917;
+ goto yy904;
+ yy919:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0xBF)
- goto yy1809;
- goto yy1796;
- yy1812:
+ goto yy917;
+ goto yy904;
+ yy920:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0x8F)
- goto yy1809;
- goto yy1796;
- yy1813:
+ goto yy917;
+ goto yy904;
+ yy921:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1796;
+ goto yy904;
if (yych <= 0x9F)
- goto yy1807;
- goto yy1796;
+ goto yy915;
+ goto yy904;
}
}
@@ -21934,316 +15305,316 @@ bufsize_t _scan_html_block_end_5(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= '\\') {
if (yych != '\n')
- goto yy1817;
+ goto yy925;
} else {
if (yych <= ']')
- goto yy1818;
+ goto yy926;
if (yych <= 0x7F)
- goto yy1817;
+ goto yy925;
if (yych >= 0xC2)
- goto yy1819;
+ goto yy927;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1821;
+ goto yy929;
if (yych == 0xED)
- goto yy1826;
- goto yy1822;
+ goto yy934;
+ goto yy930;
} else {
if (yych <= 0xF0)
- goto yy1823;
+ goto yy931;
if (yych <= 0xF3)
- goto yy1824;
+ goto yy932;
if (yych <= 0xF4)
- goto yy1825;
+ goto yy933;
}
}
- yy1816 : { return 0; }
- yy1817:
+ yy924 : { return 0; }
+ yy925:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1816;
- goto yy1830;
+ goto yy924;
+ goto yy938;
} else {
if (yych <= 0xC1)
- goto yy1816;
+ goto yy924;
if (yych <= 0xF4)
- goto yy1830;
- goto yy1816;
+ goto yy938;
+ goto yy924;
}
- yy1818:
+ yy926:
yyaccept = 0;
yych = *(marker = ++p);
if (yybm[0 + yych] & 64) {
- goto yy1827;
+ goto yy935;
}
if (yych <= 0x7F) {
if (yych == '\n')
- goto yy1816;
- goto yy1830;
+ goto yy924;
+ goto yy938;
} else {
if (yych <= 0xC1)
- goto yy1816;
+ goto yy924;
if (yych <= 0xF4)
- goto yy1830;
- goto yy1816;
+ goto yy938;
+ goto yy924;
}
- yy1819:
+ yy927:
yych = *++p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1817;
- yy1820:
+ goto yy925;
+ yy928:
p = marker;
if (yyaccept == 0) {
- goto yy1816;
+ goto yy924;
} else {
- goto yy1840;
+ goto yy948;
}
- yy1821:
+ yy929:
yych = *++p;
if (yych <= 0x9F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1819;
- goto yy1820;
- yy1822:
+ goto yy927;
+ goto yy928;
+ yy930:
yych = *++p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1819;
- goto yy1820;
- yy1823:
+ goto yy927;
+ goto yy928;
+ yy931:
yych = *++p;
if (yych <= 0x8F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1822;
- goto yy1820;
- yy1824:
+ goto yy930;
+ goto yy928;
+ yy932:
yych = *++p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1822;
- goto yy1820;
- yy1825:
+ goto yy930;
+ goto yy928;
+ yy933:
yych = *++p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0x8F)
- goto yy1822;
- goto yy1820;
- yy1826:
+ goto yy930;
+ goto yy928;
+ yy934:
yych = *++p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0x9F)
- goto yy1819;
- goto yy1820;
- yy1827:
+ goto yy927;
+ goto yy928;
+ yy935:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1827;
+ goto yy935;
}
if (yych <= 0xDF) {
if (yych <= '=') {
if (yych == '\n')
- goto yy1820;
+ goto yy928;
} else {
if (yych <= '>')
- goto yy1839;
+ goto yy947;
if (yych <= 0x7F)
- goto yy1829;
+ goto yy937;
if (yych <= 0xC1)
- goto yy1820;
- goto yy1831;
+ goto yy928;
+ goto yy939;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1832;
+ goto yy940;
if (yych == 0xED)
- goto yy1837;
- goto yy1833;
+ goto yy945;
+ goto yy941;
} else {
if (yych <= 0xF0)
- goto yy1834;
+ goto yy942;
if (yych <= 0xF3)
- goto yy1835;
+ goto yy943;
if (yych <= 0xF4)
- goto yy1836;
- goto yy1820;
+ goto yy944;
+ goto yy928;
}
}
- yy1829:
+ yy937:
++p;
yych = *p;
- yy1830:
+ yy938:
if (yybm[0 + yych] & 128) {
- goto yy1829;
+ goto yy937;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1820;
+ goto yy928;
if (yych <= ']')
- goto yy1838;
- goto yy1820;
+ goto yy946;
+ goto yy928;
} else {
if (yych <= 0xDF)
- goto yy1831;
+ goto yy939;
if (yych <= 0xE0)
- goto yy1832;
- goto yy1833;
+ goto yy940;
+ goto yy941;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1837;
+ goto yy945;
if (yych <= 0xEF)
- goto yy1833;
- goto yy1834;
+ goto yy941;
+ goto yy942;
} else {
if (yych <= 0xF3)
- goto yy1835;
+ goto yy943;
if (yych <= 0xF4)
- goto yy1836;
- goto yy1820;
+ goto yy944;
+ goto yy928;
}
}
- yy1831:
+ yy939:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1829;
- goto yy1820;
- yy1832:
+ goto yy937;
+ goto yy928;
+ yy940:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1831;
- goto yy1820;
- yy1833:
+ goto yy939;
+ goto yy928;
+ yy941:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1831;
- goto yy1820;
- yy1834:
+ goto yy939;
+ goto yy928;
+ yy942:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1833;
- goto yy1820;
- yy1835:
+ goto yy941;
+ goto yy928;
+ yy943:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0xBF)
- goto yy1833;
- goto yy1820;
- yy1836:
+ goto yy941;
+ goto yy928;
+ yy944:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0x8F)
- goto yy1833;
- goto yy1820;
- yy1837:
+ goto yy941;
+ goto yy928;
+ yy945:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1820;
+ goto yy928;
if (yych <= 0x9F)
- goto yy1831;
- goto yy1820;
- yy1838:
+ goto yy939;
+ goto yy928;
+ yy946:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1829;
+ goto yy937;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1820;
+ goto yy928;
if (yych <= ']')
- goto yy1827;
- goto yy1820;
+ goto yy935;
+ goto yy928;
} else {
if (yych <= 0xDF)
- goto yy1831;
+ goto yy939;
if (yych <= 0xE0)
- goto yy1832;
- goto yy1833;
+ goto yy940;
+ goto yy941;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1837;
+ goto yy945;
if (yych <= 0xEF)
- goto yy1833;
- goto yy1834;
+ goto yy941;
+ goto yy942;
} else {
if (yych <= 0xF3)
- goto yy1835;
+ goto yy943;
if (yych <= 0xF4)
- goto yy1836;
- goto yy1820;
+ goto yy944;
+ goto yy928;
}
}
- yy1839:
+ yy947:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1829;
+ goto yy937;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\n')
- goto yy1840;
+ goto yy948;
if (yych <= ']')
- goto yy1838;
+ goto yy946;
} else {
if (yych <= 0xDF)
- goto yy1831;
+ goto yy939;
if (yych <= 0xE0)
- goto yy1832;
- goto yy1833;
+ goto yy940;
+ goto yy941;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1837;
+ goto yy945;
if (yych <= 0xEF)
- goto yy1833;
- goto yy1834;
+ goto yy941;
+ goto yy942;
} else {
if (yych <= 0xF3)
- goto yy1835;
+ goto yy943;
if (yych <= 0xF4)
- goto yy1836;
+ goto yy944;
}
}
- yy1840 : { return (bufsize_t)(p - start); }
+ yy948 : { return (bufsize_t)(p - start); }
}
}
@@ -22259,9 +15630,9 @@ bufsize_t _scan_link_url(const unsigned char *p) {
unsigned char yych;
unsigned int yyaccept = 0;
static const unsigned char yybm[] = {
- 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 8, 128, 128, 8,
+ 0, 128, 128, 128, 128, 128, 128, 128, 128, 0, 8, 128, 128, 8,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,
+ 128, 128, 128, 128, 8, 224, 224, 224, 224, 224, 224, 224, 128, 128,
224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
224, 224, 224, 224, 32, 224, 32, 224, 224, 224, 224, 224, 224, 224,
224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
@@ -22284,1995 +15655,2050 @@ bufsize_t _scan_link_url(const unsigned char *p) {
if (yych <= ' ') {
if (yych <= '\f') {
if (yych == '\n')
- goto yy1844;
- goto yy1860;
+ goto yy952;
+ goto yy968;
} else {
if (yych <= '\r')
- goto yy1846;
+ goto yy954;
if (yych <= 0x1F)
- goto yy1860;
- goto yy1846;
+ goto yy968;
+ goto yy954;
}
} else {
if (yych <= ')') {
if (yych <= '\'')
- goto yy1848;
+ goto yy956;
if (yych <= '(')
- goto yy1859;
- goto yy1860;
+ goto yy966;
+ goto yy968;
} else {
if (yych == '<')
- goto yy1847;
- goto yy1848;
+ goto yy955;
+ goto yy956;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1857;
+ goto yy965;
if (yych <= 0x7F)
- goto yy1848;
+ goto yy956;
} else {
if (yych <= 0xDF)
- goto yy1849;
+ goto yy957;
if (yych <= 0xE0)
- goto yy1851;
- goto yy1852;
+ goto yy959;
+ goto yy960;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1856;
+ goto yy964;
if (yych <= 0xEF)
- goto yy1852;
- goto yy1853;
+ goto yy960;
+ goto yy961;
} else {
if (yych <= 0xF3)
- goto yy1854;
+ goto yy962;
if (yych <= 0xF4)
- goto yy1855;
+ goto yy963;
}
}
}
- yy1843 : { return (bufsize_t)(p - start); }
- yy1844:
+ yy951 : { return (bufsize_t)(p - start); }
+ yy952:
yyaccept = 0;
marker = ++p;
yych = *p;
- yy1845:
+ yy953:
if (yybm[0 + yych] & 8) {
- goto yy1844;
+ goto yy952;
}
if (yych <= 0x7F) {
if (yych <= ')') {
if (yych <= 0x1F)
- goto yy1843;
+ goto yy951;
if (yych <= '\'')
- goto yy1872;
+ goto yy980;
if (yych <= '(')
- goto yy1863;
- goto yy1843;
+ goto yy971;
+ goto yy951;
} else {
if (yych <= '<') {
if (yych <= ';')
- goto yy1872;
- goto yy1907;
+ goto yy980;
+ goto yy1016;
} else {
if (yych == '\\')
- goto yy1881;
- goto yy1872;
+ goto yy982;
+ goto yy980;
}
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF) {
if (yych <= 0xC1)
- goto yy1843;
- goto yy1874;
+ goto yy951;
+ goto yy983;
} else {
if (yych <= 0xE0)
- goto yy1875;
+ goto yy984;
if (yych <= 0xEC)
- goto yy1876;
- goto yy1880;
+ goto yy985;
+ goto yy989;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1876;
- goto yy1877;
+ goto yy985;
+ goto yy986;
} else {
if (yych <= 0xF3)
- goto yy1878;
+ goto yy987;
if (yych <= 0xF4)
- goto yy1879;
- goto yy1843;
+ goto yy988;
+ goto yy951;
}
}
}
- yy1846:
+ yy954:
yyaccept = 0;
yych = *(marker = ++p);
- goto yy1845;
- yy1847:
+ goto yy953;
+ yy955:
yyaccept = 0;
yych = *(marker = ++p);
if (yybm[0 + yych] & 64) {
- goto yy1907;
+ goto yy1016;
}
if (yych <= '>') {
if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x08) {
if (yych <= 0x00)
- goto yy1843;
- goto yy1921;
+ goto yy951;
+ goto yy1029;
} else {
if (yych <= '\n')
- goto yy1843;
+ goto yy951;
if (yych <= '\f')
- goto yy1921;
- goto yy1843;
+ goto yy1029;
+ goto yy951;
}
} else {
if (yych <= '(') {
+ if (yych <= 0x1F)
+ goto yy1029;
if (yych <= ' ')
- goto yy1921;
- goto yy1919;
+ goto yy951;
+ goto yy1027;
} else {
if (yych <= ')')
- goto yy1921;
+ goto yy1029;
if (yych <= '<')
- goto yy1872;
- goto yy1909;
+ goto yy980;
+ goto yy1018;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1918;
- goto yy1843;
+ goto yy1015;
+ goto yy951;
} else {
if (yych <= 0xDF)
- goto yy1911;
+ goto yy1020;
if (yych <= 0xE0)
- goto yy1912;
- goto yy1913;
+ goto yy1021;
+ goto yy1022;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1917;
+ goto yy1026;
if (yych <= 0xEF)
- goto yy1913;
- goto yy1914;
+ goto yy1022;
+ goto yy1023;
} else {
if (yych <= 0xF3)
- goto yy1915;
+ goto yy1024;
if (yych <= 0xF4)
- goto yy1916;
- goto yy1843;
+ goto yy1025;
+ goto yy951;
}
}
}
- yy1848:
+ yy956:
yyaccept = 0;
yych = *(marker = ++p);
- goto yy1873;
- yy1849:
+ goto yy981;
+ yy957:
yych = *++p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1848;
- yy1850:
+ goto yy956;
+ yy958:
p = marker;
if (yyaccept <= 1) {
if (yyaccept == 0) {
- goto yy1843;
+ goto yy951;
} else {
- goto yy1858;
+ goto yy967;
}
} else {
- goto yy1910;
+ goto yy1019;
}
- yy1851:
+ yy959:
yych = *++p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1849;
- goto yy1850;
- yy1852:
+ goto yy957;
+ goto yy958;
+ yy960:
yych = *++p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1849;
- goto yy1850;
- yy1853:
+ goto yy957;
+ goto yy958;
+ yy961:
yych = *++p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1852;
- goto yy1850;
- yy1854:
+ goto yy960;
+ goto yy958;
+ yy962:
yych = *++p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1852;
- goto yy1850;
- yy1855:
+ goto yy960;
+ goto yy958;
+ yy963:
yych = *++p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1852;
- goto yy1850;
- yy1856:
+ goto yy960;
+ goto yy958;
+ yy964:
yych = *++p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1849;
- goto yy1850;
- yy1857:
- yyaccept = 1;
+ goto yy957;
+ goto yy958;
+ yy965:
+ yyaccept = 0;
yych = *(marker = ++p);
- if (yych <= 0xEC) {
- if (yych <= 0xC1) {
- if (yych <= 0x7F)
- goto yy1872;
+ if (yych <= 0xDF) {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08)
+ goto yy980;
+ if (yych <= '\r')
+ goto yy951;
+ goto yy980;
} else {
- if (yych <= 0xDF)
- goto yy1882;
- if (yych <= 0xE0)
- goto yy1883;
- goto yy1884;
+ if (yych <= ' ')
+ goto yy951;
+ if (yych <= 0x7F)
+ goto yy980;
+ if (yych <= 0xC1)
+ goto yy951;
+ goto yy990;
}
} else {
- if (yych <= 0xF0) {
- if (yych <= 0xED)
- goto yy1888;
- if (yych <= 0xEF)
- goto yy1884;
- goto yy1885;
+ if (yych <= 0xEF) {
+ if (yych <= 0xE0)
+ goto yy991;
+ if (yych == 0xED)
+ goto yy996;
+ goto yy992;
} else {
+ if (yych <= 0xF0)
+ goto yy993;
if (yych <= 0xF3)
- goto yy1886;
+ goto yy994;
if (yych <= 0xF4)
- goto yy1887;
+ goto yy995;
+ goto yy951;
}
}
- yy1858 : { return 0; }
- yy1859:
+ yy966:
yyaccept = 1;
yych = *(marker = ++p);
if (yych <= '(') {
if (yych <= ' ')
- goto yy1858;
+ goto yy967;
if (yych <= '\'')
- goto yy1864;
- goto yy1858;
+ goto yy972;
} else {
if (yych <= 0x7F)
- goto yy1864;
+ goto yy972;
if (yych <= 0xC1)
- goto yy1858;
+ goto yy967;
if (yych <= 0xF4)
- goto yy1864;
- goto yy1858;
+ goto yy972;
}
- yy1860:
+ yy967 : { return 0; }
+ yy968:
yych = *++p;
- goto yy1858;
- yy1861:
+ goto yy967;
+ yy969:
++p;
yych = *p;
if (yybm[0 + yych] & 16) {
- goto yy1861;
+ goto yy969;
}
if (yych <= 0xE0) {
if (yych <= ')') {
if (yych <= ' ')
- goto yy1850;
+ goto yy958;
if (yych >= ')')
- goto yy1889;
+ goto yy997;
} else {
if (yych <= 0x7F)
- goto yy1863;
+ goto yy971;
if (yych <= 0xC1)
- goto yy1850;
+ goto yy958;
if (yych <= 0xDF)
- goto yy1865;
- goto yy1866;
+ goto yy973;
+ goto yy974;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1871;
- goto yy1867;
+ goto yy979;
+ goto yy975;
} else {
if (yych <= 0xF0)
- goto yy1868;
+ goto yy976;
if (yych <= 0xF3)
- goto yy1869;
+ goto yy977;
if (yych <= 0xF4)
- goto yy1870;
- goto yy1850;
+ goto yy978;
+ goto yy958;
}
}
- yy1863:
+ yy971:
++p;
yych = *p;
- yy1864:
+ yy972:
if (yybm[0 + yych] & 32) {
- goto yy1863;
+ goto yy971;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= '(')
- goto yy1850;
+ goto yy958;
if (yych <= ')')
- goto yy1872;
- goto yy1861;
+ goto yy980;
+ goto yy969;
} else {
if (yych <= 0xC1)
- goto yy1850;
+ goto yy958;
if (yych >= 0xE0)
- goto yy1866;
+ goto yy974;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1871;
- goto yy1867;
+ goto yy979;
+ goto yy975;
} else {
if (yych <= 0xF0)
- goto yy1868;
+ goto yy976;
if (yych <= 0xF3)
- goto yy1869;
+ goto yy977;
if (yych <= 0xF4)
- goto yy1870;
- goto yy1850;
+ goto yy978;
+ goto yy958;
}
}
- yy1865:
+ yy973:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1863;
- goto yy1850;
- yy1866:
+ goto yy971;
+ goto yy958;
+ yy974:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1865;
- goto yy1850;
- yy1867:
+ goto yy973;
+ goto yy958;
+ yy975:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1865;
- goto yy1850;
- yy1868:
+ goto yy973;
+ goto yy958;
+ yy976:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1867;
- goto yy1850;
- yy1869:
+ goto yy975;
+ goto yy958;
+ yy977:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1867;
- goto yy1850;
- yy1870:
+ goto yy975;
+ goto yy958;
+ yy978:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1867;
- goto yy1850;
- yy1871:
+ goto yy975;
+ goto yy958;
+ yy979:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1865;
- goto yy1850;
- yy1872:
+ goto yy973;
+ goto yy958;
+ yy980:
yyaccept = 0;
marker = ++p;
yych = *p;
- yy1873:
+ yy981:
if (yych <= 0xC1) {
if (yych <= ')') {
if (yych <= ' ')
- goto yy1843;
+ goto yy951;
if (yych <= '\'')
- goto yy1872;
+ goto yy980;
if (yych <= '(')
- goto yy1863;
- goto yy1843;
+ goto yy971;
+ goto yy951;
} else {
if (yych == '\\')
- goto yy1881;
+ goto yy982;
if (yych <= 0x7F)
- goto yy1872;
- goto yy1843;
+ goto yy980;
+ goto yy951;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1874;
+ goto yy983;
if (yych <= 0xE0)
- goto yy1875;
+ goto yy984;
if (yych <= 0xEC)
- goto yy1876;
- goto yy1880;
+ goto yy985;
+ goto yy989;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1876;
- goto yy1877;
+ goto yy985;
+ goto yy986;
} else {
if (yych <= 0xF3)
- goto yy1878;
+ goto yy987;
if (yych <= 0xF4)
- goto yy1879;
- goto yy1843;
+ goto yy988;
+ goto yy951;
}
}
}
- yy1874:
+ yy982:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ if (yych <= 0xDF) {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08)
+ goto yy980;
+ if (yych <= '\r')
+ goto yy951;
+ goto yy980;
+ } else {
+ if (yych <= ' ')
+ goto yy951;
+ if (yych <= 0x7F)
+ goto yy980;
+ if (yych <= 0xC1)
+ goto yy951;
+ goto yy990;
+ }
+ } else {
+ if (yych <= 0xEF) {
+ if (yych <= 0xE0)
+ goto yy991;
+ if (yych == 0xED)
+ goto yy996;
+ goto yy992;
+ } else {
+ if (yych <= 0xF0)
+ goto yy993;
+ if (yych <= 0xF3)
+ goto yy994;
+ if (yych <= 0xF4)
+ goto yy995;
+ goto yy951;
+ }
+ }
+ yy983:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1872;
- goto yy1850;
- yy1875:
+ goto yy980;
+ goto yy958;
+ yy984:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1874;
- goto yy1850;
- yy1876:
+ goto yy983;
+ goto yy958;
+ yy985:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1874;
- goto yy1850;
- yy1877:
+ goto yy983;
+ goto yy958;
+ yy986:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1876;
- goto yy1850;
- yy1878:
+ goto yy985;
+ goto yy958;
+ yy987:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1876;
- goto yy1850;
- yy1879:
+ goto yy985;
+ goto yy958;
+ yy988:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1876;
- goto yy1850;
- yy1880:
+ goto yy985;
+ goto yy958;
+ yy989:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1874;
- goto yy1850;
- yy1881:
- ++p;
- yych = *p;
- if (yych <= 0xEC) {
- if (yych <= 0xC1) {
- if (yych <= 0x7F)
- goto yy1872;
- goto yy1850;
- } else {
- if (yych <= 0xDF)
- goto yy1882;
- if (yych <= 0xE0)
- goto yy1883;
- goto yy1884;
- }
- } else {
- if (yych <= 0xF0) {
- if (yych <= 0xED)
- goto yy1888;
- if (yych <= 0xEF)
- goto yy1884;
- goto yy1885;
- } else {
- if (yych <= 0xF3)
- goto yy1886;
- if (yych <= 0xF4)
- goto yy1887;
- goto yy1850;
- }
- }
- yy1882:
+ goto yy983;
+ goto yy958;
+ yy990:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1872;
- goto yy1850;
- yy1883:
+ goto yy980;
+ goto yy958;
+ yy991:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1882;
- goto yy1850;
- yy1884:
+ goto yy990;
+ goto yy958;
+ yy992:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1882;
- goto yy1850;
- yy1885:
+ goto yy990;
+ goto yy958;
+ yy993:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1884;
- goto yy1850;
- yy1886:
+ goto yy992;
+ goto yy958;
+ yy994:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1884;
- goto yy1850;
- yy1887:
+ goto yy992;
+ goto yy958;
+ yy995:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1884;
- goto yy1850;
- yy1888:
+ goto yy992;
+ goto yy958;
+ yy996:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1882;
- goto yy1850;
- yy1889:
+ goto yy990;
+ goto yy958;
+ yy997:
yyaccept = 0;
marker = ++p;
yych = *p;
- yy1890:
+ yy998:
if (yych <= 0xC1) {
if (yych <= ')') {
if (yych <= ' ')
- goto yy1843;
+ goto yy951;
if (yych <= '\'')
- goto yy1889;
+ goto yy997;
if (yych <= '(')
- goto yy1863;
- goto yy1872;
+ goto yy971;
+ goto yy980;
} else {
if (yych == '\\')
- goto yy1898;
+ goto yy999;
if (yych <= 0x7F)
- goto yy1889;
- goto yy1843;
+ goto yy997;
+ goto yy951;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1891;
+ goto yy1000;
if (yych <= 0xE0)
- goto yy1892;
+ goto yy1001;
if (yych <= 0xEC)
- goto yy1893;
- goto yy1897;
+ goto yy1002;
+ goto yy1006;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1893;
- goto yy1894;
+ goto yy1002;
+ goto yy1003;
} else {
if (yych <= 0xF3)
- goto yy1895;
+ goto yy1004;
if (yych <= 0xF4)
- goto yy1896;
- goto yy1843;
+ goto yy1005;
+ goto yy951;
}
}
}
- yy1891:
+ yy999:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ if (yych <= 0xC1) {
+ if (yych <= ' ') {
+ if (yych <= 0x08)
+ goto yy980;
+ if (yych <= '\r')
+ goto yy951;
+ if (yych <= 0x1F)
+ goto yy980;
+ goto yy951;
+ } else {
+ if (yych == '\\')
+ goto yy1007;
+ if (yych <= 0x7F)
+ goto yy997;
+ goto yy951;
+ }
+ } else {
+ if (yych <= 0xED) {
+ if (yych <= 0xDF)
+ goto yy1008;
+ if (yych <= 0xE0)
+ goto yy1009;
+ if (yych <= 0xEC)
+ goto yy1010;
+ goto yy1014;
+ } else {
+ if (yych <= 0xF0) {
+ if (yych <= 0xEF)
+ goto yy1010;
+ goto yy1011;
+ } else {
+ if (yych <= 0xF3)
+ goto yy1012;
+ if (yych <= 0xF4)
+ goto yy1013;
+ goto yy951;
+ }
+ }
+ }
+ yy1000:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1889;
- goto yy1850;
- yy1892:
+ goto yy997;
+ goto yy958;
+ yy1001:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1891;
- goto yy1850;
- yy1893:
+ goto yy1000;
+ goto yy958;
+ yy1002:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1891;
- goto yy1850;
- yy1894:
+ goto yy1000;
+ goto yy958;
+ yy1003:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1893;
- goto yy1850;
- yy1895:
+ goto yy1002;
+ goto yy958;
+ yy1004:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1893;
- goto yy1850;
- yy1896:
+ goto yy1002;
+ goto yy958;
+ yy1005:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1893;
- goto yy1850;
- yy1897:
+ goto yy1002;
+ goto yy958;
+ yy1006:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1891;
- goto yy1850;
- yy1898:
- ++p;
- yych = *p;
- if (yych <= 0xE0) {
- if (yych <= '\\') {
- if (yych <= ' ')
- goto yy1872;
- if (yych <= '[')
- goto yy1889;
- } else {
- if (yych <= 0x7F)
- goto yy1889;
- if (yych <= 0xC1)
- goto yy1850;
- if (yych <= 0xDF)
- goto yy1900;
- goto yy1901;
- }
- } else {
- if (yych <= 0xEF) {
- if (yych == 0xED)
- goto yy1906;
- goto yy1902;
- } else {
- if (yych <= 0xF0)
- goto yy1903;
- if (yych <= 0xF3)
- goto yy1904;
- if (yych <= 0xF4)
- goto yy1905;
- goto yy1850;
- }
- }
+ goto yy1000;
+ goto yy958;
+ yy1007:
yyaccept = 0;
marker = ++p;
yych = *p;
if (yych <= 0xDF) {
if (yych <= '[') {
if (yych <= ' ')
- goto yy1843;
+ goto yy951;
if (yych == '(')
- goto yy1863;
- goto yy1889;
+ goto yy971;
+ goto yy997;
} else {
if (yych <= '\\')
- goto yy1898;
+ goto yy999;
if (yych <= 0x7F)
- goto yy1889;
+ goto yy997;
if (yych <= 0xC1)
- goto yy1843;
- goto yy1891;
+ goto yy951;
+ goto yy1000;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy1892;
+ goto yy1001;
if (yych == 0xED)
- goto yy1897;
- goto yy1893;
+ goto yy1006;
+ goto yy1002;
} else {
if (yych <= 0xF0)
- goto yy1894;
+ goto yy1003;
if (yych <= 0xF3)
- goto yy1895;
+ goto yy1004;
if (yych <= 0xF4)
- goto yy1896;
- goto yy1843;
+ goto yy1005;
+ goto yy951;
}
}
- yy1900:
+ yy1008:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1889;
- goto yy1850;
- yy1901:
+ goto yy997;
+ goto yy958;
+ yy1009:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1900;
- goto yy1850;
- yy1902:
+ goto yy1008;
+ goto yy958;
+ yy1010:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1900;
- goto yy1850;
- yy1903:
+ goto yy1008;
+ goto yy958;
+ yy1011:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1902;
- goto yy1850;
- yy1904:
+ goto yy1010;
+ goto yy958;
+ yy1012:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1902;
- goto yy1850;
- yy1905:
+ goto yy1010;
+ goto yy958;
+ yy1013:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1902;
- goto yy1850;
- yy1906:
+ goto yy1010;
+ goto yy958;
+ yy1014:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1900;
- goto yy1850;
- yy1907:
+ goto yy1008;
+ goto yy958;
+ yy1015:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ if (yych <= '\\') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00)
+ goto yy980;
+ } else {
+ if (yych <= '\n')
+ goto yy951;
+ if (yych <= '\f')
+ goto yy1029;
+ goto yy951;
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych == ' ')
+ goto yy951;
+ } else {
+ if (yych <= '>')
+ goto yy1073;
+ if (yych >= '\\')
+ goto yy1074;
+ }
+ }
+ } else {
+ if (yych <= 0xEC) {
+ if (yych <= 0xC1) {
+ if (yych >= 0x80)
+ goto yy951;
+ } else {
+ if (yych <= 0xDF)
+ goto yy1075;
+ if (yych <= 0xE0)
+ goto yy1076;
+ goto yy1077;
+ }
+ } else {
+ if (yych <= 0xF0) {
+ if (yych <= 0xED)
+ goto yy1081;
+ if (yych <= 0xEF)
+ goto yy1077;
+ goto yy1078;
+ } else {
+ if (yych <= 0xF3)
+ goto yy1079;
+ if (yych <= 0xF4)
+ goto yy1080;
+ goto yy951;
+ }
+ }
+ }
+ yy1016:
yyaccept = 0;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1907;
+ goto yy1016;
}
if (yych <= '>') {
if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x08) {
if (yych <= 0x00)
- goto yy1843;
- goto yy1921;
+ goto yy951;
+ goto yy1029;
} else {
if (yych <= '\n')
- goto yy1843;
+ goto yy951;
if (yych <= '\f')
- goto yy1921;
- goto yy1843;
+ goto yy1029;
+ goto yy951;
}
} else {
if (yych <= '(') {
+ if (yych <= 0x1F)
+ goto yy1029;
if (yych <= ' ')
- goto yy1921;
- goto yy1919;
+ goto yy951;
+ goto yy1027;
} else {
if (yych <= ')')
- goto yy1921;
+ goto yy1029;
if (yych <= '<')
- goto yy1872;
+ goto yy980;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1918;
- goto yy1843;
+ goto yy1015;
+ goto yy951;
} else {
if (yych <= 0xDF)
- goto yy1911;
+ goto yy1020;
if (yych <= 0xE0)
- goto yy1912;
- goto yy1913;
+ goto yy1021;
+ goto yy1022;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1917;
+ goto yy1026;
if (yych <= 0xEF)
- goto yy1913;
- goto yy1914;
+ goto yy1022;
+ goto yy1023;
} else {
if (yych <= 0xF3)
- goto yy1915;
+ goto yy1024;
if (yych <= 0xF4)
- goto yy1916;
- goto yy1843;
+ goto yy1025;
+ goto yy951;
}
}
}
- yy1909:
+ yy1018:
yyaccept = 2;
yych = *(marker = ++p);
if (yych <= ')') {
if (yych <= ' ')
- goto yy1910;
+ goto yy1019;
if (yych <= '(')
- goto yy1873;
+ goto yy981;
} else {
if (yych <= 0x7F)
- goto yy1873;
+ goto yy981;
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xF4)
- goto yy1873;
+ goto yy981;
}
- yy1910 : { return (bufsize_t)(p - start); }
- yy1911:
+ yy1019 : { return (bufsize_t)(p - start); }
+ yy1020:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1907;
- goto yy1850;
- yy1912:
+ goto yy1016;
+ goto yy958;
+ yy1021:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1911;
- goto yy1850;
- yy1913:
+ goto yy1020;
+ goto yy958;
+ yy1022:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1911;
- goto yy1850;
- yy1914:
+ goto yy1020;
+ goto yy958;
+ yy1023:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1913;
- goto yy1850;
- yy1915:
+ goto yy1022;
+ goto yy958;
+ yy1024:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1913;
- goto yy1850;
- yy1916:
+ goto yy1022;
+ goto yy958;
+ yy1025:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1913;
- goto yy1850;
- yy1917:
+ goto yy1022;
+ goto yy958;
+ yy1026:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1911;
- goto yy1850;
- yy1918:
- ++p;
- yych = *p;
- if (yych <= 0x7F) {
- if (yych <= '\r') {
- if (yych <= '\t') {
- if (yych <= 0x00)
- goto yy1872;
- goto yy1907;
- } else {
- if (yych <= '\n')
- goto yy1872;
- if (yych <= '\f')
- goto yy1907;
- goto yy1872;
- }
- } else {
- if (yych <= '>') {
- if (yych <= '=')
- goto yy1907;
- goto yy1965;
- } else {
- if (yych == '\\')
- goto yy1966;
- goto yy1907;
- }
- }
- } else {
- if (yych <= 0xED) {
- if (yych <= 0xDF) {
- if (yych <= 0xC1)
- goto yy1850;
- goto yy1967;
- } else {
- if (yych <= 0xE0)
- goto yy1968;
- if (yych <= 0xEC)
- goto yy1969;
- goto yy1973;
- }
- } else {
- if (yych <= 0xF0) {
- if (yych <= 0xEF)
- goto yy1969;
- goto yy1970;
- } else {
- if (yych <= 0xF3)
- goto yy1971;
- if (yych <= 0xF4)
- goto yy1972;
- goto yy1850;
- }
- }
- }
- yy1919:
+ goto yy1020;
+ goto yy958;
+ yy1027:
++p;
yych = *p;
- if (yych <= '>') {
- if (yych <= ' ') {
+ if (yych <= '=') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1850;
- if (yych >= '\n')
- goto yy1850;
+ goto yy958;
+ if (yych >= '\t')
+ goto yy958;
} else {
if (yych == '\r')
- goto yy1850;
+ goto yy958;
}
} else {
- if (yych <= ')') {
+ if (yych <= '(') {
+ if (yych <= ' ')
+ goto yy958;
if (yych <= '\'')
- goto yy1919;
- if (yych >= ')')
- goto yy1907;
+ goto yy1027;
} else {
+ if (yych <= ')')
+ goto yy1016;
if (yych == '<')
- goto yy1863;
- if (yych <= '=')
- goto yy1919;
- goto yy1934;
+ goto yy971;
+ goto yy1027;
}
}
} else {
if (yych <= 0xE0) {
- if (yych <= 0x7F) {
- if (yych == '\\')
- goto yy1935;
- goto yy1919;
+ if (yych <= '\\') {
+ if (yych <= '>')
+ goto yy1042;
+ if (yych <= '[')
+ goto yy1027;
+ goto yy1043;
} else {
+ if (yych <= 0x7F)
+ goto yy1027;
if (yych <= 0xC1)
- goto yy1850;
+ goto yy958;
if (yych <= 0xDF)
- goto yy1937;
- goto yy1938;
+ goto yy1045;
+ goto yy1046;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1943;
- goto yy1939;
+ goto yy1051;
+ goto yy1047;
} else {
if (yych <= 0xF0)
- goto yy1940;
+ goto yy1048;
if (yych <= 0xF3)
- goto yy1941;
+ goto yy1049;
if (yych <= 0xF4)
- goto yy1942;
- goto yy1850;
+ goto yy1050;
+ goto yy958;
}
}
}
- yy1921:
+ yy1029:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1921;
+ goto yy1029;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= '<')
- goto yy1850;
+ goto yy958;
if (yych >= '?')
- goto yy1924;
+ goto yy1032;
} else {
if (yych <= 0xC1)
- goto yy1850;
+ goto yy958;
if (yych <= 0xDF)
- goto yy1926;
- goto yy1927;
+ goto yy1034;
+ goto yy1035;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1932;
- goto yy1928;
+ goto yy1040;
+ goto yy1036;
} else {
if (yych <= 0xF0)
- goto yy1929;
+ goto yy1037;
if (yych <= 0xF3)
- goto yy1930;
+ goto yy1038;
if (yych <= 0xF4)
- goto yy1931;
- goto yy1850;
+ goto yy1039;
+ goto yy958;
}
}
- yy1923:
+ yy1031:
yych = *++p;
- goto yy1910;
- yy1924:
+ goto yy1019;
+ yy1032:
++p;
yych = *p;
- if (yych <= 0x7F) {
+ if (yych <= '\\') {
if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x08) {
if (yych <= 0x00)
- goto yy1850;
- goto yy1921;
+ goto yy958;
+ goto yy1029;
} else {
if (yych <= '\n')
- goto yy1850;
+ goto yy958;
if (yych <= '\f')
- goto yy1921;
- goto yy1850;
+ goto yy1029;
+ goto yy958;
}
} else {
- if (yych <= '>') {
- if (yych <= '=')
- goto yy1921;
- goto yy1933;
+ if (yych <= '=') {
+ if (yych == ' ')
+ goto yy958;
+ goto yy1029;
} else {
- if (yych == '\\')
- goto yy1924;
- goto yy1921;
+ if (yych <= '>')
+ goto yy1041;
+ if (yych <= '[')
+ goto yy1029;
+ goto yy1032;
}
}
} else {
- if (yych <= 0xED) {
- if (yych <= 0xDF) {
- if (yych <= 0xC1)
- goto yy1850;
+ if (yych <= 0xEC) {
+ if (yych <= 0xC1) {
+ if (yych <= 0x7F)
+ goto yy1029;
+ goto yy958;
} else {
+ if (yych <= 0xDF)
+ goto yy1034;
if (yych <= 0xE0)
- goto yy1927;
- if (yych <= 0xEC)
- goto yy1928;
- goto yy1932;
+ goto yy1035;
+ goto yy1036;
}
} else {
if (yych <= 0xF0) {
+ if (yych <= 0xED)
+ goto yy1040;
if (yych <= 0xEF)
- goto yy1928;
- goto yy1929;
+ goto yy1036;
+ goto yy1037;
} else {
if (yych <= 0xF3)
- goto yy1930;
+ goto yy1038;
if (yych <= 0xF4)
- goto yy1931;
- goto yy1850;
+ goto yy1039;
+ goto yy958;
}
}
}
- yy1926:
+ yy1034:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1921;
- goto yy1850;
- yy1927:
+ goto yy1029;
+ goto yy958;
+ yy1035:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1926;
- goto yy1850;
- yy1928:
+ goto yy1034;
+ goto yy958;
+ yy1036:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1926;
- goto yy1850;
- yy1929:
+ goto yy1034;
+ goto yy958;
+ yy1037:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1928;
- goto yy1850;
- yy1930:
+ goto yy1036;
+ goto yy958;
+ yy1038:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1928;
- goto yy1850;
- yy1931:
+ goto yy1036;
+ goto yy958;
+ yy1039:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1928;
- goto yy1850;
- yy1932:
+ goto yy1036;
+ goto yy958;
+ yy1040:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1926;
- goto yy1850;
- yy1933:
+ goto yy1034;
+ goto yy958;
+ yy1041:
yyaccept = 2;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy1921;
+ goto yy1029;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= '<')
- goto yy1910;
+ goto yy1019;
if (yych <= '>')
- goto yy1923;
- goto yy1924;
+ goto yy1031;
+ goto yy1032;
} else {
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xDF)
- goto yy1926;
- goto yy1927;
+ goto yy1034;
+ goto yy1035;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1932;
- goto yy1928;
+ goto yy1040;
+ goto yy1036;
} else {
if (yych <= 0xF0)
- goto yy1929;
+ goto yy1037;
if (yych <= 0xF3)
- goto yy1930;
+ goto yy1038;
if (yych <= 0xF4)
- goto yy1931;
- goto yy1910;
+ goto yy1039;
+ goto yy1019;
}
}
- yy1934:
+ yy1042:
yyaccept = 2;
yych = *(marker = ++p);
if (yych <= '(') {
if (yych <= ' ')
- goto yy1910;
+ goto yy1019;
if (yych <= '\'')
- goto yy1864;
- goto yy1910;
+ goto yy972;
+ goto yy1019;
} else {
if (yych <= 0x7F)
- goto yy1864;
+ goto yy972;
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xF4)
- goto yy1864;
- goto yy1910;
+ goto yy972;
+ goto yy1019;
}
- yy1935:
+ yy1043:
++p;
yych = *p;
if (yych <= '[') {
- if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1850;
- goto yy1921;
+ goto yy958;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy958;
} else {
- if (yych <= '\n')
- goto yy1850;
- if (yych <= '\f')
- goto yy1921;
- goto yy1850;
+ if (yych == '\r')
+ goto yy958;
+ goto yy1029;
}
} else {
if (yych <= ')') {
if (yych <= ' ')
- goto yy1921;
+ goto yy958;
if (yych <= '(')
- goto yy1919;
- goto yy1944;
+ goto yy1027;
+ goto yy1052;
} else {
if (yych == '>')
- goto yy1946;
- goto yy1919;
+ goto yy1054;
+ goto yy1027;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1935;
+ goto yy1043;
if (yych <= 0x7F)
- goto yy1919;
- goto yy1850;
+ goto yy1027;
+ goto yy958;
} else {
if (yych <= 0xDF)
- goto yy1937;
+ goto yy1045;
if (yych <= 0xE0)
- goto yy1938;
- goto yy1939;
+ goto yy1046;
+ goto yy1047;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1943;
+ goto yy1051;
if (yych <= 0xEF)
- goto yy1939;
- goto yy1940;
+ goto yy1047;
+ goto yy1048;
} else {
if (yych <= 0xF3)
- goto yy1941;
+ goto yy1049;
if (yych <= 0xF4)
- goto yy1942;
- goto yy1850;
+ goto yy1050;
+ goto yy958;
}
}
}
- yy1937:
+ yy1045:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1919;
- goto yy1850;
- yy1938:
+ goto yy1027;
+ goto yy958;
+ yy1046:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1937;
- goto yy1850;
- yy1939:
+ goto yy1045;
+ goto yy958;
+ yy1047:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1937;
- goto yy1850;
- yy1940:
+ goto yy1045;
+ goto yy958;
+ yy1048:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1939;
- goto yy1850;
- yy1941:
+ goto yy1047;
+ goto yy958;
+ yy1049:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1939;
- goto yy1850;
- yy1942:
+ goto yy1047;
+ goto yy958;
+ yy1050:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1939;
- goto yy1850;
- yy1943:
+ goto yy1047;
+ goto yy958;
+ yy1051:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1937;
- goto yy1850;
- yy1944:
+ goto yy1045;
+ goto yy958;
+ yy1052:
yyaccept = 0;
marker = ++p;
yych = *p;
- if (yych <= '>') {
- if (yych <= ' ') {
+ if (yych <= '=') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1843;
- if (yych <= '\t')
- goto yy1921;
- goto yy1843;
+ goto yy951;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy951;
} else {
if (yych == '\r')
- goto yy1843;
- goto yy1921;
+ goto yy951;
+ goto yy1029;
}
} else {
- if (yych <= ')') {
+ if (yych <= '(') {
+ if (yych <= ' ')
+ goto yy951;
if (yych <= '\'')
- goto yy1944;
- if (yych <= '(')
- goto yy1919;
- goto yy1907;
+ goto yy1052;
+ goto yy1027;
} else {
+ if (yych <= ')')
+ goto yy1016;
if (yych == '<')
- goto yy1889;
- if (yych <= '=')
- goto yy1944;
- goto yy1947;
+ goto yy997;
+ goto yy1052;
}
}
} else {
if (yych <= 0xE0) {
- if (yych <= 0x7F) {
- if (yych == '\\')
- goto yy1948;
- goto yy1944;
+ if (yych <= '\\') {
+ if (yych <= '>')
+ goto yy1055;
+ if (yych <= '[')
+ goto yy1052;
+ goto yy1056;
} else {
+ if (yych <= 0x7F)
+ goto yy1052;
if (yych <= 0xC1)
- goto yy1843;
+ goto yy951;
if (yych <= 0xDF)
- goto yy1949;
- goto yy1950;
+ goto yy1057;
+ goto yy1058;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1955;
- goto yy1951;
+ goto yy1063;
+ goto yy1059;
} else {
if (yych <= 0xF0)
- goto yy1952;
+ goto yy1060;
if (yych <= 0xF3)
- goto yy1953;
+ goto yy1061;
if (yych <= 0xF4)
- goto yy1954;
- goto yy1843;
+ goto yy1062;
+ goto yy951;
}
}
}
- yy1946:
+ yy1054:
yyaccept = 2;
marker = ++p;
yych = *p;
- if (yych <= '>') {
- if (yych <= ' ') {
+ if (yych <= '=') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1910;
- if (yych <= '\t')
- goto yy1921;
- goto yy1910;
+ goto yy1019;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy1019;
} else {
if (yych == '\r')
- goto yy1910;
- goto yy1921;
+ goto yy1019;
+ goto yy1029;
}
} else {
- if (yych <= ')') {
+ if (yych <= '(') {
+ if (yych <= ' ')
+ goto yy1019;
if (yych <= '\'')
- goto yy1919;
- if (yych <= '(')
- goto yy1921;
- goto yy1907;
+ goto yy1027;
+ goto yy1029;
} else {
+ if (yych <= ')')
+ goto yy1016;
if (yych == '<')
- goto yy1863;
- if (yych <= '=')
- goto yy1919;
- goto yy1934;
+ goto yy971;
+ goto yy1027;
}
}
} else {
if (yych <= 0xE0) {
- if (yych <= 0x7F) {
- if (yych == '\\')
- goto yy1935;
- goto yy1919;
+ if (yych <= '\\') {
+ if (yych <= '>')
+ goto yy1042;
+ if (yych <= '[')
+ goto yy1027;
+ goto yy1043;
} else {
+ if (yych <= 0x7F)
+ goto yy1027;
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xDF)
- goto yy1937;
- goto yy1938;
+ goto yy1045;
+ goto yy1046;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1943;
- goto yy1939;
+ goto yy1051;
+ goto yy1047;
} else {
if (yych <= 0xF0)
- goto yy1940;
+ goto yy1048;
if (yych <= 0xF3)
- goto yy1941;
+ goto yy1049;
if (yych <= 0xF4)
- goto yy1942;
- goto yy1910;
+ goto yy1050;
+ goto yy1019;
}
}
}
- yy1947:
+ yy1055:
yyaccept = 2;
yych = *(marker = ++p);
if (yych <= ' ')
- goto yy1910;
+ goto yy1019;
if (yych <= 0x7F)
- goto yy1890;
+ goto yy998;
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xF4)
- goto yy1890;
- goto yy1910;
- yy1948:
- ++p;
+ goto yy998;
+ goto yy1019;
+ yy1056:
+ yyaccept = 0;
+ marker = ++p;
yych = *p;
if (yych <= '\\') {
if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x08) {
if (yych <= 0x00)
- goto yy1872;
- goto yy1907;
+ goto yy980;
+ goto yy1016;
} else {
if (yych <= '\n')
- goto yy1872;
+ goto yy951;
if (yych <= '\f')
- goto yy1907;
- goto yy1872;
+ goto yy1029;
+ goto yy951;
}
} else {
if (yych <= '=') {
+ if (yych <= 0x1F)
+ goto yy1016;
if (yych <= ' ')
- goto yy1907;
- goto yy1944;
+ goto yy951;
+ goto yy1052;
} else {
if (yych <= '>')
- goto yy1956;
+ goto yy1064;
if (yych <= '[')
- goto yy1944;
- goto yy1957;
+ goto yy1052;
+ goto yy1065;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x7F)
- goto yy1944;
- goto yy1850;
+ goto yy1052;
+ goto yy951;
} else {
if (yych <= 0xDF)
- goto yy1958;
+ goto yy1066;
if (yych <= 0xE0)
- goto yy1959;
- goto yy1960;
+ goto yy1067;
+ goto yy1068;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1964;
+ goto yy1072;
if (yych <= 0xEF)
- goto yy1960;
- goto yy1961;
+ goto yy1068;
+ goto yy1069;
} else {
if (yych <= 0xF3)
- goto yy1962;
+ goto yy1070;
if (yych <= 0xF4)
- goto yy1963;
- goto yy1850;
+ goto yy1071;
+ goto yy951;
}
}
}
- yy1949:
+ yy1057:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1944;
- goto yy1850;
- yy1950:
+ goto yy1052;
+ goto yy958;
+ yy1058:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1949;
- goto yy1850;
- yy1951:
+ goto yy1057;
+ goto yy958;
+ yy1059:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1949;
- goto yy1850;
- yy1952:
+ goto yy1057;
+ goto yy958;
+ yy1060:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1951;
- goto yy1850;
- yy1953:
+ goto yy1059;
+ goto yy958;
+ yy1061:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1951;
- goto yy1850;
- yy1954:
+ goto yy1059;
+ goto yy958;
+ yy1062:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1951;
- goto yy1850;
- yy1955:
+ goto yy1059;
+ goto yy958;
+ yy1063:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1949;
- goto yy1850;
- yy1956:
+ goto yy1057;
+ goto yy958;
+ yy1064:
yyaccept = 2;
marker = ++p;
yych = *p;
- if (yych <= '>') {
- if (yych <= ' ') {
+ if (yych <= '=') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1910;
- if (yych <= '\t')
- goto yy1921;
- goto yy1910;
+ goto yy1019;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy1019;
} else {
if (yych == '\r')
- goto yy1910;
- goto yy1921;
+ goto yy1019;
+ goto yy1029;
}
} else {
- if (yych <= ')') {
+ if (yych <= '(') {
+ if (yych <= ' ')
+ goto yy1019;
if (yych <= '\'')
- goto yy1944;
- if (yych <= '(')
- goto yy1919;
- goto yy1907;
+ goto yy1052;
+ goto yy1027;
} else {
+ if (yych <= ')')
+ goto yy1016;
if (yych == '<')
- goto yy1889;
- if (yych <= '=')
- goto yy1944;
- goto yy1947;
+ goto yy997;
+ goto yy1052;
}
}
} else {
if (yych <= 0xE0) {
- if (yych <= 0x7F) {
- if (yych == '\\')
- goto yy1948;
- goto yy1944;
+ if (yych <= '\\') {
+ if (yych <= '>')
+ goto yy1055;
+ if (yych <= '[')
+ goto yy1052;
+ goto yy1056;
} else {
+ if (yych <= 0x7F)
+ goto yy1052;
if (yych <= 0xC1)
- goto yy1910;
+ goto yy1019;
if (yych <= 0xDF)
- goto yy1949;
- goto yy1950;
+ goto yy1057;
+ goto yy1058;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1955;
- goto yy1951;
+ goto yy1063;
+ goto yy1059;
} else {
if (yych <= 0xF0)
- goto yy1952;
+ goto yy1060;
if (yych <= 0xF3)
- goto yy1953;
+ goto yy1061;
if (yych <= 0xF4)
- goto yy1954;
- goto yy1910;
+ goto yy1062;
+ goto yy1019;
}
}
}
- yy1957:
+ yy1065:
yyaccept = 0;
marker = ++p;
yych = *p;
if (yych <= '[') {
- if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x1F) {
+ if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1843;
- goto yy1921;
+ goto yy951;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy951;
} else {
- if (yych <= '\n')
- goto yy1843;
- if (yych <= '\f')
- goto yy1921;
- goto yy1843;
+ if (yych == '\r')
+ goto yy951;
+ goto yy1029;
}
} else {
if (yych <= '(') {
if (yych <= ' ')
- goto yy1921;
+ goto yy951;
if (yych <= '\'')
- goto yy1944;
- goto yy1919;
+ goto yy1052;
+ goto yy1027;
} else {
if (yych == '>')
- goto yy1956;
- goto yy1944;
+ goto yy1064;
+ goto yy1052;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1948;
+ goto yy1056;
if (yych <= 0x7F)
- goto yy1944;
- goto yy1843;
+ goto yy1052;
+ goto yy951;
} else {
if (yych <= 0xDF)
- goto yy1949;
+ goto yy1057;
if (yych <= 0xE0)
- goto yy1950;
- goto yy1951;
+ goto yy1058;
+ goto yy1059;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1955;
+ goto yy1063;
if (yych <= 0xEF)
- goto yy1951;
- goto yy1952;
+ goto yy1059;
+ goto yy1060;
} else {
if (yych <= 0xF3)
- goto yy1953;
+ goto yy1061;
if (yych <= 0xF4)
- goto yy1954;
- goto yy1843;
+ goto yy1062;
+ goto yy951;
}
}
}
- yy1958:
+ yy1066:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1944;
- goto yy1850;
- yy1959:
+ goto yy1052;
+ goto yy958;
+ yy1067:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1958;
- goto yy1850;
- yy1960:
+ goto yy1066;
+ goto yy958;
+ yy1068:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1958;
- goto yy1850;
- yy1961:
+ goto yy1066;
+ goto yy958;
+ yy1069:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1960;
- goto yy1850;
- yy1962:
+ goto yy1068;
+ goto yy958;
+ yy1070:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1960;
- goto yy1850;
- yy1963:
+ goto yy1068;
+ goto yy958;
+ yy1071:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1960;
- goto yy1850;
- yy1964:
+ goto yy1068;
+ goto yy958;
+ yy1072:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1958;
- goto yy1850;
- yy1965:
+ goto yy1066;
+ goto yy958;
+ yy1073:
yyaccept = 2;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy1907;
+ goto yy1016;
}
if (yych <= '>') {
if (yych <= '\r') {
- if (yych <= '\t') {
+ if (yych <= 0x08) {
if (yych <= 0x00)
- goto yy1910;
- goto yy1921;
+ goto yy1019;
+ goto yy1029;
} else {
if (yych <= '\n')
- goto yy1910;
+ goto yy1019;
if (yych <= '\f')
- goto yy1921;
- goto yy1910;
+ goto yy1029;
+ goto yy1019;
}
} else {
if (yych <= '(') {
+ if (yych <= 0x1F)
+ goto yy1029;
if (yych <= ' ')
- goto yy1921;
- goto yy1919;
+ goto yy1019;
+ goto yy1027;
} else {
if (yych <= ')')
- goto yy1921;
+ goto yy1029;
if (yych <= '<')
- goto yy1872;
- goto yy1909;
+ goto yy980;
+ goto yy1018;
}
}
} else {
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '\\')
- goto yy1918;
- goto yy1910;
+ goto yy1015;
+ goto yy1019;
} else {
if (yych <= 0xDF)
- goto yy1911;
+ goto yy1020;
if (yych <= 0xE0)
- goto yy1912;
- goto yy1913;
+ goto yy1021;
+ goto yy1022;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy1917;
+ goto yy1026;
if (yych <= 0xEF)
- goto yy1913;
- goto yy1914;
+ goto yy1022;
+ goto yy1023;
} else {
if (yych <= 0xF3)
- goto yy1915;
+ goto yy1024;
if (yych <= 0xF4)
- goto yy1916;
- goto yy1910;
+ goto yy1025;
+ goto yy1019;
}
}
}
- yy1966:
+ yy1074:
yyaccept = 0;
marker = ++p;
yych = *p;
- if (yych <= '[') {
- if (yych <= ' ') {
+ if (yych <= '>') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
if (yych <= 0x00)
- goto yy1843;
- if (yych <= '\t')
- goto yy1921;
- goto yy1843;
+ goto yy951;
+ if (yych <= 0x08)
+ goto yy1029;
+ goto yy951;
} else {
if (yych == '\r')
- goto yy1843;
- goto yy1921;
+ goto yy951;
+ goto yy1029;
}
} else {
- if (yych <= ')') {
+ if (yych <= '(') {
+ if (yych <= ' ')
+ goto yy951;
if (yych <= '\'')
- goto yy1907;
- if (yych <= '(')
- goto yy1919;
- goto yy1921;
+ goto yy1016;
+ goto yy1027;
} else {
- if (yych == '>')
- goto yy1965;
- goto yy1907;
+ if (yych <= ')')
+ goto yy1029;
+ if (yych <= '=')
+ goto yy1016;
+ goto yy1073;
}
}
} else {
- if (yych <= 0xEC) {
- if (yych <= 0xC1) {
- if (yych <= '\\')
- goto yy1918;
- if (yych <= 0x7F)
- goto yy1907;
- goto yy1843;
+ if (yych <= 0xE0) {
+ if (yych <= 0x7F) {
+ if (yych == '\\')
+ goto yy1015;
+ goto yy1016;
} else {
+ if (yych <= 0xC1)
+ goto yy951;
if (yych <= 0xDF)
- goto yy1911;
- if (yych <= 0xE0)
- goto yy1912;
- goto yy1913;
+ goto yy1020;
+ goto yy1021;
}
} else {
- if (yych <= 0xF0) {
- if (yych <= 0xED)
- goto yy1917;
- if (yych <= 0xEF)
- goto yy1913;
- goto yy1914;
+ if (yych <= 0xEF) {
+ if (yych == 0xED)
+ goto yy1026;
+ goto yy1022;
} else {
+ if (yych <= 0xF0)
+ goto yy1023;
if (yych <= 0xF3)
- goto yy1915;
+ goto yy1024;
if (yych <= 0xF4)
- goto yy1916;
- goto yy1843;
+ goto yy1025;
+ goto yy951;
}
}
}
- yy1967:
+ yy1075:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1907;
- goto yy1850;
- yy1968:
+ goto yy1016;
+ goto yy958;
+ yy1076:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1967;
- goto yy1850;
- yy1969:
+ goto yy1075;
+ goto yy958;
+ yy1077:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1967;
- goto yy1850;
- yy1970:
+ goto yy1075;
+ goto yy958;
+ yy1078:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1969;
- goto yy1850;
- yy1971:
+ goto yy1077;
+ goto yy958;
+ yy1079:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0xBF)
- goto yy1969;
- goto yy1850;
- yy1972:
+ goto yy1077;
+ goto yy958;
+ yy1080:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x8F)
- goto yy1969;
- goto yy1850;
- yy1973:
+ goto yy1077;
+ goto yy958;
+ yy1081:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1850;
+ goto yy958;
if (yych <= 0x9F)
- goto yy1967;
- goto yy1850;
+ goto yy1075;
+ goto yy958;
}
}
@@ -24311,640 +17737,640 @@ bufsize_t _scan_link_title(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '"') {
if (yych == '\n')
- goto yy1976;
+ goto yy1084;
if (yych <= '!')
- goto yy1980;
- goto yy1977;
+ goto yy1088;
+ goto yy1085;
} else {
if (yych <= '\'') {
if (yych <= '&')
- goto yy1980;
- goto yy1978;
+ goto yy1088;
+ goto yy1086;
} else {
if (yych <= '(')
- goto yy1979;
+ goto yy1087;
if (yych <= 0x7F)
- goto yy1980;
+ goto yy1088;
}
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy1981;
+ goto yy1089;
if (yych <= 0xE0)
- goto yy1983;
+ goto yy1091;
if (yych <= 0xEC)
- goto yy1984;
- goto yy1988;
+ goto yy1092;
+ goto yy1096;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy1984;
- goto yy1985;
+ goto yy1092;
+ goto yy1093;
} else {
if (yych <= 0xF3)
- goto yy1986;
+ goto yy1094;
if (yych <= 0xF4)
- goto yy1987;
+ goto yy1095;
}
}
}
- yy1976 : { return 0; }
- yy1977:
+ yy1084 : { return 0; }
+ yy1085:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x00)
- goto yy1976;
+ goto yy1084;
if (yych <= 0x7F)
- goto yy2020;
+ goto yy1128;
if (yych <= 0xC1)
- goto yy1976;
+ goto yy1084;
if (yych <= 0xF4)
- goto yy2020;
- goto yy1976;
- yy1978:
+ goto yy1128;
+ goto yy1084;
+ yy1086:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x00)
- goto yy1976;
+ goto yy1084;
if (yych <= 0x7F)
- goto yy2006;
+ goto yy1114;
if (yych <= 0xC1)
- goto yy1976;
+ goto yy1084;
if (yych <= 0xF4)
- goto yy2006;
- goto yy1976;
- yy1979:
+ goto yy1114;
+ goto yy1084;
+ yy1087:
yyaccept = 0;
yych = *(marker = ++p);
if (yych <= 0x00)
- goto yy1976;
+ goto yy1084;
if (yych <= 0x7F)
- goto yy1992;
+ goto yy1100;
if (yych <= 0xC1)
- goto yy1976;
+ goto yy1084;
if (yych <= 0xF4)
- goto yy1992;
- goto yy1976;
- yy1980:
+ goto yy1100;
+ goto yy1084;
+ yy1088:
yych = *++p;
- goto yy1976;
- yy1981:
+ goto yy1084;
+ yy1089:
yych = *++p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1980;
- yy1982:
+ goto yy1088;
+ yy1090:
p = marker;
if (yyaccept <= 1) {
if (yyaccept == 0) {
- goto yy1976;
+ goto yy1084;
} else {
- goto yy2001;
+ goto yy1109;
}
} else {
if (yyaccept == 2) {
- goto yy2015;
+ goto yy1123;
} else {
- goto yy2029;
+ goto yy1137;
}
}
- yy1983:
+ yy1091:
yych = *++p;
if (yych <= 0x9F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1981;
- goto yy1982;
- yy1984:
+ goto yy1089;
+ goto yy1090;
+ yy1092:
yych = *++p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1981;
- goto yy1982;
- yy1985:
+ goto yy1089;
+ goto yy1090;
+ yy1093:
yych = *++p;
if (yych <= 0x8F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1984;
- goto yy1982;
- yy1986:
+ goto yy1092;
+ goto yy1090;
+ yy1094:
yych = *++p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1984;
- goto yy1982;
- yy1987:
+ goto yy1092;
+ goto yy1090;
+ yy1095:
yych = *++p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x8F)
- goto yy1984;
- goto yy1982;
- yy1988:
+ goto yy1092;
+ goto yy1090;
+ yy1096:
yych = *++p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x9F)
- goto yy1981;
- goto yy1982;
- yy1989:
+ goto yy1089;
+ goto yy1090;
+ yy1097:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1991;
+ goto yy1099;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= ')')
- goto yy2002;
- goto yy1989;
+ goto yy1110;
+ goto yy1097;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xDF)
- goto yy1993;
- goto yy1994;
+ goto yy1101;
+ goto yy1102;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1999;
- goto yy1995;
+ goto yy1107;
+ goto yy1103;
} else {
if (yych <= 0xF0)
- goto yy1996;
+ goto yy1104;
if (yych <= 0xF3)
- goto yy1997;
+ goto yy1105;
if (yych <= 0xF4)
- goto yy1998;
- goto yy1982;
+ goto yy1106;
+ goto yy1090;
}
}
- yy1991:
+ yy1099:
++p;
yych = *p;
- yy1992:
+ yy1100:
if (yybm[0 + yych] & 32) {
- goto yy1991;
+ goto yy1099;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= ')')
- goto yy2000;
- goto yy1989;
+ goto yy1108;
+ goto yy1097;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych >= 0xE0)
- goto yy1994;
+ goto yy1102;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1999;
- goto yy1995;
+ goto yy1107;
+ goto yy1103;
} else {
if (yych <= 0xF0)
- goto yy1996;
+ goto yy1104;
if (yych <= 0xF3)
- goto yy1997;
+ goto yy1105;
if (yych <= 0xF4)
- goto yy1998;
- goto yy1982;
+ goto yy1106;
+ goto yy1090;
}
}
- yy1993:
+ yy1101:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1991;
- goto yy1982;
- yy1994:
+ goto yy1099;
+ goto yy1090;
+ yy1102:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1993;
- goto yy1982;
- yy1995:
+ goto yy1101;
+ goto yy1090;
+ yy1103:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1993;
- goto yy1982;
- yy1996:
+ goto yy1101;
+ goto yy1090;
+ yy1104:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1995;
- goto yy1982;
- yy1997:
+ goto yy1103;
+ goto yy1090;
+ yy1105:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy1995;
- goto yy1982;
- yy1998:
+ goto yy1103;
+ goto yy1090;
+ yy1106:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x8F)
- goto yy1995;
- goto yy1982;
- yy1999:
+ goto yy1103;
+ goto yy1090;
+ yy1107:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x9F)
- goto yy1993;
- goto yy1982;
- yy2000:
+ goto yy1101;
+ goto yy1090;
+ yy1108:
++p;
- yy2001 : { return (bufsize_t)(p - start); }
- yy2002:
+ yy1109 : { return (bufsize_t)(p - start); }
+ yy1110:
yyaccept = 1;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy1991;
+ goto yy1099;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy2001;
+ goto yy1109;
if (yych <= ')')
- goto yy2000;
- goto yy1989;
+ goto yy1108;
+ goto yy1097;
} else {
if (yych <= 0xC1)
- goto yy2001;
+ goto yy1109;
if (yych <= 0xDF)
- goto yy1993;
- goto yy1994;
+ goto yy1101;
+ goto yy1102;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy1999;
- goto yy1995;
+ goto yy1107;
+ goto yy1103;
} else {
if (yych <= 0xF0)
- goto yy1996;
+ goto yy1104;
if (yych <= 0xF3)
- goto yy1997;
+ goto yy1105;
if (yych <= 0xF4)
- goto yy1998;
- goto yy2001;
+ goto yy1106;
+ goto yy1109;
}
}
- yy2003:
+ yy1111:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy2005;
+ goto yy1113;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= '\'')
- goto yy2016;
- goto yy2003;
+ goto yy1124;
+ goto yy1111;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xDF)
- goto yy2007;
- goto yy2008;
+ goto yy1115;
+ goto yy1116;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2013;
- goto yy2009;
+ goto yy1121;
+ goto yy1117;
} else {
if (yych <= 0xF0)
- goto yy2010;
+ goto yy1118;
if (yych <= 0xF3)
- goto yy2011;
+ goto yy1119;
if (yych <= 0xF4)
- goto yy2012;
- goto yy1982;
+ goto yy1120;
+ goto yy1090;
}
}
- yy2005:
+ yy1113:
++p;
yych = *p;
- yy2006:
+ yy1114:
if (yybm[0 + yych] & 64) {
- goto yy2005;
+ goto yy1113;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= '\'')
- goto yy2014;
- goto yy2003;
+ goto yy1122;
+ goto yy1111;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych >= 0xE0)
- goto yy2008;
+ goto yy1116;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2013;
- goto yy2009;
+ goto yy1121;
+ goto yy1117;
} else {
if (yych <= 0xF0)
- goto yy2010;
+ goto yy1118;
if (yych <= 0xF3)
- goto yy2011;
+ goto yy1119;
if (yych <= 0xF4)
- goto yy2012;
- goto yy1982;
+ goto yy1120;
+ goto yy1090;
}
}
- yy2007:
+ yy1115:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2005;
- goto yy1982;
- yy2008:
+ goto yy1113;
+ goto yy1090;
+ yy1116:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2007;
- goto yy1982;
- yy2009:
+ goto yy1115;
+ goto yy1090;
+ yy1117:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2007;
- goto yy1982;
- yy2010:
+ goto yy1115;
+ goto yy1090;
+ yy1118:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2009;
- goto yy1982;
- yy2011:
+ goto yy1117;
+ goto yy1090;
+ yy1119:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2009;
- goto yy1982;
- yy2012:
+ goto yy1117;
+ goto yy1090;
+ yy1120:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x8F)
- goto yy2009;
- goto yy1982;
- yy2013:
+ goto yy1117;
+ goto yy1090;
+ yy1121:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x9F)
- goto yy2007;
- goto yy1982;
- yy2014:
+ goto yy1115;
+ goto yy1090;
+ yy1122:
++p;
- yy2015 : { return (bufsize_t)(p - start); }
- yy2016:
+ yy1123 : { return (bufsize_t)(p - start); }
+ yy1124:
yyaccept = 2;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy2005;
+ goto yy1113;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy2015;
+ goto yy1123;
if (yych <= '\'')
- goto yy2014;
- goto yy2003;
+ goto yy1122;
+ goto yy1111;
} else {
if (yych <= 0xC1)
- goto yy2015;
+ goto yy1123;
if (yych <= 0xDF)
- goto yy2007;
- goto yy2008;
+ goto yy1115;
+ goto yy1116;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2013;
- goto yy2009;
+ goto yy1121;
+ goto yy1117;
} else {
if (yych <= 0xF0)
- goto yy2010;
+ goto yy1118;
if (yych <= 0xF3)
- goto yy2011;
+ goto yy1119;
if (yych <= 0xF4)
- goto yy2012;
- goto yy2015;
+ goto yy1120;
+ goto yy1123;
}
}
- yy2017:
+ yy1125:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2019;
+ goto yy1127;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= '"')
- goto yy2030;
- goto yy2017;
+ goto yy1138;
+ goto yy1125;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xDF)
- goto yy2021;
- goto yy2022;
+ goto yy1129;
+ goto yy1130;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2027;
- goto yy2023;
+ goto yy1135;
+ goto yy1131;
} else {
if (yych <= 0xF0)
- goto yy2024;
+ goto yy1132;
if (yych <= 0xF3)
- goto yy2025;
+ goto yy1133;
if (yych <= 0xF4)
- goto yy2026;
- goto yy1982;
+ goto yy1134;
+ goto yy1090;
}
}
- yy2019:
+ yy1127:
++p;
yych = *p;
- yy2020:
+ yy1128:
if (yybm[0 + yych] & 128) {
- goto yy2019;
+ goto yy1127;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy1982;
+ goto yy1090;
if (yych <= '"')
- goto yy2028;
- goto yy2017;
+ goto yy1136;
+ goto yy1125;
} else {
if (yych <= 0xC1)
- goto yy1982;
+ goto yy1090;
if (yych >= 0xE0)
- goto yy2022;
+ goto yy1130;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2027;
- goto yy2023;
+ goto yy1135;
+ goto yy1131;
} else {
if (yych <= 0xF0)
- goto yy2024;
+ goto yy1132;
if (yych <= 0xF3)
- goto yy2025;
+ goto yy1133;
if (yych <= 0xF4)
- goto yy2026;
- goto yy1982;
+ goto yy1134;
+ goto yy1090;
}
}
- yy2021:
+ yy1129:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2019;
- goto yy1982;
- yy2022:
+ goto yy1127;
+ goto yy1090;
+ yy1130:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2021;
- goto yy1982;
- yy2023:
+ goto yy1129;
+ goto yy1090;
+ yy1131:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2021;
- goto yy1982;
- yy2024:
+ goto yy1129;
+ goto yy1090;
+ yy1132:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2023;
- goto yy1982;
- yy2025:
+ goto yy1131;
+ goto yy1090;
+ yy1133:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0xBF)
- goto yy2023;
- goto yy1982;
- yy2026:
+ goto yy1131;
+ goto yy1090;
+ yy1134:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x8F)
- goto yy2023;
- goto yy1982;
- yy2027:
+ goto yy1131;
+ goto yy1090;
+ yy1135:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy1982;
+ goto yy1090;
if (yych <= 0x9F)
- goto yy2021;
- goto yy1982;
- yy2028:
+ goto yy1129;
+ goto yy1090;
+ yy1136:
++p;
- yy2029 : { return (bufsize_t)(p - start); }
- yy2030:
+ yy1137 : { return (bufsize_t)(p - start); }
+ yy1138:
yyaccept = 3;
marker = ++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2019;
+ goto yy1127;
}
if (yych <= 0xE0) {
if (yych <= '\\') {
if (yych <= 0x00)
- goto yy2029;
+ goto yy1137;
if (yych <= '"')
- goto yy2028;
- goto yy2017;
+ goto yy1136;
+ goto yy1125;
} else {
if (yych <= 0xC1)
- goto yy2029;
+ goto yy1137;
if (yych <= 0xDF)
- goto yy2021;
- goto yy2022;
+ goto yy1129;
+ goto yy1130;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2027;
- goto yy2023;
+ goto yy1135;
+ goto yy1131;
} else {
if (yych <= 0xF0)
- goto yy2024;
+ goto yy1132;
if (yych <= 0xF3)
- goto yy2025;
+ goto yy1133;
if (yych <= 0xF4)
- goto yy2026;
- goto yy2029;
+ goto yy1134;
+ goto yy1137;
}
}
}
@@ -24976,109 +18402,109 @@ bufsize_t _scan_spacechars(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '\r') {
if (yych <= 0x08)
- goto yy2037;
+ goto yy1145;
if (yych == '\n')
- goto yy2035;
- goto yy2034;
+ goto yy1143;
+ goto yy1142;
} else {
if (yych == ' ')
- goto yy2034;
+ goto yy1142;
if (yych <= 0x7F)
- goto yy2037;
+ goto yy1145;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy2039;
+ goto yy1147;
if (yych <= 0xE0)
- goto yy2041;
+ goto yy1149;
if (yych <= 0xEC)
- goto yy2042;
- goto yy2046;
+ goto yy1150;
+ goto yy1154;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy2042;
- goto yy2043;
+ goto yy1150;
+ goto yy1151;
} else {
if (yych <= 0xF3)
- goto yy2044;
+ goto yy1152;
if (yych <= 0xF4)
- goto yy2045;
+ goto yy1153;
}
}
}
- yy2033 : { return (bufsize_t)(p - start); }
- yy2034:
+ yy1141 : { return (bufsize_t)(p - start); }
+ yy1142:
yych = *++p;
- goto yy2036;
- yy2035:
+ goto yy1144;
+ yy1143:
++p;
yych = *p;
- yy2036:
+ yy1144:
if (yybm[0 + yych] & 128) {
- goto yy2035;
+ goto yy1143;
}
- goto yy2033;
- yy2037:
+ goto yy1141;
+ yy1145:
++p;
{ return 0; }
- yy2039:
+ yy1147:
yych = *++p;
if (yych <= 0x7F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0xBF)
- goto yy2037;
- yy2040:
+ goto yy1145;
+ yy1148:
p = marker;
- goto yy2033;
- yy2041:
+ goto yy1141;
+ yy1149:
yych = *++p;
if (yych <= 0x9F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0xBF)
- goto yy2039;
- goto yy2040;
- yy2042:
+ goto yy1147;
+ goto yy1148;
+ yy1150:
yych = *++p;
if (yych <= 0x7F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0xBF)
- goto yy2039;
- goto yy2040;
- yy2043:
+ goto yy1147;
+ goto yy1148;
+ yy1151:
yych = *++p;
if (yych <= 0x8F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0xBF)
- goto yy2042;
- goto yy2040;
- yy2044:
+ goto yy1150;
+ goto yy1148;
+ yy1152:
yych = *++p;
if (yych <= 0x7F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0xBF)
- goto yy2042;
- goto yy2040;
- yy2045:
+ goto yy1150;
+ goto yy1148;
+ yy1153:
yych = *++p;
if (yych <= 0x7F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0x8F)
- goto yy2042;
- goto yy2040;
- yy2046:
+ goto yy1150;
+ goto yy1148;
+ yy1154:
++p;
if ((yych = *p) <= 0x7F)
- goto yy2040;
+ goto yy1148;
if (yych <= 0x9F)
- goto yy2039;
- goto yy2040;
+ goto yy1147;
+ goto yy1148;
}
}
-// Match ATX header start.
-bufsize_t _scan_atx_header_start(const unsigned char *p) {
+// Match ATX heading start.
+bufsize_t _scan_atx_heading_start(const unsigned char *p) {
const unsigned char *marker = NULL;
const unsigned char *start = p;
@@ -25102,184 +18528,184 @@ bufsize_t _scan_atx_header_start(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= '"') {
if (yych != '\n')
- goto yy2051;
+ goto yy1159;
} else {
if (yych <= '#')
- goto yy2050;
+ goto yy1158;
if (yych <= 0x7F)
- goto yy2051;
+ goto yy1159;
if (yych >= 0xC2)
- goto yy2052;
+ goto yy1160;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy2054;
+ goto yy1162;
if (yych == 0xED)
- goto yy2059;
- goto yy2055;
+ goto yy1167;
+ goto yy1163;
} else {
if (yych <= 0xF0)
- goto yy2056;
+ goto yy1164;
if (yych <= 0xF3)
- goto yy2057;
+ goto yy1165;
if (yych <= 0xF4)
- goto yy2058;
+ goto yy1166;
}
}
- yy2049 : { return 0; }
- yy2050:
+ yy1157 : { return 0; }
+ yy1158:
yych = *(marker = ++p);
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2060;
- goto yy2049;
+ goto yy1168;
+ goto yy1157;
} else {
if (yych <= '\r')
- goto yy2060;
+ goto yy1168;
if (yych == '#')
- goto yy2064;
- goto yy2049;
+ goto yy1172;
+ goto yy1157;
}
- yy2051:
+ yy1159:
yych = *++p;
- goto yy2049;
- yy2052:
+ goto yy1157;
+ yy1160:
yych = *++p;
if (yych <= 0x7F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0xBF)
- goto yy2051;
- yy2053:
+ goto yy1159;
+ yy1161:
p = marker;
- goto yy2049;
- yy2054:
+ goto yy1157;
+ yy1162:
yych = *++p;
if (yych <= 0x9F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0xBF)
- goto yy2052;
- goto yy2053;
- yy2055:
+ goto yy1160;
+ goto yy1161;
+ yy1163:
yych = *++p;
if (yych <= 0x7F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0xBF)
- goto yy2052;
- goto yy2053;
- yy2056:
+ goto yy1160;
+ goto yy1161;
+ yy1164:
yych = *++p;
if (yych <= 0x8F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0xBF)
- goto yy2055;
- goto yy2053;
- yy2057:
+ goto yy1163;
+ goto yy1161;
+ yy1165:
yych = *++p;
if (yych <= 0x7F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0xBF)
- goto yy2055;
- goto yy2053;
- yy2058:
+ goto yy1163;
+ goto yy1161;
+ yy1166:
yych = *++p;
if (yych <= 0x7F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0x8F)
- goto yy2055;
- goto yy2053;
- yy2059:
+ goto yy1163;
+ goto yy1161;
+ yy1167:
yych = *++p;
if (yych <= 0x7F)
- goto yy2053;
+ goto yy1161;
if (yych <= 0x9F)
- goto yy2052;
- goto yy2053;
- yy2060:
+ goto yy1160;
+ goto yy1161;
+ yy1168:
++p;
- yy2061 : { return (bufsize_t)(p - start); }
- yy2062:
+ yy1169 : { return (bufsize_t)(p - start); }
+ yy1170:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
- goto yy2061;
- yy2064:
+ goto yy1169;
+ yy1172:
yych = *++p;
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2060;
- goto yy2053;
+ goto yy1168;
+ goto yy1161;
} else {
if (yych <= '\r')
- goto yy2060;
+ goto yy1168;
if (yych != '#')
- goto yy2053;
+ goto yy1161;
}
yych = *++p;
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2060;
- goto yy2053;
+ goto yy1168;
+ goto yy1161;
} else {
if (yych <= '\r')
- goto yy2060;
+ goto yy1168;
if (yych != '#')
- goto yy2053;
+ goto yy1161;
}
yych = *++p;
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2060;
- goto yy2053;
+ goto yy1168;
+ goto yy1161;
} else {
if (yych <= '\r')
- goto yy2060;
+ goto yy1168;
if (yych != '#')
- goto yy2053;
+ goto yy1161;
}
yych = *++p;
if (yybm[0 + yych] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2060;
- goto yy2053;
+ goto yy1168;
+ goto yy1161;
} else {
if (yych <= '\r')
- goto yy2060;
+ goto yy1168;
if (yych != '#')
- goto yy2053;
+ goto yy1161;
}
++p;
if (yybm[0 + (yych = *p)] & 128) {
- goto yy2062;
+ goto yy1170;
}
if (yych == '\n')
- goto yy2060;
+ goto yy1168;
if (yych == '\r')
- goto yy2060;
- goto yy2053;
+ goto yy1168;
+ goto yy1161;
}
}
-// Match setext header line. Return 1 for level-1 header,
+// Match setext heading line. Return 1 for level-1 heading,
// 2 for level-2, 0 for no match.
-bufsize_t _scan_setext_header_line(const unsigned char *p) {
+bufsize_t _scan_setext_heading_line(const unsigned char *p) {
const unsigned char *marker = NULL;
{
@@ -25302,195 +18728,195 @@ bufsize_t _scan_setext_header_line(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '-') {
if (yych == '\n')
- goto yy2071;
+ goto yy1179;
if (yych <= ',')
- goto yy2074;
- goto yy2073;
+ goto yy1182;
+ goto yy1181;
} else {
if (yych == '=')
- goto yy2072;
+ goto yy1180;
if (yych <= 0x7F)
- goto yy2074;
+ goto yy1182;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy2075;
+ goto yy1183;
if (yych <= 0xE0)
- goto yy2077;
+ goto yy1185;
if (yych <= 0xEC)
- goto yy2078;
- goto yy2082;
+ goto yy1186;
+ goto yy1190;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy2078;
- goto yy2079;
+ goto yy1186;
+ goto yy1187;
} else {
if (yych <= 0xF3)
- goto yy2080;
+ goto yy1188;
if (yych <= 0xF4)
- goto yy2081;
+ goto yy1189;
}
}
}
- yy2071 : { return 0; }
- yy2072:
+ yy1179 : { return 0; }
+ yy1180:
yych = *(marker = ++p);
if (yybm[0 + yych] & 128) {
- goto yy2093;
+ goto yy1201;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2091;
- goto yy2071;
+ goto yy1199;
+ goto yy1179;
} else {
if (yych <= '\r')
- goto yy2091;
+ goto yy1199;
if (yych == ' ')
- goto yy2089;
- goto yy2071;
+ goto yy1197;
+ goto yy1179;
}
- yy2073:
+ yy1181:
yych = *(marker = ++p);
if (yybm[0 + yych] & 32) {
- goto yy2083;
+ goto yy1191;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2085;
- goto yy2071;
+ goto yy1193;
+ goto yy1179;
} else {
if (yych <= '\r')
- goto yy2085;
+ goto yy1193;
if (yych == '-')
- goto yy2087;
- goto yy2071;
+ goto yy1195;
+ goto yy1179;
}
- yy2074:
+ yy1182:
yych = *++p;
- goto yy2071;
- yy2075:
+ goto yy1179;
+ yy1183:
yych = *++p;
if (yych <= 0x7F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0xBF)
- goto yy2074;
- yy2076:
+ goto yy1182;
+ yy1184:
p = marker;
- goto yy2071;
- yy2077:
+ goto yy1179;
+ yy1185:
yych = *++p;
if (yych <= 0x9F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0xBF)
- goto yy2075;
- goto yy2076;
- yy2078:
+ goto yy1183;
+ goto yy1184;
+ yy1186:
yych = *++p;
if (yych <= 0x7F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0xBF)
- goto yy2075;
- goto yy2076;
- yy2079:
+ goto yy1183;
+ goto yy1184;
+ yy1187:
yych = *++p;
if (yych <= 0x8F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0xBF)
- goto yy2078;
- goto yy2076;
- yy2080:
+ goto yy1186;
+ goto yy1184;
+ yy1188:
yych = *++p;
if (yych <= 0x7F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0xBF)
- goto yy2078;
- goto yy2076;
- yy2081:
+ goto yy1186;
+ goto yy1184;
+ yy1189:
yych = *++p;
if (yych <= 0x7F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0x8F)
- goto yy2078;
- goto yy2076;
- yy2082:
+ goto yy1186;
+ goto yy1184;
+ yy1190:
yych = *++p;
if (yych <= 0x7F)
- goto yy2076;
+ goto yy1184;
if (yych <= 0x9F)
- goto yy2075;
- goto yy2076;
- yy2083:
+ goto yy1183;
+ goto yy1184;
+ yy1191:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy2083;
+ goto yy1191;
}
if (yych == '\n')
- goto yy2085;
+ goto yy1193;
if (yych != '\r')
- goto yy2076;
- yy2085:
+ goto yy1184;
+ yy1193:
++p;
{ return 2; }
- yy2087:
+ yy1195:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy2083;
+ goto yy1191;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2085;
- goto yy2076;
+ goto yy1193;
+ goto yy1184;
} else {
if (yych <= '\r')
- goto yy2085;
+ goto yy1193;
if (yych == '-')
- goto yy2087;
- goto yy2076;
+ goto yy1195;
+ goto yy1184;
}
- yy2089:
+ yy1197:
++p;
yych = *p;
if (yych <= '\f') {
if (yych != '\n')
- goto yy2076;
+ goto yy1184;
} else {
if (yych <= '\r')
- goto yy2091;
+ goto yy1199;
if (yych == ' ')
- goto yy2089;
- goto yy2076;
+ goto yy1197;
+ goto yy1184;
}
- yy2091:
+ yy1199:
++p;
{ return 1; }
- yy2093:
+ yy1201:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2093;
+ goto yy1201;
}
if (yych <= '\f') {
if (yych == '\n')
- goto yy2091;
- goto yy2076;
+ goto yy1199;
+ goto yy1184;
} else {
if (yych <= '\r')
- goto yy2091;
+ goto yy1199;
if (yych == ' ')
- goto yy2089;
- goto yy2076;
+ goto yy1197;
+ goto yy1184;
}
}
}
-// Scan a horizontal rule line: "...three or more hyphens, asterisks,
+// Scan a thematic break line: "...three or more hyphens, asterisks,
// or underscores on a line by themselves. If you wish, you may use
// spaces between the hyphens or asterisks."
-bufsize_t _scan_hrule(const unsigned char *p) {
+bufsize_t _scan_thematic_break(const unsigned char *p) {
const unsigned char *marker = NULL;
const unsigned char *start = p;
@@ -25514,267 +18940,267 @@ bufsize_t _scan_hrule(const unsigned char *p) {
if (yych <= 0x7F) {
if (yych <= '*') {
if (yych == '\n')
- goto yy2097;
+ goto yy1205;
if (yych <= ')')
- goto yy2101;
- goto yy2098;
+ goto yy1209;
+ goto yy1206;
} else {
if (yych <= '-') {
if (yych <= ',')
- goto yy2101;
- goto yy2100;
+ goto yy1209;
+ goto yy1208;
} else {
if (yych == '_')
- goto yy2099;
- goto yy2101;
+ goto yy1207;
+ goto yy1209;
}
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF) {
if (yych >= 0xC2)
- goto yy2102;
+ goto yy1210;
} else {
if (yych <= 0xE0)
- goto yy2104;
+ goto yy1212;
if (yych <= 0xEC)
- goto yy2105;
- goto yy2109;
+ goto yy1213;
+ goto yy1217;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy2105;
- goto yy2106;
+ goto yy1213;
+ goto yy1214;
} else {
if (yych <= 0xF3)
- goto yy2107;
+ goto yy1215;
if (yych <= 0xF4)
- goto yy2108;
+ goto yy1216;
}
}
}
- yy2097 : { return 0; }
- yy2098:
+ yy1205 : { return 0; }
+ yy1206:
yych = *(marker = ++p);
if (yych == ' ')
- goto yy2130;
+ goto yy1238;
if (yych == '*')
- goto yy2132;
- goto yy2097;
- yy2099:
+ goto yy1240;
+ goto yy1205;
+ yy1207:
yych = *(marker = ++p);
if (yych == ' ')
- goto yy2120;
+ goto yy1228;
if (yych == '_')
- goto yy2122;
- goto yy2097;
- yy2100:
+ goto yy1230;
+ goto yy1205;
+ yy1208:
yych = *(marker = ++p);
if (yybm[0 + yych] & 8) {
- goto yy2110;
+ goto yy1218;
}
if (yych == '-')
- goto yy2112;
- goto yy2097;
- yy2101:
+ goto yy1220;
+ goto yy1205;
+ yy1209:
yych = *++p;
- goto yy2097;
- yy2102:
+ goto yy1205;
+ yy1210:
yych = *++p;
if (yych <= 0x7F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0xBF)
- goto yy2101;
- yy2103:
+ goto yy1209;
+ yy1211:
p = marker;
- goto yy2097;
- yy2104:
+ goto yy1205;
+ yy1212:
yych = *++p;
if (yych <= 0x9F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0xBF)
- goto yy2102;
- goto yy2103;
- yy2105:
+ goto yy1210;
+ goto yy1211;
+ yy1213:
yych = *++p;
if (yych <= 0x7F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0xBF)
- goto yy2102;
- goto yy2103;
- yy2106:
+ goto yy1210;
+ goto yy1211;
+ yy1214:
yych = *++p;
if (yych <= 0x8F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0xBF)
- goto yy2105;
- goto yy2103;
- yy2107:
+ goto yy1213;
+ goto yy1211;
+ yy1215:
yych = *++p;
if (yych <= 0x7F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0xBF)
- goto yy2105;
- goto yy2103;
- yy2108:
+ goto yy1213;
+ goto yy1211;
+ yy1216:
yych = *++p;
if (yych <= 0x7F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0x8F)
- goto yy2105;
- goto yy2103;
- yy2109:
+ goto yy1213;
+ goto yy1211;
+ yy1217:
yych = *++p;
if (yych <= 0x7F)
- goto yy2103;
+ goto yy1211;
if (yych <= 0x9F)
- goto yy2102;
- goto yy2103;
- yy2110:
+ goto yy1210;
+ goto yy1211;
+ yy1218:
++p;
yych = *p;
if (yybm[0 + yych] & 8) {
- goto yy2110;
+ goto yy1218;
}
if (yych != '-')
- goto yy2103;
- yy2112:
+ goto yy1211;
+ yy1220:
++p;
yych = *p;
if (yych == ' ')
- goto yy2112;
+ goto yy1220;
if (yych != '-')
- goto yy2103;
- yy2114:
+ goto yy1211;
+ yy1222:
++p;
yych = *p;
if (yybm[0 + yych] & 16) {
- goto yy2114;
+ goto yy1222;
}
if (yych <= '\n') {
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych >= '\n')
- goto yy2118;
+ goto yy1226;
} else {
if (yych == '\r')
- goto yy2118;
- goto yy2103;
+ goto yy1226;
+ goto yy1211;
}
- yy2116:
+ yy1224:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy2116;
+ goto yy1224;
}
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych <= '\n')
- goto yy2118;
+ goto yy1226;
if (yych != '\r')
- goto yy2103;
- yy2118:
+ goto yy1211;
+ yy1226:
++p;
{ return (bufsize_t)(p - start); }
- yy2120:
+ yy1228:
++p;
yych = *p;
if (yych == ' ')
- goto yy2120;
+ goto yy1228;
if (yych != '_')
- goto yy2103;
- yy2122:
+ goto yy1211;
+ yy1230:
++p;
yych = *p;
if (yych == ' ')
- goto yy2122;
+ goto yy1230;
if (yych != '_')
- goto yy2103;
- yy2124:
+ goto yy1211;
+ yy1232:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy2124;
+ goto yy1232;
}
if (yych <= '\n') {
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych >= '\n')
- goto yy2128;
+ goto yy1236;
} else {
if (yych == '\r')
- goto yy2128;
- goto yy2103;
+ goto yy1236;
+ goto yy1211;
}
- yy2126:
+ yy1234:
++p;
yych = *p;
if (yych <= '\f') {
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych <= '\t')
- goto yy2126;
+ goto yy1234;
if (yych >= '\v')
- goto yy2103;
+ goto yy1211;
} else {
if (yych <= '\r')
- goto yy2128;
+ goto yy1236;
if (yych == ' ')
- goto yy2126;
- goto yy2103;
+ goto yy1234;
+ goto yy1211;
}
- yy2128:
+ yy1236:
++p;
{ return (bufsize_t)(p - start); }
- yy2130:
+ yy1238:
++p;
yych = *p;
if (yych == ' ')
- goto yy2130;
+ goto yy1238;
if (yych != '*')
- goto yy2103;
- yy2132:
+ goto yy1211;
+ yy1240:
++p;
yych = *p;
if (yych == ' ')
- goto yy2132;
+ goto yy1240;
if (yych != '*')
- goto yy2103;
- yy2134:
+ goto yy1211;
+ yy1242:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2134;
+ goto yy1242;
}
if (yych <= '\n') {
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych >= '\n')
- goto yy2138;
+ goto yy1246;
} else {
if (yych == '\r')
- goto yy2138;
- goto yy2103;
+ goto yy1246;
+ goto yy1211;
}
- yy2136:
+ yy1244:
++p;
yych = *p;
if (yych <= '\f') {
if (yych <= 0x08)
- goto yy2103;
+ goto yy1211;
if (yych <= '\t')
- goto yy2136;
+ goto yy1244;
if (yych >= '\v')
- goto yy2103;
+ goto yy1211;
} else {
if (yych <= '\r')
- goto yy2138;
+ goto yy1246;
if (yych == ' ')
- goto yy2136;
- goto yy2103;
+ goto yy1244;
+ goto yy1211;
}
- yy2138:
+ yy1246:
++p;
{ return (bufsize_t)(p - start); }
}
@@ -25812,374 +19238,374 @@ bufsize_t _scan_open_code_fence(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '`') {
if (yych == '\n')
- goto yy2142;
+ goto yy1250;
if (yych <= '_')
- goto yy2145;
- goto yy2143;
+ goto yy1253;
+ goto yy1251;
} else {
if (yych == '~')
- goto yy2144;
+ goto yy1252;
if (yych <= 0x7F)
- goto yy2145;
+ goto yy1253;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy2146;
+ goto yy1254;
if (yych <= 0xE0)
- goto yy2148;
+ goto yy1256;
if (yych <= 0xEC)
- goto yy2149;
- goto yy2153;
+ goto yy1257;
+ goto yy1261;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy2149;
- goto yy2150;
+ goto yy1257;
+ goto yy1258;
} else {
if (yych <= 0xF3)
- goto yy2151;
+ goto yy1259;
if (yych <= 0xF4)
- goto yy2152;
+ goto yy1260;
}
}
}
- yy2142 : { return 0; }
- yy2143:
+ yy1250 : { return 0; }
+ yy1251:
yych = *(marker = ++p);
if (yych == '`')
- goto yy2168;
- goto yy2142;
- yy2144:
+ goto yy1276;
+ goto yy1250;
+ yy1252:
yych = *(marker = ++p);
if (yych == '~')
- goto yy2154;
- goto yy2142;
- yy2145:
+ goto yy1262;
+ goto yy1250;
+ yy1253:
yych = *++p;
- goto yy2142;
- yy2146:
+ goto yy1250;
+ yy1254:
yych = *++p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2145;
- yy2147:
+ goto yy1253;
+ yy1255:
p = marker;
- goto yy2142;
- yy2148:
+ goto yy1250;
+ yy1256:
yych = *++p;
if (yych <= 0x9F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2146;
- goto yy2147;
- yy2149:
+ goto yy1254;
+ goto yy1255;
+ yy1257:
yych = *++p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2146;
- goto yy2147;
- yy2150:
+ goto yy1254;
+ goto yy1255;
+ yy1258:
yych = *++p;
if (yych <= 0x8F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2149;
- goto yy2147;
- yy2151:
+ goto yy1257;
+ goto yy1255;
+ yy1259:
yych = *++p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2149;
- goto yy2147;
- yy2152:
+ goto yy1257;
+ goto yy1255;
+ yy1260:
yych = *++p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x8F)
- goto yy2149;
- goto yy2147;
- yy2153:
+ goto yy1257;
+ goto yy1255;
+ yy1261:
yych = *++p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x9F)
- goto yy2146;
- goto yy2147;
- yy2154:
+ goto yy1254;
+ goto yy1255;
+ yy1262:
yych = *++p;
if (yybm[0 + yych] & 16) {
- goto yy2155;
+ goto yy1263;
}
- goto yy2147;
- yy2155:
+ goto yy1255;
+ yy1263:
marker = p + 1;
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy2157;
+ goto yy1265;
}
if (yych <= 0xE0) {
if (yych <= '~') {
if (yych <= 0x00)
- goto yy2147;
+ goto yy1255;
if (yych <= '\r')
- goto yy2166;
- goto yy2155;
+ goto yy1274;
+ goto yy1263;
} else {
if (yych <= 0xC1)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xDF)
- goto yy2159;
- goto yy2160;
+ goto yy1267;
+ goto yy1268;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2165;
- goto yy2161;
+ goto yy1273;
+ goto yy1269;
} else {
if (yych <= 0xF0)
- goto yy2162;
+ goto yy1270;
if (yych <= 0xF3)
- goto yy2163;
+ goto yy1271;
if (yych <= 0xF4)
- goto yy2164;
- goto yy2147;
+ goto yy1272;
+ goto yy1255;
}
}
- yy2157:
+ yy1265:
++p;
yych = *p;
if (yybm[0 + yych] & 32) {
- goto yy2157;
+ goto yy1265;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy2147;
+ goto yy1255;
if (yych <= '\r')
- goto yy2166;
- goto yy2147;
+ goto yy1274;
+ goto yy1255;
} else {
if (yych <= 0xDF)
- goto yy2159;
+ goto yy1267;
if (yych <= 0xE0)
- goto yy2160;
- goto yy2161;
+ goto yy1268;
+ goto yy1269;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy2165;
+ goto yy1273;
if (yych <= 0xEF)
- goto yy2161;
- goto yy2162;
+ goto yy1269;
+ goto yy1270;
} else {
if (yych <= 0xF3)
- goto yy2163;
+ goto yy1271;
if (yych <= 0xF4)
- goto yy2164;
- goto yy2147;
+ goto yy1272;
+ goto yy1255;
}
}
- yy2159:
+ yy1267:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2157;
- goto yy2147;
- yy2160:
+ goto yy1265;
+ goto yy1255;
+ yy1268:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2159;
- goto yy2147;
- yy2161:
+ goto yy1267;
+ goto yy1255;
+ yy1269:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2159;
- goto yy2147;
- yy2162:
+ goto yy1267;
+ goto yy1255;
+ yy1270:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2161;
- goto yy2147;
- yy2163:
+ goto yy1269;
+ goto yy1255;
+ yy1271:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2161;
- goto yy2147;
- yy2164:
+ goto yy1269;
+ goto yy1255;
+ yy1272:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x8F)
- goto yy2161;
- goto yy2147;
- yy2165:
+ goto yy1269;
+ goto yy1255;
+ yy1273:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x9F)
- goto yy2159;
- goto yy2147;
- yy2166:
+ goto yy1267;
+ goto yy1255;
+ yy1274:
++p;
p = marker;
{ return (bufsize_t)(p - start); }
- yy2168:
+ yy1276:
yych = *++p;
if (yybm[0 + yych] & 64) {
- goto yy2169;
+ goto yy1277;
}
- goto yy2147;
- yy2169:
+ goto yy1255;
+ yy1277:
marker = p + 1;
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2171;
+ goto yy1279;
}
if (yych <= 0xE0) {
if (yych <= '`') {
if (yych <= 0x00)
- goto yy2147;
+ goto yy1255;
if (yych <= '\r')
- goto yy2180;
- goto yy2169;
+ goto yy1288;
+ goto yy1277;
} else {
if (yych <= 0xC1)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xDF)
- goto yy2173;
- goto yy2174;
+ goto yy1281;
+ goto yy1282;
}
} else {
if (yych <= 0xEF) {
if (yych == 0xED)
- goto yy2179;
- goto yy2175;
+ goto yy1287;
+ goto yy1283;
} else {
if (yych <= 0xF0)
- goto yy2176;
+ goto yy1284;
if (yych <= 0xF3)
- goto yy2177;
+ goto yy1285;
if (yych <= 0xF4)
- goto yy2178;
- goto yy2147;
+ goto yy1286;
+ goto yy1255;
}
}
- yy2171:
+ yy1279:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2171;
+ goto yy1279;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= 0x00)
- goto yy2147;
+ goto yy1255;
if (yych <= '\r')
- goto yy2180;
- goto yy2147;
+ goto yy1288;
+ goto yy1255;
} else {
if (yych <= 0xDF)
- goto yy2173;
+ goto yy1281;
if (yych <= 0xE0)
- goto yy2174;
- goto yy2175;
+ goto yy1282;
+ goto yy1283;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
- goto yy2179;
+ goto yy1287;
if (yych <= 0xEF)
- goto yy2175;
- goto yy2176;
+ goto yy1283;
+ goto yy1284;
} else {
if (yych <= 0xF3)
- goto yy2177;
+ goto yy1285;
if (yych <= 0xF4)
- goto yy2178;
- goto yy2147;
+ goto yy1286;
+ goto yy1255;
}
}
- yy2173:
+ yy1281:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2171;
- goto yy2147;
- yy2174:
+ goto yy1279;
+ goto yy1255;
+ yy1282:
++p;
yych = *p;
if (yych <= 0x9F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2173;
- goto yy2147;
- yy2175:
+ goto yy1281;
+ goto yy1255;
+ yy1283:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2173;
- goto yy2147;
- yy2176:
+ goto yy1281;
+ goto yy1255;
+ yy1284:
++p;
yych = *p;
if (yych <= 0x8F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2175;
- goto yy2147;
- yy2177:
+ goto yy1283;
+ goto yy1255;
+ yy1285:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0xBF)
- goto yy2175;
- goto yy2147;
- yy2178:
+ goto yy1283;
+ goto yy1255;
+ yy1286:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x8F)
- goto yy2175;
- goto yy2147;
- yy2179:
+ goto yy1283;
+ goto yy1255;
+ yy1287:
++p;
yych = *p;
if (yych <= 0x7F)
- goto yy2147;
+ goto yy1255;
if (yych <= 0x9F)
- goto yy2173;
- goto yy2147;
- yy2180:
+ goto yy1281;
+ goto yy1255;
+ yy1288:
++p;
p = marker;
{ return (bufsize_t)(p - start); }
@@ -26211,190 +19637,190 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) {
if (yych <= 0xC1) {
if (yych <= '`') {
if (yych == '\n')
- goto yy2184;
+ goto yy1292;
if (yych <= '_')
- goto yy2187;
- goto yy2185;
+ goto yy1295;
+ goto yy1293;
} else {
if (yych == '~')
- goto yy2186;
+ goto yy1294;
if (yych <= 0x7F)
- goto yy2187;
+ goto yy1295;
}
} else {
if (yych <= 0xED) {
if (yych <= 0xDF)
- goto yy2188;
+ goto yy1296;
if (yych <= 0xE0)
- goto yy2190;
+ goto yy1298;
if (yych <= 0xEC)
- goto yy2191;
- goto yy2195;
+ goto yy1299;
+ goto yy1303;
} else {
if (yych <= 0xF0) {
if (yych <= 0xEF)
- goto yy2191;
- goto yy2192;
+ goto yy1299;
+ goto yy1300;
} else {
if (yych <= 0xF3)
- goto yy2193;
+ goto yy1301;
if (yych <= 0xF4)
- goto yy2194;
+ goto yy1302;
}
}
}
- yy2184 : { return 0; }
- yy2185:
+ yy1292 : { return 0; }
+ yy1293:
yych = *(marker = ++p);
if (yych == '`')
- goto yy2203;
- goto yy2184;
- yy2186:
+ goto yy1311;
+ goto yy1292;
+ yy1294:
yych = *(marker = ++p);
if (yych == '~')
- goto yy2196;
- goto yy2184;
- yy2187:
+ goto yy1304;
+ goto yy1292;
+ yy1295:
yych = *++p;
- goto yy2184;
- yy2188:
+ goto yy1292;
+ yy1296:
yych = *++p;
if (yych <= 0x7F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0xBF)
- goto yy2187;
- yy2189:
+ goto yy1295;
+ yy1297:
p = marker;
- goto yy2184;
- yy2190:
+ goto yy1292;
+ yy1298:
yych = *++p;
if (yych <= 0x9F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0xBF)
- goto yy2188;
- goto yy2189;
- yy2191:
+ goto yy1296;
+ goto yy1297;
+ yy1299:
yych = *++p;
if (yych <= 0x7F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0xBF)
- goto yy2188;
- goto yy2189;
- yy2192:
+ goto yy1296;
+ goto yy1297;
+ yy1300:
yych = *++p;
if (yych <= 0x8F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0xBF)
- goto yy2191;
- goto yy2189;
- yy2193:
+ goto yy1299;
+ goto yy1297;
+ yy1301:
yych = *++p;
if (yych <= 0x7F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0xBF)
- goto yy2191;
- goto yy2189;
- yy2194:
+ goto yy1299;
+ goto yy1297;
+ yy1302:
yych = *++p;
if (yych <= 0x7F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0x8F)
- goto yy2191;
- goto yy2189;
- yy2195:
+ goto yy1299;
+ goto yy1297;
+ yy1303:
yych = *++p;
if (yych <= 0x7F)
- goto yy2189;
+ goto yy1297;
if (yych <= 0x9F)
- goto yy2188;
- goto yy2189;
- yy2196:
+ goto yy1296;
+ goto yy1297;
+ yy1304:
yych = *++p;
if (yybm[0 + yych] & 32) {
- goto yy2197;
+ goto yy1305;
}
- goto yy2189;
- yy2197:
+ goto yy1297;
+ yy1305:
marker = p + 1;
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy2199;
+ goto yy1307;
}
if (yych <= '\f') {
if (yych <= 0x08)
- goto yy2189;
+ goto yy1297;
if (yych <= '\n')
- goto yy2201;
- goto yy2189;
+ goto yy1309;
+ goto yy1297;
} else {
if (yych <= '\r')
- goto yy2201;
+ goto yy1309;
if (yych == '~')
- goto yy2197;
- goto yy2189;
+ goto yy1305;
+ goto yy1297;
}
- yy2199:
+ yy1307:
++p;
yych = *p;
if (yybm[0 + yych] & 64) {
- goto yy2199;
+ goto yy1307;
}
if (yych <= 0x08)
- goto yy2189;
+ goto yy1297;
if (yych <= '\n')
- goto yy2201;
+ goto yy1309;
if (yych != '\r')
- goto yy2189;
- yy2201:
+ goto yy1297;
+ yy1309:
++p;
p = marker;
{ return (bufsize_t)(p - start); }
- yy2203:
+ yy1311:
yych = *++p;
if (yybm[0 + yych] & 128) {
- goto yy2204;
+ goto yy1312;
}
- goto yy2189;
- yy2204:
+ goto yy1297;
+ yy1312:
marker = p + 1;
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
- goto yy2204;
+ goto yy1312;
}
if (yych <= '\f') {
if (yych <= 0x08)
- goto yy2189;
+ goto yy1297;
if (yych <= '\t')
- goto yy2206;
+ goto yy1314;
if (yych <= '\n')
- goto yy2208;
- goto yy2189;
+ goto yy1316;
+ goto yy1297;
} else {
if (yych <= '\r')
- goto yy2208;
+ goto yy1316;
if (yych != ' ')
- goto yy2189;
+ goto yy1297;
}
- yy2206:
+ yy1314:
++p;
yych = *p;
if (yych <= '\f') {
if (yych <= 0x08)
- goto yy2189;
+ goto yy1297;
if (yych <= '\t')
- goto yy2206;
+ goto yy1314;
if (yych >= '\v')
- goto yy2189;
+ goto yy1297;
} else {
if (yych <= '\r')
- goto yy2208;
+ goto yy1316;
if (yych == ' ')
- goto yy2206;
- goto yy2189;
+ goto yy1314;
+ goto yy1297;
}
- yy2208:
+ yy1316:
++p;
p = marker;
{ return (bufsize_t)(p - start); }
@@ -26413,997 +19839,997 @@ bufsize_t _scan_entity(const unsigned char *p) {
if (yych <= 0xDF) {
if (yych <= '%') {
if (yych != '\n')
- goto yy2214;
+ goto yy1322;
} else {
if (yych <= '&')
- goto yy2213;
+ goto yy1321;
if (yych <= 0x7F)
- goto yy2214;
+ goto yy1322;
if (yych >= 0xC2)
- goto yy2215;
+ goto yy1323;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy2217;
+ goto yy1325;
if (yych == 0xED)
- goto yy2222;
- goto yy2218;
+ goto yy1330;
+ goto yy1326;
} else {
if (yych <= 0xF0)
- goto yy2219;
+ goto yy1327;
if (yych <= 0xF3)
- goto yy2220;
+ goto yy1328;
if (yych <= 0xF4)
- goto yy2221;
+ goto yy1329;
}
}
- yy2212 : { return 0; }
- yy2213:
+ yy1320 : { return 0; }
+ yy1321:
yych = *(marker = ++p);
if (yych <= '@') {
if (yych == '#')
- goto yy2223;
- goto yy2212;
+ goto yy1331;
+ goto yy1320;
} else {
if (yych <= 'Z')
- goto yy2224;
+ goto yy1332;
if (yych <= '`')
- goto yy2212;
+ goto yy1320;
if (yych <= 'z')
- goto yy2224;
- goto yy2212;
+ goto yy1332;
+ goto yy1320;
}
- yy2214:
+ yy1322:
yych = *++p;
- goto yy2212;
- yy2215:
+ goto yy1320;
+ yy1323:
yych = *++p;
if (yych <= 0x7F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0xBF)
- goto yy2214;
- yy2216:
+ goto yy1322;
+ yy1324:
p = marker;
- goto yy2212;
- yy2217:
+ goto yy1320;
+ yy1325:
yych = *++p;
if (yych <= 0x9F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0xBF)
- goto yy2215;
- goto yy2216;
- yy2218:
+ goto yy1323;
+ goto yy1324;
+ yy1326:
yych = *++p;
if (yych <= 0x7F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0xBF)
- goto yy2215;
- goto yy2216;
- yy2219:
+ goto yy1323;
+ goto yy1324;
+ yy1327:
yych = *++p;
if (yych <= 0x8F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0xBF)
- goto yy2218;
- goto yy2216;
- yy2220:
+ goto yy1326;
+ goto yy1324;
+ yy1328:
yych = *++p;
if (yych <= 0x7F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0xBF)
- goto yy2218;
- goto yy2216;
- yy2221:
+ goto yy1326;
+ goto yy1324;
+ yy1329:
yych = *++p;
if (yych <= 0x7F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0x8F)
- goto yy2218;
- goto yy2216;
- yy2222:
+ goto yy1326;
+ goto yy1324;
+ yy1330:
yych = *++p;
if (yych <= 0x7F)
- goto yy2216;
+ goto yy1324;
if (yych <= 0x9F)
- goto yy2215;
- goto yy2216;
- yy2223:
+ goto yy1323;
+ goto yy1324;
+ yy1331:
yych = *++p;
if (yych <= 'W') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2259;
- goto yy2216;
+ goto yy1367;
+ goto yy1324;
} else {
if (yych <= 'X')
- goto yy2258;
+ goto yy1366;
if (yych == 'x')
- goto yy2258;
- goto yy2216;
+ goto yy1366;
+ goto yy1324;
}
- yy2224:
+ yy1332:
yych = *++p;
if (yych <= '@') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych >= ':')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= 'Z')
- goto yy2225;
+ goto yy1333;
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
- yy2225:
+ yy1333:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2228;
+ goto yy1336;
if (yych <= ':')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
- goto yy2228;
+ goto yy1324;
+ goto yy1336;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych <= 'z')
- goto yy2228;
- goto yy2216;
+ goto yy1336;
+ goto yy1324;
}
}
- yy2226:
+ yy1334:
++p;
{ return (bufsize_t)(p - start); }
- yy2228:
+ yy1336:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2229;
+ goto yy1337;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2229:
+ yy1337:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2230;
+ goto yy1338;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2230:
+ yy1338:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2231;
+ goto yy1339;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2231:
+ yy1339:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2232;
+ goto yy1340;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2232:
+ yy1340:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2233;
+ goto yy1341;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2233:
+ yy1341:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2234;
+ goto yy1342;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2234:
+ yy1342:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2235;
+ goto yy1343;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2235:
+ yy1343:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2236;
+ goto yy1344;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2236:
+ yy1344:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2237;
+ goto yy1345;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2237:
+ yy1345:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2238;
+ goto yy1346;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2238:
+ yy1346:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2239;
+ goto yy1347;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2239:
+ yy1347:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2240;
+ goto yy1348;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2240:
+ yy1348:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2241;
+ goto yy1349;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2241:
+ yy1349:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2242;
+ goto yy1350;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2242:
+ yy1350:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2243;
+ goto yy1351;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2243:
+ yy1351:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2244;
+ goto yy1352;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2244:
+ yy1352:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2245;
+ goto yy1353;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2245:
+ yy1353:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2246;
+ goto yy1354;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2246:
+ yy1354:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2247;
+ goto yy1355;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2247:
+ yy1355:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2248;
+ goto yy1356;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2248:
+ yy1356:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2249;
+ goto yy1357;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2249:
+ yy1357:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2250;
+ goto yy1358;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2250:
+ yy1358:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2251;
+ goto yy1359;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2251:
+ yy1359:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2252;
+ goto yy1360;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2252:
+ yy1360:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2253;
+ goto yy1361;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2253:
+ yy1361:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2254;
+ goto yy1362;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2254:
+ yy1362:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2255;
+ goto yy1363;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2255:
+ yy1363:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2256;
+ goto yy1364;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2256:
+ yy1364:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2257;
+ goto yy1365;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'Z') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= '{')
- goto yy2216;
+ goto yy1324;
}
}
- yy2257:
+ yy1365:
yych = *++p;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2258:
+ goto yy1334;
+ goto yy1324;
+ yy1366:
yych = *++p;
if (yych <= '@') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2266;
- goto yy2216;
+ goto yy1374;
+ goto yy1324;
} else {
if (yych <= 'F')
- goto yy2266;
+ goto yy1374;
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych <= 'f')
- goto yy2266;
- goto yy2216;
+ goto yy1374;
+ goto yy1324;
}
- yy2259:
+ yy1367:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2260;
+ goto yy1368;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2260:
+ goto yy1334;
+ goto yy1324;
+ yy1368:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2261;
+ goto yy1369;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2261:
+ goto yy1334;
+ goto yy1324;
+ yy1369:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2262;
+ goto yy1370;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2262:
+ goto yy1334;
+ goto yy1324;
+ yy1370:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2263;
+ goto yy1371;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2263:
+ goto yy1334;
+ goto yy1324;
+ yy1371:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2264;
+ goto yy1372;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2264:
+ goto yy1334;
+ goto yy1324;
+ yy1372:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2265;
+ goto yy1373;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2265:
+ goto yy1334;
+ goto yy1324;
+ yy1373:
yych = *++p;
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2257;
+ goto yy1365;
if (yych == ';')
- goto yy2226;
- goto yy2216;
- yy2266:
+ goto yy1334;
+ goto yy1324;
+ yy1374:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2267;
+ goto yy1375;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2267:
+ yy1375:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2268;
+ goto yy1376;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2268:
+ yy1376:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2269;
+ goto yy1377;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2269:
+ yy1377:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2270;
+ goto yy1378;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2270:
+ yy1378:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2271;
+ goto yy1379;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2271:
+ yy1379:
yych = *++p;
if (yych <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2272;
+ goto yy1380;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
+ goto yy1324;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych >= 'g')
- goto yy2216;
+ goto yy1324;
}
}
- yy2272:
+ yy1380:
++p;
if ((yych = *p) <= ';') {
if (yych <= '/')
- goto yy2216;
+ goto yy1324;
if (yych <= '9')
- goto yy2257;
+ goto yy1365;
if (yych <= ':')
- goto yy2216;
- goto yy2226;
+ goto yy1324;
+ goto yy1334;
} else {
if (yych <= 'F') {
if (yych <= '@')
- goto yy2216;
- goto yy2257;
+ goto yy1324;
+ goto yy1365;
} else {
if (yych <= '`')
- goto yy2216;
+ goto yy1324;
if (yych <= 'f')
- goto yy2257;
- goto yy2216;
+ goto yy1365;
+ goto yy1324;
}
}
}
@@ -27423,415 +20849,415 @@ bufsize_t _scan_dangerous_url(const unsigned char *p) {
if (yych <= 'I') {
if (yych <= 'C') {
if (yych != '\n')
- goto yy2280;
+ goto yy1388;
} else {
if (yych <= 'D')
- goto yy2276;
+ goto yy1384;
if (yych == 'F')
- goto yy2279;
- goto yy2280;
+ goto yy1387;
+ goto yy1388;
}
} else {
if (yych <= 'V') {
if (yych <= 'J')
- goto yy2277;
+ goto yy1385;
if (yych <= 'U')
- goto yy2280;
- goto yy2278;
+ goto yy1388;
+ goto yy1386;
} else {
if (yych == 'd')
- goto yy2276;
+ goto yy1384;
if (yych <= 'e')
- goto yy2280;
- goto yy2279;
+ goto yy1388;
+ goto yy1387;
}
}
} else {
if (yych <= 0xDF) {
if (yych <= 'u') {
if (yych == 'j')
- goto yy2277;
- goto yy2280;
+ goto yy1385;
+ goto yy1388;
} else {
if (yych <= 'v')
- goto yy2278;
+ goto yy1386;
if (yych <= 0x7F)
- goto yy2280;
+ goto yy1388;
if (yych >= 0xC2)
- goto yy2281;
+ goto yy1389;
}
} else {
if (yych <= 0xEF) {
if (yych <= 0xE0)
- goto yy2283;
+ goto yy1391;
if (yych == 0xED)
- goto yy2288;
- goto yy2284;
+ goto yy1396;
+ goto yy1392;
} else {
if (yych <= 0xF0)
- goto yy2285;
+ goto yy1393;
if (yych <= 0xF3)
- goto yy2286;
+ goto yy1394;
if (yych <= 0xF4)
- goto yy2287;
+ goto yy1395;
}
}
}
- yy2275 : { return 0; }
- yy2276:
+ yy1383 : { return 0; }
+ yy1384:
yyaccept = 0;
yych = *(marker = ++p);
if (yych == 'A')
- goto yy2310;
+ goto yy1418;
if (yych == 'a')
- goto yy2310;
- goto yy2275;
- yy2277:
+ goto yy1418;
+ goto yy1383;
+ yy1385:
yyaccept = 0;
yych = *(marker = ++p);
if (yych == 'A')
- goto yy2301;
+ goto yy1409;
if (yych == 'a')
- goto yy2301;
- goto yy2275;
- yy2278:
+ goto yy1409;
+ goto yy1383;
+ yy1386:
yyaccept = 0;
yych = *(marker = ++p);
if (yych == 'B')
- goto yy2294;
+ goto yy1402;
if (yych == 'b')
- goto yy2294;
- goto yy2275;
- yy2279:
+ goto yy1402;
+ goto yy1383;
+ yy1387:
yyaccept = 0;
yych = *(marker = ++p);
if (yych == 'I')
- goto yy2289;
+ goto yy1397;
if (yych == 'i')
- goto yy2289;
- goto yy2275;
- yy2280:
+ goto yy1397;
+ goto yy1383;
+ yy1388:
yych = *++p;
- goto yy2275;
- yy2281:
+ goto yy1383;
+ yy1389:
yych = *++p;
if (yych <= 0x7F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0xBF)
- goto yy2280;
- yy2282:
+ goto yy1388;
+ yy1390:
p = marker;
if (yyaccept == 0) {
- goto yy2275;
+ goto yy1383;
} else {
- goto yy2293;
+ goto yy1401;
}
- yy2283:
+ yy1391:
yych = *++p;
if (yych <= 0x9F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0xBF)
- goto yy2281;
- goto yy2282;
- yy2284:
+ goto yy1389;
+ goto yy1390;
+ yy1392:
yych = *++p;
if (yych <= 0x7F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0xBF)
- goto yy2281;
- goto yy2282;
- yy2285:
+ goto yy1389;
+ goto yy1390;
+ yy1393:
yych = *++p;
if (yych <= 0x8F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0xBF)
- goto yy2284;
- goto yy2282;
- yy2286:
+ goto yy1392;
+ goto yy1390;
+ yy1394:
yych = *++p;
if (yych <= 0x7F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0xBF)
- goto yy2284;
- goto yy2282;
- yy2287:
+ goto yy1392;
+ goto yy1390;
+ yy1395:
yych = *++p;
if (yych <= 0x7F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0x8F)
- goto yy2284;
- goto yy2282;
- yy2288:
+ goto yy1392;
+ goto yy1390;
+ yy1396:
yych = *++p;
if (yych <= 0x7F)
- goto yy2282;
+ goto yy1390;
if (yych <= 0x9F)
- goto yy2281;
- goto yy2282;
- yy2289:
+ goto yy1389;
+ goto yy1390;
+ yy1397:
yych = *++p;
if (yych == 'L')
- goto yy2290;
+ goto yy1398;
if (yych != 'l')
- goto yy2282;
- yy2290:
+ goto yy1390;
+ yy1398:
yych = *++p;
if (yych == 'E')
- goto yy2291;
+ goto yy1399;
if (yych != 'e')
- goto yy2282;
- yy2291:
+ goto yy1390;
+ yy1399:
yych = *++p;
if (yych != ':')
- goto yy2282;
- yy2292:
+ goto yy1390;
+ yy1400:
++p;
- yy2293 : { return (bufsize_t)(p - start); }
- yy2294:
+ yy1401 : { return (bufsize_t)(p - start); }
+ yy1402:
yych = *++p;
if (yych == 'S')
- goto yy2295;
+ goto yy1403;
if (yych != 's')
- goto yy2282;
- yy2295:
+ goto yy1390;
+ yy1403:
yych = *++p;
if (yych == 'C')
- goto yy2296;
+ goto yy1404;
if (yych != 'c')
- goto yy2282;
- yy2296:
+ goto yy1390;
+ yy1404:
yych = *++p;
if (yych == 'R')
- goto yy2297;
+ goto yy1405;
if (yych != 'r')
- goto yy2282;
- yy2297:
+ goto yy1390;
+ yy1405:
yych = *++p;
if (yych == 'I')
- goto yy2298;
+ goto yy1406;
if (yych != 'i')
- goto yy2282;
- yy2298:
+ goto yy1390;
+ yy1406:
yych = *++p;
if (yych == 'P')
- goto yy2299;
+ goto yy1407;
if (yych != 'p')
- goto yy2282;
- yy2299:
+ goto yy1390;
+ yy1407:
yych = *++p;
if (yych == 'T')
- goto yy2300;
+ goto yy1408;
if (yych != 't')
- goto yy2282;
- yy2300:
+ goto yy1390;
+ yy1408:
yych = *++p;
if (yych == ':')
- goto yy2292;
- goto yy2282;
- yy2301:
+ goto yy1400;
+ goto yy1390;
+ yy1409:
yych = *++p;
if (yych == 'V')
- goto yy2302;
+ goto yy1410;
if (yych != 'v')
- goto yy2282;
- yy2302:
+ goto yy1390;
+ yy1410:
yych = *++p;
if (yych == 'A')
- goto yy2303;
+ goto yy1411;
if (yych != 'a')
- goto yy2282;
- yy2303:
+ goto yy1390;
+ yy1411:
yych = *++p;
if (yych == 'S')
- goto yy2304;
+ goto yy1412;
if (yych != 's')
- goto yy2282;
- yy2304:
+ goto yy1390;
+ yy1412:
yych = *++p;
if (yych == 'C')
- goto yy2305;
+ goto yy1413;
if (yych != 'c')
- goto yy2282;
- yy2305:
+ goto yy1390;
+ yy1413:
yych = *++p;
if (yych == 'R')
- goto yy2306;
+ goto yy1414;
if (yych != 'r')
- goto yy2282;
- yy2306:
+ goto yy1390;
+ yy1414:
yych = *++p;
if (yych == 'I')
- goto yy2307;
+ goto yy1415;
if (yych != 'i')
- goto yy2282;
- yy2307:
+ goto yy1390;
+ yy1415:
yych = *++p;
if (yych == 'P')
- goto yy2308;
+ goto yy1416;
if (yych != 'p')
- goto yy2282;
- yy2308:
+ goto yy1390;
+ yy1416:
yych = *++p;
if (yych == 'T')
- goto yy2309;
+ goto yy1417;
if (yych != 't')
- goto yy2282;
- yy2309:
+ goto yy1390;
+ yy1417:
yych = *++p;
if (yych == ':')
- goto yy2292;
- goto yy2282;
- yy2310:
+ goto yy1400;
+ goto yy1390;
+ yy1418:
yych = *++p;
if (yych == 'T')
- goto yy2311;
+ goto yy1419;
if (yych != 't')
- goto yy2282;
- yy2311:
+ goto yy1390;
+ yy1419:
yych = *++p;
if (yych == 'A')
- goto yy2312;
+ goto yy1420;
if (yych != 'a')
- goto yy2282;
- yy2312:
+ goto yy1390;
+ yy1420:
yych = *++p;
if (yych != ':')
- goto yy2282;
+ goto yy1390;
yyaccept = 1;
yych = *(marker = ++p);
if (yych == 'I')
- goto yy2314;
+ goto yy1422;
if (yych != 'i')
- goto yy2293;
- yy2314:
+ goto yy1401;
+ yy1422:
yych = *++p;
if (yych == 'M')
- goto yy2315;
+ goto yy1423;
if (yych != 'm')
- goto yy2282;
- yy2315:
+ goto yy1390;
+ yy1423:
yych = *++p;
if (yych == 'A')
- goto yy2316;
+ goto yy1424;
if (yych != 'a')
- goto yy2282;
- yy2316:
+ goto yy1390;
+ yy1424:
yych = *++p;
if (yych == 'G')
- goto yy2317;
+ goto yy1425;
if (yych != 'g')
- goto yy2282;
- yy2317:
+ goto yy1390;
+ yy1425:
yych = *++p;
if (yych == 'E')
- goto yy2318;
+ goto yy1426;
if (yych != 'e')
- goto yy2282;
- yy2318:
+ goto yy1390;
+ yy1426:
yych = *++p;
if (yych != '/')
- goto yy2282;
+ goto yy1390;
yych = *++p;
if (yych <= 'W') {
if (yych <= 'J') {
if (yych == 'G')
- goto yy2321;
+ goto yy1429;
if (yych <= 'I')
- goto yy2282;
- goto yy2322;
+ goto yy1390;
+ goto yy1430;
} else {
if (yych == 'P')
- goto yy2320;
+ goto yy1428;
if (yych <= 'V')
- goto yy2282;
- goto yy2323;
+ goto yy1390;
+ goto yy1431;
}
} else {
if (yych <= 'j') {
if (yych == 'g')
- goto yy2321;
+ goto yy1429;
if (yych <= 'i')
- goto yy2282;
- goto yy2322;
+ goto yy1390;
+ goto yy1430;
} else {
if (yych <= 'p') {
if (yych <= 'o')
- goto yy2282;
+ goto yy1390;
} else {
if (yych == 'w')
- goto yy2323;
- goto yy2282;
+ goto yy1431;
+ goto yy1390;
}
}
}
- yy2320:
+ yy1428:
yych = *++p;
if (yych == 'N')
- goto yy2331;
+ goto yy1439;
if (yych == 'n')
- goto yy2331;
- goto yy2282;
- yy2321:
+ goto yy1439;
+ goto yy1390;
+ yy1429:
yych = *++p;
if (yych == 'I')
- goto yy2330;
+ goto yy1438;
if (yych == 'i')
- goto yy2330;
- goto yy2282;
- yy2322:
+ goto yy1438;
+ goto yy1390;
+ yy1430:
yych = *++p;
if (yych == 'P')
- goto yy2328;
+ goto yy1436;
if (yych == 'p')
- goto yy2328;
- goto yy2282;
- yy2323:
+ goto yy1436;
+ goto yy1390;
+ yy1431:
yych = *++p;
if (yych == 'E')
- goto yy2324;
+ goto yy1432;
if (yych != 'e')
- goto yy2282;
- yy2324:
+ goto yy1390;
+ yy1432:
yych = *++p;
if (yych == 'B')
- goto yy2325;
+ goto yy1433;
if (yych != 'b')
- goto yy2282;
- yy2325:
+ goto yy1390;
+ yy1433:
yych = *++p;
if (yych == 'P')
- goto yy2326;
+ goto yy1434;
if (yych != 'p')
- goto yy2282;
- yy2326:
+ goto yy1390;
+ yy1434:
++p;
{ return 0; }
- yy2328:
+ yy1436:
yych = *++p;
if (yych == 'E')
- goto yy2329;
+ goto yy1437;
if (yych != 'e')
- goto yy2282;
- yy2329:
+ goto yy1390;
+ yy1437:
yych = *++p;
if (yych == 'G')
- goto yy2326;
+ goto yy1434;
if (yych == 'g')
- goto yy2326;
- goto yy2282;
- yy2330:
+ goto yy1434;
+ goto yy1390;
+ yy1438:
yych = *++p;
if (yych == 'F')
- goto yy2326;
+ goto yy1434;
if (yych == 'f')
- goto yy2326;
- goto yy2282;
- yy2331:
+ goto yy1434;
+ goto yy1390;
+ yy1439:
++p;
if ((yych = *p) == 'G')
- goto yy2326;
+ goto yy1434;
if (yych == 'g')
- goto yy2326;
- goto yy2282;
+ goto yy1434;
+ goto yy1390;
}
}
diff --git a/src/scanners.h b/src/scanners.h
index 4616f9f..5e3cbe7 100644
--- a/src/scanners.h
+++ b/src/scanners.h
@@ -21,9 +21,9 @@ bufsize_t _scan_html_block_end_5(const unsigned char *p);
bufsize_t _scan_link_url(const unsigned char *p);
bufsize_t _scan_link_title(const unsigned char *p);
bufsize_t _scan_spacechars(const unsigned char *p);
-bufsize_t _scan_atx_header_start(const unsigned char *p);
-bufsize_t _scan_setext_header_line(const unsigned char *p);
-bufsize_t _scan_hrule(const unsigned char *p);
+bufsize_t _scan_atx_heading_start(const unsigned char *p);
+bufsize_t _scan_setext_heading_line(const unsigned char *p);
+bufsize_t _scan_thematic_break(const unsigned char *p);
bufsize_t _scan_open_code_fence(const unsigned char *p);
bufsize_t _scan_close_code_fence(const unsigned char *p);
bufsize_t _scan_entity(const unsigned char *p);
@@ -43,9 +43,10 @@ bufsize_t _scan_dangerous_url(const unsigned char *p);
#define scan_link_url(c, n) _scan_at(&_scan_link_url, c, n)
#define scan_link_title(c, n) _scan_at(&_scan_link_title, c, n)
#define scan_spacechars(c, n) _scan_at(&_scan_spacechars, c, n)
-#define scan_atx_header_start(c, n) _scan_at(&_scan_atx_header_start, c, n)
-#define scan_setext_header_line(c, n) _scan_at(&_scan_setext_header_line, c, n)
-#define scan_hrule(c, n) _scan_at(&_scan_hrule, c, n)
+#define scan_atx_heading_start(c, n) _scan_at(&_scan_atx_heading_start, c, n)
+#define scan_setext_heading_line(c, n) \
+ _scan_at(&_scan_setext_heading_line, c, n)
+#define scan_thematic_break(c, n) _scan_at(&_scan_thematic_break, c, n)
#define scan_open_code_fence(c, n) _scan_at(&_scan_open_code_fence, c, n)
#define scan_close_code_fence(c, n) _scan_at(&_scan_close_code_fence, c, n)
#define scan_entity(c, n) _scan_at(&_scan_entity, c, n)
diff --git a/src/scanners.re b/src/scanners.re
index 75417a1..8b1c91e 100644
--- a/src/scanners.re
+++ b/src/scanners.re
@@ -6,10 +6,9 @@ bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
{
bufsize_t res;
unsigned char *ptr = (unsigned char *)c->data;
- unsigned char zero = '\0';
- if (ptr == NULL) {
- res = scanner(&zero);
+ if (ptr == NULL || offset > c->len) {
+ return 0;
} else {
unsigned char lim = ptr[c->len];
@@ -72,7 +71,7 @@ bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
in_single_quotes = ['] (escaped_char|[^'\x00])* ['];
in_parens = [(] (escaped_char|[^)\x00])* [)];
- scheme = 'coap'|'doi'|'javascript'|'aaa'|'aaas'|'about'|'acap'|'cap'|'cid'|'crid'|'data'|'dav'|'dict'|'dns'|'file'|'ftp'|'geo'|'go'|'gopher'|'h323'|'http'|'https'|'iax'|'icap'|'im'|'imap'|'info'|'ipp'|'iris'|'iris.beep'|'iris.xpc'|'iris.xpcs'|'iris.lwz'|'ldap'|'mailto'|'mid'|'msrp'|'msrps'|'mtqp'|'mupdate'|'news'|'nfs'|'ni'|'nih'|'nntp'|'opaquelocktoken'|'pop'|'pres'|'rtsp'|'service'|'session'|'shttp'|'sieve'|'sip'|'sips'|'sms'|'snmp'|'soap.beep'|'soap.beeps'|'tag'|'tel'|'telnet'|'tftp'|'thismessage'|'tn3270'|'tip'|'tv'|'urn'|'vemmi'|'ws'|'wss'|'xcon'|'xcon-userid'|'xmlrpc.beep'|'xmlrpc.beeps'|'xmpp'|'z39.50r'|'z39.50s'|'adiumxtra'|'afp'|'afs'|'aim'|'apt'|'attachment'|'aw'|'beshare'|'bitcoin'|'bolo'|'callto'|'chrome'|'chrome-extension'|'com-eventbrite-attendee'|'content'|'cvs'|'dlna-playsingle'|'dlna-playcontainer'|'dtn'|'dvb'|'ed2k'|'facetime'|'feed'|'finger'|'fish'|'gg'|'git'|'gizmoproject'|'gtalk'|'hcp'|'icon'|'ipn'|'irc'|'irc6'|'ircs'|'itms'|'jar'|'jms'|'keyparc'|'lastfm'|'ldaps'|'magnet'|'maps'|'market'|'message'|'mms'|'ms-help'|'msnim'|'mumble'|'mvn'|'notes'|'oid'|'palm'|'paparazzi'|'platform'|'proxy'|'psyc'|'query'|'res'|'resource'|'rmi'|'rsync'|'rtmp'|'secondlife'|'sftp'|'sgn'|'skype'|'smb'|'soldat'|'spotify'|'ssh'|'steam'|'svn'|'teamspeak'|'things'|'udp'|'unreal'|'ut2004'|'ventrilo'|'view-source'|'webcal'|'wtai'|'wyciwyg'|'xfire'|'xri'|'ymsgr';
+ scheme = [A-Za-z ][A-Za-z.+-]{1,31};
*/
// Try to match a scheme including colon.
@@ -215,8 +214,8 @@ bufsize_t _scan_link_url(const unsigned char *p)
const unsigned char *marker = NULL;
const unsigned char *start = p;
/*!re2c
- [ \r\n]* [<] ([^<>\r\n\\\x00] | escaped_char | [\\])* [>] { return (bufsize_t)(p - start); }
- [ \r\n]* (reg_char+ | escaped_char | in_parens_nosp | [\\][^()])* { return (bufsize_t)(p - start); }
+ [ \r\n]* [<] ([^<> \t\r\n\\\x00] | escaped_char | [\\])* [>] { return (bufsize_t)(p - start); }
+ [ \r\n]* (reg_char+ | escaped_char | [\\] [^() \t\v\f\r\n] | in_parens_nosp)* [\\]? { return (bufsize_t)(p - start); }
.? { return 0; }
*/
}
@@ -247,8 +246,8 @@ bufsize_t _scan_spacechars(const unsigned char *p)
*/
}
-// Match ATX header start.
-bufsize_t _scan_atx_header_start(const unsigned char *p)
+// Match ATX heading start.
+bufsize_t _scan_atx_heading_start(const unsigned char *p)
{
const unsigned char *marker = NULL;
const unsigned char *start = p;
@@ -258,9 +257,9 @@ bufsize_t _scan_atx_header_start(const unsigned char *p)
*/
}
-// Match setext header line. Return 1 for level-1 header,
+// Match setext heading line. Return 1 for level-1 heading,
// 2 for level-2, 0 for no match.
-bufsize_t _scan_setext_header_line(const unsigned char *p)
+bufsize_t _scan_setext_heading_line(const unsigned char *p)
{
const unsigned char *marker = NULL;
/*!re2c
@@ -270,10 +269,10 @@ bufsize_t _scan_setext_header_line(const unsigned char *p)
*/
}
-// Scan a horizontal rule line: "...three or more hyphens, asterisks,
+// Scan a thematic break line: "...three or more hyphens, asterisks,
// or underscores on a line by themselves. If you wish, you may use
// spaces between the hyphens or asterisks."
-bufsize_t _scan_hrule(const unsigned char *p)
+bufsize_t _scan_thematic_break(const unsigned char *p)
{
const unsigned char *marker = NULL;
const unsigned char *start = p;
diff --git a/src/utf8.c b/src/utf8.c
index 319539d..c29bbf7 100755..100644
--- a/src/utf8.c
+++ b/src/utf8.c
@@ -107,7 +107,8 @@ static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) {
return length;
}
-void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size) {
+void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line,
+ bufsize_t size) {
bufsize_t i = 0;
while (i < size) {
@@ -146,7 +147,8 @@ void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size)
}
}
-int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst) {
+int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len,
+ int32_t *dst) {
int length;
int32_t uc = -1;
@@ -222,7 +224,8 @@ void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) {
cmark_strbuf_put(buf, dst, len);
}
-void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len) {
+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str,
+ bufsize_t len) {
int32_t c;
#define bufpush(x) cmark_utf8proc_encode_char(x, dest)
diff --git a/src/utf8.h b/src/utf8.h
index 43b3757..8e45714 100755..100644
--- a/src/utf8.h
+++ b/src/utf8.h
@@ -8,10 +8,12 @@
extern "C" {
#endif
-void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);
+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str,
+ bufsize_t len);
void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);
int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);
-void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);
+void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line,
+ bufsize_t size);
int cmark_utf8proc_is_space(int32_t uc);
int cmark_utf8proc_is_punctuation(int32_t uc);
diff --git a/src/xml.c b/src/xml.c
index 6956efb..b630810 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -52,10 +52,13 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
literal = false;
switch (node->type) {
+ case CMARK_NODE_DOCUMENT:
+ cmark_strbuf_puts(xml, " xmlns=\"http://commonmark.org/xml/1.0\"");
+ break;
case CMARK_NODE_TEXT:
case CMARK_NODE_CODE:
- case CMARK_NODE_HTML:
- case CMARK_NODE_INLINE_HTML:
+ case CMARK_NODE_HTML_BLOCK:
+ case CMARK_NODE_HTML_INLINE:
cmark_strbuf_puts(xml, ">");
escape_xml(xml, node->as.literal.data, node->as.literal.len);
cmark_strbuf_puts(xml, "</");
@@ -86,8 +89,8 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
(cmark_node_get_list_tight(node) ? "true" : "false"));
cmark_strbuf_puts(xml, buffer);
break;
- case CMARK_NODE_HEADER:
- snprintf(buffer, BUFFER_SIZE, " level=\"%d\"", node->as.header.level);
+ case CMARK_NODE_HEADING:
+ snprintf(buffer, BUFFER_SIZE, " level=\"%d\"", node->as.heading.level);
cmark_strbuf_puts(xml, buffer);
break;
case CMARK_NODE_CODE_BLOCK:
@@ -102,6 +105,17 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type,
cmark_strbuf_puts(xml, cmark_node_get_type_string(node));
literal = true;
break;
+ case CMARK_NODE_CUSTOM_BLOCK:
+ case CMARK_NODE_CUSTOM_INLINE:
+ cmark_strbuf_puts(xml, " on_enter=\"");
+ escape_xml(xml, node->as.custom.on_enter.data,
+ node->as.custom.on_enter.len);
+ cmark_strbuf_putc(xml, '"');
+ cmark_strbuf_puts(xml, " on_exit=\"");
+ escape_xml(xml, node->as.custom.on_exit.data,
+ node->as.custom.on_exit.len);
+ cmark_strbuf_putc(xml, '"');
+ break;
case CMARK_NODE_LINK:
case CMARK_NODE_IMAGE:
cmark_strbuf_puts(xml, " destination=\"");
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 164fba1..d537ab5 100755
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -16,6 +16,9 @@ if (WIN32)
set_tests_properties(api_test PROPERTIES
ENVIRONMENT "PATH=${WIN_DLL_DIR};$ENV{PATH}"
)
+ set(ROUNDTRIP,"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip.bat")
+else(WIN32)
+ set(ROUNDTRIP,"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip.sh")
endif(WIN32)
IF (PYTHONINTERP_FOUND)
@@ -43,6 +46,14 @@ IF (PYTHONINTERP_FOUND)
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/smart_punct.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark --smart"
)
+ add_test(roundtriptest_executable
+ ${PYTHON_EXECUTABLE}
+ "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize"
+ "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--program"
+ "${ROUNDTRIP} ${CMAKE_CURRENT_BINARY_DIR}/../src/cmark"
+ )
+
+
ELSE(PYTHONINTERP_FOUND)
message("\n*** A python 3 interpreter is required to run the spec tests.\n")
diff --git a/test/normalize.py b/test/normalize.py
index 6eb4ec2..6073bf0 100644
--- a/test/normalize.py
+++ b/test/normalize.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from html.parser import HTMLParser
+import urllib
try:
from html.parser import HTMLParseError
@@ -61,7 +62,10 @@ class MyHTMLParser(HTMLParser):
attrs.sort()
for (k,v) in attrs:
self.output += " " + k
- if v != None:
+ if v in ['href','src']:
+ self.output += ("=" + '"' +
+ urllib.quote(urllib.unquote(v), safe='/') + '"')
+ elif v != None:
self.output += ("=" + '"' + cgi.escape(v,quote=True) + '"')
self.output += ">"
self.last_tag = tag
diff --git a/test/roundtrip.bat b/test/roundtrip.bat
new file mode 100755
index 0000000..ac4c9ed
--- /dev/null
+++ b/test/roundtrip.bat
@@ -0,0 +1 @@
+"%1" -t commonmark | "%1"
diff --git a/test/roundtrip.sh b/test/roundtrip.sh
index 1631f35..ec4f135 100755
--- a/test/roundtrip.sh
+++ b/test/roundtrip.sh
@@ -1,2 +1,2 @@
#!/bin/sh
-./build/src/cmark -t commonmark | ./build/src/cmark
+"$1" -t commonmark | "$1"
diff --git a/test/smart_punct.txt b/test/smart_punct.txt
index 7dd9394..3522c94 100644
--- a/test/smart_punct.txt
+++ b/test/smart_punct.txt
@@ -4,84 +4,84 @@ Open quotes are matched with closed quotes.
The same method is used for matching openers and closers
as is used in emphasis parsing:
-.
+```````````````````````````````` example
"Hello," said the spider.
"'Shelob' is my name."
.
<p>“Hello,” said the spider.
“‘Shelob’ is my name.”</p>
-.
+````````````````````````````````
-.
+```````````````````````````````` example
'A', 'B', and 'C' are letters.
.
<p>‘A’, ‘B’, and ‘C’ are letters.</p>
-.
+````````````````````````````````
-.
+```````````````````````````````` example
'Oak,' 'elm,' and 'beech' are names of trees.
So is 'pine.'
.
<p>‘Oak,’ ‘elm,’ and ‘beech’ are names of trees.
So is ‘pine.’</p>
-.
+````````````````````````````````
-.
+```````````````````````````````` example
'He said, "I want to go."'
.
<p>‘He said, “I want to go.”’</p>
-.
+````````````````````````````````
A single quote that isn't an open quote matched
with a close quote will be treated as an
apostrophe:
-.
+```````````````````````````````` example
Were you alive in the 70's?
.
<p>Were you alive in the 70’s?</p>
-.
+````````````````````````````````
-.
+```````````````````````````````` example
Here is some quoted '`code`' and a "[quoted link](url)".
.
<p>Here is some quoted ‘<code>code</code>’ and a “<a href="url">quoted link</a>”.</p>
-.
+````````````````````````````````
Here the first `'` is treated as an apostrophe, not
an open quote, because the final single quote is matched
by the single quote before `jolly`:
-.
+```````````````````````````````` example
'tis the season to be 'jolly'
.
<p>’tis the season to be ‘jolly’</p>
-.
+````````````````````````````````
Multiple apostrophes should not be marked as open/closing quotes.
-.
+```````````````````````````````` example
'We'll use Jane's boat and John's truck,' Jenna said.
.
<p>‘We’ll use Jane’s boat and John’s truck,’ Jenna said.</p>
-.
+````````````````````````````````
An unmatched double quote will be interpreted as a
left double quote, to facilitate this style:
-.
+```````````````````````````````` example
"A paragraph with no closing quote.
"Second paragraph by same speaker, in fiction."
.
<p>“A paragraph with no closing quote.</p>
<p>“Second paragraph by same speaker, in fiction.”</p>
-.
+````````````````````````````````
Quotes that are escaped come out as literal straight
quotes:
-.
+```````````````````````````````` example
\"This is not smart.\"
This isn\'t either.
5\'8\"
@@ -89,11 +89,11 @@ This isn\'t either.
<p>&quot;This is not smart.&quot;
This isn't either.
5'8&quot;</p>
-.
+````````````````````````````````
Two hyphens form an en-dash, three an em-dash.
-.
+```````````````````````````````` example
Some dashes: em---em
en--en
em --- em
@@ -105,7 +105,7 @@ en–en
em — em
en – en
2–3</p>
-.
+````````````````````````````````
A sequence of more than three hyphens is
parsed as a sequence of em and/or en dashes,
@@ -118,7 +118,7 @@ dashes, and as few en dashes as possible are
used (so, 7 hyphens = 2 em dashes an 1 en
dash).
-.
+```````````````````````````````` example
one-
two--
three---
@@ -140,29 +140,29 @@ seven—––
eight––––
nine———
thirteen———––.</p>
-.
+````````````````````````````````
Hyphens can be escaped:
-.
+```````````````````````````````` example
Escaped hyphens: \-- \-\-\-.
.
<p>Escaped hyphens: -- ---.</p>
-.
+````````````````````````````````
Three periods form an ellipsis:
-.
+```````````````````````````````` example
Ellipses...and...and....
.
<p>Ellipses…and…and….</p>
-.
+````````````````````````````````
Periods can be escaped if ellipsis-formation
is not wanted:
-.
+```````````````````````````````` example
No ellipses\.\.\.
.
<p>No ellipses...</p>
-.
+````````````````````````````````
diff --git a/test/spec.txt b/test/spec.txt
index ff44e4a..449e5b0 100644
--- a/test/spec.txt
+++ b/test/spec.txt
@@ -1,8 +1,8 @@
---
title: CommonMark Spec
author: John MacFarlane
-version: 0.22
-date: 2015-08-23
+version: 0.24
+date: '2015-01-12'
license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)'
...
@@ -36,11 +36,11 @@ questions it does not answer:
users in real documents. (See [this comment by John
Gruber](http://article.gmane.org/gmane.text.markdown.general/1997).)
-2. Is a blank line needed before a block quote or header?
+2. Is a blank line needed before a block quote or heading?
Most implementations do not require the blank line. However,
this can lead to unexpected results in hard-wrapped text, and
also to ambiguities in parsing (note that some implementations
- put the header inside the blockquote, while others do not).
+ put the heading inside the blockquote, while others do not).
(John Gruber has also spoken [in favor of requiring the blank
lines](http://article.gmane.org/gmane.text.markdown.general/2146).)
@@ -85,8 +85,8 @@ questions it does not answer:
10. item 2a
```
-6. Is this one list with a horizontal rule in its second item,
- or two lists separated by a horizontal rule?
+6. Is this one list with a thematic break in its second item,
+ or two lists separated by a thematic break?
``` markdown
* a
@@ -128,8 +128,8 @@ questions it does not answer:
- and it can screw things up`
```
-11. Can list items include section headers? (`Markdown.pl` does not
- allow this, but does allow blockquotes to include headers.)
+11. Can list items include section headings? (`Markdown.pl` does not
+ allow this, but does allow blockquotes to include headings.)
``` markdown
- # Heading
@@ -201,91 +201,94 @@ In the examples, the `→` character is used to represent tabs.
## Characters and lines
-Any sequence of [character]s is a valid CommonMark
+Any sequence of [characters] is a valid CommonMark
document.
-A [character](@character) is a Unicode code point. Although some
+A [character](@) is a Unicode code point. Although some
code points (for example, combining accents) do not correspond to
characters in an intuitive sense, all code points count as characters
for purposes of this spec.
This spec does not specify an encoding; it thinks of lines as composed
-of [character]s rather than bytes. A conforming parser may be limited
+of [characters] rather than bytes. A conforming parser may be limited
to a certain encoding.
-A [line](@line) is a sequence of zero or more [character]s
+A [line](@) is a sequence of zero or more [characters]
other than newline (`U+000A`) or carriage return (`U+000D`),
followed by a [line ending] or by the end of file.
-A [line ending](@line-ending) is a newline (`U+000A`), a carriage return
+A [line ending](@) is a newline (`U+000A`), a carriage return
(`U+000D`) not followed by a newline, or a carriage return and a
following newline.
A line containing no characters, or a line containing only spaces
-(`U+0020`) or tabs (`U+0009`), is called a [blank line](@blank-line).
+(`U+0020`) or tabs (`U+0009`), is called a [blank line](@).
The following definitions of character classes will be used in this spec:
-A [whitespace character](@whitespace-character) is a space
+A [whitespace character](@) is a space
(`U+0020`), tab (`U+0009`), newline (`U+000A`), line tabulation (`U+000B`),
form feed (`U+000C`), or carriage return (`U+000D`).
-[Whitespace](@whitespace) is a sequence of one or more [whitespace
-character]s.
+[Whitespace](@) is a sequence of one or more [whitespace
+characters].
-A [Unicode whitespace character](@unicode-whitespace-character) is
+A [Unicode whitespace character](@) is
any code point in the Unicode `Zs` class, or a tab (`U+0009`),
carriage return (`U+000D`), newline (`U+000A`), or form feed
(`U+000C`).
-[Unicode whitespace](@unicode-whitespace) is a sequence of one
-or more [Unicode whitespace character]s.
+[Unicode whitespace](@) is a sequence of one
+or more [Unicode whitespace characters].
-A [space](@space) is `U+0020`.
+A [space](@) is `U+0020`.
-A [non-whitespace character](@non-whitespace-character) is any character
+A [non-whitespace character](@) is any character
that is not a [whitespace character].
-An [ASCII punctuation character](@ascii-punctuation-character)
+An [ASCII punctuation character](@)
is `!`, `"`, `#`, `$`, `%`, `&`, `'`, `(`, `)`,
`*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `<`, `=`, `>`, `?`, `@`,
`[`, `\`, `]`, `^`, `_`, `` ` ``, `{`, `|`, `}`, or `~`.
-A [punctuation character](@punctuation-character) is an [ASCII
+A [punctuation character](@) is an [ASCII
punctuation character] or anything in
the Unicode classes `Pc`, `Pd`, `Pe`, `Pf`, `Pi`, `Po`, or `Ps`.
## Tabs
-Tabs in lines are not expanded to [spaces][space]. However,
+Tabs in lines are not expanded to [spaces]. However,
in contexts where indentation is significant for the
document's structure, tabs behave as if they were replaced
by spaces with a tab stop of 4 characters.
-.
+```````````````````````````````` example
→foo→baz→→bim
.
<pre><code>foo→baz→→bim
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
→foo→baz→→bim
.
<pre><code>foo→baz→→bim
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
a→a
ὐ→a
.
<pre><code>a→a
ὐ→a
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- foo
→bar
@@ -296,38 +299,41 @@ by spaces with a tab stop of 4 characters.
<p>bar</p>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
>→foo→bar
.
<blockquote>
<p>foo→bar</p>
</blockquote>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo
→bar
.
<pre><code>foo
bar
</code></pre>
-.
+````````````````````````````````
+
## Insecure characters
For security reasons, the Unicode character `U+0000` must be replaced
-with the replacement character (`U+FFFD`).
+with the REPLACEMENT CHARACTER (`U+FFFD`).
# Blocks and inlines
We can think of a document as a sequence of
-[blocks](@block)---structural elements like paragraphs, block
-quotations, lists, headers, rules, and code blocks. Some blocks (like
+[blocks](@)---structural elements like paragraphs, block
+quotations, lists, headings, rules, and code blocks. Some blocks (like
block quotes and list items) contain other blocks; others (like
-headers and paragraphs) contain [inline](@inline) content---text,
+headings and paragraphs) contain [inline](@) content---text,
links, emphasized text, images, code, and so on.
## Precedence
@@ -336,7 +342,7 @@ Indicators of block structure always take precedence over indicators
of inline structure. So, for example, the following is a list with
two items, not a list with one item containing a code span:
-.
+```````````````````````````````` example
- `one
- two`
.
@@ -344,11 +350,12 @@ two items, not a list with one item containing a code span:
<li>`one</li>
<li>two`</li>
</ul>
-.
+````````````````````````````````
+
This means that parsing can proceed in two steps: first, the block
structure of the document can be discerned; second, text lines inside
-paragraphs, headers, and other block constructs can be parsed for inline
+paragraphs, headings, and other block constructs can be parsed for inline
structure. The second step requires information about link reference
definitions that will be available only at the end of the first
step. Note that the first step requires processing lines in sequence,
@@ -358,8 +365,8 @@ one block element does not affect the inline parsing of any other.
## Container blocks and leaf blocks
We can divide blocks into two types:
-[container block](@container-block)s,
-which can contain other blocks, and [leaf block](@leaf-block)s,
+[container block](@)s,
+which can contain other blocks, and [leaf block](@)s,
which cannot.
# Leaf blocks
@@ -367,14 +374,14 @@ which cannot.
This section describes the different kinds of leaf block that make up a
Markdown document.
-## Horizontal rules
+## Thematic breaks
A line consisting of 0-3 spaces of indentation, followed by a sequence
of three or more matching `-`, `_`, or `*` characters, each followed
optionally by any number of spaces, forms a
-[horizontal rule](@horizontal-rule).
+[thematic break](@).
-.
+```````````````````````````````` example
***
---
___
@@ -382,25 +389,28 @@ ___
<hr />
<hr />
<hr />
-.
+````````````````````````````````
+
Wrong characters:
-.
+```````````````````````````````` example
+++
.
<p>+++</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
===
.
<p>===</p>
-.
+````````````````````````````````
+
Not enough characters:
-.
+```````````````````````````````` example
--
**
__
@@ -408,11 +418,12 @@ __
<p>--
**
__</p>
-.
+````````````````````````````````
+
One to three spaces indent are allowed:
-.
+```````````````````````````````` example
***
***
***
@@ -420,64 +431,72 @@ One to three spaces indent are allowed:
<hr />
<hr />
<hr />
-.
+````````````````````````````````
+
Four spaces is too many:
-.
+```````````````````````````````` example
***
.
<pre><code>***
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
Foo
***
.
<p>Foo
***</p>
-.
+````````````````````````````````
+
More than three characters may be used:
-.
+```````````````````````````````` example
_____________________________________
.
<hr />
-.
+````````````````````````````````
+
Spaces are allowed between the characters:
-.
+```````````````````````````````` example
- - -
.
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
** * ** * ** * **
.
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- - - -
.
<hr />
-.
+````````````````````````````````
+
Spaces are allowed at the end:
-.
+```````````````````````````````` example
- - - -
.
<hr />
-.
+````````````````````````````````
+
However, no other characters may occur in the line:
-.
+```````````````````````````````` example
_ _ _ _ a
a------
@@ -487,20 +506,22 @@ a------
<p>_ _ _ _ a</p>
<p>a------</p>
<p>---a---</p>
-.
+````````````````````````````````
-It is required that all of the [non-whitespace character]s be the same.
-So, this is not a horizontal rule:
-.
+It is required that all of the [non-whitespace characters] be the same.
+So, this is not a thematic break:
+
+```````````````````````````````` example
*-*
.
<p><em>-</em></p>
-.
+````````````````````````````````
-Horizontal rules do not need blank lines before or after:
-.
+Thematic breaks do not need blank lines before or after:
+
+```````````````````````````````` example
- foo
***
- bar
@@ -512,11 +533,12 @@ Horizontal rules do not need blank lines before or after:
<ul>
<li>bar</li>
</ul>
-.
+````````````````````````````````
-Horizontal rules can interrupt a paragraph:
-.
+Thematic breaks can interrupt a paragraph:
+
+```````````````````````````````` example
Foo
***
bar
@@ -524,27 +546,29 @@ bar
<p>Foo</p>
<hr />
<p>bar</p>
-.
+````````````````````````````````
+
If a line of dashes that meets the above conditions for being a
-horizontal rule could also be interpreted as the underline of a [setext
-header], the interpretation as a
-[setext header] takes precedence. Thus, for example,
-this is a setext header, not a paragraph followed by a horizontal rule:
+thematic break could also be interpreted as the underline of a [setext
+heading], the interpretation as a
+[setext heading] takes precedence. Thus, for example,
+this is a setext heading, not a paragraph followed by a thematic break:
-.
+```````````````````````````````` example
Foo
---
bar
.
<h2>Foo</h2>
<p>bar</p>
-.
+````````````````````````````````
-When both a horizontal rule and a list item are possible
-interpretations of a line, the horizontal rule takes precedence:
-.
+When both a thematic break and a list item are possible
+interpretations of a line, the thematic break takes precedence:
+
+```````````````````````````````` example
* Foo
* * *
* Bar
@@ -556,11 +580,12 @@ interpretations of a line, the horizontal rule takes precedence:
<ul>
<li>Bar</li>
</ul>
-.
+````````````````````````````````
-If you want a horizontal rule in a list item, use a different bullet:
-.
+If you want a thematic break in a list item, use a different bullet:
+
+```````````````````````````````` example
- Foo
- * * *
.
@@ -570,25 +595,26 @@ If you want a horizontal rule in a list item, use a different bullet:
<hr />
</li>
</ul>
-.
+````````````````````````````````
-## ATX headers
-An [ATX header](@atx-header)
+## ATX headings
+
+An [ATX heading](@)
consists of a string of characters, parsed as inline content, between an
opening sequence of 1--6 unescaped `#` characters and an optional
closing sequence of any number of unescaped `#` characters.
-The opening sequence of `#` characters cannot be followed directly by a
-[non-whitespace character]. The optional closing sequence of `#`s must be
+The opening sequence of `#` characters must be followed by a
+[space] or by the end of line. The optional closing sequence of `#`s must be
preceded by a [space] and may be followed by spaces only. The opening
`#` character may be indented 0-3 spaces. The raw contents of the
-header are stripped of leading and trailing spaces before being parsed
-as inline content. The header level is equal to the number of `#`
+heading are stripped of leading and trailing spaces before being parsed
+as inline content. The heading level is equal to the number of `#`
characters in the opening sequence.
-Simple headers:
+Simple headings:
-.
+```````````````````````````````` example
# foo
## foo
### foo
@@ -602,60 +628,75 @@ Simple headers:
<h4>foo</h4>
<h5>foo</h5>
<h6>foo</h6>
-.
+````````````````````````````````
-More than six `#` characters is not a header:
-.
+More than six `#` characters is not a heading:
+
+```````````````````````````````` example
####### foo
.
<p>####### foo</p>
-.
+````````````````````````````````
+
At least one space is required between the `#` characters and the
-header's contents, unless the header is empty. Note that many
+heading's contents, unless the heading is empty. Note that many
implementations currently do not require the space. However, the
space was required by the
[original ATX implementation](http://www.aaronsw.com/2002/atx/atx.py),
and it helps prevent things like the following from being parsed as
-headers:
+headings:
-.
+```````````````````````````````` example
#5 bolt
-#foobar
+#hashtag
.
<p>#5 bolt</p>
-<p>#foobar</p>
-.
+<p>#hashtag</p>
+````````````````````````````````
+
-This is not a header, because the first `#` is escaped:
+A tab will not work:
+```````````````````````````````` example
+#→foo
.
+<p>#→foo</p>
+````````````````````````````````
+
+
+This is not a heading, because the first `#` is escaped:
+
+```````````````````````````````` example
\## foo
.
<p>## foo</p>
-.
+````````````````````````````````
+
Contents are parsed as inlines:
-.
+```````````````````````````````` example
# foo *bar* \*baz\*
.
<h1>foo <em>bar</em> *baz*</h1>
-.
+````````````````````````````````
+
Leading and trailing blanks are ignored in parsing inline content:
-.
+```````````````````````````````` example
# foo
.
<h1>foo</h1>
-.
+````````````````````````````````
+
One to three spaces indentation are allowed:
-.
+```````````````````````````````` example
### foo
## foo
# foo
@@ -663,75 +704,83 @@ One to three spaces indentation are allowed:
<h3>foo</h3>
<h2>foo</h2>
<h1>foo</h1>
-.
+````````````````````````````````
+
Four spaces are too much:
-.
+```````````````````````````````` example
# foo
.
<pre><code># foo
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo
# bar
.
<p>foo
# bar</p>
-.
+````````````````````````````````
+
A closing sequence of `#` characters is optional:
-.
+```````````````````````````````` example
## foo ##
### bar ###
.
<h2>foo</h2>
<h3>bar</h3>
-.
+````````````````````````````````
+
It need not be the same length as the opening sequence:
-.
+```````````````````````````````` example
# foo ##################################
##### foo ##
.
<h1>foo</h1>
<h5>foo</h5>
-.
+````````````````````````````````
+
Spaces are allowed after the closing sequence:
-.
+```````````````````````````````` example
### foo ###
.
<h3>foo</h3>
-.
+````````````````````````````````
-A sequence of `#` characters with anything but [space]s following it
+
+A sequence of `#` characters with anything but [spaces] following it
is not a closing sequence, but counts as part of the contents of the
-header:
+heading:
-.
+```````````````````````````````` example
### foo ### b
.
<h3>foo ### b</h3>
-.
+````````````````````````````````
+
The closing sequence must be preceded by a space:
-.
+```````````````````````````````` example
# foo#
.
<h1>foo#</h1>
-.
+````````````````````````````````
+
Backslash-escaped `#` characters do not count as part
of the closing sequence:
-.
+```````````````````````````````` example
### foo \###
## foo #\##
# foo \#
@@ -739,12 +788,13 @@ of the closing sequence:
<h3>foo ###</h3>
<h2>foo ###</h2>
<h1>foo #</h1>
-.
+````````````````````````````````
-ATX headers need not be separated from surrounding content by blank
+
+ATX headings need not be separated from surrounding content by blank
lines, and they can interrupt paragraphs:
-.
+```````````````````````````````` example
****
## foo
****
@@ -752,9 +802,10 @@ lines, and they can interrupt paragraphs:
<hr />
<h2>foo</h2>
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
Foo bar
# baz
Bar foo
@@ -762,11 +813,12 @@ Bar foo
<p>Foo bar</p>
<h1>baz</h1>
<p>Bar foo</p>
-.
+````````````````````````````````
-ATX headers can be empty:
-.
+ATX headings can be empty:
+
+```````````````````````````````` example
##
#
### ###
@@ -774,40 +826,42 @@ ATX headers can be empty:
<h2></h2>
<h1></h1>
<h3></h3>
-.
+````````````````````````````````
+
-## Setext headers
+## Setext headings
-A [setext header](@setext-header)
-consists of a line of text, containing at least one [non-whitespace character],
-with no more than 3 spaces indentation, followed by a [setext header
-underline]. The line of text must be
-one that, were it not followed by the setext header underline,
-would be interpreted as part of a paragraph: it cannot be
-interpretable as a [code fence], [ATX header][ATX headers],
-[block quote][block quotes], [horizontal rule][horizontal rules],
+A [setext heading](@) consists of one or more
+lines of text, each containing at least one [non-whitespace
+character], with no more than 3 spaces indentation, followed by
+a [setext heading underline]. The lines of text must be such
+that, were they not followed by the setext heading underline,
+they would be interpreted as a paragraph: they cannot be
+interpretable as a [code fence], [ATX heading][ATX headings],
+[block quote][block quotes], [thematic break][thematic breaks],
[list item][list items], or [HTML block][HTML blocks].
-A [setext header underline](@setext-header-underline) is a sequence of
+A [setext heading underline](@) is a sequence of
`=` characters or a sequence of `-` characters, with no more than 3
spaces indentation and any number of trailing spaces. If a line
containing a single `-` can be interpreted as an
empty [list items], it should be interpreted this way
-and not as a [setext header underline].
+and not as a [setext heading underline].
-The header is a level 1 header if `=` characters are used in the
-[setext header underline], and a level 2
-header if `-` characters are used. The contents of the header are the
-result of parsing the first line as Markdown inline content.
+The heading is a level 1 heading if `=` characters are used in
+the [setext heading underline], and a level 2 heading if `-`
+characters are used. The contents of the heading are the result
+of parsing the preceding lines of text as CommonMark inline
+content.
-In general, a setext header need not be preceded or followed by a
+In general, a setext heading need not be preceded or followed by a
blank line. However, it cannot interrupt a paragraph, so when a
-setext header comes after a paragraph, a blank line is needed between
+setext heading comes after a paragraph, a blank line is needed between
them.
Simple examples:
-.
+```````````````````````````````` example
Foo *bar*
=========
@@ -816,11 +870,24 @@ Foo *bar*
.
<h1>Foo <em>bar</em></h1>
<h2>Foo <em>bar</em></h2>
+````````````````````````````````
+
+
+The content of the header may span more than one line:
+
+```````````````````````````````` example
+Foo *bar
+baz*
+====
.
+<h1>Foo <em>bar
+baz</em></h1>
+````````````````````````````````
+
The underlining can be any length:
-.
+```````````````````````````````` example
Foo
-------------------------
@@ -829,12 +896,13 @@ Foo
.
<h2>Foo</h2>
<h1>Foo</h1>
-.
+````````````````````````````````
-The header content can be indented up to three spaces, and need
+
+The heading content can be indented up to three spaces, and need
not line up with the underlining:
-.
+```````````````````````````````` example
Foo
---
@@ -847,11 +915,12 @@ not line up with the underlining:
<h2>Foo</h2>
<h2>Foo</h2>
<h1>Foo</h1>
-.
+````````````````````````````````
+
Four spaces indent is too much:
-.
+```````````````````````````````` example
Foo
---
@@ -864,31 +933,34 @@ Four spaces indent is too much:
Foo
</code></pre>
<hr />
-.
+````````````````````````````````
-The setext header underline can be indented up to three spaces, and
+
+The setext heading underline can be indented up to three spaces, and
may have trailing spaces:
-.
+```````````````````````````````` example
Foo
----
.
<h2>Foo</h2>
-.
+````````````````````````````````
+
Four spaces is too much:
-.
+```````````````````````````````` example
Foo
---
.
<p>Foo
---</p>
-.
+````````````````````````````````
-The setext header underline cannot contain internal spaces:
-.
+The setext heading underline cannot contain internal spaces:
+
+```````````````````````````````` example
Foo
= =
@@ -899,30 +971,33 @@ Foo
= =</p>
<p>Foo</p>
<hr />
-.
+````````````````````````````````
+
Trailing spaces in the content line do not cause a line break:
-.
+```````````````````````````````` example
Foo
-----
.
<h2>Foo</h2>
-.
+````````````````````````````````
+
Nor does a backslash at the end:
-.
+```````````````````````````````` example
Foo\
----
.
<h2>Foo\</h2>
-.
+````````````````````````````````
+
Since indicators of block structure take precedence over
-indicators of inline structure, the following are setext headers:
+indicators of inline structure, the following are setext headings:
-.
+```````````````````````````````` example
`Foo
----
`
@@ -935,12 +1010,13 @@ of dashes"/>
<p>`</p>
<h2>&lt;a title=&quot;a lot</h2>
<p>of dashes&quot;/&gt;</p>
-.
+````````````````````````````````
+
-The setext header underline cannot be a [lazy continuation
+The setext heading underline cannot be a [lazy continuation
line] in a list item or block quote:
-.
+```````````````````````````````` example
> Foo
---
.
@@ -948,9 +1024,23 @@ line] in a list item or block quote:
<p>Foo</p>
</blockquote>
<hr />
-.
+````````````````````````````````
+
+```````````````````````````````` example
+> foo
+bar
+===
.
+<blockquote>
+<p>foo
+bar
+===</p>
+</blockquote>
+````````````````````````````````
+
+
+```````````````````````````````` example
- Foo
---
.
@@ -958,30 +1048,27 @@ line] in a list item or block quote:
<li>Foo</li>
</ul>
<hr />
-.
+````````````````````````````````
-A setext header cannot interrupt a paragraph:
-.
-Foo
-Bar
----
+A blank line is needed between a paragraph and a following
+setext heading, since otherwise the paragraph becomes part
+of the heading's content:
+```````````````````````````````` example
Foo
Bar
-===
-.
-<p>Foo
-Bar</p>
-<hr />
-<p>Foo
-Bar
-===</p>
+---
.
+<h2>Foo
+Bar</h2>
+````````````````````````````````
-But in general a blank line is not required before or after:
-.
+But in general a blank line is not required before or after
+setext headings:
+
+```````````````````````````````` example
---
Foo
---
@@ -993,30 +1080,33 @@ Baz
<h2>Foo</h2>
<h2>Bar</h2>
<p>Baz</p>
-.
+````````````````````````````````
-Setext headers cannot be empty:
-.
+Setext headings cannot be empty:
+
+```````````````````````````````` example
====
.
<p>====</p>
-.
+````````````````````````````````
+
-Setext header text lines must not be interpretable as block
+Setext heading text lines must not be interpretable as block
constructs other than paragraphs. So, the line of dashes
-in these examples gets interpreted as a horizontal rule:
+in these examples gets interpreted as a thematic break:
-.
+```````````````````````````````` example
---
---
.
<hr />
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- foo
-----
.
@@ -1024,18 +1114,20 @@ in these examples gets interpreted as a horizontal rule:
<li>foo</li>
</ul>
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo
---
.
<pre><code>foo
</code></pre>
<hr />
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> foo
-----
.
@@ -1043,26 +1135,113 @@ in these examples gets interpreted as a horizontal rule:
<p>foo</p>
</blockquote>
<hr />
-.
+````````````````````````````````
+
-If you want a header with `> foo` as its literal text, you can
+If you want a heading with `> foo` as its literal text, you can
use backslash escapes:
-.
+```````````````````````````````` example
\> foo
------
.
<h2>&gt; foo</h2>
+````````````````````````````````
+
+
+**Compatibility note:** Most existing Markdown implementations
+do not allow the text of setext headings to span multiple lines.
+But there is no consensus about how to interpret
+
+``` markdown
+Foo
+bar
+---
+baz
+```
+
+One can find four different interpretations:
+
+1. paragraph "Foo", heading "bar", paragraph "baz"
+2. paragraph "Foo bar", thematic break, paragraph "baz"
+3. paragraph "Foo bar --- baz"
+4. heading "Foo bar", paragraph "baz"
+
+We find interpretation 4 most natural, and interpretation 4
+increases the expressive power of CommonMark, by allowing
+multiline headings. Authors who want interpretation 1 can
+put a blank line after the first paragraph:
+
+```````````````````````````````` example
+Foo
+
+bar
+---
+baz
+.
+<p>Foo</p>
+<h2>bar</h2>
+<p>baz</p>
+````````````````````````````````
+
+
+Authors who want interpretation 2 can put blank lines around
+the thematic break,
+
+```````````````````````````````` example
+Foo
+bar
+
+---
+
+baz
.
+<p>Foo
+bar</p>
+<hr />
+<p>baz</p>
+````````````````````````````````
+
+
+or use a thematic break that cannot count as a [setext heading
+line], such as
+
+```````````````````````````````` example
+Foo
+bar
+* * *
+baz
+.
+<p>Foo
+bar</p>
+<hr />
+<p>baz</p>
+````````````````````````````````
+
+
+Authors who want interpretation 3 can use backslash escapes:
+
+```````````````````````````````` example
+Foo
+bar
+\---
+baz
+.
+<p>Foo
+bar
+---
+baz</p>
+````````````````````````````````
+
## Indented code blocks
-An [indented code block](@indented-code-block) is composed of one or more
-[indented chunk]s separated by blank lines.
-An [indented chunk](@indented-chunk) is a sequence of non-blank lines,
+An [indented code block](@) is composed of one or more
+[indented chunks] separated by blank lines.
+An [indented chunk](@) is a sequence of non-blank lines,
each indented four or more spaces. The contents of the code block are
the literal contents of the lines, including trailing
-[line ending]s, minus four spaces of indentation.
+[line endings], minus four spaces of indentation.
An indented code block has no [info string].
An indented code block cannot interrupt a paragraph, so there must be
@@ -1070,20 +1249,21 @@ a blank line between a paragraph and a following indented code block.
(A blank line is not needed, however, between a code block and a following
paragraph.)
-.
+```````````````````````````````` example
a simple
indented code block
.
<pre><code>a simple
indented code block
</code></pre>
-.
+````````````````````````````````
+
If there is any ambiguity between an interpretation of indentation
as a code block and as indicating that material belongs to a [list
item][list items], the list item interpretation takes precedence:
-.
+```````````````````````````````` example
- foo
bar
@@ -1094,9 +1274,10 @@ item][list items], the list item interpretation takes precedence:
<p>bar</p>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1. foo
- bar
@@ -1109,13 +1290,14 @@ item][list items], the list item interpretation takes precedence:
</ul>
</li>
</ol>
-.
+````````````````````````````````
+
The contents of a code block are literal text, and do not get parsed
as Markdown:
-.
+```````````````````````````````` example
<a/>
*hi*
@@ -1126,11 +1308,12 @@ as Markdown:
- one
</code></pre>
-.
+````````````````````````````````
+
Here we have three chunks separated by blank lines:
-.
+```````````````````````````````` example
chunk1
chunk2
@@ -1147,12 +1330,13 @@ chunk2
chunk3
</code></pre>
-.
+````````````````````````````````
+
Any initial spaces beyond four will be included in the content, even
in interior blank lines:
-.
+```````````````````````````````` example
chunk1
chunk2
@@ -1161,68 +1345,73 @@ in interior blank lines:
chunk2
</code></pre>
-.
+````````````````````````````````
+
An indented code block cannot interrupt a paragraph. (This
allows hanging indents and the like.)
-.
+```````````````````````````````` example
Foo
bar
.
<p>Foo
bar</p>
-.
+````````````````````````````````
+
However, any non-blank line with fewer than four leading spaces ends
the code block immediately. So a paragraph may occur immediately
after indented code:
-.
+```````````````````````````````` example
foo
bar
.
<pre><code>foo
</code></pre>
<p>bar</p>
-.
+````````````````````````````````
+
And indented code can occur immediately before and after other kinds of
blocks:
-.
-# Header
+```````````````````````````````` example
+# Heading
foo
-Header
+Heading
------
foo
----
.
-<h1>Header</h1>
+<h1>Heading</h1>
<pre><code>foo
</code></pre>
-<h2>Header</h2>
+<h2>Heading</h2>
<pre><code>foo
</code></pre>
<hr />
-.
+````````````````````````````````
+
The first line can be indented more than four spaces:
-.
+```````````````````````````````` example
foo
bar
.
<pre><code> foo
bar
</code></pre>
-.
+````````````````````````````````
+
Blank lines preceding or following an indented code block
are not included in it:
-.
+```````````````````````````````` example
foo
@@ -1231,29 +1420,31 @@ are not included in it:
.
<pre><code>foo
</code></pre>
-.
+````````````````````````````````
+
Trailing spaces are included in the code block's content:
-.
+```````````````````````````````` example
foo
.
<pre><code>foo
</code></pre>
-.
+````````````````````````````````
+
## Fenced code blocks
-A [code fence](@code-fence) is a sequence
+A [code fence](@) is a sequence
of at least three consecutive backtick characters (`` ` ``) or
tildes (`~`). (Tildes and backticks cannot be mixed.)
-A [fenced code block](@fenced-code-block)
+A [fenced code block](@)
begins with a code fence, indented no more than three spaces.
The line with the opening code fence may optionally contain some text
following the code fence; this is trimmed of leading and trailing
-spaces and called the [info string](@info-string).
+spaces and called the [info string](@).
The [info string] may not contain any backtick
characters. (The reason for this restriction is that otherwise
some inline code would be incorrectly interpreted as the
@@ -1289,7 +1480,7 @@ particular treatment of the [info string].
Here is a simple example with backticks:
-.
+```````````````````````````````` example
```
<
>
@@ -1298,11 +1489,12 @@ Here is a simple example with backticks:
<pre><code>&lt;
&gt;
</code></pre>
-.
+````````````````````````````````
+
With tildes:
-.
+```````````````````````````````` example
~~~
<
>
@@ -1311,12 +1503,13 @@ With tildes:
<pre><code>&lt;
&gt;
</code></pre>
-.
+````````````````````````````````
+
The closing code fence must use the same character as the opening
fence:
-.
+```````````````````````````````` example
```
aaa
~~~
@@ -1325,9 +1518,10 @@ aaa
<pre><code>aaa
~~~
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
~~~
aaa
```
@@ -1336,11 +1530,12 @@ aaa
<pre><code>aaa
```
</code></pre>
-.
+````````````````````````````````
+
The closing code fence must be at least as long as the opening fence:
-.
+```````````````````````````````` example
````
aaa
```
@@ -1349,9 +1544,10 @@ aaa
<pre><code>aaa
```
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
~~~~
aaa
~~~
@@ -1360,18 +1556,20 @@ aaa
<pre><code>aaa
~~~
</code></pre>
-.
+````````````````````````````````
+
Unclosed code blocks are closed by the end of the document
-(or the enclosing [block quote] or [list item]):
+(or the enclosing [block quote][block quotes] or [list item][list items]):
-.
+```````````````````````````````` example
```
.
<pre><code></code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
`````
```
@@ -1381,9 +1579,10 @@ aaa
```
aaa
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> ```
> aaa
@@ -1394,11 +1593,12 @@ bbb
</code></pre>
</blockquote>
<p>bbb</p>
-.
+````````````````````````````````
+
A code block can have all empty lines as its content:
-.
+```````````````````````````````` example
```
@@ -1407,22 +1607,24 @@ A code block can have all empty lines as its content:
<pre><code>
</code></pre>
-.
+````````````````````````````````
+
A code block can be empty:
-.
+```````````````````````````````` example
```
```
.
<pre><code></code></pre>
-.
+````````````````````````````````
+
Fences can be indented. If the opening fence is indented,
content lines will have equivalent opening indentation removed,
if present:
-.
+```````````````````````````````` example
```
aaa
aaa
@@ -1431,9 +1633,10 @@ aaa
<pre><code>aaa
aaa
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
```
aaa
aaa
@@ -1444,9 +1647,10 @@ aaa
aaa
aaa
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
```
aaa
aaa
@@ -1457,11 +1661,12 @@ aaa
aaa
aaa
</code></pre>
-.
+````````````````````````````````
+
Four spaces indentation produces an indented code block:
-.
+```````````````````````````````` example
```
aaa
```
@@ -1470,32 +1675,35 @@ Four spaces indentation produces an indented code block:
aaa
```
</code></pre>
-.
+````````````````````````````````
+
Closing fences may be indented by 0-3 spaces, and their indentation
need not match that of the opening fence:
-.
+```````````````````````````````` example
```
aaa
```
.
<pre><code>aaa
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
```
aaa
```
.
<pre><code>aaa
</code></pre>
-.
+````````````````````````````````
+
This is not a closing fence, because it is indented 4 spaces:
-.
+```````````````````````````````` example
```
aaa
```
@@ -1503,20 +1711,22 @@ aaa
<pre><code>aaa
```
</code></pre>
-.
+````````````````````````````````
+
Code fences (opening and closing) cannot contain internal spaces:
-.
+```````````````````````````````` example
``` ```
aaa
.
<p><code></code>
aaa</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
~~~~~~
aaa
~~~ ~~
@@ -1524,12 +1734,13 @@ aaa
<pre><code>aaa
~~~ ~~
</code></pre>
-.
+````````````````````````````````
+
Fenced code blocks can interrupt paragraphs, and can be followed
directly by paragraphs, without a blank line between:
-.
+```````````````````````````````` example
foo
```
bar
@@ -1540,12 +1751,13 @@ baz
<pre><code>bar
</code></pre>
<p>baz</p>
-.
+````````````````````````````````
+
Other blocks can also occur before and after fenced code blocks
without an intervening blank line:
-.
+```````````````````````````````` example
foo
---
~~~
@@ -1557,14 +1769,15 @@ bar
<pre><code>bar
</code></pre>
<h1>baz</h1>
-.
+````````````````````````````````
+
An [info string] can be provided after the opening code fence.
Opening and closing spaces will be stripped, and the first word, prefixed
with `language-`, is used as the value for the `class` attribute of the
`code` element within the enclosing `pre` element.
-.
+```````````````````````````````` example
```ruby
def foo(x)
return 3
@@ -1575,9 +1788,10 @@ end
return 3
end
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
~~~~ ruby startline=3 $%@#$
def foo(x)
return 3
@@ -1588,47 +1802,51 @@ end
return 3
end
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
````;
````
.
<pre><code class="language-;"></code></pre>
-.
+````````````````````````````````
-[Info string]s for backtick code blocks cannot contain backticks:
-.
+[Info strings] for backtick code blocks cannot contain backticks:
+
+```````````````````````````````` example
``` aa ```
foo
.
<p><code>aa</code>
foo</p>
-.
+````````````````````````````````
-Closing code fences cannot have [info string]s:
-.
+Closing code fences cannot have [info strings]:
+
+```````````````````````````````` example
```
``` aaa
```
.
<pre><code>``` aaa
</code></pre>
-.
+````````````````````````````````
+
## HTML blocks
-An [HTML block](@html-block) is a group of lines that is treated
+An [HTML block](@) is a group of lines that is treated
as raw HTML (and will not be escaped in HTML output).
There are seven kinds of [HTML block], which can be defined
by their start and end conditions. The block begins with a line that
-meets a [start condition](@start-condition) (after up to three spaces
+meets a [start condition](@) (after up to three spaces
optional indentation). It ends with the first subsequent line that
-meets a matching [end condition](@end-condition), or the last line of
+meets a matching [end condition](@), or the last line of
the document, if no line is encountered that meets the
[end condition]. If the first line meets both the [start condition]
and the [end condition], the block will contain just that line.
@@ -1682,7 +1900,7 @@ of long tags inside a wrapped paragraph as starting HTML blocks.)
Some simple examples follow. Here are some basic HTML blocks
of type 6:
-.
+```````````````````````````````` example
<table>
<tr>
<td>
@@ -1701,9 +1919,10 @@ okay.
</tr>
</table>
<p>okay.</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<div>
*hello*
<foo><a>
@@ -1711,21 +1930,23 @@ okay.
<div>
*hello*
<foo><a>
-.
+````````````````````````````````
+
A block can also start with a closing tag:
-.
+```````````````````````````````` example
</div>
*foo*
.
</div>
*foo*
-.
+````````````````````````````````
+
Here we have two HTML blocks with a Markdown paragraph between them:
-.
+```````````````````````````````` example
<DIV CLASS="foo">
*Markdown*
@@ -1735,12 +1956,13 @@ Here we have two HTML blocks with a Markdown paragraph between them:
<DIV CLASS="foo">
<p><em>Markdown</em></p>
</DIV>
-.
+````````````````````````````````
+
The tag on the first line can be partial, as long
as it is split where there would be whitespace:
-.
+```````````````````````````````` example
<div id="foo"
class="bar">
</div>
@@ -1748,9 +1970,10 @@ as it is split where there would be whitespace:
<div id="foo"
class="bar">
</div>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<div id="foo" class="bar
baz">
</div>
@@ -1758,10 +1981,11 @@ as it is split where there would be whitespace:
<div id="foo" class="bar
baz">
</div>
-.
+````````````````````````````````
+
An open tag need not be closed:
-.
+```````````````````````````````` example
<div>
*foo*
@@ -1770,49 +1994,54 @@ An open tag need not be closed:
<div>
*foo*
<p><em>bar</em></p>
-.
+````````````````````````````````
+
A partial tag need not even be completed (garbage
in, garbage out):
-.
+```````````````````````````````` example
<div id="foo"
*hi*
.
<div id="foo"
*hi*
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<div class
foo
.
<div class
foo
-.
+````````````````````````````````
+
The initial tag doesn't even need to be a valid
tag, as long as it starts like one:
-.
+```````````````````````````````` example
<div *???-&&&-<---
*foo*
.
<div *???-&&&-<---
*foo*
-.
+````````````````````````````````
+
In type 6 blocks, the initial tag need not be on a line by
itself:
-.
+```````````````````````````````` example
<div><a href="bar">*foo*</a></div>
.
<div><a href="bar">*foo*</a></div>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<table><tr><td>
foo
</td></tr></table>
@@ -1820,7 +2049,8 @@ foo
<table><tr><td>
foo
</td></tr></table>
-.
+````````````````````````````````
+
Everything until the next blank line or end of document
gets included in the HTML block. So, in the following
@@ -1828,7 +2058,7 @@ example, what looks like a Markdown code block
is actually part of the HTML block, which continues until a blank
line or the end of the document is reached:
-.
+```````````````````````````````` example
<div></div>
``` c
int x = 33;
@@ -1838,13 +2068,14 @@ int x = 33;
``` c
int x = 33;
```
-.
+````````````````````````````````
+
To start an [HTML block] with a tag that is *not* in the
list of block-level tags in (6), you must put the tag by
itself on the first line (and it must be complete):
-.
+```````````````````````````````` example
<a href="foo">
*bar*
</a>
@@ -1852,11 +2083,12 @@ itself on the first line (and it must be complete):
<a href="foo">
*bar*
</a>
-.
+````````````````````````````````
+
In type 7 blocks, the [tag name] can be anything:
-.
+```````````````````````````````` example
<Warning>
*bar*
</Warning>
@@ -1864,9 +2096,10 @@ In type 7 blocks, the [tag name] can be anything:
<Warning>
*bar*
</Warning>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<i class="foo">
*bar*
</i>
@@ -1874,15 +2107,17 @@ In type 7 blocks, the [tag name] can be anything:
<i class="foo">
*bar*
</i>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
</ins>
*bar*
.
</ins>
*bar*
-.
+````````````````````````````````
+
These rules are designed to allow us to work with tags that
can function as either block-level or inline-level tags.
@@ -1890,7 +2125,7 @@ The `<del>` tag is a nice example. We can surround content with
`<del>` tags in three different ways. In this case, we get a raw
HTML block, because the `<del>` tag is on a line by itself:
-.
+```````````````````````````````` example
<del>
*foo*
</del>
@@ -1898,13 +2133,14 @@ HTML block, because the `<del>` tag is on a line by itself:
<del>
*foo*
</del>
-.
+````````````````````````````````
+
In this case, we get a raw HTML block that just includes
the `<del>` tag (because it ends with the following blank
line). So the contents get interpreted as CommonMark:
-.
+```````````````````````````````` example
<del>
*foo*
@@ -1914,18 +2150,20 @@ line). So the contents get interpreted as CommonMark:
<del>
<p><em>foo</em></p>
</del>
-.
+````````````````````````````````
+
Finally, in this case, the `<del>` tags are interpreted
as [raw HTML] *inside* the CommonMark paragraph. (Because
the tag is not on a line by itself, we get inline HTML
rather than an [HTML block].)
-.
+```````````````````````````````` example
<del>*foo*</del>
.
<p><del><em>foo</em></del></p>
-.
+````````````````````````````````
+
HTML tags designed to contain literal content
(`script`, `style`, `pre`), comments, processing instructions,
@@ -1936,7 +2174,7 @@ As a result, these blocks can contain blank lines:
A pre tag (type 1):
-.
+```````````````````````````````` example
<pre language="haskell"><code>
import Text.HTML.TagSoup
@@ -1950,11 +2188,12 @@ import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
</code></pre>
-.
+````````````````````````````````
+
A script tag (type 1):
-.
+```````````````````````````````` example
<script type="text/javascript">
// JavaScript example
@@ -1966,11 +2205,12 @@ document.getElementById("demo").innerHTML = "Hello JavaScript!";
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
-.
+````````````````````````````````
+
A style tag (type 1):
-.
+```````````````````````````````` example
<style
type="text/css">
h1 {color:red;}
@@ -1984,13 +2224,14 @@ h1 {color:red;}
p {color:blue;}
</style>
-.
+````````````````````````````````
+
If there is no matching end tag, the block will end at the
-end of the document (or the enclosing [block quote] or
-[list item]):
+end of the document (or the enclosing [block quote][block quotes]
+or [list item][list items]):
-.
+```````````````````````````````` example
<style
type="text/css">
@@ -2000,9 +2241,10 @@ foo
type="text/css">
foo
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> <div>
> foo
@@ -2013,9 +2255,10 @@ bar
foo
</blockquote>
<p>bar</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- <div>
- foo
.
@@ -2025,30 +2268,33 @@ foo
</li>
<li>foo</li>
</ul>
-.
+````````````````````````````````
+
The end tag can occur on the same line as the start tag:
-.
+```````````````````````````````` example
<style>p{color:red;}</style>
*foo*
.
<style>p{color:red;}</style>
<p><em>foo</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<!-- foo -->*bar*
*baz*
.
<!-- foo -->*bar*
<p><em>baz</em></p>
-.
+````````````````````````````````
+
Note that anything on the last line after the
end tag will be included in the [HTML block]:
-.
+```````````````````````````````` example
<script>
foo
</script>1. *bar*
@@ -2056,11 +2302,12 @@ foo
<script>
foo
</script>1. *bar*
-.
+````````````````````````````````
+
A comment (type 2):
-.
+```````````````````````````````` example
<!-- Foo
bar
@@ -2070,12 +2317,13 @@ bar
bar
baz -->
-.
+````````````````````````````````
+
A processing instruction (type 3):
-.
+```````````````````````````````` example
<?php
echo '>';
@@ -2087,19 +2335,21 @@ A processing instruction (type 3):
echo '>';
?>
-.
+````````````````````````````````
+
A declaration (type 4):
-.
+```````````````````````````````` example
<!DOCTYPE html>
.
<!DOCTYPE html>
-.
+````````````````````````````````
+
CDATA (type 5):
-.
+```````````````````````````````` example
<![CDATA[
function matchwo(a,b)
{
@@ -2125,11 +2375,12 @@ function matchwo(a,b)
}
}
]]>
-.
+````````````````````````````````
+
The opening tag can be indented 1-3 spaces, but not 4:
-.
+```````````````````````````````` example
<!-- foo -->
<!-- foo -->
@@ -2137,9 +2388,10 @@ The opening tag can be indented 1-3 spaces, but not 4:
<!-- foo -->
<pre><code>&lt;!-- foo --&gt;
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<div>
<div>
@@ -2147,12 +2399,13 @@ The opening tag can be indented 1-3 spaces, but not 4:
<div>
<pre><code>&lt;div&gt;
</code></pre>
-.
+````````````````````````````````
+
An HTML block of types 1--6 can interrupt a paragraph, and need not be
preceded by a blank line.
-.
+```````````````````````````````` example
Foo
<div>
bar
@@ -2162,12 +2415,13 @@ bar
<div>
bar
</div>
-.
+````````````````````````````````
+
However, a following blank line is needed, except at the end of
a document, and except for blocks of types 1--5, above:
-.
+```````````````````````````````` example
<div>
bar
</div>
@@ -2177,11 +2431,12 @@ bar
bar
</div>
*foo*
-.
+````````````````````````````````
+
HTML blocks of type 7 cannot interrupt a paragraph:
-.
+```````````````````````````````` example
Foo
<a href="bar">
baz
@@ -2189,7 +2444,8 @@ baz
<p>Foo
<a href="bar">
baz</p>
-.
+````````````````````````````````
+
This rule differs from John Gruber's original Markdown syntax
specification, which says:
@@ -2221,7 +2477,7 @@ simply separate the Markdown from the HTML using blank lines:
Compare:
-.
+```````````````````````````````` example
<div>
*Emphasized* text.
@@ -2231,9 +2487,10 @@ Compare:
<div>
<p><em>Emphasized</em> text.</p>
</div>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<div>
*Emphasized* text.
</div>
@@ -2241,7 +2498,8 @@ Compare:
<div>
*Emphasized* text.
</div>
-.
+````````````````````````````````
+
Some Markdown implementations have adopted a convention of
interpreting content inside tags as text if the open tag has
@@ -2254,7 +2512,7 @@ blocks into Markdown documents with 100% reliability. However,
*in most cases* this will work fine, because the blank lines in
HTML are usually followed by HTML block tags. For example:
-.
+```````````````````````````````` example
<table>
<tr>
@@ -2274,13 +2532,14 @@ Hi
</td>
</tr>
</table>
-.
+````````````````````````````````
+
There are problems, however, if the inner tags are indented
*and* separated by spaces, as then they will be interpreted as
an indented code block:
-.
+```````````````````````````````` example
<table>
<tr>
@@ -2301,7 +2560,8 @@ an indented code block:
</code></pre>
</tr>
</table>
-.
+````````````````````````````````
+
Fortunately, blank lines are usually not necessary and can be
deleted. The exception is inside `<pre>` tags, but as described
@@ -2310,7 +2570,7 @@ lines.
## Link reference definitions
-A [link reference definition](@link-reference-definition)
+A [link reference definition](@)
consists of a [link label], indented up to three spaces, followed
by a colon (`:`), optional [whitespace] (including up to one
[line ending]), a [link destination],
@@ -2318,24 +2578,25 @@ optional [whitespace] (including up to one
[line ending]), and an optional [link
title], which if it is present must be separated
from the [link destination] by [whitespace].
-No further [non-whitespace character]s may occur on the line.
+No further [non-whitespace characters] may occur on the line.
A [link reference definition]
does not correspond to a structural element of a document. Instead, it
-defines a label which can be used in [reference link]s
+defines a label which can be used in [reference links]
and reference-style [images] elsewhere in the document. [Link
reference definitions] can come either before or after the links that use
them.
-.
+```````````````````````````````` example
[foo]: /url "title"
[foo]
.
<p><a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo]:
/url
'the title'
@@ -2343,29 +2604,32 @@ them.
[foo]
.
<p><a href="/url" title="the title">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[Foo*bar\]]:my_(url) 'title (with parens)'
[Foo*bar\]]
.
<p><a href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[Foo bar]:
-<my url>
+<my%20url>
'title'
[Foo bar]
.
<p><a href="my%20url" title="title">Foo bar</a></p>
-.
+````````````````````````````````
+
The title may extend over multiple lines:
-.
+```````````````````````````````` example
[foo]: /url '
title
line1
@@ -2379,11 +2643,12 @@ title
line1
line2
">foo</a></p>
-.
+````````````````````````````````
+
However, it may not contain a [blank line]:
-.
+```````````````````````````````` example
[foo]: /url 'title
with blank line'
@@ -2393,123 +2658,135 @@ with blank line'
<p>[foo]: /url 'title</p>
<p>with blank line'</p>
<p>[foo]</p>
-.
+````````````````````````````````
+
The title may be omitted:
-.
+```````````````````````````````` example
[foo]:
/url
[foo]
.
<p><a href="/url">foo</a></p>
-.
+````````````````````````````````
+
The link destination may not be omitted:
-.
+```````````````````````````````` example
[foo]:
[foo]
.
<p>[foo]:</p>
<p>[foo]</p>
-.
+````````````````````````````````
+
Both title and destination can contain backslash escapes
and literal backslashes:
-.
+```````````````````````````````` example
[foo]: /url\bar\*baz "foo\"bar\baz"
[foo]
.
<p><a href="/url%5Cbar*baz" title="foo&quot;bar\baz">foo</a></p>
-.
+````````````````````````````````
+
A link can come before its corresponding definition:
-.
+```````````````````````````````` example
[foo]
[foo]: url
.
<p><a href="url">foo</a></p>
-.
+````````````````````````````````
+
If there are several matching definitions, the first one takes
precedence:
-.
+```````````````````````````````` example
[foo]
[foo]: first
[foo]: second
.
<p><a href="first">foo</a></p>
-.
+````````````````````````````````
+
As noted in the section on [Links], matching of labels is
case-insensitive (see [matches]).
-.
+```````````````````````````````` example
[FOO]: /url
[Foo]
.
<p><a href="/url">Foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[ΑΓΩ]: /φου
[αγω]
.
<p><a href="/%CF%86%CE%BF%CF%85">αγω</a></p>
-.
+````````````````````````````````
+
Here is a link reference definition with no corresponding link.
It contributes nothing to the document.
-.
+```````````````````````````````` example
[foo]: /url
.
-.
+````````````````````````````````
+
Here is another one:
-.
+```````````````````````````````` example
[
foo
]: /url
bar
.
<p>bar</p>
-.
+````````````````````````````````
+
This is not a link reference definition, because there are
-[non-whitespace character]s after the title:
+[non-whitespace characters] after the title:
-.
+```````````````````````````````` example
[foo]: /url "title" ok
.
<p>[foo]: /url &quot;title&quot; ok</p>
-.
+````````````````````````````````
+
This is a link reference definition, but it has no title:
-.
+```````````````````````````````` example
[foo]: /url
"title" ok
.
<p>&quot;title&quot; ok</p>
-.
+````````````````````````````````
+
This is not a link reference definition, because it is indented
four spaces:
-.
+```````````````````````````````` example
[foo]: /url "title"
[foo]
@@ -2517,12 +2794,13 @@ four spaces:
<pre><code>[foo]: /url &quot;title&quot;
</code></pre>
<p>[foo]</p>
-.
+````````````````````````````````
+
This is not a link reference definition, because it occurs inside
a code block:
-.
+```````````````````````````````` example
```
[foo]: /url
```
@@ -2532,11 +2810,12 @@ a code block:
<pre><code>[foo]: /url
</code></pre>
<p>[foo]</p>
-.
+````````````````````````````````
+
A [link reference definition] cannot interrupt a paragraph.
-.
+```````````````````````````````` example
Foo
[bar]: /baz
@@ -2545,12 +2824,13 @@ Foo
<p>Foo
[bar]: /baz</p>
<p>[bar]</p>
-.
+````````````````````````````````
-However, it can directly follow other block elements, such as headers
-and horizontal rules, and it need not be followed by a blank line.
-.
+However, it can directly follow other block elements, such as headings
+and thematic breaks, and it need not be followed by a blank line.
+
+```````````````````````````````` example
# [Foo]
[foo]: /url
> bar
@@ -2559,12 +2839,13 @@ and horizontal rules, and it need not be followed by a blank line.
<blockquote>
<p>bar</p>
</blockquote>
-.
+````````````````````````````````
+
-Several [link reference definition]s
+Several [link reference definitions]
can occur one after another, without intervening blank lines.
-.
+```````````````````````````````` example
[foo]: /foo-url "foo"
[bar]: /bar-url
"bar"
@@ -2577,14 +2858,15 @@ can occur one after another, without intervening blank lines.
<p><a href="/foo-url" title="foo">foo</a>,
<a href="/bar-url" title="bar">bar</a>,
<a href="/baz-url">baz</a></p>
-.
+````````````````````````````````
+
-[Link reference definition]s can occur
+[Link reference definitions] can occur
inside block containers, like lists and block quotations. They
affect the entire document, not just the container in which they
are defined:
-.
+```````````````````````````````` example
[foo]
> [foo]: /url
@@ -2592,13 +2874,14 @@ are defined:
<p><a href="/url">foo</a></p>
<blockquote>
</blockquote>
-.
+````````````````````````````````
+
## Paragraphs
A sequence of non-blank lines that cannot be interpreted as other
-kinds of blocks forms a [paragraph](@paragraph).
+kinds of blocks forms a [paragraph](@).
The contents of the paragraph are the result of parsing the
paragraph's raw content as inlines. The paragraph's raw content
is formed by concatenating the lines and removing initial and final
@@ -2606,18 +2889,19 @@ is formed by concatenating the lines and removing initial and final
A simple example with two paragraphs:
-.
+```````````````````````````````` example
aaa
bbb
.
<p>aaa</p>
<p>bbb</p>
-.
+````````````````````````````````
+
Paragraphs can contain multiple lines, but no blank lines:
-.
+```````````````````````````````` example
aaa
bbb
@@ -2628,11 +2912,12 @@ ddd
bbb</p>
<p>ccc
ddd</p>
-.
+````````````````````````````````
+
Multiple blank lines between paragraph have no effect:
-.
+```````````````````````````````` example
aaa
@@ -2640,22 +2925,24 @@ bbb
.
<p>aaa</p>
<p>bbb</p>
-.
+````````````````````````````````
+
Leading spaces are skipped:
-.
+```````````````````````````````` example
aaa
bbb
.
<p>aaa
bbb</p>
-.
+````````````````````````````````
+
Lines after the first may be indented any amount, since indented
code blocks cannot interrupt paragraphs.
-.
+```````````````````````````````` example
aaa
bbb
ccc
@@ -2663,49 +2950,53 @@ aaa
<p>aaa
bbb
ccc</p>
-.
+````````````````````````````````
+
However, the first line may be indented at most three spaces,
or an indented code block will be triggered:
-.
+```````````````````````````````` example
aaa
bbb
.
<p>aaa
bbb</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
aaa
bbb
.
<pre><code>aaa
</code></pre>
<p>bbb</p>
-.
+````````````````````````````````
+
Final spaces are stripped before inline parsing, so a paragraph
that ends with two or more spaces will not end with a [hard line
break]:
-.
+```````````````````````````````` example
aaa
bbb
.
<p>aaa<br />
bbb</p>
-.
+````````````````````````````````
+
## Blank lines
-[Blank line]s between block-level elements are ignored,
+[Blank lines] between block-level elements are ignored,
except for the role they play in determining whether a [list]
is [tight] or [loose].
Blank lines at the beginning and end of the document are also ignored.
-.
+```````````````````````````````` example
aaa
@@ -2717,7 +3008,8 @@ aaa
.
<p>aaa</p>
<h1>aaa</h1>
-.
+````````````````````````````````
+
# Container blocks
@@ -2742,7 +3034,7 @@ these constructions. (A recipe is provided below in the section entitled
## Block quotes
-A [block quote marker](@block-quote-marker)
+A [block quote marker](@)
consists of 0-3 spaces of initial indent, plus (a) the character `>` together
with a following space, or (b) a single character `>` not followed by a space.
@@ -2759,7 +3051,7 @@ The following rules define [block quotes]:
more lines in which the next [non-whitespace character] after the [block
quote marker] is [paragraph continuation
text] is a block quote with *Bs* as its content.
- [Paragraph continuation text](@paragraph-continuation-text) is text
+ [Paragraph continuation text](@) is text
that will be parsed as part of the content of a paragraph, but does
not occur at the beginning of the paragraph.
@@ -2770,7 +3062,7 @@ Nothing else counts as a [block quote](#block-quotes).
Here is a simple example:
-.
+```````````````````````````````` example
> # Foo
> bar
> baz
@@ -2780,11 +3072,12 @@ Here is a simple example:
<p>bar
baz</p>
</blockquote>
-.
+````````````````````````````````
+
The spaces after the `>` characters can be omitted:
-.
+```````````````````````````````` example
># Foo
>bar
> baz
@@ -2794,11 +3087,12 @@ The spaces after the `>` characters can be omitted:
<p>bar
baz</p>
</blockquote>
-.
+````````````````````````````````
+
The `>` characters can be indented 1-3 spaces:
-.
+```````````````````````````````` example
> # Foo
> bar
> baz
@@ -2808,11 +3102,12 @@ The `>` characters can be indented 1-3 spaces:
<p>bar
baz</p>
</blockquote>
-.
+````````````````````````````````
+
Four spaces gives us a code block:
-.
+```````````````````````````````` example
> # Foo
> bar
> baz
@@ -2821,12 +3116,13 @@ Four spaces gives us a code block:
&gt; bar
&gt; baz
</code></pre>
-.
+````````````````````````````````
+
The Laziness clause allows us to omit the `>` before a
paragraph continuation line:
-.
+```````````````````````````````` example
> # Foo
> bar
baz
@@ -2836,12 +3132,13 @@ baz
<p>bar
baz</p>
</blockquote>
-.
+````````````````````````````````
+
A block quote can contain some lazy and some non-lazy
continuation lines:
-.
+```````````````````````````````` example
> bar
baz
> foo
@@ -2851,10 +3148,11 @@ baz
baz
foo</p>
</blockquote>
-.
+````````````````````````````````
+
Laziness only applies to lines that would have been continuations of
-paragraphs had they been prepended with [block quote marker]s.
+paragraphs had they been prepended with [block quote markers].
For example, the `> ` cannot be omitted in the second line of
``` markdown
@@ -2864,7 +3162,7 @@ For example, the `> ` cannot be omitted in the second line of
without changing the meaning:
-.
+```````````````````````````````` example
> foo
---
.
@@ -2872,7 +3170,8 @@ without changing the meaning:
<p>foo</p>
</blockquote>
<hr />
-.
+````````````````````````````````
+
Similarly, if we omit the `> ` in the second line of
@@ -2883,7 +3182,7 @@ Similarly, if we omit the `> ` in the second line of
then the block quote ends after the first line:
-.
+```````````````````````````````` example
> - foo
- bar
.
@@ -2895,12 +3194,13 @@ then the block quote ends after the first line:
<ul>
<li>bar</li>
</ul>
-.
+````````````````````````````````
+
For the same reason, we can't omit the `> ` in front of
subsequent lines of an indented or fenced code block:
-.
+```````````````````````````````` example
> foo
bar
.
@@ -2910,9 +3210,10 @@ subsequent lines of an indented or fenced code block:
</blockquote>
<pre><code>bar
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> ```
foo
```
@@ -2922,12 +3223,13 @@ foo
</blockquote>
<p>foo</p>
<pre><code></code></pre>
-.
+````````````````````````````````
+
Note that in the following case, we have a paragraph
continuation line:
-.
+```````````````````````````````` example
> foo
- bar
.
@@ -2935,7 +3237,8 @@ continuation line:
<p>foo
- bar</p>
</blockquote>
-.
+````````````````````````````````
+
To see why, note that in
@@ -2950,25 +3253,27 @@ interrupt paragraphs, so it is a [paragraph continuation line].
A block quote can be empty:
-.
+```````````````````````````````` example
>
.
<blockquote>
</blockquote>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
>
>
>
.
<blockquote>
</blockquote>
-.
+````````````````````````````````
+
A block quote can have initial or final blank lines:
-.
+```````````````````````````````` example
>
> foo
>
@@ -2976,11 +3281,12 @@ A block quote can have initial or final blank lines:
<blockquote>
<p>foo</p>
</blockquote>
-.
+````````````````````````````````
+
A blank line always separates block quotes:
-.
+```````````````````````````````` example
> foo
> bar
@@ -2991,7 +3297,8 @@ A blank line always separates block quotes:
<blockquote>
<p>bar</p>
</blockquote>
-.
+````````````````````````````````
+
(Most current Markdown implementations, including John Gruber's
original `Markdown.pl`, will parse this example as a single block quote
@@ -3001,7 +3308,7 @@ whether two block quotes or one are wanted.)
Consecutiveness means that if we put these block quotes together,
we get a single block quote:
-.
+```````````````````````````````` example
> foo
> bar
.
@@ -3009,11 +3316,12 @@ we get a single block quote:
<p>foo
bar</p>
</blockquote>
-.
+````````````````````````````````
+
To get a block quote with two paragraphs, use:
-.
+```````````````````````````````` example
> foo
>
> bar
@@ -3022,11 +3330,12 @@ To get a block quote with two paragraphs, use:
<p>foo</p>
<p>bar</p>
</blockquote>
-.
+````````````````````````````````
+
Block quotes can interrupt paragraphs:
-.
+```````````````````````````````` example
foo
> bar
.
@@ -3034,12 +3343,13 @@ foo
<blockquote>
<p>bar</p>
</blockquote>
-.
+````````````````````````````````
+
In general, blank lines are not needed before or after block
quotes:
-.
+```````````````````````````````` example
> aaa
***
> bbb
@@ -3051,12 +3361,13 @@ quotes:
<blockquote>
<p>bbb</p>
</blockquote>
-.
+````````````````````````````````
+
However, because of laziness, a blank line is needed between
a block quote and a following paragraph:
-.
+```````````````````````````````` example
> bar
baz
.
@@ -3064,9 +3375,10 @@ baz
<p>bar
baz</p>
</blockquote>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> bar
baz
@@ -3075,9 +3387,10 @@ baz
<p>bar</p>
</blockquote>
<p>baz</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> bar
>
baz
@@ -3086,13 +3399,14 @@ baz
<p>bar</p>
</blockquote>
<p>baz</p>
-.
+````````````````````````````````
+
It is a consequence of the Laziness rule that any number
of initial `>`s may be omitted on a continuation line of a
nested block quote:
-.
+```````````````````````````````` example
> > > foo
bar
.
@@ -3104,9 +3418,10 @@ bar</p>
</blockquote>
</blockquote>
</blockquote>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
>>> foo
> bar
>>baz
@@ -3120,14 +3435,15 @@ baz</p>
</blockquote>
</blockquote>
</blockquote>
-.
+````````````````````````````````
+
When including an indented code block in a block quote,
remember that the [block quote marker] includes
both the `>` and a following space. So *five spaces* are needed after
the `>`:
-.
+```````````````````````````````` example
> code
> not code
@@ -3139,18 +3455,19 @@ the `>`:
<blockquote>
<p>not code</p>
</blockquote>
-.
+````````````````````````````````
+
## List items
-A [list marker](@list-marker) is a
+A [list marker](@) is a
[bullet list marker] or an [ordered list marker].
-A [bullet list marker](@bullet-list-marker)
+A [bullet list marker](@)
is a `-`, `+`, or `*` character.
-An [ordered list marker](@ordered-list-marker)
+An [ordered list marker](@)
is a sequence of 1--9 arabic digits (`0-9`), followed by either a
`.` character or a `)` character. (The reason for the length
limit is that with 10 digits we start seeing integer overflows
@@ -3171,7 +3488,7 @@ The following rules define [list items]:
For example, let *Ls* be the lines
-.
+```````````````````````````````` example
A paragraph
with two lines.
@@ -3186,13 +3503,14 @@ with two lines.</p>
<blockquote>
<p>A block quote.</p>
</blockquote>
-.
+````````````````````````````````
+
And let *M* be the marker `1.`, and *N* = 2. Then rule #1 says
that the following is an ordered list item with start number 1,
and the same contents as *Ls*:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3211,7 +3529,8 @@ with two lines.</p>
</blockquote>
</li>
</ol>
-.
+````````````````````````````````
+
The most important thing to notice is that the position of
the text after the list marker determines how much indentation
@@ -3224,7 +3543,7 @@ item.
Here are some examples showing how far content must be indented to be
put under the list item:
-.
+```````````````````````````````` example
- one
two
@@ -3233,9 +3552,10 @@ put under the list item:
<li>one</li>
</ul>
<p>two</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- one
two
@@ -3246,9 +3566,10 @@ put under the list item:
<p>two</p>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- one
two
@@ -3258,9 +3579,10 @@ put under the list item:
</ul>
<pre><code> two
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- one
two
@@ -3271,7 +3593,8 @@ put under the list item:
<p>two</p>
</li>
</ul>
-.
+````````````````````````````````
+
It is tempting to think of this in terms of columns: the continuation
blocks must be indented at least to the column of the first
@@ -3281,7 +3604,7 @@ is needed. Which column this indentation reaches will depend on
how the list item is embedded in other constructions, as shown by
this example:
-.
+```````````````````````````````` example
> > 1. one
>>
>> two
@@ -3296,7 +3619,8 @@ this example:
</ol>
</blockquote>
</blockquote>
-.
+````````````````````````````````
+
Here `two` occurs in the same column as the list marker `1.`,
but is actually contained in the list item, because there is
@@ -3307,7 +3631,7 @@ occurs far to the right of the initial text of the list item, `one`, but
it is not considered part of the list item, because it is not indented
far enough past the blockquote marker:
-.
+```````````````````````````````` example
>>- one
>>
> > two
@@ -3320,25 +3644,27 @@ far enough past the blockquote marker:
<p>two</p>
</blockquote>
</blockquote>
-.
+````````````````````````````````
+
Note that at least one space is needed between the list marker and
any following content, so these are not list items:
-.
+```````````````````````````````` example
-one
2.two
.
<p>-one</p>
<p>2.two</p>
-.
+````````````````````````````````
+
A list item may not contain blocks that are separated by more than
one blank line. Thus, two blank lines will end a list, unless the
two blanks are contained in a [fenced code block].
-.
+```````````````````````````````` example
- foo
bar
@@ -3395,11 +3721,12 @@ bar
</ul>
</li>
</ul>
-.
+````````````````````````````````
+
A list item may contain any kind of block:
-.
+```````````````````````````````` example
1. foo
```
@@ -3421,49 +3748,99 @@ A list item may contain any kind of block:
</blockquote>
</li>
</ol>
+````````````````````````````````
+
+
+A list item that contains an indented code block will preserve
+empty lines within the code block verbatim, unless there are two
+or more empty lines in a row (since as described above, two
+blank lines end the list):
+
+```````````````````````````````` example
+- Foo
+
+ bar
+
+ baz
.
+<ul>
+<li>
+<p>Foo</p>
+<pre><code>bar
+
+baz
+</code></pre>
+</li>
+</ul>
+````````````````````````````````
+
+
+```````````````````````````````` example
+- Foo
+
+ bar
-Note that ordered list start numbers must be nine digits or less:
+ baz
.
+<ul>
+<li>
+<p>Foo</p>
+<pre><code>bar
+</code></pre>
+</li>
+</ul>
+<pre><code> baz
+</code></pre>
+````````````````````````````````
+
+
+Note that ordered list start numbers must be nine digits or less:
+
+```````````````````````````````` example
123456789. ok
.
<ol start="123456789">
<li>ok</li>
</ol>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1234567890. not ok
.
<p>1234567890. not ok</p>
-.
+````````````````````````````````
+
A start number may begin with 0s:
-.
+```````````````````````````````` example
0. ok
.
<ol start="0">
<li>ok</li>
</ol>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
003. ok
.
<ol start="3">
<li>ok</li>
</ol>
-.
+````````````````````````````````
+
A start number may not be negative:
-.
+```````````````````````````````` example
-1. not ok
.
<p>-1. not ok</p>
-.
+````````````````````````````````
+
2. **Item starting with indented code.** If a sequence of lines *Ls*
@@ -3482,7 +3859,7 @@ An indented code block will have to be indented four spaces beyond
the edge of the region where text will be included in the list item.
In the following case that is 6 spaces:
-.
+```````````````````````````````` example
- foo
bar
@@ -3494,11 +3871,12 @@ In the following case that is 6 spaces:
</code></pre>
</li>
</ul>
-.
+````````````````````````````````
+
And in this case it is 11 spaces:
-.
+```````````````````````````````` example
10. foo
bar
@@ -3510,13 +3888,14 @@ And in this case it is 11 spaces:
</code></pre>
</li>
</ol>
-.
+````````````````````````````````
+
If the *first* block in the list item is an indented code block,
then by rule #2, the contents must be indented *one* space after the
list marker:
-.
+```````````````````````````````` example
indented code
paragraph
@@ -3528,9 +3907,10 @@ paragraph
<p>paragraph</p>
<pre><code>more code
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1. indented code
paragraph
@@ -3546,12 +3926,13 @@ paragraph
</code></pre>
</li>
</ol>
-.
+````````````````````````````````
+
Note that an additional space indent is interpreted as space
inside the code block:
-.
+```````````````````````````````` example
1. indented code
paragraph
@@ -3567,7 +3948,8 @@ inside the code block:
</code></pre>
</li>
</ol>
-.
+````````````````````````````````
+
Note that rules #1 and #2 only apply to two cases: (a) cases
in which the lines to be included in a list item begin with a
@@ -3577,16 +3959,17 @@ block. In a case like the following, where the first block begins with
a three-space indent, the rules do not allow us to form a list item by
indenting the whole thing and prepending a list marker:
-.
+```````````````````````````````` example
foo
bar
.
<p>foo</p>
<p>bar</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- foo
bar
@@ -3595,14 +3978,15 @@ bar
<li>foo</li>
</ul>
<p>bar</p>
-.
+````````````````````````````````
+
This is not a significant restriction, because when a block begins
with 1-3 spaces indent, the indentation can always be removed without
a change in interpretation, allowing rule #1 to be applied. So, in
the above case:
-.
+```````````````````````````````` example
- foo
bar
@@ -3613,7 +3997,8 @@ the above case:
<p>bar</p>
</li>
</ul>
-.
+````````````````````````````````
+
3. **Item starting with a blank line.** If a sequence of lines *Ls*
starting with a single [blank line] constitute a (possibly empty)
@@ -3629,7 +4014,7 @@ the above case:
Here are some list items that start with a blank line but are not empty:
-.
+```````````````````````````````` example
-
foo
-
@@ -3650,13 +4035,14 @@ Here are some list items that start with a blank line but are not empty:
</code></pre>
</li>
</ul>
-.
+````````````````````````````````
+
A list item can begin with at most one blank line.
In the following example, `foo` is not part of the list
item:
-.
+```````````````````````````````` example
-
foo
@@ -3665,11 +4051,12 @@ item:
<li></li>
</ul>
<p>foo</p>
-.
+````````````````````````````````
+
Here is an empty bullet list item:
-.
+```````````````````````````````` example
- foo
-
- bar
@@ -3679,11 +4066,12 @@ Here is an empty bullet list item:
<li></li>
<li>bar</li>
</ul>
-.
+````````````````````````````````
+
It does not matter whether there are spaces following the [list marker]:
-.
+```````````````````````````````` example
- foo
-
- bar
@@ -3693,11 +4081,12 @@ It does not matter whether there are spaces following the [list marker]:
<li></li>
<li>bar</li>
</ul>
-.
+````````````````````````````````
+
Here is an empty ordered list item:
-.
+```````````````````````````````` example
1. foo
2.
3. bar
@@ -3707,17 +4096,19 @@ Here is an empty ordered list item:
<li></li>
<li>bar</li>
</ol>
-.
+````````````````````````````````
+
A list may start or end with an empty list item:
-.
+```````````````````````````````` example
*
.
<ul>
<li></li>
</ul>
-.
+````````````````````````````````
+
4. **Indentation.** If a sequence of lines *Ls* constitutes a list item
@@ -3728,7 +4119,7 @@ A list may start or end with an empty list item:
Indented one space:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3747,11 +4138,12 @@ with two lines.</p>
</blockquote>
</li>
</ol>
-.
+````````````````````````````````
+
Indented two spaces:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3770,11 +4162,12 @@ with two lines.</p>
</blockquote>
</li>
</ol>
-.
+````````````````````````````````
+
Indented three spaces:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3793,11 +4186,12 @@ with two lines.</p>
</blockquote>
</li>
</ol>
-.
+````````````````````````````````
+
Four spaces indent gives a code block:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3812,7 +4206,8 @@ Four spaces indent gives a code block:
&gt; A block quote.
</code></pre>
-.
+````````````````````````````````
+
5. **Laziness.** If a string of lines *Ls* constitute a [list
@@ -3822,11 +4217,11 @@ Four spaces indent gives a code block:
[paragraph continuation text] is a
list item with the same contents and attributes. The unindented
lines are called
- [lazy continuation line](@lazy-continuation-line)s.
+ [lazy continuation line](@)s.
-Here is an example with [lazy continuation line]s:
+Here is an example with [lazy continuation lines]:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
@@ -3845,11 +4240,12 @@ with two lines.</p>
</blockquote>
</li>
</ol>
-.
+````````````````````````````````
+
Indentation can be partially deleted:
-.
+```````````````````````````````` example
1. A paragraph
with two lines.
.
@@ -3857,11 +4253,12 @@ Indentation can be partially deleted:
<li>A paragraph
with two lines.</li>
</ol>
-.
+````````````````````````````````
+
These examples show how laziness can work in nested structures:
-.
+```````````````````````````````` example
> 1. > Blockquote
continued here.
.
@@ -3875,9 +4272,10 @@ continued here.</p>
</li>
</ol>
</blockquote>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
> 1. > Blockquote
> continued here.
.
@@ -3891,7 +4289,8 @@ continued here.</p>
</li>
</ol>
</blockquote>
-.
+````````````````````````````````
+
6. **That's all.** Nothing that is not counted as a list item by rules
@@ -3903,7 +4302,7 @@ in order to be included in the list item.
So, in this case we need two spaces indent:
-.
+```````````````````````````````` example
- foo
- bar
- baz
@@ -3919,11 +4318,12 @@ So, in this case we need two spaces indent:
</ul>
</li>
</ul>
-.
+````````````````````````````````
+
One is not enough:
-.
+```````````````````````````````` example
- foo
- bar
- baz
@@ -3933,11 +4333,12 @@ One is not enough:
<li>bar</li>
<li>baz</li>
</ul>
-.
+````````````````````````````````
+
Here we need four, because the list marker is wider:
-.
+```````````````````````````````` example
10) foo
- bar
.
@@ -3948,11 +4349,12 @@ Here we need four, because the list marker is wider:
</ul>
</li>
</ol>
-.
+````````````````````````````````
+
Three is not enough:
-.
+```````````````````````````````` example
10) foo
- bar
.
@@ -3962,11 +4364,12 @@ Three is not enough:
<ul>
<li>bar</li>
</ul>
-.
+````````````````````````````````
+
A list may be the first block in a list item:
-.
+```````````````````````````````` example
- - foo
.
<ul>
@@ -3976,9 +4379,10 @@ A list may be the first block in a list item:
</ul>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1. - 2. foo
.
<ol>
@@ -3992,11 +4396,12 @@ A list may be the first block in a list item:
</ul>
</li>
</ol>
-.
+````````````````````````````````
-A list item can contain a header:
-.
+A list item can contain a heading:
+
+```````````````````````````````` example
- # Foo
- Bar
---
@@ -4010,7 +4415,8 @@ A list item can contain a header:
<h2>Bar</h2>
baz</li>
</ul>
-.
+````````````````````````````````
+
### Motivation
@@ -4200,39 +4606,39 @@ takes four spaces (a common case), but diverge in other cases.
## Lists
-A [list](@list) is a sequence of one or more
+A [list](@) is a sequence of one or more
list items [of the same type]. The list items
may be separated by single [blank lines], but two
blank lines end all containing lists.
-Two list items are [of the same type](@of-the-same-type)
+Two list items are [of the same type](@)
if they begin with a [list marker] of the same type.
Two list markers are of the
same type if (a) they are bullet list markers using the same character
(`-`, `+`, or `*`) or (b) they are ordered list numbers with the same
delimiter (either `.` or `)`).
-A list is an [ordered list](@ordered-list)
+A list is an [ordered list](@)
if its constituent list items begin with
-[ordered list marker]s, and a
-[bullet list](@bullet-list) if its constituent list
-items begin with [bullet list marker]s.
+[ordered list markers], and a
+[bullet list](@) if its constituent list
+items begin with [bullet list markers].
-The [start number](@start-number)
+The [start number](@)
of an [ordered list] is determined by the list number of
its initial list item. The numbers of subsequent list items are
disregarded.
-A list is [loose](@loose) if any of its constituent
+A list is [loose](@) if any of its constituent
list items are separated by blank lines, or if any of its constituent
list items directly contain two block-level elements with a blank line
-between them. Otherwise a list is [tight](@tight).
+between them. Otherwise a list is [tight](@).
(The difference in HTML output is that paragraphs in a loose list are
wrapped in `<p>` tags, while paragraphs in a tight list are not.)
Changing the bullet or ordered list delimiter starts a new list:
-.
+```````````````````````````````` example
- foo
- bar
+ baz
@@ -4244,9 +4650,10 @@ Changing the bullet or ordered list delimiter starts a new list:
<ul>
<li>baz</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1. foo
2. bar
3) baz
@@ -4258,13 +4665,14 @@ Changing the bullet or ordered list delimiter starts a new list:
<ol start="3">
<li>baz</li>
</ol>
-.
+````````````````````````````````
+
In CommonMark, a list can interrupt a paragraph. That is,
no blank line is needed to separate a paragraph from a following
list:
-.
+```````````````````````````````` example
Foo
- bar
- baz
@@ -4274,12 +4682,13 @@ Foo
<li>bar</li>
<li>baz</li>
</ul>
-.
+````````````````````````````````
+
`Markdown.pl` does not allow this, through fear of triggering a list
via a numeral in a hard-wrapped line:
-.
+```````````````````````````````` example
The number of windows in my house is
14. The number of doors is 6.
.
@@ -4287,7 +4696,8 @@ The number of windows in my house is
<ol start="14">
<li>The number of doors is 6.</li>
</ol>
-.
+````````````````````````````````
+
Oddly, `Markdown.pl` *does* allow a blockquote to interrupt a paragraph,
even though the same considerations might apply. We think that the two
@@ -4304,7 +4714,7 @@ blank lines:
Second, we are attracted to a
-> [principle of uniformity](@principle-of-uniformity):
+> [principle of uniformity](@):
> if a chunk of text has a certain
> meaning, it will continue to have the same meaning when put into a
> container block (such as a list item or blockquote).
@@ -4344,7 +4754,7 @@ seems more consistent with established practice with Markdown.
There can be blank lines between items, but two blank lines end
a list:
-.
+```````````````````````````````` example
- foo
- bar
@@ -4363,13 +4773,14 @@ a list:
<ul>
<li>baz</li>
</ul>
-.
+````````````````````````````````
+
As illustrated above in the section on [list items],
two blank lines between blocks *within* a list item will also end a
list:
-.
+```````````````````````````````` example
- foo
@@ -4383,11 +4794,12 @@ list:
<ul>
<li>baz</li>
</ul>
-.
+````````````````````````````````
+
Indeed, two blank lines will end *all* containing lists:
-.
+```````````````````````````````` example
- foo
- bar
- baz
@@ -4408,14 +4820,15 @@ Indeed, two blank lines will end *all* containing lists:
</ul>
<pre><code> bim
</code></pre>
-.
+````````````````````````````````
+
Thus, two blank lines can be used to separate consecutive lists of
the same type, or to separate a list from an indented code block
that would otherwise be parsed as a subparagraph of the final list
item:
-.
+```````````````````````````````` example
- foo
- bar
@@ -4431,9 +4844,10 @@ item:
<li>baz</li>
<li>bim</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- foo
notcode
@@ -4454,14 +4868,15 @@ item:
</ul>
<pre><code>code
</code></pre>
-.
+````````````````````````````````
+
List items need not be indented to the same level. The following
list items will be treated as items at the same list level,
since none is indented enough to belong to the previous list
item:
-.
+```````````````````````````````` example
- a
- b
- c
@@ -4483,9 +4898,10 @@ item:
<li>h</li>
<li>i</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
1. a
2. b
@@ -4503,12 +4919,13 @@ item:
<p>c</p>
</li>
</ol>
-.
+````````````````````````````````
+
This is a loose list, because there is a blank line between
two of the list items:
-.
+```````````````````````````````` example
- a
- b
@@ -4525,11 +4942,12 @@ two of the list items:
<p>c</p>
</li>
</ul>
-.
+````````````````````````````````
+
So is this, with a empty second item:
-.
+```````````````````````````````` example
* a
*
@@ -4544,13 +4962,14 @@ So is this, with a empty second item:
<p>c</p>
</li>
</ul>
-.
+````````````````````````````````
+
These are loose lists, even though there is no space between the items,
because one of the items directly contains two block-level elements
with a blank line between them:
-.
+```````````````````````````````` example
- a
- b
@@ -4569,9 +4988,10 @@ with a blank line between them:
<p>d</p>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- a
- b
@@ -4589,11 +5009,12 @@ with a blank line between them:
<p>d</p>
</li>
</ul>
-.
+````````````````````````````````
+
This is a tight list, because the blank lines are in a code block:
-.
+```````````````````````````````` example
- a
- ```
b
@@ -4612,13 +5033,14 @@ This is a tight list, because the blank lines are in a code block:
</li>
<li>c</li>
</ul>
-.
+````````````````````````````````
+
This is a tight list, because the blank line is between two
paragraphs of a sublist. So the sublist is loose while
the outer list is tight:
-.
+```````````````````````````````` example
- a
- b
@@ -4636,12 +5058,13 @@ the outer list is tight:
</li>
<li>d</li>
</ul>
-.
+````````````````````````````````
+
This is a tight list, because the blank line is inside the
block quote:
-.
+```````````````````````````````` example
* a
> b
>
@@ -4655,12 +5078,13 @@ block quote:
</li>
<li>c</li>
</ul>
-.
+````````````````````````````````
+
This list is tight, because the consecutive block elements
are not separated by blank lines:
-.
+```````````````````````````````` example
- a
> b
```
@@ -4678,19 +5102,21 @@ are not separated by blank lines:
</li>
<li>d</li>
</ul>
-.
+````````````````````````````````
+
A single-paragraph list is tight:
-.
+```````````````````````````````` example
- a
.
<ul>
<li>a</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- a
- b
.
@@ -4701,12 +5127,13 @@ A single-paragraph list is tight:
</ul>
</li>
</ul>
-.
+````````````````````````````````
+
This list is loose, because of the blank line between the
two block elements in the list item:
-.
+```````````````````````````````` example
1. ```
foo
```
@@ -4720,11 +5147,12 @@ two block elements in the list item:
<p>bar</p>
</li>
</ol>
-.
+````````````````````````````````
+
Here the outer list is loose, the inner list tight:
-.
+```````````````````````````````` example
* foo
* bar
@@ -4739,9 +5167,10 @@ Here the outer list is loose, the inner list tight:
<p>baz</p>
</li>
</ul>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
- a
- b
- c
@@ -4766,7 +5195,8 @@ Here the outer list is loose, the inner list tight:
</ul>
</li>
</ul>
-.
+````````````````````````````````
+
# Inlines
@@ -4774,11 +5204,12 @@ Inlines are parsed sequentially from the beginning of the character
stream to the end (left to right, in left-to-right languages).
Thus, for example, in
-.
+```````````````````````````````` example
`hi`lo`
.
<p><code>hi</code>lo`</p>
-.
+````````````````````````````````
+
`hi` is parsed as code, leaving the backtick at the end as a literal
backtick.
@@ -4787,32 +5218,34 @@ backtick.
Any ASCII punctuation character may be backslash-escaped:
-.
+```````````````````````````````` example
\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~
.
<p>!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~</p>
-.
+````````````````````````````````
+
Backslashes before other characters are treated as literal
backslashes:
-.
+```````````````````````````````` example
\→\A\a\ \3\φ\«
.
<p>\→\A\a\ \3\φ\«</p>
-.
+````````````````````````````````
+
Escaped characters are treated as regular characters and do
not have their usual Markdown meanings:
-.
+```````````````````````````````` example
\*not emphasized*
\<br/> not a tag
\[not a link](/foo)
\`not code`
1\. not a list
\* not a list
-\# not a header
+\# not a heading
\[foo]: /url "not a reference"
.
<p>*not emphasized*
@@ -4821,109 +5254,120 @@ not have their usual Markdown meanings:
`not code`
1. not a list
* not a list
-# not a header
+# not a heading
[foo]: /url &quot;not a reference&quot;</p>
-.
+````````````````````````````````
+
If a backslash is itself escaped, the following character is not:
-.
+```````````````````````````````` example
\\*emphasis*
.
<p>\<em>emphasis</em></p>
-.
+````````````````````````````````
+
A backslash at the end of the line is a [hard line break]:
-.
+```````````````````````````````` example
foo\
bar
.
<p>foo<br />
bar</p>
-.
+````````````````````````````````
+
Backslash escapes do not work in code blocks, code spans, autolinks, or
raw HTML:
-.
+```````````````````````````````` example
`` \[\` ``
.
<p><code>\[\`</code></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
\[\]
.
<pre><code>\[\]
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
~~~
\[\]
~~~
.
<pre><code>\[\]
</code></pre>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<http://example.com?find=\*>
.
<p><a href="http://example.com?find=%5C*">http://example.com?find=\*</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<a href="/bar\/)">
.
<a href="/bar\/)">
-.
+````````````````````````````````
+
But they work in all other contexts, including URLs and link titles,
-link references, and [info string]s in [fenced code block]s:
+link references, and [info strings] in [fenced code blocks]:
-.
+```````````````````````````````` example
[foo](/bar\* "ti\*tle")
.
<p><a href="/bar*" title="ti*tle">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo]
[foo]: /bar\* "ti\*tle"
.
<p><a href="/bar*" title="ti*tle">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
``` foo\+bar
foo
```
.
<pre><code class="language-foo+bar">foo
</code></pre>
-.
+````````````````````````````````
-## Entities
-With the goal of making this standard as HTML-agnostic as possible, all
-valid HTML entities (except in code blocks and code spans)
-are recognized as such and converted into Unicode characters before
-they are stored in the AST. This means that renderers to formats other
-than HTML need not be HTML-entity aware. HTML renderers may either escape
-Unicode characters as entities or leave them as they are. (However,
-`"`, `&`, `<`, and `>` must always be rendered as entities.)
+## Entity and numeric character references
-[Named entities](@name-entities) consist of `&` + any of the valid
+All valid HTML entity references and numeric character
+references, except those occuring in code blocks and code spans,
+are recognized as such and treated as equivalent to the
+corresponding Unicode characters. Conforming CommonMark parsers
+need not store information about whether a particular character
+was represented in the source using a Unicode character or
+an entity reference.
+
+[Entity references](@) consist of `&` + any of the valid
HTML5 entity names + `;`. The
-[following document](https://html.spec.whatwg.org/multipage/entities.json)
-is used as an authoritative source of the valid entity names and their
-corresponding code points.
+document <https://html.spec.whatwg.org/multipage/entities.json>
+is used as an authoritative source for the valid entity
+references and their corresponding code points.
-.
+```````````````````````````````` example
&nbsp; &amp; &copy; &AElig; &Dcaron;
&frac34; &HilbertSpace; &DifferentialD;
&ClockwiseContourIntegral; &ngE;
@@ -4931,171 +5375,193 @@ corresponding code points.
<p>  &amp; © Æ Ď
¾ ℋ ⅆ
∲ ≧̸</p>
-.
+````````````````````````````````
+
-[Decimal entities](@decimal-entities)
-consist of `&#` + a string of 1--8 arabic digits + `;`. Again, these
-entities need to be recognised and transformed into their corresponding
-Unicode code points. Invalid Unicode code points will be replaced by
-the "unknown code point" character (`U+FFFD`). For security reasons,
+[Decimal numeric character
+references](@)
+consist of `&#` + a string of 1--8 arabic digits + `;`. A
+numeric character reference is parsed as the corresponding
+Unicode character. Invalid Unicode code points will be replaced by
+the REPLACEMENT CHARACTER (`U+FFFD`). For security reasons,
the code point `U+0000` will also be replaced by `U+FFFD`.
-.
+```````````````````````````````` example
&#35; &#1234; &#992; &#98765432; &#0;
.
<p># Ӓ Ϡ � �</p>
-.
+````````````````````````````````
-[Hexadecimal entities](@hexadecimal-entities) consist of `&#` + either
-`X` or `x` + a string of 1-8 hexadecimal digits + `;`. They will also
-be parsed and turned into the corresponding Unicode code points in the
-AST.
-.
+[Hexadecimal numeric character
+references](@) consist of `&#` +
+either `X` or `x` + a string of 1-8 hexadecimal digits + `;`.
+They too are parsed as the corresponding Unicode character (this
+time specified with a hexadecimal numeral instead of decimal).
+
+```````````````````````````````` example
&#X22; &#XD06; &#xcab;
.
<p>&quot; ആ ಫ</p>
-.
+````````````````````````````````
+
Here are some nonentities:
+```````````````````````````````` example
+&nbsp &x; &#; &#x;
+&ThisIsNotDefined; &hi?;
.
-&nbsp &x; &#; &#x; &ThisIsWayTooLongToBeAnEntityIsntIt; &hi?;
-.
-<p>&amp;nbsp &amp;x; &amp;#; &amp;#x; &amp;ThisIsWayTooLongToBeAnEntityIsntIt; &amp;hi?;</p>
-.
+<p>&amp;nbsp &amp;x; &amp;#; &amp;#x;
+&amp;ThisIsNotDefined; &amp;hi?;</p>
+````````````````````````````````
-Although HTML5 does accept some entities without a trailing semicolon
-(such as `&copy`), these are not recognized as entities here, because it
-makes the grammar too ambiguous:
-.
+Although HTML5 does accept some entity references
+without a trailing semicolon (such as `&copy`), these are not
+recognized here, because it makes the grammar too ambiguous:
+
+```````````````````````````````` example
&copy
.
<p>&amp;copy</p>
-.
+````````````````````````````````
+
Strings that are not on the list of HTML5 named entities are not
-recognized as entities either:
+recognized as entity references either:
-.
+```````````````````````````````` example
&MadeUpEntity;
.
<p>&amp;MadeUpEntity;</p>
-.
+````````````````````````````````
-Entities are recognized in any context besides code spans or
-code blocks, including raw HTML, URLs, [link title]s, and
-[fenced code block] [info string]s:
-.
+Entity and numeric character references are recognized in any
+context besides code spans or code blocks, including
+URLs, [link titles], and [fenced code block][] [info strings]:
+
+```````````````````````````````` example
<a href="&ouml;&ouml;.html">
.
<a href="&ouml;&ouml;.html">
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo](/f&ouml;&ouml; "f&ouml;&ouml;")
.
<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo]
[foo]: /f&ouml;&ouml; "f&ouml;&ouml;"
.
<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
``` f&ouml;&ouml;
foo
```
.
<pre><code class="language-föö">foo
</code></pre>
-.
+````````````````````````````````
-Entities are treated as literal text in code spans and code blocks:
-.
+Entity and numeric character references are treated as literal
+text in code spans and code blocks:
+
+```````````````````````````````` example
`f&ouml;&ouml;`
.
<p><code>f&amp;ouml;&amp;ouml;</code></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
f&ouml;f&ouml;
.
<pre><code>f&amp;ouml;f&amp;ouml;
</code></pre>
-.
+````````````````````````````````
+
## Code spans
-A [backtick string](@backtick-string)
+A [backtick string](@)
is a string of one or more backtick characters (`` ` ``) that is neither
preceded nor followed by a backtick.
-A [code span](@code-span) begins with a backtick string and ends with
+A [code span](@) begins with a backtick string and ends with
a backtick string of equal length. The contents of the code span are
the characters between the two backtick strings, with leading and
-trailing spaces and [line ending]s removed, and
+trailing spaces and [line endings] removed, and
[whitespace] collapsed to single spaces.
This is a simple code span:
-.
+```````````````````````````````` example
`foo`
.
<p><code>foo</code></p>
-.
+````````````````````````````````
+
Here two backticks are used, because the code contains a backtick.
This example also illustrates stripping of leading and trailing spaces:
-.
+```````````````````````````````` example
`` foo ` bar ``
.
<p><code>foo ` bar</code></p>
-.
+````````````````````````````````
+
This example shows the motivation for stripping leading and trailing
spaces:
-.
+```````````````````````````````` example
` `` `
.
<p><code>``</code></p>
-.
+````````````````````````````````
-[Line ending]s are treated like spaces:
-.
+[Line endings] are treated like spaces:
+
+```````````````````````````````` example
``
foo
``
.
<p><code>foo</code></p>
-.
+````````````````````````````````
-Interior spaces and [line ending]s are collapsed into
+
+Interior spaces and [line endings] are collapsed into
single spaces, just as they would be by a browser:
-.
+```````````````````````````````` example
`foo bar
baz`
.
<p><code>foo bar baz</code></p>
-.
+````````````````````````````````
+
Q: Why not just leave the spaces, since browsers will collapse them
anyway? A: Because we might be targeting a non-HTML format, and we
shouldn't rely on HTML-specific rendering assumptions.
(Existing implementations differ in their treatment of internal
-spaces and [line ending]s. Some, including `Markdown.pl` and
+spaces and [line endings]. Some, including `Markdown.pl` and
`showdown`, convert an internal [line ending] into a
`<br />` tag. But this makes things difficult for those who like to
hard-wrap their paragraphs, since a line break in the midst of a code
@@ -5103,20 +5569,22 @@ span will cause an unintended line break in the output. Others just
leave internal spaces as they are, which is fine if only HTML is being
targeted.)
-.
+```````````````````````````````` example
`foo `` bar`
.
<p><code>foo `` bar</code></p>
-.
+````````````````````````````````
+
Note that backslash escapes do not work in code spans. All backslashes
are treated literally:
-.
+```````````````````````````````` example
`foo\`bar`
.
<p><code>foo\</code>bar`</p>
-.
+````````````````````````````````
+
Backslash escapes are never needed, because one can always choose a
string of *n* backtick characters as delimiters, where the code does
@@ -5127,67 +5595,75 @@ constructs except HTML tags and autolinks. Thus, for example, this is
not parsed as emphasized text, since the second `*` is part of a code
span:
-.
+```````````````````````````````` example
*foo`*`
.
<p>*foo<code>*</code></p>
-.
+````````````````````````````````
+
And this is not parsed as a link:
-.
+```````````````````````````````` example
[not a `link](/foo`)
.
<p>[not a <code>link](/foo</code>)</p>
-.
+````````````````````````````````
+
Code spans, HTML tags, and autolinks have the same precedence.
Thus, this is code:
-.
+```````````````````````````````` example
`<a href="`">`
.
<p><code>&lt;a href=&quot;</code>&quot;&gt;`</p>
-.
+````````````````````````````````
+
But this is an HTML tag:
-.
+```````````````````````````````` example
<a href="`">`
.
<p><a href="`">`</p>
-.
+````````````````````````````````
+
And this is code:
-.
+```````````````````````````````` example
`<http://foo.bar.`baz>`
.
<p><code>&lt;http://foo.bar.</code>baz&gt;`</p>
-.
+````````````````````````````````
+
But this is an autolink:
-.
+```````````````````````````````` example
<http://foo.bar.`baz>`
.
<p><a href="http://foo.bar.%60baz">http://foo.bar.`baz</a>`</p>
-.
+````````````````````````````````
+
When a backtick string is not closed by a matching backtick string,
we just have literal backticks:
-.
+```````````````````````````````` example
```foo``
.
<p>```foo``</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
`foo
.
<p>`foo</p>
-.
+````````````````````````````````
+
## Emphasis and strong emphasis
@@ -5235,19 +5711,19 @@ no emphasis: foo_bar_baz
The rules given below capture all of these patterns, while allowing
for efficient parsing strategies that do not backtrack.
-First, some definitions. A [delimiter run](@delimiter-run) is either
+First, some definitions. A [delimiter run](@) is either
a sequence of one or more `*` characters that is not preceded or
followed by a `*` character, or a sequence of one or more `_`
characters that is not preceded or followed by a `_` character.
-A [left-flanking delimiter run](@left-flanking-delimiter-run) is
+A [left-flanking delimiter run](@) is
a [delimiter run] that is (a) not followed by [Unicode whitespace],
and (b) either not followed by a [punctuation character], or
preceded by [Unicode whitespace] or a [punctuation character].
For purposes of this definition, the beginning and the end of
the line count as Unicode whitespace.
-A [right-flanking delimiter run](@right-flanking-delimiter-run) is
+A [right-flanking delimiter run](@) is
a [delimiter run] that is (a) not preceded by [Unicode whitespace],
and (b) either not preceded by a [punctuation character], or
followed by [Unicode whitespace] or a [punctuation character].
@@ -5298,40 +5774,40 @@ are a bit more complex than the ones given here.)
The following rules define emphasis and strong emphasis:
-1. A single `*` character [can open emphasis](@can-open-emphasis)
+1. A single `*` character [can open emphasis](@)
iff (if and only if) it is part of a [left-flanking delimiter run].
2. A single `_` character [can open emphasis] iff
it is part of a [left-flanking delimiter run]
and either (a) not part of a [right-flanking delimiter run]
- or (b) part of a [right-flanking delimeter run]
+ or (b) part of a [right-flanking delimiter run]
preceded by punctuation.
-3. A single `*` character [can close emphasis](@can-close-emphasis)
+3. A single `*` character [can close emphasis](@)
iff it is part of a [right-flanking delimiter run].
4. A single `_` character [can close emphasis] iff
it is part of a [right-flanking delimiter run]
and either (a) not part of a [left-flanking delimiter run]
- or (b) part of a [left-flanking delimeter run]
+ or (b) part of a [left-flanking delimiter run]
followed by punctuation.
-5. A double `**` [can open strong emphasis](@can-open-strong-emphasis)
+5. A double `**` [can open strong emphasis](@)
iff it is part of a [left-flanking delimiter run].
6. A double `__` [can open strong emphasis] iff
it is part of a [left-flanking delimiter run]
and either (a) not part of a [right-flanking delimiter run]
- or (b) part of a [right-flanking delimeter run]
+ or (b) part of a [right-flanking delimiter run]
preceded by punctuation.
-7. A double `**` [can close strong emphasis](@can-close-strong-emphasis)
+7. A double `**` [can close strong emphasis](@)
iff it is part of a [right-flanking delimiter run].
8. A double `__` [can close strong emphasis]
it is part of a [right-flanking delimiter run]
and either (a) not part of a [left-flanking delimiter run]
- or (b) part of a [left-flanking delimeter run]
+ or (b) part of a [left-flanking delimiter run]
followed by punctuation.
9. Emphasis begins with a delimiter that [can open emphasis] and ends
@@ -5392,141 +5868,157 @@ These rules can be illustrated through a series of examples.
Rule 1:
-.
+```````````````````````````````` example
*foo bar*
.
<p><em>foo bar</em></p>
-.
+````````````````````````````````
+
This is not emphasis, because the opening `*` is followed by
whitespace, and hence not part of a [left-flanking delimiter run]:
-.
+```````````````````````````````` example
a * foo bar*
.
<p>a * foo bar*</p>
-.
+````````````````````````````````
+
This is not emphasis, because the opening `*` is preceded
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:
-.
+```````````````````````````````` example
a*"foo"*
.
<p>a*&quot;foo&quot;*</p>
-.
+````````````````````````````````
+
Unicode nonbreaking spaces count as whitespace, too:
-.
+```````````````````````````````` example
* a *
.
<p>* a *</p>
-.
+````````````````````````````````
+
Intraword emphasis with `*` is permitted:
-.
+```````````````````````````````` example
foo*bar*
.
<p>foo<em>bar</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
5*6*78
.
<p>5<em>6</em>78</p>
-.
+````````````````````````````````
+
Rule 2:
-.
+```````````````````````````````` example
_foo bar_
.
<p><em>foo bar</em></p>
-.
+````````````````````````````````
+
This is not emphasis, because the opening `_` is followed by
whitespace:
-.
+```````````````````````````````` example
_ foo bar_
.
<p>_ foo bar_</p>
-.
+````````````````````````````````
+
This is not emphasis, because the opening `_` is preceded
by an alphanumeric and followed by punctuation:
-.
+```````````````````````````````` example
a_"foo"_
.
<p>a_&quot;foo&quot;_</p>
-.
+````````````````````````````````
+
Emphasis with `_` is not allowed inside words:
-.
+```````````````````````````````` example
foo_bar_
.
<p>foo_bar_</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
5_6_78
.
<p>5_6_78</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
пристаням_стремятся_
.
<p>пристаням_стремятся_</p>
-.
+````````````````````````````````
+
Here `_` does not generate emphasis, because the first delimiter run
is right-flanking and the second left-flanking:
-.
+```````````````````````````````` example
aa_"bb"_cc
.
<p>aa_&quot;bb&quot;_cc</p>
-.
+````````````````````````````````
+
This is emphasis, even though the opening delimiter is
both left- and right-flanking, because it is preceded by
punctuation:
-.
+```````````````````````````````` example
foo-_(bar)_
.
<p>foo-<em>(bar)</em></p>
-.
+````````````````````````````````
+
Rule 3:
This is not emphasis, because the closing delimiter does
not match the opening delimiter:
-.
+```````````````````````````````` example
_foo*
.
<p>_foo*</p>
-.
+````````````````````````````````
+
This is not emphasis, because the closing `*` is preceded by
whitespace:
-.
+```````````````````````````````` example
*foo bar *
.
<p>*foo bar *</p>
-.
+````````````````````````````````
+
A newline also counts as whitespace:
-.
+```````````````````````````````` example
*foo bar
*
.
@@ -5534,34 +6026,38 @@ A newline also counts as whitespace:
<ul>
<li></li>
</ul>
-.
+````````````````````````````````
+
This is not emphasis, because the second `*` is
preceded by punctuation and followed by an alphanumeric
(hence it is not part of a [right-flanking delimiter run]:
-.
+```````````````````````````````` example
*(*foo)
.
<p>*(*foo)</p>
-.
+````````````````````````````````
+
The point of this restriction is more easily appreciated
with this example:
-.
+```````````````````````````````` example
*(*foo*)*
.
<p><em>(<em>foo</em>)</em></p>
-.
+````````````````````````````````
+
Intraword emphasis with `*` is allowed:
-.
+```````````````````````````````` example
*foo*bar
.
<p><em>foo</em>bar</p>
-.
+````````````````````````````````
+
Rule 4:
@@ -5569,164 +6065,184 @@ Rule 4:
This is not emphasis, because the closing `_` is preceded by
whitespace:
-.
+```````````````````````````````` example
_foo bar _
.
<p>_foo bar _</p>
-.
+````````````````````````````````
+
This is not emphasis, because the second `_` is
preceded by punctuation and followed by an alphanumeric:
-.
+```````````````````````````````` example
_(_foo)
.
<p>_(_foo)</p>
-.
+````````````````````````````````
+
This is emphasis within emphasis:
-.
+```````````````````````````````` example
_(_foo_)_
.
<p><em>(<em>foo</em>)</em></p>
-.
+````````````````````````````````
+
Intraword emphasis is disallowed for `_`:
-.
+```````````````````````````````` example
_foo_bar
.
<p>_foo_bar</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_пристаням_стремятся
.
<p>_пристаням_стремятся</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_foo_bar_baz_
.
<p><em>foo_bar_baz</em></p>
-.
+````````````````````````````````
+
This is emphasis, even though the closing delimiter is
both left- and right-flanking, because it is followed by
punctuation:
-.
+```````````````````````````````` example
_(bar)_.
.
<p><em>(bar)</em>.</p>
-.
+````````````````````````````````
+
Rule 5:
-.
+```````````````````````````````` example
**foo bar**
.
<p><strong>foo bar</strong></p>
-.
+````````````````````````````````
+
This is not strong emphasis, because the opening delimiter is
followed by whitespace:
-.
+```````````````````````````````` example
** foo bar**
.
<p>** foo bar**</p>
-.
+````````````````````````````````
+
This is not strong emphasis, because the opening `**` is preceded
by an alphanumeric and followed by punctuation, and hence
not part of a [left-flanking delimiter run]:
-.
+```````````````````````````````` example
a**"foo"**
.
<p>a**&quot;foo&quot;**</p>
-.
+````````````````````````````````
+
Intraword strong emphasis with `**` is permitted:
-.
+```````````````````````````````` example
foo**bar**
.
<p>foo<strong>bar</strong></p>
-.
+````````````````````````````````
+
Rule 6:
-.
+```````````````````````````````` example
__foo bar__
.
<p><strong>foo bar</strong></p>
-.
+````````````````````````````````
+
This is not strong emphasis, because the opening delimiter is
followed by whitespace:
-.
+```````````````````````````````` example
__ foo bar__
.
<p>__ foo bar__</p>
-.
+````````````````````````````````
+
A newline counts as whitespace:
-.
+```````````````````````````````` example
__
foo bar__
.
<p>__
foo bar__</p>
-.
+````````````````````````````````
+
This is not strong emphasis, because the opening `__` is preceded
by an alphanumeric and followed by punctuation:
-.
+```````````````````````````````` example
a__"foo"__
.
<p>a__&quot;foo&quot;__</p>
-.
+````````````````````````````````
+
Intraword strong emphasis is forbidden with `__`:
-.
+```````````````````````````````` example
foo__bar__
.
<p>foo__bar__</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
5__6__78
.
<p>5__6__78</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
пристаням__стремятся__
.
<p>пристаням__стремятся__</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo, __bar__, baz__
.
<p><strong>foo, <strong>bar</strong>, baz</strong></p>
-.
+````````````````````````````````
+
This is strong emphasis, even though the opening delimiter is
both left- and right-flanking, because it is preceded by
punctuation:
-.
+```````````````````````````````` example
foo-__(bar)__
.
<p>foo-<strong>(bar)</strong></p>
-.
+````````````````````````````````
+
Rule 7:
@@ -5734,11 +6250,12 @@ Rule 7:
This is not strong emphasis, because the closing delimiter is preceded
by whitespace:
-.
+```````````````````````````````` example
**foo bar **
.
<p>**foo bar **</p>
-.
+````````````````````````````````
+
(Nor can it be interpreted as an emphasized `*foo bar *`, because of
Rule 11.)
@@ -5746,215 +6263,242 @@ Rule 11.)
This is not strong emphasis, because the second `**` is
preceded by punctuation and followed by an alphanumeric:
-.
+```````````````````````````````` example
**(**foo)
.
<p>**(**foo)</p>
-.
+````````````````````````````````
+
The point of this restriction is more easily appreciated
with these examples:
-.
+```````````````````````````````` example
*(**foo**)*
.
<p><em>(<strong>foo</strong>)</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**Gomphocarpus (*Gomphocarpus physocarpus*, syn.
*Asclepias physocarpa*)**
.
<p><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.
<em>Asclepias physocarpa</em>)</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo "*bar*" foo**
.
<p><strong>foo &quot;<em>bar</em>&quot; foo</strong></p>
-.
+````````````````````````````````
+
Intraword emphasis:
-.
+```````````````````````````````` example
**foo**bar
.
<p><strong>foo</strong>bar</p>
-.
+````````````````````````````````
+
Rule 8:
This is not strong emphasis, because the closing delimiter is
preceded by whitespace:
-.
+```````````````````````````````` example
__foo bar __
.
<p>__foo bar __</p>
-.
+````````````````````````````````
+
This is not strong emphasis, because the second `__` is
preceded by punctuation and followed by an alphanumeric:
-.
+```````````````````````````````` example
__(__foo)
.
<p>__(__foo)</p>
-.
+````````````````````````````````
+
The point of this restriction is more easily appreciated
with this example:
-.
+```````````````````````````````` example
_(__foo__)_
.
<p><em>(<strong>foo</strong>)</em></p>
-.
+````````````````````````````````
+
Intraword strong emphasis is forbidden with `__`:
-.
+```````````````````````````````` example
__foo__bar
.
<p>__foo__bar</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__пристаням__стремятся
.
<p>__пристаням__стремятся</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo__bar__baz__
.
<p><strong>foo__bar__baz</strong></p>
-.
+````````````````````````````````
+
This is strong emphasis, even though the closing delimiter is
both left- and right-flanking, because it is followed by
punctuation:
-.
+```````````````````````````````` example
__(bar)__.
.
<p><strong>(bar)</strong>.</p>
-.
+````````````````````````````````
+
Rule 9:
Any nonempty sequence of inline elements can be the contents of an
emphasized span.
-.
+```````````````````````````````` example
*foo [bar](/url)*
.
<p><em>foo <a href="/url">bar</a></em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo
bar*
.
<p><em>foo
bar</em></p>
-.
+````````````````````````````````
+
In particular, emphasis and strong emphasis can be nested
inside emphasis:
-.
+```````````````````````````````` example
_foo __bar__ baz_
.
<p><em>foo <strong>bar</strong> baz</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_foo _bar_ baz_
.
<p><em>foo <em>bar</em> baz</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo_ bar_
.
<p><em><em>foo</em> bar</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo *bar**
.
<p><em>foo <em>bar</em></em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo **bar** baz*
.
<p><em>foo <strong>bar</strong> baz</em></p>
-.
+````````````````````````````````
+
But note:
-.
+```````````````````````````````` example
*foo**bar**baz*
.
<p><em>foo</em><em>bar</em><em>baz</em></p>
-.
+````````````````````````````````
+
The difference is that in the preceding case, the internal delimiters
[can close emphasis], while in the cases with spaces, they cannot.
-.
+```````````````````````````````` example
***foo** bar*
.
<p><em><strong>foo</strong> bar</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo **bar***
.
<p><em>foo <strong>bar</strong></em></p>
-.
+````````````````````````````````
+
Note, however, that in the following case we get no strong
emphasis, because the opening delimiter is closed by the first
`*` before `bar`:
-.
+```````````````````````````````` example
*foo**bar***
.
<p><em>foo</em><em>bar</em>**</p>
-.
+````````````````````````````````
+
Indefinite levels of nesting are possible:
-.
+```````````````````````````````` example
*foo **bar *baz* bim** bop*
.
<p><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo [*bar*](/url)*
.
<p><em>foo <a href="/url"><em>bar</em></a></em></p>
-.
+````````````````````````````````
+
There can be no empty emphasis or strong emphasis:
-.
+```````````````````````````````` example
** is not an empty emphasis
.
<p>** is not an empty emphasis</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**** is not an empty strong emphasis
.
<p>**** is not an empty strong emphasis</p>
-.
+````````````````````````````````
+
Rule 10:
@@ -5962,431 +6506,492 @@ Rule 10:
Any nonempty sequence of inline elements can be the contents of an
strongly emphasized span.
-.
+```````````````````````````````` example
**foo [bar](/url)**
.
<p><strong>foo <a href="/url">bar</a></strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo
bar**
.
<p><strong>foo
bar</strong></p>
-.
+````````````````````````````````
+
In particular, emphasis and strong emphasis can be nested
inside strong emphasis:
-.
+```````````````````````````````` example
__foo _bar_ baz__
.
<p><strong>foo <em>bar</em> baz</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo __bar__ baz__
.
<p><strong>foo <strong>bar</strong> baz</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
____foo__ bar__
.
<p><strong><strong>foo</strong> bar</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo **bar****
.
<p><strong>foo <strong>bar</strong></strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo *bar* baz**
.
<p><strong>foo <em>bar</em> baz</strong></p>
-.
+````````````````````````````````
+
But note:
-.
+```````````````````````````````` example
**foo*bar*baz**
.
<p><em><em>foo</em>bar</em>baz**</p>
-.
+````````````````````````````````
+
The difference is that in the preceding case, the internal delimiters
[can close emphasis], while in the cases with spaces, they cannot.
-.
+```````````````````````````````` example
***foo* bar**
.
<p><strong><em>foo</em> bar</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo *bar***
.
<p><strong>foo <em>bar</em></strong></p>
-.
+````````````````````````````````
+
Indefinite levels of nesting are possible:
-.
+```````````````````````````````` example
**foo *bar **baz**
bim* bop**
.
<p><strong>foo <em>bar <strong>baz</strong>
bim</em> bop</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo [*bar*](/url)**
.
<p><strong>foo <a href="/url"><em>bar</em></a></strong></p>
-.
+````````````````````````````````
+
There can be no empty emphasis or strong emphasis:
-.
+```````````````````````````````` example
__ is not an empty emphasis
.
<p>__ is not an empty emphasis</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
____ is not an empty strong emphasis
.
<p>____ is not an empty strong emphasis</p>
-.
+````````````````````````````````
+
Rule 11:
-.
+```````````````````````````````` example
foo ***
.
<p>foo ***</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo *\**
.
<p>foo <em>*</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo *_*
.
<p>foo <em>_</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo *****
.
<p>foo *****</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo **\***
.
<p>foo <strong>*</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo **_**
.
<p>foo <strong>_</strong></p>
-.
+````````````````````````````````
+
Note that when delimiters do not match evenly, Rule 11 determines
that the excess literal `*` characters will appear outside of the
emphasis, rather than inside it:
-.
+```````````````````````````````` example
**foo*
.
<p>*<em>foo</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo**
.
<p><em>foo</em>*</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
***foo**
.
<p>*<strong>foo</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
****foo*
.
<p>***<em>foo</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo***
.
<p><strong>foo</strong>*</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo****
.
<p><em>foo</em>***</p>
-.
+````````````````````````````````
+
Rule 12:
-.
+```````````````````````````````` example
foo ___
.
<p>foo ___</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo _\__
.
<p>foo <em>_</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo _*_
.
<p>foo <em>*</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo _____
.
<p>foo _____</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo __\___
.
<p>foo <strong>_</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo __*__
.
<p>foo <strong>*</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo_
.
<p>_<em>foo</em></p>
-.
+````````````````````````````````
+
Note that when delimiters do not match evenly, Rule 12 determines
that the excess literal `_` characters will appear outside of the
emphasis, rather than inside it:
-.
+```````````````````````````````` example
_foo__
.
<p><em>foo</em>_</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
___foo__
.
<p>_<strong>foo</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
____foo_
.
<p>___<em>foo</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo___
.
<p><strong>foo</strong>_</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_foo____
.
<p><em>foo</em>___</p>
-.
+````````````````````````````````
+
Rule 13 implies that if you want emphasis nested directly inside
emphasis, you must use different delimiters:
-.
+```````````````````````````````` example
**foo**
.
<p><strong>foo</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*_foo_*
.
<p><em><em>foo</em></em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__foo__
.
<p><strong>foo</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_*foo*_
.
<p><em><em>foo</em></em></p>
-.
+````````````````````````````````
+
However, strong emphasis within strong emphasis is possible without
switching delimiters:
-.
+```````````````````````````````` example
****foo****
.
<p><strong><strong>foo</strong></strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
____foo____
.
<p><strong><strong>foo</strong></strong></p>
-.
+````````````````````````````````
+
Rule 13 can be applied to arbitrarily long sequences of
delimiters:
-.
+```````````````````````````````` example
******foo******
.
<p><strong><strong><strong>foo</strong></strong></strong></p>
-.
+````````````````````````````````
+
Rule 14:
-.
+```````````````````````````````` example
***foo***
.
<p><strong><em>foo</em></strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_____foo_____
.
<p><strong><strong><em>foo</em></strong></strong></p>
-.
+````````````````````````````````
+
Rule 15:
-.
+```````````````````````````````` example
*foo _bar* baz_
.
<p><em>foo _bar</em> baz_</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**foo*bar**
.
<p><em><em>foo</em>bar</em>*</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo __bar *baz bim__ bam*
.
<p><em>foo <strong>bar *baz bim</strong> bam</em></p>
-.
+````````````````````````````````
+
Rule 16:
-.
+```````````````````````````````` example
**foo **bar baz**
.
<p>**foo <strong>bar baz</strong></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo *bar baz*
.
<p>*foo <em>bar baz</em></p>
-.
+````````````````````````````````
+
Rule 17:
-.
+```````````````````````````````` example
*[bar*](/url)
.
<p>*<a href="/url">bar*</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_foo [bar_](/url)
.
<p>_foo <a href="/url">bar_</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*<img src="foo" title="*"/>
.
<p>*<img src="foo" title="*"/></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**<a href="**">
.
<p>**<a href="**"></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__<a href="__">
.
<p>__<a href="__"></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*a `*`*
.
<p><em>a <code>*</code></em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
_a `_`_
.
<p><em>a <code>_</code></em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
**a<http://foo.bar/?q=**>
.
<p>**a<a href="http://foo.bar/?q=**">http://foo.bar/?q=**</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
__a<http://foo.bar/?q=__>
.
<p>__a<a href="http://foo.bar/?q=__">http://foo.bar/?q=__</a></p>
-.
+````````````````````````````````
+
## Links
A link contains [link text] (the visible text), a [link destination]
(the URI that is the link destination), and optionally a [link title].
-There are two basic kinds of links in Markdown. In [inline link]s the
+There are two basic kinds of links in Markdown. In [inline links] the
destination and title are given immediately after the link text. In
-[reference link]s the destination and title are defined elsewhere in
+[reference links] the destination and title are defined elsewhere in
the document.
-A [link text](@link-text) consists of a sequence of zero or more
+A [link text](@) consists of a sequence of zero or more
inline elements enclosed by square brackets (`[` and `]`). The
following rules apply:
@@ -6399,7 +7004,7 @@ following rules apply:
with an open bracket `[`, a sequence of zero or more inlines, and
a close bracket `]`.
-- Backtick [code span]s, [autolink]s, and raw [HTML tag]s bind more tightly
+- Backtick [code spans], [autolinks], and raw [HTML tags] bind more tightly
than the brackets in link text. Thus, for example,
`` [foo`]` `` could not be a link text, since the second `]`
is part of a code span.
@@ -6407,11 +7012,11 @@ following rules apply:
- The brackets in link text bind more tightly than markers for
[emphasis and strong emphasis]. Thus, for example, `*[foo*](url)` is a link.
-A [link destination](@link-destination) consists of either
+A [link destination](@) consists of either
- a sequence of zero or more characters between an opening `<` and a
- closing `>` that contains no line breaks or unescaped `<` or `>`
- characters, or
+ closing `>` that contains no spaces, line breaks, or unescaped
+ `<` or `>` characters, or
- a nonempty sequence of characters that does not include
ASCII space or control characters, and includes parentheses
@@ -6419,7 +7024,7 @@ A [link destination](@link-destination) consists of either
a balanced pair of unescaped parentheses that is not itself
inside a balanced pair of unescaped parentheses.
-A [link title](@link-title) consists of either
+A [link title](@) consists of either
- a sequence of zero or more characters between straight double-quote
characters (`"`), including a `"` character only if it is
@@ -6432,10 +7037,10 @@ A [link title](@link-title) consists of either
- a sequence of zero or more characters between matching parentheses
(`(...)`), including a `)` character only if it is backslash-escaped.
-Although [link title]s may span multiple lines, they may not contain
+Although [link titles] may span multiple lines, they may not contain
a [blank line].
-An [inline link](@inline-link) consists of a [link text] followed immediately
+An [inline link](@) consists of a [link text] followed immediately
by a left parenthesis `(`, optional [whitespace], an optional
[link destination], an optional [link title] separated from the link
destination by [whitespace], optional [whitespace], and a right
@@ -6449,152 +7054,177 @@ above.
Here is a simple inline link:
-.
+```````````````````````````````` example
[link](/uri "title")
.
<p><a href="/uri" title="title">link</a></p>
-.
+````````````````````````````````
+
The title may be omitted:
-.
+```````````````````````````````` example
[link](/uri)
.
<p><a href="/uri">link</a></p>
-.
+````````````````````````````````
+
Both the title and the destination may be omitted:
-.
+```````````````````````````````` example
[link]()
.
<p><a href="">link</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link](<>)
.
<p><a href="">link</a></p>
-.
+````````````````````````````````
-If the destination contains spaces, it must be enclosed in pointy
-braces:
-.
+The destination cannot contain spaces or line breaks,
+even if enclosed in pointy brackets:
+
+```````````````````````````````` example
[link](/my uri)
.
<p>[link](/my uri)</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link](</my uri>)
.
-<p><a href="/my%20uri">link</a></p>
-.
+<p>[link](&lt;/my uri&gt;)</p>
+````````````````````````````````
-The destination cannot contain line breaks, even with pointy braces:
-.
+```````````````````````````````` example
[link](foo
bar)
.
<p>[link](foo
bar)</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link](<foo
bar>)
.
<p>[link](<foo
bar>)</p>
+````````````````````````````````
+
+Parentheses inside the link destination may be escaped:
+
+```````````````````````````````` example
+[link](\(foo\))
.
+<p><a href="(foo)">link</a></p>
+````````````````````````````````
One level of balanced parentheses is allowed without escaping:
-.
+```````````````````````````````` example
[link]((foo)and(bar))
.
<p><a href="(foo)and(bar)">link</a></p>
-.
+````````````````````````````````
However, if you have parentheses within parentheses, you need to escape
or use the `<...>` form:
-.
+```````````````````````````````` example
[link](foo(and(bar)))
.
<p>[link](foo(and(bar)))</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link](foo(and\(bar\)))
.
<p><a href="foo(and(bar))">link</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link](<foo(and(bar))>)
.
<p><a href="foo(and(bar))">link</a></p>
-.
+````````````````````````````````
+
Parentheses and other symbols can also be escaped, as usual
in Markdown:
-.
+```````````````````````````````` example
[link](foo\)\:)
.
<p><a href="foo):">link</a></p>
-.
+````````````````````````````````
+
A link can contain fragment identifiers and queries:
-.
+```````````````````````````````` example
[link](#fragment)
[link](http://example.com#fragment)
-[link](http://example.com?foo=bar&baz#fragment)
+[link](http://example.com?foo=3#frag)
.
<p><a href="#fragment">link</a></p>
<p><a href="http://example.com#fragment">link</a></p>
-<p><a href="http://example.com?foo=bar&amp;baz#fragment">link</a></p>
-.
+<p><a href="http://example.com?foo=3#frag">link</a></p>
+````````````````````````````````
+
Note that a backslash before a non-escapable character is
just a backslash:
-.
+```````````````````````````````` example
[link](foo\bar)
.
<p><a href="foo%5Cbar">link</a></p>
-.
+````````````````````````````````
-URL-escaping should be left alone inside the destination, as all
-URL-escaped characters are also valid URL characters. HTML entities in
-the destination will be parsed into the corresponding Unicode
-code points, as usual, and optionally URL-escaped when written as HTML.
-.
+URL-escaping should be left alone inside the destination, as all
+URL-escaped characters are also valid URL characters. Entity and
+numerical character references in the destination will be parsed
+into the corresponding Unicode code points, as usual. These may
+be optionally URL-escaped when written as HTML, but this spec
+does not enforce any particular policy for rendering URLs in
+HTML or other formats. Renderers may make different decisions
+about how to escape or normalize URLs in the output.
+
+```````````````````````````````` example
[link](foo%20b&auml;)
.
<p><a href="foo%20b%C3%A4">link</a></p>
-.
+````````````````````````````````
+
Note that, because titles can often be parsed as destinations,
if you try to omit the destination and keep the title, you'll
get unexpected results:
-.
+```````````````````````````````` example
[link]("title")
.
<p><a href="%22title%22">link</a></p>
-.
+````````````````````````````````
+
Titles may be in single quotes, double quotes, or parentheses:
-.
+```````````````````````````````` example
[link](/url "title")
[link](/url 'title')
[link](/url (title))
@@ -6602,186 +7232,209 @@ Titles may be in single quotes, double quotes, or parentheses:
<p><a href="/url" title="title">link</a>
<a href="/url" title="title">link</a>
<a href="/url" title="title">link</a></p>
-.
+````````````````````````````````
-Backslash escapes and entities may be used in titles:
-.
+Backslash escapes and entity and numeric character references
+may be used in titles:
+
+```````````````````````````````` example
[link](/url "title \"&quot;")
.
<p><a href="/url" title="title &quot;&quot;">link</a></p>
-.
+````````````````````````````````
+
Nested balanced quotes are not allowed without escaping:
-.
+```````````````````````````````` example
[link](/url "title "and" title")
.
<p>[link](/url &quot;title &quot;and&quot; title&quot;)</p>
-.
+````````````````````````````````
+
But it is easy to work around this by using a different quote type:
-.
+```````````````````````````````` example
[link](/url 'title "and" title')
.
<p><a href="/url" title="title &quot;and&quot; title">link</a></p>
-.
+````````````````````````````````
+
(Note: `Markdown.pl` did allow double quotes inside a double-quoted
title, and its test suite included a test demonstrating this.
But it is hard to see a good rationale for the extra complexity this
brings, since there are already many ways---backslash escaping,
-entities, or using a different quote type for the enclosing title---to
-write titles containing double quotes. `Markdown.pl`'s handling of
-titles has a number of other strange features. For example, it allows
-single-quoted titles in inline links, but not reference links. And, in
-reference links but not inline links, it allows a title to begin with
-`"` and end with `)`. `Markdown.pl` 1.0.1 even allows titles with no closing
-quotation mark, though 1.0.2b8 does not. It seems preferable to adopt
-a simple, rational rule that works the same way in inline links and
-link reference definitions.)
+entity and numeric character references, or using a different
+quote type for the enclosing title---to write titles containing
+double quotes. `Markdown.pl`'s handling of titles has a number
+of other strange features. For example, it allows single-quoted
+titles in inline links, but not reference links. And, in
+reference links but not inline links, it allows a title to begin
+with `"` and end with `)`. `Markdown.pl` 1.0.1 even allows
+titles with no closing quotation mark, though 1.0.2b8 does not.
+It seems preferable to adopt a simple, rational rule that works
+the same way in inline links and link reference definitions.)
[Whitespace] is allowed around the destination and title:
-.
+```````````````````````````````` example
[link]( /uri
"title" )
.
<p><a href="/uri" title="title">link</a></p>
-.
+````````````````````````````````
+
But it is not allowed between the link text and the
following parenthesis:
-.
+```````````````````````````````` example
[link] (/uri)
.
<p>[link] (/uri)</p>
-.
+````````````````````````````````
+
The link text may contain balanced brackets, but not unbalanced ones,
unless they are escaped:
-.
+```````````````````````````````` example
[link [foo [bar]]](/uri)
.
<p><a href="/uri">link [foo [bar]]</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link] bar](/uri)
.
<p>[link] bar](/uri)</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link [bar](/uri)
.
<p>[link <a href="/uri">bar</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link \[bar](/uri)
.
<p><a href="/uri">link [bar</a></p>
-.
+````````````````````````````````
+
The link text may contain inline content:
-.
+```````````````````````````````` example
[link *foo **bar** `#`*](/uri)
.
<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[![moon](moon.jpg)](/uri)
.
<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
-.
+````````````````````````````````
+
However, links may not contain other links, at any level of nesting.
-.
+```````````````````````````````` example
[foo [bar](/uri)](/uri)
.
<p>[foo <a href="/uri">bar</a>](/uri)</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo *[bar [baz](/uri)](/uri)*](/uri)
.
<p>[foo <em>[bar <a href="/uri">baz</a>](/uri)</em>](/uri)</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![[[foo](uri1)](uri2)](uri3)
.
<p><img src="uri3" alt="[foo](uri2)" /></p>
-.
+````````````````````````````````
+
These cases illustrate the precedence of link text grouping over
emphasis grouping:
-.
+```````````````````````````````` example
*[foo*](/uri)
.
<p>*<a href="/uri">foo*</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo *bar](baz*)
.
<p><a href="baz*">foo *bar</a></p>
-.
+````````````````````````````````
+
Note that brackets that *aren't* part of links do not take
precedence:
-.
+```````````````````````````````` example
*foo [bar* baz]
.
<p><em>foo [bar</em> baz]</p>
-.
+````````````````````````````````
+
These cases illustrate the precedence of HTML tags, code spans,
and autolinks over link grouping:
-.
+```````````````````````````````` example
[foo <bar attr="](baz)">
.
<p>[foo <bar attr="](baz)"></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo`](/uri)`
.
<p>[foo<code>](/uri)</code></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo<http://example.com/?search=](uri)>
.
<p>[foo<a href="http://example.com/?search=%5D(uri)">http://example.com/?search=](uri)</a></p>
-.
+````````````````````````````````
+
-There are three kinds of [reference link](@reference-link)s:
+There are three kinds of [reference link](@)s:
[full](#full-reference-link), [collapsed](#collapsed-reference-link),
and [shortcut](#shortcut-reference-link).
-A [full reference link](@full-reference-link)
-consists of a [link text], optional [whitespace], and a [link label]
+A [full reference link](@)
+consists of a [link text] immediately followed by a [link label]
that [matches] a [link reference definition] elsewhere in the document.
-A [link label](@link-label) begins with a left bracket (`[`) and ends
+A [link label](@) begins with a left bracket (`[`) and ends
with the first right bracket (`]`) that is not backslash-escaped.
Between these brackets there must be at least one [non-whitespace character].
Unescaped square bracket characters are not allowed in
-[link label]s. A link label can have at most 999
+[link labels]. A link label can have at most 999
characters inside the square brackets.
-One label [matches](@matches)
+One label [matches](@)
another just in case their normalized forms are equal. To normalize a
label, perform the *Unicode case fold* and collapse consecutive internal
[whitespace] to a single space. If there are multiple
@@ -6794,176 +7447,222 @@ matching [link reference definition].
Here is a simple example:
-.
+```````````````````````````````` example
[foo][bar]
[bar]: /url "title"
.
<p><a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
+
The rules for the [link text] are the same as with
-[inline link]s. Thus:
+[inline links]. Thus:
The link text may contain balanced brackets, but not unbalanced ones,
unless they are escaped:
-.
+```````````````````````````````` example
[link [foo [bar]]][ref]
[ref]: /uri
.
<p><a href="/uri">link [foo [bar]]</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[link \[bar][ref]
[ref]: /uri
.
<p><a href="/uri">link [bar</a></p>
-.
+````````````````````````````````
+
The link text may contain inline content:
-.
+```````````````````````````````` example
[link *foo **bar** `#`*][ref]
[ref]: /uri
.
<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[![moon](moon.jpg)][ref]
[ref]: /uri
.
<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
-.
+````````````````````````````````
+
However, links may not contain other links, at any level of nesting.
-.
+```````````````````````````````` example
[foo [bar](/uri)][ref]
[ref]: /uri
.
<p>[foo <a href="/uri">bar</a>]<a href="/uri">ref</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo *bar [baz][ref]*][ref]
[ref]: /uri
.
<p>[foo <em>bar <a href="/uri">baz</a></em>]<a href="/uri">ref</a></p>
-.
+````````````````````````````````
+
-(In the examples above, we have two [shortcut reference link]s
+(In the examples above, we have two [shortcut reference links]
instead of one [full reference link].)
The following cases illustrate the precedence of link text grouping over
emphasis grouping:
-.
+```````````````````````````````` example
*[foo*][ref]
[ref]: /uri
.
<p>*<a href="/uri">foo*</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo *bar][ref]
[ref]: /uri
.
<p><a href="/uri">foo *bar</a></p>
-.
+````````````````````````````````
+
These cases illustrate the precedence of HTML tags, code spans,
and autolinks over link grouping:
-.
+```````````````````````````````` example
[foo <bar attr="][ref]">
[ref]: /uri
.
<p>[foo <bar attr="][ref]"></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo`][ref]`
[ref]: /uri
.
<p>[foo<code>][ref]</code></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo<http://example.com/?search=][ref]>
[ref]: /uri
.
<p>[foo<a href="http://example.com/?search=%5D%5Bref%5D">http://example.com/?search=][ref]</a></p>
-.
+````````````````````````````````
+
Matching is case-insensitive:
-.
+```````````````````````````````` example
[foo][BaR]
[bar]: /url "title"
.
<p><a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
+
Unicode case fold is used:
-.
+```````````````````````````````` example
[Толпой][Толпой] is a Russian word.
[ТОЛПОЙ]: /url
.
<p><a href="/url">Толпой</a> is a Russian word.</p>
-.
+````````````````````````````````
+
Consecutive internal [whitespace] is treated as one space for
purposes of determining matching:
-.
+```````````````````````````````` example
[Foo
bar]: /url
[Baz][Foo bar]
.
<p><a href="/url">Baz</a></p>
-.
+````````````````````````````````
-There can be [whitespace] between the [link text] and the [link label]:
-.
+No [whitespace] is allowed between the [link text] and the
+[link label]:
+
+```````````````````````````````` example
[foo] [bar]
[bar]: /url "title"
.
-<p><a href="/url" title="title">foo</a></p>
-.
+<p>[foo] <a href="/url" title="title">bar</a></p>
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo]
[bar]
[bar]: /url "title"
.
-<p><a href="/url" title="title">foo</a></p>
-.
+<p>[foo]
+<a href="/url" title="title">bar</a></p>
+````````````````````````````````
+
+
+This is a departure from John Gruber's original Markdown syntax
+description, which explicitly allows whitespace between the link
+text and the link label. It brings reference links in line with
+[inline links], which (according to both original Markdown and
+this spec) cannot have whitespace after the link text. More
+importantly, it prevents inadvertent capture of consecutive
+[shortcut reference links]. If whitespace is allowed between the
+link text and the link label, then in the following we will have
+a single reference link, not two shortcut reference links, as
+intended:
-When there are multiple matching [link reference definition]s,
+``` markdown
+[foo]
+[bar]
+
+[foo]: /url1
+[bar]: /url2
+```
+
+(Note that [shortcut reference links] were introduced by Gruber
+himself in a beta version of `Markdown.pl`, but never included
+in the official syntax description. Without shortcut reference
+links, it is harmless to allow space between the link text and
+link label; but once shortcut references are introduced, it is
+too dangerous to allow this, as it frequently leads to
+unintended results.)
+
+When there are multiple matching [link reference definitions],
the first is used:
-.
+```````````````````````````````` example
[foo]: /url1
[foo]: /url2
@@ -6971,70 +7670,88 @@ the first is used:
[bar][foo]
.
<p><a href="/url1">bar</a></p>
-.
+````````````````````````````````
+
Note that matching is performed on normalized strings, not parsed
inline content. So the following does not match, even though the
labels define equivalent inline content:
-.
+```````````````````````````````` example
[bar][foo\!]
[foo!]: /url
.
<p>[bar][foo!]</p>
-.
+````````````````````````````````
+
-[Link label]s cannot contain brackets, unless they are
+[Link labels] cannot contain brackets, unless they are
backslash-escaped:
-.
+```````````````````````````````` example
[foo][ref[]
[ref[]: /uri
.
<p>[foo][ref[]</p>
<p>[ref[]: /uri</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo][ref[bar]]
[ref[bar]]: /uri
.
<p>[foo][ref[bar]]</p>
<p>[ref[bar]]: /uri</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[[[foo]]]
[[[foo]]]: /url
.
<p>[[[foo]]]</p>
<p>[[[foo]]]: /url</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[foo][ref\[]
[ref\[]: /uri
.
<p><a href="/uri">foo</a></p>
+````````````````````````````````
+
+
+Note that in this example `]` is not backslash-escaped:
+
+```````````````````````````````` example
+[bar\\]: /uri
+
+[bar\\]
.
+<p><a href="/uri">bar\</a></p>
+````````````````````````````````
+
A [link label] must contain at least one [non-whitespace character]:
-.
+```````````````````````````````` example
[]
[]: /uri
.
<p>[]</p>
<p>[]: /uri</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[
]
@@ -7045,57 +7762,63 @@ A [link label] must contain at least one [non-whitespace character]:
]</p>
<p>[
]: /uri</p>
-.
+````````````````````````````````
+
-A [collapsed reference link](@collapsed-reference-link)
+A [collapsed reference link](@)
consists of a [link label] that [matches] a
[link reference definition] elsewhere in the
-document, optional [whitespace], and the string `[]`.
+document, followed by the string `[]`.
The contents of the first link label are parsed as inlines,
which are used as the link's text. The link's URI and title are
provided by the matching reference link definition. Thus,
`[foo][]` is equivalent to `[foo][foo]`.
-.
+```````````````````````````````` example
[foo][]
[foo]: /url "title"
.
<p><a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[*foo* bar][]
[*foo* bar]: /url "title"
.
<p><a href="/url" title="title"><em>foo</em> bar</a></p>
-.
+````````````````````````````````
+
The link labels are case-insensitive:
-.
+```````````````````````````````` example
[Foo][]
[foo]: /url "title"
.
<p><a href="/url" title="title">Foo</a></p>
-.
+````````````````````````````````
-As with full reference links, [whitespace] is allowed
-between the two sets of brackets:
-.
+As with full reference links, [whitespace] is not
+allowed between the two sets of brackets:
+
+```````````````````````````````` example
[foo]
[]
[foo]: /url "title"
.
-<p><a href="/url" title="title">foo</a></p>
-.
+<p><a href="/url" title="title">foo</a>
+[]</p>
+````````````````````````````````
-A [shortcut reference link](@shortcut-reference-link)
+
+A [shortcut reference link](@)
consists of a [link label] that [matches] a
[link reference definition] elsewhere in the
document and is not followed by `[]` or a link label.
@@ -7104,132 +7827,144 @@ which are used as the link's text. the link's URI and title
are provided by the matching link reference definition.
Thus, `[foo]` is equivalent to `[foo][]`.
-.
+```````````````````````````````` example
[foo]
[foo]: /url "title"
.
<p><a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[*foo* bar]
[*foo* bar]: /url "title"
.
<p><a href="/url" title="title"><em>foo</em> bar</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[[*foo* bar]]
[*foo* bar]: /url "title"
.
<p>[<a href="/url" title="title"><em>foo</em> bar</a>]</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
[[bar [foo]
[foo]: /url
.
<p>[[bar <a href="/url">foo</a></p>
-.
+````````````````````````````````
+
The link labels are case-insensitive:
-.
+```````````````````````````````` example
[Foo]
[foo]: /url "title"
.
<p><a href="/url" title="title">Foo</a></p>
-.
+````````````````````````````````
+
A space after the link text should be preserved:
-.
+```````````````````````````````` example
[foo] bar
[foo]: /url
.
<p><a href="/url">foo</a> bar</p>
-.
+````````````````````````````````
+
If you just want bracketed text, you can backslash-escape the
opening bracket to avoid links:
-.
+```````````````````````````````` example
\[foo]
[foo]: /url "title"
.
<p>[foo]</p>
-.
+````````````````````````````````
+
Note that this is a link, because a link label ends with the first
following closing bracket:
-.
+```````````````````````````````` example
[foo*]: /url
*[foo*]
.
<p>*<a href="/url">foo*</a></p>
-.
+````````````````````````````````
+
Full references take precedence over shortcut references:
-.
+```````````````````````````````` example
[foo][bar]
[foo]: /url1
[bar]: /url2
.
<p><a href="/url2">foo</a></p>
-.
+````````````````````````````````
+
In the following case `[bar][baz]` is parsed as a reference,
`[foo]` as normal text:
-.
+```````````````````````````````` example
[foo][bar][baz]
[baz]: /url
.
<p>[foo]<a href="/url">bar</a></p>
-.
+````````````````````````````````
+
Here, though, `[foo][bar]` is parsed as a reference, since
`[bar]` is defined:
-.
+```````````````````````````````` example
[foo][bar][baz]
[baz]: /url1
[bar]: /url2
.
<p><a href="/url2">foo</a><a href="/url1">baz</a></p>
-.
+````````````````````````````````
+
Here `[foo]` is not parsed as a shortcut reference, because it
is followed by a link label (even though `[bar]` is not defined):
-.
+```````````````````````````````` example
[foo][bar][baz]
[baz]: /url1
[foo]: /url2
.
<p>[foo]<a href="/url1">bar</a></p>
-.
+````````````````````````````````
+
## Images
Syntax for images is like the syntax for links, with one
difference. Instead of [link text], we have an
-[image description](@image-description). The rules for this are the
+[image description](@). The rules for this are the
same as for [link text], except that (a) an
image description starts with `![` rather than `[`, and
(b) an image description may contain links.
@@ -7237,31 +7972,35 @@ An image description has inline elements
as its contents. When an image is rendered to HTML,
this is standardly used as the image's `alt` attribute.
-.
+```````````````````````````````` example
![foo](/url "title")
.
<p><img src="/url" alt="foo" title="title" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo *bar*]
[foo *bar*]: train.jpg "train & tracks"
.
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo ![bar](/url)](/url2)
.
<p><img src="/url2" alt="foo bar" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo [bar](/url)](/url2)
.
<p><img src="/url2" alt="foo bar" /></p>
-.
+````````````````````````````````
+
Though this spec is concerned with parsing, not rendering, it is
recommended that in rendering to HTML, only the plain string content
@@ -7270,258 +8009,295 @@ the above example, the alt attribute's value is `foo bar`, not `foo
[bar](/url)` or `foo <a href="/url">bar</a>`. Only the plain string
content is rendered, without formatting.
-.
+```````````````````````````````` example
![foo *bar*][]
[foo *bar*]: train.jpg "train & tracks"
.
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo *bar*][foobar]
[FOOBAR]: train.jpg "train & tracks"
.
<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo](train.jpg)
.
<p><img src="train.jpg" alt="foo" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
My ![foo bar](/path/to/train.jpg "title" )
.
<p>My <img src="/path/to/train.jpg" alt="foo bar" title="title" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![foo](<url>)
.
<p><img src="url" alt="foo" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![](/url)
.
<p><img src="/url" alt="" /></p>
-.
+````````````````````````````````
+
Reference-style:
-.
-![foo] [bar]
+```````````````````````````````` example
+![foo][bar]
[bar]: /url
.
<p><img src="/url" alt="foo" /></p>
-.
+````````````````````````````````
-.
-![foo] [bar]
+
+```````````````````````````````` example
+![foo][bar]
[BAR]: /url
.
<p><img src="/url" alt="foo" /></p>
-.
+````````````````````````````````
+
Collapsed:
-.
+```````````````````````````````` example
![foo][]
[foo]: /url "title"
.
<p><img src="/url" alt="foo" title="title" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![*foo* bar][]
[*foo* bar]: /url "title"
.
<p><img src="/url" alt="foo bar" title="title" /></p>
-.
+````````````````````````````````
+
The labels are case-insensitive:
-.
+```````````````````````````````` example
![Foo][]
[foo]: /url "title"
.
<p><img src="/url" alt="Foo" title="title" /></p>
-.
+````````````````````````````````
-As with full reference links, [whitespace] is allowed
+
+As with reference links, [whitespace] is not allowed
between the two sets of brackets:
-.
+```````````````````````````````` example
![foo]
[]
[foo]: /url "title"
.
-<p><img src="/url" alt="foo" title="title" /></p>
-.
+<p><img src="/url" alt="foo" title="title" />
+[]</p>
+````````````````````````````````
+
Shortcut:
-.
+```````````````````````````````` example
![foo]
[foo]: /url "title"
.
<p><img src="/url" alt="foo" title="title" /></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
![*foo* bar]
[*foo* bar]: /url "title"
.
<p><img src="/url" alt="foo bar" title="title" /></p>
-.
+````````````````````````````````
+
Note that link labels cannot contain unescaped brackets:
-.
+```````````````````````````````` example
![[foo]]
[[foo]]: /url "title"
.
<p>![[foo]]</p>
<p>[[foo]]: /url &quot;title&quot;</p>
-.
+````````````````````````````````
+
The link labels are case-insensitive:
-.
+```````````````````````````````` example
![Foo]
[foo]: /url "title"
.
<p><img src="/url" alt="Foo" title="title" /></p>
-.
+````````````````````````````````
+
If you just want bracketed text, you can backslash-escape the
opening `!` and `[`:
-.
+```````````````````````````````` example
\!\[foo]
[foo]: /url "title"
.
<p>![foo]</p>
-.
+````````````````````````````````
+
If you want a link after a literal `!`, backslash-escape the
`!`:
-.
+```````````````````````````````` example
\![foo]
[foo]: /url "title"
.
<p>!<a href="/url" title="title">foo</a></p>
-.
+````````````````````````````````
+
## Autolinks
-[Autolink](@autolink)s are absolute URIs and email addresses inside
+[Autolink](@)s are absolute URIs and email addresses inside
`<` and `>`. They are parsed as links, with the URL or email address
as the link label.
-A [URI autolink](@uri-autolink) consists of `<`, followed by an
+A [URI autolink](@) consists of `<`, followed by an
[absolute URI] not containing `<`, followed by `>`. It is parsed as
a link to the URI, with the URI as the link's label.
-An [absolute URI](@absolute-uri),
+An [absolute URI](@),
for these purposes, consists of a [scheme] followed by a colon (`:`)
followed by zero or more characters other than ASCII
[whitespace] and control characters, `<`, and `>`. If
-the URI includes these characters, you must use percent-encoding
+the URI includes these characters, they must be percent-encoded
(e.g. `%20` for a space).
-The following [schemes](@scheme)
-are recognized (case-insensitive):
-`coap`, `doi`, `javascript`, `aaa`, `aaas`, `about`, `acap`, `cap`,
-`cid`, `crid`, `data`, `dav`, `dict`, `dns`, `file`, `ftp`, `geo`, `go`,
-`gopher`, `h323`, `http`, `https`, `iax`, `icap`, `im`, `imap`, `info`,
-`ipp`, `iris`, `iris.beep`, `iris.xpc`, `iris.xpcs`, `iris.lwz`, `ldap`,
-`mailto`, `mid`, `msrp`, `msrps`, `mtqp`, `mupdate`, `news`, `nfs`,
-`ni`, `nih`, `nntp`, `opaquelocktoken`, `pop`, `pres`, `rtsp`,
-`service`, `session`, `shttp`, `sieve`, `sip`, `sips`, `sms`, `snmp`,`
-soap.beep`, `soap.beeps`, `tag`, `tel`, `telnet`, `tftp`, `thismessage`,
-`tn3270`, `tip`, `tv`, `urn`, `vemmi`, `ws`, `wss`, `xcon`,
-`xcon-userid`, `xmlrpc.beep`, `xmlrpc.beeps`, `xmpp`, `z39.50r`,
-`z39.50s`, `adiumxtra`, `afp`, `afs`, `aim`, `apt`,` attachment`, `aw`,
-`beshare`, `bitcoin`, `bolo`, `callto`, `chrome`,` chrome-extension`,
-`com-eventbrite-attendee`, `content`, `cvs`,` dlna-playsingle`,
-`dlna-playcontainer`, `dtn`, `dvb`, `ed2k`, `facetime`, `feed`,
-`finger`, `fish`, `gg`, `git`, `gizmoproject`, `gtalk`, `hcp`, `icon`,
-`ipn`, `irc`, `irc6`, `ircs`, `itms`, `jar`, `jms`, `keyparc`, `lastfm`,
-`ldaps`, `magnet`, `maps`, `market`,` message`, `mms`, `ms-help`,
-`msnim`, `mumble`, `mvn`, `notes`, `oid`, `palm`, `paparazzi`,
-`platform`, `proxy`, `psyc`, `query`, `res`, `resource`, `rmi`, `rsync`,
-`rtmp`, `secondlife`, `sftp`, `sgn`, `skype`, `smb`, `soldat`,
-`spotify`, `ssh`, `steam`, `svn`, `teamspeak`, `things`, `udp`,
-`unreal`, `ut2004`, `ventrilo`, `view-source`, `webcal`, `wtai`,
-`wyciwyg`, `xfire`, `xri`, `ymsgr`.
+For purposes of this spec, a [scheme](@) is any sequence
+of 2--32 characters beginning with an ASCII letter and followed
+by any combination of ASCII letters, digits, or the symbols plus
+("+"), period ("."), or hyphen ("-").
Here are some valid autolinks:
-.
+```````````````````````````````` example
<http://foo.bar.baz>
.
<p><a href="http://foo.bar.baz">http://foo.bar.baz</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<http://foo.bar.baz/test?q=hello&id=22&boolean>
.
<p><a href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<irc://foo.bar:2233/baz>
.
<p><a href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>
-.
+````````````````````````````````
+
Uppercase is also fine:
-.
+```````````````````````````````` example
<MAILTO:FOO@BAR.BAZ>
.
<p><a href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
+````````````````````````````````
+
+
+Note that many strings that count as [absolute URIs] for
+purposes of this spec are not valid URIs, because their
+schemes are not registered or because of other problems
+with their syntax:
+
+```````````````````````````````` example
+<a+b+c:d>
.
+<p><a href="a+b+c:d">a+b+c:d</a></p>
+````````````````````````````````
+
+
+```````````````````````````````` example
+<made-up-scheme://foo,bar>
+.
+<p><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
+````````````````````````````````
+
+
+```````````````````````````````` example
+<http://../>
+.
+<p><a href="http://../">http://../</a></p>
+````````````````````````````````
-Spaces are not allowed in autolinks:
+```````````````````````````````` example
+<localhost:5001/foo>
.
+<p><a href="localhost:5001/foo">localhost:5001/foo</a></p>
+````````````````````````````````
+
+
+Spaces are not allowed in autolinks:
+
+```````````````````````````````` example
<http://foo.bar/baz bim>
.
<p>&lt;http://foo.bar/baz bim&gt;</p>
-.
+````````````````````````````````
+
Backslash-escapes do not work inside autolinks:
-.
+```````````````````````````````` example
<http://example.com/\[\>
.
<p><a href="http://example.com/%5C%5B%5C">http://example.com/\[\</a></p>
-.
+````````````````````````````````
+
-An [email autolink](@email-autolink)
+An [email autolink](@)
consists of `<`, followed by an [email address],
followed by `>`. The link's label is the email address,
and the URL is `mailto:` followed by the email address.
-An [email address](@email-address),
+An [email address](@),
for these purposes, is anything that matches
the [non-normative regex from the HTML5
spec](https://html.spec.whatwg.org/multipage/forms.html#e-mail-state-(type=email)):
@@ -7531,69 +8307,72 @@ spec](https://html.spec.whatwg.org/multipage/forms.html#e-mail-state-(type=email
Examples of email autolinks:
-.
+```````````````````````````````` example
<foo@bar.example.com>
.
<p><a href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<foo+special@Bar.baz-bar0.com>
.
<p><a href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
-.
+````````````````````````````````
+
Backslash-escapes do not work inside email autolinks:
-.
+```````````````````````````````` example
<foo\+@bar.example.com>
.
<p>&lt;foo+@bar.example.com&gt;</p>
-.
+````````````````````````````````
+
These are not autolinks:
-.
+```````````````````````````````` example
<>
.
<p>&lt;&gt;</p>
-.
+````````````````````````````````
-.
-<heck://bing.bong>
-.
-<p>&lt;heck://bing.bong&gt;</p>
-.
-.
+```````````````````````````````` example
< http://foo.bar >
.
<p>&lt; http://foo.bar &gt;</p>
-.
+````````````````````````````````
+
+```````````````````````````````` example
+<m:abc>
.
+<p>&lt;m:abc&gt;</p>
+````````````````````````````````
+
+
+```````````````````````````````` example
<foo.bar.baz>
.
<p>&lt;foo.bar.baz&gt;</p>
-.
+````````````````````````````````
-.
-<localhost:5001/foo>
-.
-<p>&lt;localhost:5001/foo&gt;</p>
-.
-.
+```````````````````````````````` example
http://example.com
.
<p>http://example.com</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo@bar.example.com
.
<p>foo@bar.example.com</p>
-.
+````````````````````````````````
+
## Raw HTML
@@ -7604,388 +8383,416 @@ so custom tags (and even, say, DocBook tags) may be used.
Here is the grammar for tags:
-A [tag name](@tag-name) consists of an ASCII letter
+A [tag name](@) consists of an ASCII letter
followed by zero or more ASCII letters, digits, or
hyphens (`-`).
-An [attribute](@attribute) consists of [whitespace],
+An [attribute](@) consists of [whitespace],
an [attribute name], and an optional
[attribute value specification].
-An [attribute name](@attribute-name)
+An [attribute name](@)
consists of an ASCII letter, `_`, or `:`, followed by zero or more ASCII
letters, digits, `_`, `.`, `:`, or `-`. (Note: This is the XML
specification restricted to ASCII. HTML5 is laxer.)
-An [attribute value specification](@attribute-value-specification)
+An [attribute value specification](@)
consists of optional [whitespace],
a `=` character, optional [whitespace], and an [attribute
value].
-An [attribute value](@attribute-value)
+An [attribute value](@)
consists of an [unquoted attribute value],
a [single-quoted attribute value], or a [double-quoted attribute value].
-An [unquoted attribute value](@unquoted-attribute-value)
+An [unquoted attribute value](@)
is a nonempty string of characters not
including spaces, `"`, `'`, `=`, `<`, `>`, or `` ` ``.
-A [single-quoted attribute value](@single-quoted-attribute-value)
+A [single-quoted attribute value](@)
consists of `'`, zero or more
characters not including `'`, and a final `'`.
-A [double-quoted attribute value](@double-quoted-attribute-value)
+A [double-quoted attribute value](@)
consists of `"`, zero or more
characters not including `"`, and a final `"`.
-An [open tag](@open-tag) consists of a `<` character, a [tag name],
-zero or more [attributes](@attribute], optional [whitespace], an optional `/`
+An [open tag](@) consists of a `<` character, a [tag name],
+zero or more [attributes], optional [whitespace], an optional `/`
character, and a `>` character.
-A [closing tag](@closing-tag) consists of the string `</`, a
+A [closing tag](@) consists of the string `</`, a
[tag name], optional [whitespace], and the character `>`.
-An [HTML comment](@html-comment) consists of `<!--` + *text* + `-->`,
+An [HTML comment](@) consists of `<!--` + *text* + `-->`,
where *text* does not start with `>` or `->`, does not end with `-`,
and does not contain `--`. (See the
[HTML5 spec](http://www.w3.org/TR/html5/syntax.html#comments).)
-A [processing instruction](@processing-instruction)
+A [processing instruction](@)
consists of the string `<?`, a string
of characters not including the string `?>`, and the string
`?>`.
-A [declaration](@declaration) consists of the
+A [declaration](@) consists of the
string `<!`, a name consisting of one or more uppercase ASCII letters,
[whitespace], a string of characters not including the
character `>`, and the character `>`.
-A [CDATA section](@cdata-section) consists of
+A [CDATA section](@) consists of
the string `<![CDATA[`, a string of characters not including the string
`]]>`, and the string `]]>`.
-An [HTML tag](@html-tag) consists of an [open tag], a [closing tag],
+An [HTML tag](@) consists of an [open tag], a [closing tag],
an [HTML comment], a [processing instruction], a [declaration],
or a [CDATA section].
Here are some simple open tags:
-.
+```````````````````````````````` example
<a><bab><c2c>
.
<p><a><bab><c2c></p>
-.
+````````````````````````````````
+
Empty elements:
-.
+```````````````````````````````` example
<a/><b2/>
.
<p><a/><b2/></p>
-.
+````````````````````````````````
+
[Whitespace] is allowed:
-.
+```````````````````````````````` example
<a /><b2
data="foo" >
.
<p><a /><b2
data="foo" ></p>
-.
+````````````````````````````````
+
With attributes:
-.
+```````````````````````````````` example
<a foo="bar" bam = 'baz <em>"</em>'
_boolean zoop:33=zoop:33 />
.
<p><a foo="bar" bam = 'baz <em>"</em>'
_boolean zoop:33=zoop:33 /></p>
-.
+````````````````````````````````
+
Custom tag names can be used:
+```````````````````````````````` example
+Foo <responsive-image src="foo.jpg" />
.
-<responsive-image src="foo.jpg" />
+<p>Foo <responsive-image src="foo.jpg" /></p>
+````````````````````````````````
-<My-Tag>
-foo
-</My-Tag>
-.
-<responsive-image src="foo.jpg" />
-<My-Tag>
-foo
-</My-Tag>
-.
Illegal tag names, not parsed as HTML:
-.
+```````````````````````````````` example
<33> <__>
.
<p>&lt;33&gt; &lt;__&gt;</p>
-.
+````````````````````````````````
+
Illegal attribute names:
-.
+```````````````````````````````` example
<a h*#ref="hi">
.
<p>&lt;a h*#ref=&quot;hi&quot;&gt;</p>
-.
+````````````````````````````````
+
Illegal attribute values:
-.
+```````````````````````````````` example
<a href="hi'> <a href=hi'>
.
<p>&lt;a href=&quot;hi'&gt; &lt;a href=hi'&gt;</p>
-.
+````````````````````````````````
+
Illegal [whitespace]:
-.
+```````````````````````````````` example
< a><
foo><bar/ >
.
<p>&lt; a&gt;&lt;
foo&gt;&lt;bar/ &gt;</p>
-.
+````````````````````````````````
+
Missing [whitespace]:
-.
+```````````````````````````````` example
<a href='bar'title=title>
.
<p>&lt;a href='bar'title=title&gt;</p>
-.
+````````````````````````````````
+
Closing tags:
+```````````````````````````````` example
+</a></foo >
.
-</a>
-</foo >
-.
-</a>
-</foo >
-.
+<p></a></foo ></p>
+````````````````````````````````
+
Illegal attributes in closing tag:
-.
+```````````````````````````````` example
</a href="foo">
.
<p>&lt;/a href=&quot;foo&quot;&gt;</p>
-.
+````````````````````````````````
+
Comments:
-.
+```````````````````````````````` example
foo <!-- this is a
comment - with hyphen -->
.
<p>foo <!-- this is a
comment - with hyphen --></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo <!-- not a comment -- two hyphens -->
.
<p>foo &lt;!-- not a comment -- two hyphens --&gt;</p>
-.
+````````````````````````````````
+
Not comments:
-.
+```````````````````````````````` example
foo <!--> foo -->
foo <!-- foo--->
.
<p>foo &lt;!--&gt; foo --&gt;</p>
<p>foo &lt;!-- foo---&gt;</p>
-.
+````````````````````````````````
+
Processing instructions:
-.
+```````````````````````````````` example
foo <?php echo $a; ?>
.
<p>foo <?php echo $a; ?></p>
-.
+````````````````````````````````
+
Declarations:
-.
+```````````````````````````````` example
foo <!ELEMENT br EMPTY>
.
<p>foo <!ELEMENT br EMPTY></p>
-.
+````````````````````````````````
+
CDATA sections:
-.
+```````````````````````````````` example
foo <![CDATA[>&<]]>
.
<p>foo <![CDATA[>&<]]></p>
-.
+````````````````````````````````
-Entities are preserved in HTML attributes:
+Entity and numeric character references are preserved in HTML
+attributes:
+
+```````````````````````````````` example
+foo <a href="&ouml;">
.
-<a href="&ouml;">
-.
-<a href="&ouml;">
-.
+<p>foo <a href="&ouml;"></p>
+````````````````````````````````
+
Backslash escapes do not work in HTML attributes:
+```````````````````````````````` example
+foo <a href="\*">
.
-<a href="\*">
-.
-<a href="\*">
-.
+<p>foo <a href="\*"></p>
+````````````````````````````````
-.
+
+```````````````````````````````` example
<a href="\"">
.
<p>&lt;a href=&quot;&quot;&quot;&gt;</p>
-.
+````````````````````````````````
+
## Hard line breaks
A line break (not in a code span or HTML tag) that is preceded
by two or more spaces and does not occur at the end of a block
-is parsed as a [hard line break](@hard-line-break) (rendered
+is parsed as a [hard line break](@) (rendered
in HTML as a `<br />` tag):
-.
+```````````````````````````````` example
foo
baz
.
<p>foo<br />
baz</p>
-.
+````````````````````````````````
+
For a more visible alternative, a backslash before the
[line ending] may be used instead of two spaces:
-.
+```````````````````````````````` example
foo\
baz
.
<p>foo<br />
baz</p>
-.
+````````````````````````````````
+
More than two spaces can be used:
-.
+```````````````````````````````` example
foo
baz
.
<p>foo<br />
baz</p>
-.
+````````````````````````````````
+
Leading spaces at the beginning of the next line are ignored:
-.
+```````````````````````````````` example
foo
bar
.
<p>foo<br />
bar</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo\
bar
.
<p>foo<br />
bar</p>
-.
+````````````````````````````````
+
Line breaks can occur inside emphasis, links, and other constructs
that allow inline content:
-.
+```````````````````````````````` example
*foo
bar*
.
<p><em>foo<br />
bar</em></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
*foo\
bar*
.
<p><em>foo<br />
bar</em></p>
-.
+````````````````````````````````
+
Line breaks do not occur inside code spans
-.
+```````````````````````````````` example
`code
span`
.
<p><code>code span</code></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
`code\
span`
.
<p><code>code\ span</code></p>
-.
+````````````````````````````````
+
or HTML tags:
-.
+```````````````````````````````` example
<a href="foo
bar">
.
<p><a href="foo
bar"></p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
<a href="foo\
bar">
.
<p><a href="foo\
bar"></p>
-.
+````````````````````````````````
+
Hard line breaks are for separating inline content within a block.
Neither syntax for hard line breaks works at the end of a paragraph or
other block element:
-.
+```````````````````````````````` example
foo\
.
<p>foo\</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
foo
.
<p>foo</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
### foo\
.
<h3>foo\</h3>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
### foo
.
<h3>foo</h3>
-.
+````````````````````````````````
+
## Soft line breaks
@@ -7995,24 +8802,26 @@ softbreak. (A softbreak may be rendered in HTML either as a
[line ending] or as a space. The result will be the same in
browsers. In the examples here, a [line ending] will be used.)
-.
+```````````````````````````````` example
foo
baz
.
<p>foo
baz</p>
-.
+````````````````````````````````
+
Spaces at the end of the line and beginning of the next line are
removed:
-.
+```````````````````````````````` example
foo
baz
.
<p>foo
baz</p>
-.
+````````````````````````````````
+
A conforming parser may render a soft line break in HTML either as a
line break or as a space.
@@ -8025,34 +8834,37 @@ as hard line breaks.
Any characters not given an interpretation by the above rules will
be parsed as plain textual content.
-.
+```````````````````````````````` example
hello $.;'there
.
<p>hello $.;'there</p>
-.
+````````````````````````````````
-.
+
+```````````````````````````````` example
Foo χρῆν
.
<p>Foo χρῆν</p>
-.
+````````````````````````````````
+
Internal spaces are preserved verbatim:
-.
+```````````````````````````````` example
Multiple spaces
.
<p>Multiple spaces</p>
-.
+````````````````````````````````
+
<!-- END TESTS -->
-# Appendix: A parsing strategy {-}
+# Appendix: A parsing strategy
In this appendix we describe some features of the parsing strategy
used in the CommonMark reference implementations.
-## Overview {-}
+## Overview
Parsing has two phases:
@@ -8062,7 +8874,7 @@ list items, and so on---is constructed. Text is assigned to these
blocks but not parsed. Link reference definitions are parsed and a
map of links is constructed.
-2. In the second phase, the raw text contents of paragraphs and headers
+2. In the second phase, the raw text contents of paragraphs and headings
are parsed into sequences of Markdown inline elements (strings,
code spans, links, emphasis, and so on), using the map of link
references constructed in phase 1.
@@ -8090,7 +8902,7 @@ marked by arrows:
"aliquando id"
```
-## Phase 1: block structure {-}
+## Phase 1: block structure
Each line that is processed has an effect on this tree. The line is
analyzed and, depending on its contents, the document may be altered
@@ -8125,10 +8937,10 @@ matched block.
3. Finally, we look at the remainder of the line (after block
markers like `>`, list markers, and indentation have been consumed).
This is text that can be incorporated into the last open
-block (a paragraph, code block, header, or raw HTML).
+block (a paragraph, code block, heading, or raw HTML).
-Setext headers are formed when we detect that the second line of
-a paragraph is a setext header line.
+Setext headings are formed when we see a line of a paragraph
+that is a setext heading line.
Reference link definitions are detected when a paragraph is closed;
the accumulated text lines are parsed to see if they begin with
@@ -8232,12 +9044,12 @@ We thus obtain the final tree:
"aliquando id"
```
-## Phase 2: inline structure {-}
+## Phase 2: inline structure
Once all of the input has been parsed, all open blocks are closed.
We then "walk the tree," visiting every node, and parse raw
-string contents of paragraphs and headers as inlines. At this
+string contents of paragraphs and headings as inlines. At this
point we have seen all the link reference definitions, so we can
resolve reference links as we go.
@@ -8263,7 +9075,7 @@ Notice how the [line ending] in the first paragraph has
been parsed as a `softbreak`, and the asterisks in the first list item
have become an `emph`.
-### An algorithm for parsing nested emphasis and links {-}
+### An algorithm for parsing nested emphasis and links
By far the trickiest part of inline parsing is handling emphasis,
strong emphasis, links, and images. This is done using the following
@@ -8275,7 +9087,7 @@ When we're parsing inlines and we hit either
- a `[` or `![`
we insert a text node with these symbols as its literal content, and we
-add a pointer to this text node to the [delimiter stack](@delimiter-stack).
+add a pointer to this text node to the [delimiter stack](@).
The [delimiter stack] is a doubly linked list. Each
element contains a pointer to a text node, plus information about
@@ -8293,7 +9105,7 @@ procedure (see below).
When we hit the end of the input, we call the *process emphasis*
procedure (see below), with `stack_bottom` = NULL.
-#### *look for link or image* {-}
+#### *look for link or image*
Starting at the top of the delimiter stack, we look backwards
through the stack for an opening `[` or `![` delimiter.
@@ -8324,7 +9136,7 @@ through the stack for an opening `[` or `![` delimiter.
`[` delimiters before the opening delimiter to *inactive*. (This
will prevent us from getting links within links.)
-#### *process emphasis* {-}
+#### *process emphasis*
Parameter `stack_bottom` sets a lower bound to how far we
descend in the [delimiter stack]. If it is NULL, we can
diff --git a/test/spec_tests.py b/test/spec_tests.py
index c6950fb..d5b4d05 100755
--- a/test/spec_tests.py
+++ b/test/spec_tests.py
@@ -90,29 +90,33 @@ def get_tests(specfile):
with open(specfile, 'r', encoding='utf-8') as specf:
for line in specf:
line_number = line_number + 1
- if state == 0 and re.match(header_re, line):
- headertext = header_re.sub('', line).strip()
- if line.strip() == ".":
- state = (state + 1) % 3
- if state == 0:
- example_number = example_number + 1
- end_line = line_number
- tests.append({
- "markdown":''.join(markdown_lines).replace('→',"\t"),
- "html":''.join(html_lines).replace('→',"\t"),
- "example": example_number,
- "start_line": start_line,
- "end_line": end_line,
- "section": headertext})
- start_line = 0
- markdown_lines = []
- html_lines = []
+ l = line.strip()
+ if l == "`" * 32 + " example":
+ state = 1
+ elif l == "`" * 32:
+ state = 0
+ example_number = example_number + 1
+ end_line = line_number
+ tests.append({
+ "markdown":''.join(markdown_lines).replace('→',"\t"),
+ "html":''.join(html_lines).replace('→',"\t"),
+ "example": example_number,
+ "start_line": start_line,
+ "end_line": end_line,
+ "section": headertext})
+ start_line = 0
+ markdown_lines = []
+ html_lines = []
+ elif l == ".":
+ state = 2
elif state == 1:
if start_line == 0:
start_line = line_number - 1
markdown_lines.append(line)
elif state == 2:
html_lines.append(line)
+ elif state == 0 and re.match(header_re, line):
+ headertext = header_re.sub('', line).strip()
return tests
if __name__ == "__main__":
diff --git a/why-cmark-and-not-x.md b/why-cmark-and-not-x.md
new file mode 100644
index 0000000..3fdb4e5
--- /dev/null
+++ b/why-cmark-and-not-x.md
@@ -0,0 +1,104 @@
+Why use `cmark` and not X?
+==========================
+
+`hoedown`
+---------
+
+`hoedown` (which derives from `sundown`) is slightly faster
+than `cmark` in our benchmarks (0.21s vs. 0.29s). But both
+are much faster than any other available implementations.
+
+`hoedown` boasts of including "protection against all possible
+DOS attacks," but there are some chinks in the armor:
+
+ % time python -c 'print(("[" * 50000) + "a" + ("]" * 50000))' | cmark
+ ...
+ user 0m0.073s
+ % time python -c 'print(("[" * 50000) + "a" + ("]" * 50000))' | hoedown
+ ...
+ 0m17.84s
+
+`hoedown` has many parsing bugs. Here is a selection (as of
+v3.0.3):
+
+ % hoedown
+ - one
+ - two
+ 1. three
+ ^D
+ <ul>
+ <li>one
+
+ <ul>
+ <li>two</li>
+ <li>three</li>
+ </ul></li>
+ </ul>
+
+
+ % hoedown
+ ## hi\###
+ ^D
+ <h2>hi\</h2>
+
+
+ % hoedown
+ [ΑΓΩ]: /φου
+
+ [αγω]
+ ^D
+ <p>[αγω]</p>
+
+
+ % hoedown
+ ```
+ [foo]: /url
+ ```
+
+ [foo]
+ ^D
+ <p>```</p>
+
+ <p>```</p>
+
+ <p><a href="/url">foo</a></p>
+
+
+ % hoedown
+ [foo](url "ti\*tle")
+ ^D
+ <p><a href="url" title="ti\*tle">foo</a></p>
+
+
+ % ./hoedown
+ - one
+ - two
+ - three
+ - four
+ ^D
+ <ul>
+ <li>one
+
+ <ul>
+ <li>two</li>
+ <li>three</li>
+ <li>four</li>
+ </ul></li>
+ </ul>
+
+
+`discount`
+----------
+
+`cmark` is about six times faster.
+
+`kramdown`
+----------
+
+`cmark` is about a hundred times faster.
+
+`kramdown` also gets tied in knots by pathological input like
+
+ python -c 'print(("[" * 50000) + "a" + ("]" * 50000))'
+
+
diff --git a/wrappers/wrapper.lua b/wrappers/wrapper.lua
deleted file mode 100755
index 023e0b3..0000000
--- a/wrappers/wrapper.lua
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/usr/bin/env luajit
-
-local ffi = require("ffi")
-
-cmark = ffi.load("libcmark")
-
-ffi.cdef[[
-char *cmark_markdown_to_html(const char *text, int len, int options);
-
-typedef enum {
- /* Error status */
- CMARK_NODE_NONE,
-
- /* Block */
- CMARK_NODE_DOCUMENT,
- CMARK_NODE_BLOCK_QUOTE,
- CMARK_NODE_LIST,
- CMARK_NODE_ITEM,
- CMARK_NODE_CODE_BLOCK,
- CMARK_NODE_HTML,
- CMARK_NODE_PARAGRAPH,
- CMARK_NODE_HEADER,
- CMARK_NODE_HRULE,
-
- CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
- CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE,
-
- /* Inline */
- CMARK_NODE_TEXT,
- CMARK_NODE_SOFTBREAK,
- CMARK_NODE_LINEBREAK,
- CMARK_NODE_CODE,
- CMARK_NODE_INLINE_HTML,
- CMARK_NODE_EMPH,
- CMARK_NODE_STRONG,
- CMARK_NODE_LINK,
- CMARK_NODE_IMAGE,
-
- CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,
- CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
-} cmark_node_type;
-
-
-typedef enum {
- CMARK_NO_LIST,
- CMARK_BULLET_LIST,
- CMARK_ORDERED_LIST
-} cmark_list_type;
-
-typedef enum {
- CMARK_NO_DELIM,
- CMARK_PERIOD_DELIM,
- CMARK_PAREN_DELIM
-} cmark_delim_type;
-
-typedef struct cmark_node cmark_node;
-typedef struct cmark_parser cmark_parser;
-typedef struct cmark_iter cmark_iter;
-
-typedef enum {
- CMARK_EVENT_NONE,
- CMARK_EVENT_DONE,
- CMARK_EVENT_ENTER,
- CMARK_EVENT_EXIT
-} cmark_event_type;
-
-cmark_node*
-cmark_node_new(cmark_node_type type);
-
-void
-cmark_node_free(cmark_node *node);
-
-cmark_node*
-cmark_node_next(cmark_node *node);
-
-cmark_node*
-cmark_node_previous(cmark_node *node);
-
-cmark_node*
-cmark_node_parent(cmark_node *node);
-
-cmark_node*
-cmark_node_first_child(cmark_node *node);
-
-cmark_node*
-cmark_node_last_child(cmark_node *node);
-
-cmark_iter*
-cmark_iter_new(cmark_node *root);
-
-void
-cmark_iter_free(cmark_iter *iter);
-
-cmark_event_type
-cmark_iter_next(cmark_iter *iter);
-
-cmark_node*
-cmark_iter_get_node(cmark_iter *iter);
-
-cmark_event_type
-cmark_iter_get_event_type(cmark_iter *iter);
-
-cmark_node*
-cmark_iter_get_root(cmark_iter *iter);
-
-void
-cmark_iter_reset(cmark_iter *iter, cmark_node *current,
- cmark_event_type event_type);
-
-void*
-cmark_node_get_user_data(cmark_node *node);
-
-int
-cmark_node_set_user_data(cmark_node *node, void *user_data);
-
-cmark_node_type
-cmark_node_get_type(cmark_node *node);
-
-const char*
-cmark_node_get_type_string(cmark_node *node);
-
-const char*
-cmark_node_get_literal(cmark_node *node);
-
-int
-cmark_node_set_literal(cmark_node *node, const char *content);
-
-int
-cmark_node_get_header_level(cmark_node *node);
-
-int
-cmark_node_set_header_level(cmark_node *node, int level);
-
-cmark_list_type
-cmark_node_get_list_type(cmark_node *node);
-
-int
-cmark_node_set_list_type(cmark_node *node, cmark_list_type type);
-
-cmark_delim_type
-cmark_node_get_list_delim(cmark_node *node);
-
-int
-cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim);
-
-int
-cmark_node_get_list_start(cmark_node *node);
-
-int
-cmark_node_set_list_start(cmark_node *node, int start);
-
-int
-cmark_node_get_list_tight(cmark_node *node);
-
-int
-cmark_node_set_list_tight(cmark_node *node, int tight);
-
-const char*
-cmark_node_get_fence_info(cmark_node *node);
-
-int
-cmark_node_set_fence_info(cmark_node *node, const char *info);
-
-const char*
-cmark_node_get_url(cmark_node *node);
-
-int
-cmark_node_set_url(cmark_node *node, const char *url);
-
-const char*
-cmark_node_get_title(cmark_node *node);
-
-int
-cmark_node_set_title(cmark_node *node, const char *title);
-
-int
-cmark_node_get_start_line(cmark_node *node);
-
-int
-cmark_node_get_start_column(cmark_node *node);
-
-int
-cmark_node_get_end_line(cmark_node *node);
-
-int
-cmark_node_get_end_column(cmark_node *node);
-
-void
-cmark_node_unlink(cmark_node *node);
-
-int
-cmark_node_insert_before(cmark_node *node, cmark_node *sibling);
-
-int
-cmark_node_insert_after(cmark_node *node, cmark_node *sibling);
-
-int
-cmark_node_prepend_child(cmark_node *node, cmark_node *child);
-
-int
-cmark_node_append_child(cmark_node *node, cmark_node *child);
-
-void
-cmark_consolidate_text_nodes(cmark_node *root);
-
-cmark_parser *cmark_parser_new(int options);
-
-void cmark_parser_free(cmark_parser *parser);
-
-void cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len);
-
-cmark_node *cmark_parser_finish(cmark_parser *parser);
-
-cmark_node *cmark_parse_document(const char *buffer, size_t len, int options);
-
-char *cmark_render_xml(cmark_node *root, int options);
-
-char *cmark_render_html(cmark_node *root, int options);
-
-char *cmark_render_man(cmark_node *root, int options);
-
-char *cmark_render_commonmark(cmark_node *root, int options, int width);
-
-extern const int cmark_version;
-
-extern const char cmark_version_string[];
-
- ]]
-
-CMARK_OPT_DEFAULT = 0
-CMARK_OPT_SOURCEPOS = 1
-CMARK_OPT_HARDBREAKS = 2
-CMARK_OPT_NORMALIZE = 4
-CMARK_OPT_SMART = 8
-
-local inp = io.read("*all")
-local doc = cmark.cmark_parse_document(inp, string.len(inp), CMARK_OPT_SMART)
-local html = ffi.string(cmark.cmark_render_html(doc, CMARK_OPT_DEFAULT))
-print(html)
diff --git a/wrappers/wrapper.py b/wrappers/wrapper.py
index 44d982c..98e7f2b 100755
--- a/wrappers/wrapper.py
+++ b/wrappers/wrapper.py
@@ -22,7 +22,7 @@ markdown = cmark.cmark_markdown_to_html
markdown.restype = c_char_p
markdown.argtypes = [c_char_p, c_long, c_long]
-opts = 8 # CMARK_OPT_PRETTY
+opts = 0 # defaults
def md2html(text):
if sys.version_info >= (3,0):