From 346e0e23de192926d30bc72708f76bbaa9417d27 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 18 Mar 2025 20:41:12 +0800 Subject: [PATCH 1/2] [vnotex] support display formula --- parser_test/CMakeLists.txt | 1 + parser_test/formula_block_tests.c | 74 + parser_test/formula_inline_tests.c | 6 +- src/blocks.c | 61 +- src/cmark.h | 6 +- src/iterator.c | 1 + src/node.c | 6 + src/node.h | 6 + src/scanners.c | 24548 +++++++++++++++++++-------- src/scanners.h | 4 + src/scanners.re | 22 + src/xml.c | 1 + 12 files changed, 17805 insertions(+), 6931 deletions(-) create mode 100644 parser_test/formula_block_tests.c diff --git a/parser_test/CMakeLists.txt b/parser_test/CMakeLists.txt index 1bc38cd9e..554b37c27 100644 --- a/parser_test/CMakeLists.txt +++ b/parser_test/CMakeLists.txt @@ -5,6 +5,7 @@ set(TEST_TARGETS block_quote_tests mark_tests formula_inline_tests + formula_block_tests code_tests) foreach(TARGET ${TEST_TARGETS}) diff --git a/parser_test/formula_block_tests.c b/parser_test/formula_block_tests.c new file mode 100644 index 000000000..adf62d3da --- /dev/null +++ b/parser_test/formula_block_tests.c @@ -0,0 +1,74 @@ +#include + +#include "test_utils.h" + +int test_formula_block_simple() { + return test_xml("$$\nE=mc^2\n$$", + "\n" + "\n" + "\n" + " E=mc^2\n\n" + "\n", + CMARK_OPT_DEFAULT); +} + +int test_formula_block_raw() { + return test_xml("\\begin{equa}\nE=mc^2\n\\end{equa}", + "\n" + "\n" + "\n" + " E=mc^2\n\n" + "\n", + CMARK_OPT_DEFAULT); +} + +int test_formula_block_multiple() { + return test_xml("$$\na+b\n$$\n\n$$\nc+d\n$$", + "\n" + "\n" + "\n" + " a+b\n\n" + " c+d\n\n" + "\n", + CMARK_OPT_DEFAULT); +} + +int test_formula_block_with_escape() { + return test_xml("$$\na\\$\\$b\n$$", + "\n" + "\n" + "\n" + " a\\$\\$b\n\n" + "\n", + CMARK_OPT_DEFAULT); +} + +int test_formula_block_not_closed() { + return test_xml("$$\nformula", + "\n" + "\n" + "\n" + " formula\n\n" + "\n", + CMARK_OPT_DEFAULT); +} + +int test_formula_block_empty() { + return test_xml("$$\n$$", + "\n" + "\n" + "\n" + " \n" + "\n", + CMARK_OPT_DEFAULT); +} + +int main() { + CASE(test_formula_block_simple); + CASE(test_formula_block_raw); + CASE(test_formula_block_multiple); + CASE(test_formula_block_with_escape); + CASE(test_formula_block_not_closed); + CASE(test_formula_block_empty); + return 0; +} diff --git a/parser_test/formula_inline_tests.c b/parser_test/formula_inline_tests.c index b6aecd2a7..6dd3e8b4b 100644 --- a/parser_test/formula_inline_tests.c +++ b/parser_test/formula_inline_tests.c @@ -53,12 +53,12 @@ int test_formula_inline_not_closed() { } int test_formula_inline_empty() { - return test_xml("$$", + return test_xml("abc $$", "\n" "\n" "\n" " \n" - " $$\n" + " abc $$\n" " \n" "\n", CMARK_OPT_DEFAULT); @@ -71,4 +71,4 @@ int main() { CASE(test_formula_inline_not_closed); CASE(test_formula_inline_empty); return 0; -} \ No newline at end of file +} diff --git a/src/blocks.c b/src/blocks.c index 292e563bb..6ac3ff14a 100644 --- a/src/blocks.c +++ b/src/blocks.c @@ -171,7 +171,8 @@ static inline bool can_contain(cmark_node_type parent_type, static inline bool accepts_lines(cmark_node_type block_type) { return (block_type == CMARK_NODE_PARAGRAPH || block_type == CMARK_NODE_HEADING || - block_type == CMARK_NODE_CODE_BLOCK); + block_type == CMARK_NODE_CODE_BLOCK || + block_type == CMARK_NODE_FORMULA_BLOCK); } static inline bool contains_inlines(cmark_node_type block_type) { @@ -270,6 +271,7 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) { b->end_column = parser->last_line_length; } else if (S_type(b) == CMARK_NODE_DOCUMENT || (S_type(b) == CMARK_NODE_CODE_BLOCK && b->as.code.fenced) || + S_type(b) == CMARK_NODE_FORMULA_BLOCK || (S_type(b) == CMARK_NODE_HEADING && b->as.heading.setext)) { b->end_line = parser->line_number; b->end_column = parser->curline.size; @@ -330,6 +332,11 @@ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) { b->data = cmark_strbuf_detach(node_content); break; + case CMARK_NODE_FORMULA_BLOCK: + b->len = node_content->size; + b->data = cmark_strbuf_detach(node_content); + break; + case CMARK_NODE_HEADING: case CMARK_NODE_HTML_BLOCK: b->len = node_content->size; @@ -859,6 +866,37 @@ static bool parse_code_block_prefix(cmark_parser *parser, cmark_chunk *input, return res; } +static bool parse_formula_block_prefix(cmark_parser *parser, cmark_chunk *input, + cmark_node *container, bool *should_continue) { + bool res = false; + bufsize_t matched = 0; + + if (parser->indent <= 3) { + matched = scan_formula_block_end(input, parser->first_nonspace); + } + + if (matched && + (matched == container->as.formula.fence_length || + matched == container->as.formula.fence_length - 2)) { + // closing fence - and since we're at + // the end of a line, we can stop processing it: + *should_continue = false; + S_advance_offset(parser, input, matched, false); + parser->current = finalize(parser, container); + } else { + // skip opt. spaces of fence parser->offset + int i = container->as.formula.fence_offset; + + while (i > 0 && S_is_space_or_tab(peek_at(input, parser->offset))) { + S_advance_offset(parser, input, 1, true); + i--; + } + res = true; + } + + return res; +} + static bool parse_html_block_prefix(cmark_parser *parser, cmark_node *container) { bool res = false; @@ -924,6 +962,7 @@ static cmark_node *check_open_blocks(cmark_parser *parser, cmark_chunk *input, // first blank line was processed. Certain block types accept // empty lines as content, so add them here. if (parser->current->type == CMARK_NODE_CODE_BLOCK || + parser->current->type == CMARK_NODE_FORMULA_BLOCK || parser->current->type == CMARK_NODE_HTML_BLOCK) { add_line(input, parser); } @@ -942,6 +981,10 @@ static cmark_node *check_open_blocks(cmark_parser *parser, cmark_chunk *input, if (!parse_code_block_prefix(parser, input, container, &should_continue)) goto done; break; + case CMARK_NODE_FORMULA_BLOCK: + if (!parse_formula_block_prefix(parser, input, container, &should_continue)) + goto done; + break; case CMARK_NODE_HEADING: // a heading can never contain more than one line goto done; @@ -986,6 +1029,7 @@ static void open_new_blocks(cmark_parser *parser, cmark_node **container, int save_column; while (cont_type != CMARK_NODE_CODE_BLOCK && + cont_type != CMARK_NODE_FORMULA_BLOCK && cont_type != CMARK_NODE_HTML_BLOCK) { S_find_first_nonspace(parser, input); @@ -1041,6 +1085,17 @@ static void open_new_blocks(cmark_parser *parser, cmark_node **container, parser->first_nonspace + matched - parser->offset, false); + } else if (!indented && (matched = scan_formula_block_start( + input, parser->first_nonspace))) { + *container = add_child(parser, *container, CMARK_NODE_FORMULA_BLOCK, + parser->first_nonspace + 1); + (*container)->as.formula.fence_length = matched; + (*container)->as.formula.fence_offset = + (int8_t)(parser->first_nonspace - parser->offset); + S_advance_offset(parser, input, + parser->first_nonspace + matched - parser->offset, + false); + } else if (!indented && ((matched = scan_html_block_start( input, parser->first_nonspace)) || (cont_type != CMARK_NODE_PARAGRAPH && @@ -1175,6 +1230,7 @@ static void add_text_to_container(cmark_parser *parser, cmark_node *container, const bool last_line_blank = (parser->blank && ctype != CMARK_NODE_BLOCK_QUOTE && ctype != CMARK_NODE_HEADING && ctype != CMARK_NODE_THEMATIC_BREAK && + ctype != CMARK_NODE_FORMULA_BLOCK && !(ctype == CMARK_NODE_CODE_BLOCK && container->as.code.fenced) && !(ctype == CMARK_NODE_ITEM && container->first_child == NULL && container->start_line == parser->line_number)); @@ -1204,7 +1260,8 @@ static void add_text_to_container(cmark_parser *parser, cmark_node *container, assert(parser->current != NULL); } - if (S_type(container) == CMARK_NODE_CODE_BLOCK) { + if (S_type(container) == CMARK_NODE_CODE_BLOCK || + S_type(container) == CMARK_NODE_FORMULA_BLOCK) { add_line(input, parser); } else if (S_type(container) == CMARK_NODE_HTML_BLOCK) { add_line(input, parser); diff --git a/src/cmark.h b/src/cmark.h index d865239c5..d1cb79ba9 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -46,9 +46,10 @@ typedef enum { CMARK_NODE_PARAGRAPH, CMARK_NODE_HEADING, CMARK_NODE_THEMATIC_BREAK, + CMARK_NODE_FORMULA_BLOCK, CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, - CMARK_NODE_LAST_BLOCK = CMARK_NODE_THEMATIC_BREAK, + CMARK_NODE_LAST_BLOCK = CMARK_NODE_FORMULA_BLOCK, /* Inline */ CMARK_NODE_TEXT, @@ -207,11 +208,13 @@ CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); * * CMARK_NODE_HTML_BLOCK * * CMARK_NODE_THEMATIC_BREAK * * CMARK_NODE_CODE_BLOCK + * * CMARK_NODE_FORMULA_BLOCK * * CMARK_NODE_TEXT * * CMARK_NODE_SOFTBREAK * * CMARK_NODE_LINEBREAK * * CMARK_NODE_CODE * * CMARK_NODE_HTML_INLINE + * * CMARK_NODE_FORMULA_INLINE * * Nodes must only be modified after an `EXIT` event, or an `ENTER` event for * leaf nodes. @@ -677,6 +680,7 @@ const char *cmark_version_string(void); #define NODE_LIST CMARK_NODE_LIST #define NODE_ITEM CMARK_NODE_ITEM #define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK +#define NODE_FORMULA_BLOCK CMARK_NODE_FORMULA_BLOCK #define NODE_HTML_BLOCK CMARK_NODE_HTML_BLOCK #define NODE_CUSTOM_BLOCK CMARK_NODE_CUSTOM_BLOCK #define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH diff --git a/src/iterator.c b/src/iterator.c index cc428285e..ba092bc8b 100644 --- a/src/iterator.c +++ b/src/iterator.c @@ -9,6 +9,7 @@ static const int S_leaf_mask = (1 << CMARK_NODE_HTML_BLOCK) | (1 << CMARK_NODE_THEMATIC_BREAK) | (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) | + (1 << CMARK_NODE_FORMULA_BLOCK) | (1 << CMARK_NODE_FORMULA_INLINE) | (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) | (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_HTML_INLINE); diff --git a/src/node.c b/src/node.c index 3e528a587..d6176331f 100644 --- a/src/node.c +++ b/src/node.c @@ -29,6 +29,7 @@ bool cmark_node_is_leaf(cmark_node *node) { switch (node->type) { case CMARK_NODE_THEMATIC_BREAK: return true; case CMARK_NODE_CODE_BLOCK : return true; + case CMARK_NODE_FORMULA_BLOCK : return true; case CMARK_NODE_TEXT : return true; case CMARK_NODE_SOFTBREAK : return true; case CMARK_NODE_LINEBREAK : return true; @@ -135,6 +136,7 @@ static void S_free_nodes(cmark_node *e) { case CMARK_NODE_CODE: case CMARK_NODE_HTML_BLOCK: case CMARK_NODE_FORMULA_INLINE: + case CMARK_NODE_FORMULA_BLOCK: mem->free(e->data); break; case CMARK_NODE_LINK: @@ -225,6 +227,8 @@ const char *cmark_node_get_type_string(cmark_node *node) { return "mark"; case CMARK_NODE_FORMULA_INLINE: return "formula_inline"; + case CMARK_NODE_FORMULA_BLOCK: + return "formula_block"; case CMARK_NODE_LINK: return "link"; case CMARK_NODE_IMAGE: @@ -322,6 +326,7 @@ const char *cmark_node_get_literal(cmark_node *node) { case CMARK_NODE_CODE: case CMARK_NODE_CODE_BLOCK: case CMARK_NODE_FORMULA_INLINE: + case CMARK_NODE_FORMULA_BLOCK: return node->data ? (char *)node->data : ""; default: @@ -343,6 +348,7 @@ int cmark_node_set_literal(cmark_node *node, const char *content) { case CMARK_NODE_CODE: case CMARK_NODE_CODE_BLOCK: case CMARK_NODE_FORMULA_INLINE: + case CMARK_NODE_FORMULA_BLOCK: node->len = cmark_set_cstr(node->mem, &node->data, content); return 1; diff --git a/src/node.h b/src/node.h index 5714987e8..dd1c18cb4 100644 --- a/src/node.h +++ b/src/node.h @@ -30,6 +30,11 @@ typedef struct { int8_t fenced; } cmark_code; +typedef struct { + uint8_t fence_length; + uint8_t fence_offset; +} cmark_formula; + typedef struct { int internal_offset; int8_t level; @@ -82,6 +87,7 @@ struct cmark_node { cmark_heading heading; cmark_link link; cmark_custom custom; + cmark_formula formula; int html_block_type; } as; }; diff --git a/src/scanners.c b/src/scanners.c index 0808dc7f5..f29aa06bc 100644 --- a/src/scanners.c +++ b/src/scanners.c @@ -1,48 +1,47 @@ -/* Generated by re2c 4.1 */ +/* Generated by re2c 4.1 on Tue Mar 18 21:07:28 2025 */ #include #include "chunk.h" #include "scanners.h" 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; + bufsize_t res; + unsigned char *ptr = (unsigned char *)c->data; - if (ptr == NULL || offset > c->len) { - return 0; - } else { - unsigned char lim = ptr[c->len]; + if (ptr == NULL || offset > c->len) { + return 0; + } else { + unsigned char lim = ptr[c->len]; - ptr[c->len] = '\0'; - res = scanner(ptr + offset); - ptr[c->len] = lim; - } + ptr[c->len] = '\0'; + res = scanner(ptr + offset); + ptr[c->len] = lim; + } - return res; + return res; } bufsize_t _scan_at_ext(bufsize_t (*scanner)(const unsigned char *, void *), - cmark_chunk *c, bufsize_t offset, void *d) + cmark_chunk *c, bufsize_t offset, void *d) { - bufsize_t res; - unsigned char *ptr = (unsigned char *)c->data; + bufsize_t res; + unsigned char *ptr = (unsigned char *)c->data; - if (ptr == NULL || offset > c->len) { - return 0; - } else { - unsigned char lim = ptr[c->len]; + if (ptr == NULL || offset > c->len) { + return 0; + } else { + unsigned char lim = ptr[c->len]; - ptr[c->len] = '\0'; - res = scanner(ptr + offset, d); - ptr[c->len] = lim; - } + ptr[c->len] = '\0'; + res = scanner(ptr + offset, d); + ptr[c->len] = lim; + } - return res; + return res; } static int natoi(const char *buf, size_t len) { - char pb[48]; - assert(len < 48U); + char pb[len + 1]; for (size_t i = 0; i < len; ++i) { pb[i] = buf[i]; } @@ -50,7483 +49,18182 @@ static int natoi(const char *buf, size_t len) { return atoi(pb); } + + // Try to match a scheme including colon. bufsize_t _scan_scheme(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - { - unsigned char yych; - yych = *p; - if (yych <= '@') goto yy1; - if (yych <= 'Z') goto yy3; - if (yych <= '`') goto yy1; - if (yych <= 'z') goto yy3; +{ + unsigned char yych; + yych = *p; + switch (yych) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy3; + default: goto yy1; + } yy1: - ++p; + ++p; yy2: - { return 0; } + { return 0; } yy3: - yych = *(marker = ++p); - if (yych <= '/') { - if (yych <= '+') { - if (yych <= '*') goto yy2; - } else { - if (yych <= ',') goto yy2; - if (yych >= '/') goto yy2; - } - } else { - if (yych <= 'Z') { - if (yych <= '9') goto yy4; - if (yych <= '@') goto yy2; - } else { - if (yych <= '`') goto yy2; - if (yych >= '{') goto yy2; - } - } + yych = *(marker = ++p); + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy4; + default: goto yy2; + } yy4: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '+') goto yy6; - } else { - if (yych != '/') goto yy6; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych >= 'A') goto yy6; - } else { - if (yych <= '`') goto yy5; - if (yych <= 'z') goto yy6; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy6; + case ':': goto yy7; + default: goto yy5; + } yy5: - p = marker; - goto yy2; + p = marker; + goto yy2; yy6: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '+') goto yy8; - goto yy5; - } else { - if (yych == '/') goto yy5; - goto yy8; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - goto yy8; - } else { - if (yych <= '`') goto yy5; - if (yych <= 'z') goto yy8; - goto yy5; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy8; + case ':': goto yy7; + default: goto yy5; + } yy7: - ++p; - { return (bufsize_t)(p - start); } + ++p; + { return (bufsize_t)(p - start); } yy8: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy5; - } else { - if (yych == '/') goto yy5; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy7; - if (yych <= '@') goto yy5; - } else { - if (yych <= '`') goto yy5; - if (yych >= '{') goto yy5; - } - } - yych = *++p; - if (yych == ':') goto yy7; - goto yy5; - } - -} - -// Try to match URI autolink after first <, returning number of chars matched. -bufsize_t _scan_autolink_uri(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yych <= '@') goto yy10; - if (yych <= 'Z') goto yy12; - if (yych <= '`') goto yy10; - if (yych <= 'z') goto yy12; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy9; + case ':': goto yy7; + default: goto yy5; + } +yy9: + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy10; + case ':': goto yy7; + default: goto yy5; + } yy10: - ++p; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy11; + case ':': goto yy7; + default: goto yy5; + } yy11: - { return 0; } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy12; + case ':': goto yy7; + default: goto yy5; + } yy12: - yych = *(marker = ++p); - if (yych <= '/') { - if (yych <= '+') { - if (yych <= '*') goto yy11; - } else { - if (yych <= ',') goto yy11; - if (yych >= '/') goto yy11; - } - } else { - if (yych <= 'Z') { - if (yych <= '9') goto yy13; - if (yych <= '@') goto yy11; - } else { - if (yych <= '`') goto yy11; - if (yych >= '{') goto yy11; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy13; + case ':': goto yy7; + default: goto yy5; + } yy13: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '+') goto yy15; - } else { - if (yych != '/') goto yy15; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych >= 'A') goto yy15; - } else { - if (yych <= '`') goto yy14; - if (yych <= 'z') goto yy15; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy14; + case ':': goto yy7; + default: goto yy5; + } yy14: - p = marker; - goto yy11; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy15; + case ':': goto yy7; + default: goto yy5; + } yy15: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '+') goto yy17; - goto yy14; - } else { - if (yych == '/') goto yy14; - goto yy17; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - goto yy17; - } else { - if (yych <= '`') goto yy14; - if (yych <= 'z') goto yy17; - goto yy14; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy16; + case ':': goto yy7; + default: goto yy5; + } yy16: - yych = *++p; - if (yybm[0+yych] & 128) goto yy16; - if (yych <= '<') goto yy14; - goto yy18; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy17; + case ':': goto yy7; + default: goto yy5; + } yy17: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '+') goto yy19; - goto yy14; - } else { - if (yych == '/') goto yy14; - goto yy19; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - goto yy19; - } else { - if (yych <= '`') goto yy14; - if (yych <= 'z') goto yy19; - goto yy14; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy18; + case ':': goto yy7; + default: goto yy5; + } yy18: - ++p; - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy19; + case ':': goto yy7; + default: goto yy5; + } yy19: - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych <= '9') { - if (yych <= ',') { - if (yych != '+') goto yy14; - } else { - if (yych == '/') goto yy14; - } - } else { - if (yych <= 'Z') { - if (yych <= ':') goto yy16; - if (yych <= '@') goto yy14; - } else { - if (yych <= '`') goto yy14; - if (yych >= '{') goto yy14; - } - } - yych = *++p; - if (yych == ':') goto yy16; - goto yy14; - } - -} - -// Try to match email autolink after first <, returning num of chars matched. -bufsize_t _scan_autolink_email(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 128, 128, 128, 128, 128, - 0, 0, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 128, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yych <= '9') { - if (yych <= '\'') { - if (yych == '!') goto yy23; - if (yych >= '#') goto yy23; - } else { - if (yych <= ')') goto yy21; - if (yych != ',') goto yy23; - } - } else { - if (yych <= '?') { - if (yych == '=') goto yy23; - if (yych >= '?') goto yy23; - } else { - if (yych <= 'Z') { - if (yych >= 'A') goto yy23; - } else { - if (yych <= ']') goto yy21; - if (yych <= '~') goto yy23; - } - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy20; + case ':': goto yy7; + default: goto yy5; + } +yy20: + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy21; + case ':': goto yy7; + default: goto yy5; + } yy21: - ++p; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy22; + case ':': goto yy7; + default: goto yy5; + } yy22: - { return 0; } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy23; + case ':': goto yy7; + default: goto yy5; + } yy23: - yych = *(marker = ++p); - if (yych <= ',') { - if (yych <= '"') { - if (yych == '!') goto yy25; - goto yy22; - } else { - if (yych <= '\'') goto yy25; - if (yych <= ')') goto yy22; - if (yych <= '+') goto yy25; - goto yy22; - } - } else { - if (yych <= '>') { - if (yych <= '9') goto yy25; - if (yych == '=') goto yy25; - goto yy22; - } else { - if (yych <= 'Z') goto yy25; - if (yych <= ']') goto yy22; - if (yych <= '~') goto yy25; - goto yy22; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy24; + case ':': goto yy7; + default: goto yy5; + } yy24: - yych = *++p; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy25; + case ':': goto yy7; + default: goto yy5; + } yy25: - if (yybm[0+yych] & 128) goto yy24; - if (yych <= '>') goto yy26; - if (yych <= '@') goto yy27; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy26; + case ':': goto yy7; + default: goto yy5; + } yy26: - p = marker; - goto yy22; + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy27; + case ':': goto yy7; + default: goto yy5; + } yy27: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy26; - if (yych >= ':') goto yy26; - } else { - if (yych <= 'Z') goto yy28; - if (yych <= '`') goto yy26; - if (yych >= '{') goto yy26; - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy28; + case ':': goto yy7; + default: goto yy5; + } yy28: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy29; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy29; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy29; - goto yy26; - } - } - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy31; - if (yych <= '/') goto yy26; - goto yy32; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy32; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy32; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy29; + case ':': goto yy7; + default: goto yy5; + } yy29: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych <= '-') goto yy31; - goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy32; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy32; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy32; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy30; + case ':': goto yy7; + default: goto yy5; + } yy30: - ++p; - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy31; + case ':': goto yy7; + default: goto yy5; + } yy31: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy33; - if (yych <= '/') goto yy26; - goto yy34; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy34; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy34; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy32; + case ':': goto yy7; + default: goto yy5; + } yy32: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy34; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy34; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy34; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy33; + case ':': goto yy7; + default: goto yy5; + } yy33: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy35; - if (yych <= '/') goto yy26; - goto yy36; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy36; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy36; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy34; + case ':': goto yy7; + default: goto yy5; + } yy34: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy36; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy36; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy36; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy35; + case ':': goto yy7; + default: goto yy5; + } yy35: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy37; - if (yych <= '/') goto yy26; - goto yy38; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy38; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy38; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy36; + case ':': goto yy7; + default: goto yy5; + } yy36: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy38; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy38; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy38; - goto yy26; - } - } -yy37: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy39; - if (yych <= '/') goto yy26; - goto yy40; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy40; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy40; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case ':': goto yy7; + default: goto yy5; + } +} + +} + +// Try to match URI autolink after first <, returning number of chars matched. +bufsize_t _scan_autolink_uri(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy40; + default: goto yy38; + } yy38: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy40; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy40; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy40; - goto yy26; - } - } + ++p; yy39: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy41; - if (yych <= '/') goto yy26; - goto yy42; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy42; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy42; - goto yy26; - } - } + { return 0; } yy40: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy42; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy42; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy42; - goto yy26; - } - } + yych = *(marker = ++p); + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy41; + default: goto yy39; + } yy41: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy43; - if (yych <= '/') goto yy26; - goto yy44; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy44; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy44; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy43; + case ':': goto yy44; + default: goto yy42; + } yy42: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy44; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy44; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy44; - goto yy26; - } - } + p = marker; + goto yy39; yy43: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy45; - if (yych <= '/') goto yy26; - goto yy46; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy46; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy46; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy45; + case ':': goto yy44; + default: goto yy42; + } yy44: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy46; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy46; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy46; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case ' ': + case '<': goto yy42; + case '>': goto yy46; + default: goto yy44; + } yy45: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy47; - if (yych <= '/') goto yy26; - goto yy48; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy48; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy48; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy47; + case ':': goto yy44; + default: goto yy42; + } yy46: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy48; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy48; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy48; - goto yy26; - } - } + ++p; + { return (bufsize_t)(p - start); } yy47: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy49; - if (yych <= '/') goto yy26; - goto yy50; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy50; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy50; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy48; + case ':': goto yy44; + default: goto yy42; + } yy48: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy50; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy50; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy50; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy49; + case ':': goto yy44; + default: goto yy42; + } yy49: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy51; - if (yych <= '/') goto yy26; - goto yy52; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy52; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy52; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy50; + case ':': goto yy44; + default: goto yy42; + } yy50: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy52; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy52; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy52; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy51; + case ':': goto yy44; + default: goto yy42; + } yy51: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy53; - if (yych <= '/') goto yy26; - goto yy54; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy54; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy54; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy52; + case ':': goto yy44; + default: goto yy42; + } yy52: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy54; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy54; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy54; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy53; + case ':': goto yy44; + default: goto yy42; + } yy53: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy55; - if (yych <= '/') goto yy26; - goto yy56; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy56; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy56; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case ':': goto yy44; + default: goto yy42; + } yy54: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy56; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy56; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy56; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy55; + case ':': goto yy44; + default: goto yy42; + } yy55: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy57; - if (yych <= '/') goto yy26; - goto yy58; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy58; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy58; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy56; + case ':': goto yy44; + default: goto yy42; + } yy56: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy58; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy58; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy58; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy57; + case ':': goto yy44; + default: goto yy42; + } yy57: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy59; - if (yych <= '/') goto yy26; - goto yy60; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy60; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy60; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy58; + case ':': goto yy44; + default: goto yy42; + } yy58: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy60; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy60; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy60; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy59; + case ':': goto yy44; + default: goto yy42; + } yy59: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy61; - if (yych <= '/') goto yy26; - goto yy62; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy62; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy62; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy60; + case ':': goto yy44; + default: goto yy42; + } yy60: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy62; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy62; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy62; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy61; + case ':': goto yy44; + default: goto yy42; + } yy61: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy63; - if (yych <= '/') goto yy26; - goto yy64; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy64; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy64; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy62; + case ':': goto yy44; + default: goto yy42; + } yy62: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy64; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy64; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy64; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy63; + case ':': goto yy44; + default: goto yy42; + } yy63: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy65; - if (yych <= '/') goto yy26; - goto yy66; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy66; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy66; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy64; + case ':': goto yy44; + default: goto yy42; + } yy64: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy66; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy66; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy66; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy65; + case ':': goto yy44; + default: goto yy42; + } yy65: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy67; - if (yych <= '/') goto yy26; - goto yy68; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy68; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy68; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy66; + case ':': goto yy44; + default: goto yy42; + } yy66: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy68; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy68; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy68; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy67; + case ':': goto yy44; + default: goto yy42; + } yy67: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy69; - if (yych <= '/') goto yy26; - goto yy70; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy70; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy70; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy68; + case ':': goto yy44; + default: goto yy42; + } yy68: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy70; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy70; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy70; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy69; + case ':': goto yy44; + default: goto yy42; + } yy69: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy71; - if (yych <= '/') goto yy26; - goto yy72; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy72; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy72; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy70; + case ':': goto yy44; + default: goto yy42; + } yy70: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy72; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy72; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy72; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy71; + case ':': goto yy44; + default: goto yy42; + } yy71: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy73; - if (yych <= '/') goto yy26; - goto yy74; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy74; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy74; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy72; + case ':': goto yy44; + default: goto yy42; + } yy72: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy74; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy74; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy74; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy73; + case ':': goto yy44; + default: goto yy42; + } yy73: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy75; - if (yych <= '/') goto yy26; - goto yy76; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy76; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy76; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '+': + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy74; + case ':': goto yy44; + default: goto yy42; + } yy74: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy76; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy76; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy76; - goto yy26; - } - } -yy75: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy77; - if (yych <= '/') goto yy26; - goto yy78; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy78; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy78; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case ':': goto yy44; + default: goto yy42; + } +} + +} + +// Try to match email autolink after first <, returning num of chars matched. +bufsize_t _scan_autolink_email(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '!': + case '#': + case '$': + case '%': + case '&': + case '\'': + case '*': + case '+': + case '-': + case '.': + case '/': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '=': + case '?': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '^': + case '_': + case '`': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + case '{': + case '|': + case '}': + case '~': goto yy78; + default: goto yy76; + } yy76: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy78; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy78; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy78; - goto yy26; - } - } + ++p; yy77: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy79; - if (yych <= '/') goto yy26; - goto yy80; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy80; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy80; - goto yy26; - } - } + { return 0; } yy78: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy80; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy80; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy80; - goto yy26; - } - } + yych = *(marker = ++p); + switch (yych) { + case '!': + case '#': + case '$': + case '%': + case '&': + case '\'': + case '*': + case '+': + case '-': + case '.': + case '/': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '=': + case '?': + case '@': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '^': + case '_': + case '`': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + case '{': + case '|': + case '}': + case '~': goto yy80; + default: goto yy77; + } yy79: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy81; - if (yych <= '/') goto yy26; - goto yy82; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy82; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy82; - goto yy26; - } - } + yych = *++p; yy80: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy82; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy82; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy82; - goto yy26; - } - } + switch (yych) { + case '!': + case '#': + case '$': + case '%': + case '&': + case '\'': + case '*': + case '+': + case '-': + case '.': + case '/': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '=': + case '?': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '^': + case '_': + case '`': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + case '{': + case '|': + case '}': + case '~': goto yy79; + case '@': goto yy82; + default: goto yy81; + } yy81: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy83; - if (yych <= '/') goto yy26; - goto yy84; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy84; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy84; - goto yy26; - } - } + p = marker; + goto yy77; yy82: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy84; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy84; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy84; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy83; + default: goto yy81; + } yy83: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy85; - if (yych <= '/') goto yy26; - goto yy86; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy86; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy86; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy84; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy85; + case '>': goto yy86; + default: goto yy81; + } yy84: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy86; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy86; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy86; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy87; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy88; + default: goto yy81; + } yy85: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy87; - if (yych <= '/') goto yy26; - goto yy88; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy88; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy88; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy87; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy88; + case '>': goto yy86; + default: goto yy81; + } yy86: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy88; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy88; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy88; - goto yy26; - } - } + ++p; + { return (bufsize_t)(p - start); } yy87: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy89; - if (yych <= '/') goto yy26; - goto yy90; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy90; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy90; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy89; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy90; + default: goto yy81; + } yy88: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy90; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy90; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy90; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy89; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy90; + case '>': goto yy86; + default: goto yy81; + } yy89: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy91; - if (yych <= '/') goto yy26; - goto yy92; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy92; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy92; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy91; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy92; + default: goto yy81; + } yy90: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy92; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy92; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy92; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy91; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy92; + case '>': goto yy86; + default: goto yy81; + } yy91: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy93; - if (yych <= '/') goto yy26; - goto yy94; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy94; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy94; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy93; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy94; + default: goto yy81; + } yy92: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy94; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy94; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy94; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy93; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy94; + case '>': goto yy86; + default: goto yy81; + } yy93: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy95; - if (yych <= '/') goto yy26; - goto yy96; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy96; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy96; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy95; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy96; + default: goto yy81; + } yy94: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy96; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy96; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy96; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy95; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy96; + case '>': goto yy86; + default: goto yy81; + } yy95: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy97; - if (yych <= '/') goto yy26; - goto yy98; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy98; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy98; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy97; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy98; + default: goto yy81; + } yy96: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy98; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy98; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy98; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy97; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy98; + case '>': goto yy86; + default: goto yy81; + } yy97: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy99; - if (yych <= '/') goto yy26; - goto yy100; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy100; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy100; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy99; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy100; + default: goto yy81; + } yy98: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy100; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy100; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy100; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy99; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy100; + case '>': goto yy86; + default: goto yy81; + } yy99: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy101; - if (yych <= '/') goto yy26; - goto yy102; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy102; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy102; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy101; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy102; + default: goto yy81; + } yy100: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy102; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy102; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy102; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy101; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy102; + case '>': goto yy86; + default: goto yy81; + } yy101: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy103; - if (yych <= '/') goto yy26; - goto yy104; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy104; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy104; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy103; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy104; + default: goto yy81; + } yy102: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy104; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy104; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy104; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy103; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy104; + case '>': goto yy86; + default: goto yy81; + } yy103: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy105; - if (yych <= '/') goto yy26; - goto yy106; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy106; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy106; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy105; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy106; + default: goto yy81; + } yy104: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy106; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy106; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy106; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy105; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy106; + case '>': goto yy86; + default: goto yy81; + } yy105: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy107; - if (yych <= '/') goto yy26; - goto yy108; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy108; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy108; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy107; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy108; + default: goto yy81; + } yy106: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy108; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy108; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy108; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy107; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy108; + case '>': goto yy86; + default: goto yy81; + } yy107: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy109; - if (yych <= '/') goto yy26; - goto yy110; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy110; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy110; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy109; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy110; + default: goto yy81; + } yy108: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy110; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy110; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy110; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy109; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy110; + case '>': goto yy86; + default: goto yy81; + } yy109: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy111; - if (yych <= '/') goto yy26; - goto yy112; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy112; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy112; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy111; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy112; + default: goto yy81; + } yy110: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy112; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy112; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy112; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy111; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy112; + case '>': goto yy86; + default: goto yy81; + } yy111: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy113; - if (yych <= '/') goto yy26; - goto yy114; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy114; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy114; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy113; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy114; + default: goto yy81; + } yy112: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy114; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy114; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy114; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy113; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy114; + case '>': goto yy86; + default: goto yy81; + } yy113: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy115; - if (yych <= '/') goto yy26; - goto yy116; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy116; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy116; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy115; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy116; + default: goto yy81; + } yy114: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy116; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy116; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy116; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy115; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy116; + case '>': goto yy86; + default: goto yy81; + } yy115: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy117; - if (yych <= '/') goto yy26; - goto yy118; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy118; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy118; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy117; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy118; + default: goto yy81; + } yy116: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy118; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy118; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy118; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy117; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy118; + case '>': goto yy86; + default: goto yy81; + } yy117: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy119; - if (yych <= '/') goto yy26; - goto yy120; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy120; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy120; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy119; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy120; + default: goto yy81; + } yy118: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy120; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy120; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy120; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy119; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy120; + case '>': goto yy86; + default: goto yy81; + } yy119: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy121; - if (yych <= '/') goto yy26; - goto yy122; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy122; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy122; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy121; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy122; + default: goto yy81; + } yy120: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy122; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy122; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy122; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy121; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy122; + case '>': goto yy86; + default: goto yy81; + } yy121: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy123; - if (yych <= '/') goto yy26; - goto yy124; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy124; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy124; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy123; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy124; + default: goto yy81; + } yy122: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy124; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy124; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy124; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy123; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy124; + case '>': goto yy86; + default: goto yy81; + } yy123: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy125; - if (yych <= '/') goto yy26; - goto yy126; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy126; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy126; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy125; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy126; + default: goto yy81; + } yy124: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy126; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy126; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy126; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy125; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy126; + case '>': goto yy86; + default: goto yy81; + } yy125: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy127; - if (yych <= '/') goto yy26; - goto yy128; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy128; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy128; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy127; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy128; + default: goto yy81; + } yy126: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy128; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy128; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy128; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy127; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy128; + case '>': goto yy86; + default: goto yy81; + } yy127: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy129; - if (yych <= '/') goto yy26; - goto yy130; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy130; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy130; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy129; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy130; + default: goto yy81; + } yy128: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy130; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy130; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy130; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy129; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy130; + case '>': goto yy86; + default: goto yy81; + } yy129: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy131; - if (yych <= '/') goto yy26; - goto yy132; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy132; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy132; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy131; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy132; + default: goto yy81; + } yy130: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy132; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy132; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy132; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy131; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy132; + case '>': goto yy86; + default: goto yy81; + } yy131: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy133; - if (yych <= '/') goto yy26; - goto yy134; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy134; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy134; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy133; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy134; + default: goto yy81; + } yy132: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy134; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy134; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy134; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy133; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy134; + case '>': goto yy86; + default: goto yy81; + } yy133: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy135; - if (yych <= '/') goto yy26; - goto yy136; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy136; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy136; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy135; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy136; + default: goto yy81; + } yy134: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy136; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy136; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy136; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy135; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy136; + case '>': goto yy86; + default: goto yy81; + } yy135: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy137; - if (yych <= '/') goto yy26; - goto yy138; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy138; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy138; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy137; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy138; + default: goto yy81; + } yy136: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy138; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy138; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy138; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy137; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy138; + case '>': goto yy86; + default: goto yy81; + } yy137: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy139; - if (yych <= '/') goto yy26; - goto yy140; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy140; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy140; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy139; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy140; + default: goto yy81; + } yy138: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy140; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy140; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy140; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy139; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy140; + case '>': goto yy86; + default: goto yy81; + } yy139: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy141; - if (yych <= '/') goto yy26; - goto yy142; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy142; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy142; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy141; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy142; + default: goto yy81; + } yy140: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy142; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy142; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy142; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy141; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy142; + case '>': goto yy86; + default: goto yy81; + } yy141: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy143; - if (yych <= '/') goto yy26; - goto yy144; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy144; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy144; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy143; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy144; + default: goto yy81; + } yy142: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy144; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy144; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy144; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy143; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy144; + case '>': goto yy86; + default: goto yy81; + } yy143: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy145; - if (yych <= '/') goto yy26; - goto yy146; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy146; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy146; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy145; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy146; + default: goto yy81; + } yy144: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy146; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy146; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy146; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy145; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy146; + case '>': goto yy86; + default: goto yy81; + } yy145: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy147; - if (yych <= '/') goto yy26; - goto yy148; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy148; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy148; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy147; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy148; + default: goto yy81; + } yy146: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy148; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy148; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy148; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy147; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy148; + case '>': goto yy86; + default: goto yy81; + } yy147: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy149; - if (yych <= '/') goto yy26; - goto yy150; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy26; - goto yy150; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy150; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy149; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy150; + default: goto yy81; + } yy148: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy26; - if (yych >= '.') goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy150; - goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - goto yy150; - } else { - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy150; - goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy149; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy150; + case '>': goto yy86; + default: goto yy81; + } yy149: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy26; - if (yych <= '9') goto yy151; - goto yy26; - } else { - if (yych <= 'Z') goto yy151; - if (yych <= '`') goto yy26; - if (yych <= 'z') goto yy151; - goto yy26; - } + yych = *++p; + switch (yych) { + case '-': goto yy151; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy152; + default: goto yy81; + } yy150: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= '-') goto yy26; - goto yy27; - } else { - if (yych <= '/') goto yy26; - if (yych >= ':') goto yy26; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy30; - if (yych <= '@') goto yy26; - } else { - if (yych <= '`') goto yy26; - if (yych >= '{') goto yy26; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy151; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy152; + case '>': goto yy86; + default: goto yy81; + } yy151: - yych = *++p; - if (yych == '.') goto yy27; - if (yych == '>') goto yy30; - goto yy26; - } - -} - -// Try to match an HTML tag after first <, returning num of chars matched. -bufsize_t _scan_html_tag(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 224, 224, 224, 224, 224, 224, 224, - 224, 200, 200, 200, 200, 200, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 200, 224, 128, 224, 224, 224, 224, 64, - 224, 224, 224, 224, 224, 244, 240, 224, - 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 240, 224, 192, 192, 192, 224, - 224, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 224, 224, 224, 224, 240, - 192, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224 - }; - yych = *p; - if (yych <= '@') { - if (yych == '/') goto yy155; - } else { - if (yych <= 'Z') goto yy156; - if (yych <= '`') goto yy153; - if (yych <= 'z') goto yy156; - } + yych = *++p; + switch (yych) { + case '-': goto yy153; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy154; + default: goto yy81; + } +yy152: + yych = *++p; + switch (yych) { + case '-': goto yy153; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy154; + case '>': goto yy86; + default: goto yy81; + } yy153: - ++p; + yych = *++p; + switch (yych) { + case '-': goto yy155; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy156; + default: goto yy81; + } yy154: - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy155; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy156; + case '>': goto yy86; + default: goto yy81; + } yy155: - yych = *(marker = ++p); - if (yych <= '@') goto yy154; - if (yych <= 'Z') goto yy157; - if (yych <= '`') goto yy154; - if (yych <= 'z') goto yy157; - goto yy154; + yych = *++p; + switch (yych) { + case '-': goto yy157; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy158; + default: goto yy81; + } yy156: - yych = *(marker = ++p); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy154; - if (yych <= '\r') goto yy161; - goto yy154; - } else { - if (yych <= ' ') goto yy161; - if (yych == '-') goto yy161; - goto yy154; - } - } else { - if (yych <= '@') { - if (yych <= '9') goto yy161; - if (yych == '>') goto yy161; - goto yy154; - } else { - if (yych <= 'Z') goto yy161; - if (yych <= '`') goto yy154; - if (yych <= 'z') goto yy161; - goto yy154; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy157; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy158; + case '>': goto yy86; + default: goto yy81; + } yy157: - yych = *++p; - if (yybm[0+yych] & 4) goto yy157; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy158; - if (yych <= '\r') goto yy164; - } else { - if (yych <= ' ') goto yy164; - if (yych == '>') goto yy163; - } + yych = *++p; + switch (yych) { + case '-': goto yy159; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy160; + default: goto yy81; + } yy158: - p = marker; - goto yy154; + yych = *++p; + switch (yych) { + case '-': goto yy159; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy160; + case '>': goto yy86; + default: goto yy81; + } yy159: - yych = *++p; - if (yybm[0+yych] & 8) goto yy159; - if (yych <= '>') { - if (yych <= '9') { - if (yych == '/') goto yy162; - goto yy158; - } else { - if (yych <= ':') goto yy165; - if (yych <= '=') goto yy158; - goto yy163; - } - } else { - if (yych <= '^') { - if (yych <= '@') goto yy158; - if (yych <= 'Z') goto yy165; - goto yy158; - } else { - if (yych == '`') goto yy158; - if (yych <= 'z') goto yy165; - goto yy158; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy161; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy162; + default: goto yy81; + } yy160: - yych = *++p; + yych = *++p; + switch (yych) { + case '-': goto yy161; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy162; + case '>': goto yy86; + default: goto yy81; + } yy161: - if (yybm[0+yych] & 8) goto yy159; - if (yych <= '=') { - if (yych <= '.') { - if (yych == '-') goto yy160; - goto yy158; - } else { - if (yych <= '/') goto yy162; - if (yych <= '9') goto yy160; - goto yy158; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy163; - if (yych <= '@') goto yy158; - goto yy160; - } else { - if (yych <= '`') goto yy158; - if (yych <= 'z') goto yy160; - goto yy158; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy163; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy164; + default: goto yy81; + } yy162: - yych = *++p; - if (yych != '>') goto yy158; + yych = *++p; + switch (yych) { + case '-': goto yy163; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy164; + case '>': goto yy86; + default: goto yy81; + } yy163: - ++p; - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '-': goto yy165; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy166; + default: goto yy81; + } yy164: - yych = *++p; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy158; - if (yych <= '\r') goto yy164; - goto yy158; - } else { - if (yych <= ' ') goto yy164; - if (yych == '>') goto yy163; - goto yy158; - } + yych = *++p; + switch (yych) { + case '-': goto yy165; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy166; + case '>': goto yy86; + default: goto yy81; + } yy165: - yych = *++p; - if (yybm[0+yych] & 16) goto yy165; - if (yych <= ',') { - if (yych <= '\r') { - if (yych <= 0x08) goto yy158; - } else { - if (yych != ' ') goto yy158; - } - } else { - if (yych <= '<') { - if (yych <= '/') goto yy162; - goto yy158; - } else { - if (yych <= '=') goto yy167; - if (yych <= '>') goto yy163; - goto yy158; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy167; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy168; + default: goto yy81; + } yy166: - yych = *++p; - if (yych <= '<') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy158; - if (yych <= '\r') goto yy166; - if (yych <= 0x1F) goto yy158; - goto yy166; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy158; - goto yy162; - } else { - if (yych == ':') goto yy165; - goto yy158; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '=') goto yy167; - if (yych <= '>') goto yy163; - if (yych <= '@') goto yy158; - goto yy165; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy158; - goto yy165; - } else { - if (yych <= '`') goto yy158; - if (yych <= 'z') goto yy165; - goto yy158; - } - } - } + yych = *++p; + switch (yych) { + case '-': goto yy167; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy168; + case '>': goto yy86; + default: goto yy81; + } yy167: - yych = *++p; - if (yybm[0+yych] & 32) goto yy168; - if (yych <= 0x00) goto yy158; - if (yych <= ' ') goto yy167; - if (yych <= '"') goto yy169; - if (yych <= '\'') goto yy170; - goto yy158; + yych = *++p; + switch (yych) { + case '-': goto yy169; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy170; + default: goto yy81; + } yy168: - yych = *++p; - if (yybm[0+yych] & 32) goto yy168; - if (yych <= 0x00) goto yy158; - if (yych <= ' ') goto yy159; - if (yych == '>') goto yy163; - goto yy158; + yych = *++p; + switch (yych) { + case '-': goto yy169; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy170; + case '>': goto yy86; + default: goto yy81; + } yy169: - yych = *++p; - if (yybm[0+yych] & 64) goto yy169; - if (yych <= 0x00) goto yy158; - goto yy171; + yych = *++p; + switch (yych) { + case '-': goto yy171; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy172; + default: goto yy81; + } yy170: - yych = *++p; - if (yybm[0+yych] & 128) goto yy170; - if (yych <= 0x00) goto yy158; + yych = *++p; + switch (yych) { + case '-': goto yy171; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy172; + case '>': goto yy86; + default: goto yy81; + } yy171: - yych = *++p; - if (yybm[0+yych] & 8) goto yy159; - if (yych == '/') goto yy162; - if (yych == '>') goto yy163; - goto yy158; - } - -} - -bufsize_t _scan_html_comment(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yych == '-') goto yy174; - ++p; + yych = *++p; + switch (yych) { + case '-': goto yy173; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy174; + default: goto yy81; + } +yy172: + yych = *++p; + switch (yych) { + case '-': goto yy173; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy174; + case '>': goto yy86; + default: goto yy81; + } yy173: - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy175; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy176; + default: goto yy81; + } yy174: - yych = *(marker = ++p); - if (yych != '-') goto yy173; + yych = *++p; + switch (yych) { + case '-': goto yy175; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy176; + case '>': goto yy86; + default: goto yy81; + } yy175: - yych = *++p; - if (yybm[0+yych] & 128) goto yy175; - if (yych >= 0x01) goto yy177; + yych = *++p; + switch (yych) { + case '-': goto yy177; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy178; + default: goto yy81; + } yy176: - p = marker; - goto yy173; + yych = *++p; + switch (yych) { + case '-': goto yy177; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy178; + case '>': goto yy86; + default: goto yy81; + } yy177: - yych = *++p; - if (yybm[0+yych] & 128) goto yy175; - if (yych <= 0x00) goto yy176; - yych = *++p; - if (yych <= 0x00) goto yy176; - if (yych != '>') goto yy175; - ++p; - { return (bufsize_t)(p - start); } - } - -} - -bufsize_t _scan_html_pi(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yybm[0+yych] & 128) goto yy180; - if (yych >= 0x01) goto yy182; - ++p; + yych = *++p; + switch (yych) { + case '-': goto yy179; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy180; + default: goto yy81; + } +yy178: + yych = *++p; + switch (yych) { + case '-': goto yy179; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy180; + case '>': goto yy86; + default: goto yy81; + } yy179: - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy181; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy182; + default: goto yy81; + } yy180: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy180; - if (yych >= 0x01) goto yy183; + yych = *++p; + switch (yych) { + case '-': goto yy181; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy182; + case '>': goto yy86; + default: goto yy81; + } yy181: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '-': goto yy183; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy184; + default: goto yy81; + } yy182: - yych = *++p; - if (yych <= 0x00) goto yy179; - if (yych == '>') goto yy179; - goto yy180; + yych = *++p; + switch (yych) { + case '-': goto yy183; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy184; + case '>': goto yy86; + default: goto yy81; + } yy183: - yych = *++p; - if (yych <= 0x00) goto yy184; - if (yych != '>') goto yy180; + yych = *++p; + switch (yych) { + case '-': goto yy185; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy186; + default: goto yy81; + } yy184: - p = marker; - goto yy181; - } - -} - -bufsize_t _scan_html_declaration(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - (void) marker; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yych <= '@') goto yy186; - if (yych <= 'Z') goto yy187; - if (yych <= '`') goto yy186; - if (yych <= 'z') goto yy187; + yych = *++p; + switch (yych) { + case '-': goto yy185; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy186; + case '>': goto yy86; + default: goto yy81; + } +yy185: + yych = *++p; + switch (yych) { + case '-': goto yy187; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy188; + default: goto yy81; + } yy186: - ++p; - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy187; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy188; + case '>': goto yy86; + default: goto yy81; + } yy187: - yych = *++p; - if (yybm[0+yych] & 128) goto yy187; - { return (bufsize_t)(p - start); } - } - -} - -bufsize_t _scan_html_cdata(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yych == 'C') goto yy190; - if (yych == 'c') goto yy190; - ++p; + yych = *++p; + switch (yych) { + case '-': goto yy189; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy190; + default: goto yy81; + } +yy188: + yych = *++p; + switch (yych) { + case '-': goto yy189; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy190; + case '>': goto yy86; + default: goto yy81; + } yy189: - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy191; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy192; + default: goto yy81; + } yy190: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'D') goto yy191; - if (yych != 'd') goto yy189; + yych = *++p; + switch (yych) { + case '-': goto yy191; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy192; + case '>': goto yy86; + default: goto yy81; + } yy191: - yych = *++p; - if (yych == 'A') goto yy193; - if (yych == 'a') goto yy193; + yych = *++p; + switch (yych) { + case '-': goto yy193; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy194; + default: goto yy81; + } yy192: - p = marker; - if (yyaccept == 0) goto yy189; - else goto yy197; + yych = *++p; + switch (yych) { + case '-': goto yy193; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy194; + case '>': goto yy86; + default: goto yy81; + } yy193: - yych = *++p; - if (yych == 'T') goto yy194; - if (yych != 't') goto yy192; + yych = *++p; + switch (yych) { + case '-': goto yy195; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy196; + default: goto yy81; + } yy194: - yych = *++p; - if (yych == 'A') goto yy195; - if (yych != 'a') goto yy192; + yych = *++p; + switch (yych) { + case '-': goto yy195; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy196; + case '>': goto yy86; + default: goto yy81; + } yy195: - yych = *++p; - if (yych != '[') goto yy192; + yych = *++p; + switch (yych) { + case '-': goto yy197; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy198; + default: goto yy81; + } yy196: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy196; - if (yych >= 0x01) goto yy198; + yych = *++p; + switch (yych) { + case '-': goto yy197; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy198; + case '>': goto yy86; + default: goto yy81; + } yy197: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '-': goto yy199; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy200; + default: goto yy81; + } yy198: - yych = *++p; - if (yybm[0+yych] & 128) goto yy196; - if (yych <= 0x00) goto yy192; - yych = *++p; - if (yych <= 0x00) goto yy192; - if (yych == '>') goto yy192; - goto yy196; - } - -} - -// Try to match an HTML block tag start line, returning -// an integer code for the type of block (1-6, matching the spec). -// #7 is handled by a separate function, below. -bufsize_t _scan_html_block_start(const unsigned char *p) -{ - const unsigned char *marker = NULL; - - { - unsigned char yych; - yych = *p; - if (yych == '<') goto yy201; - ++p; + yych = *++p; + switch (yych) { + case '-': goto yy199; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy200; + case '>': goto yy86; + default: goto yy81; + } +yy199: + yych = *++p; + switch (yych) { + case '-': goto yy201; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy202; + default: goto yy81; + } yy200: - { return 0; } + yych = *++p; + switch (yych) { + case '-': goto yy201; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy202; + case '>': goto yy86; + default: goto yy81; + } yy201: - yych = *(marker = ++p); - switch (yych) { - case '!': goto yy202; - case '/': goto yy204; - case '?': goto yy205; - case 'A': - case 'a': goto yy206; - case 'B': - case 'b': goto yy207; - case 'C': - case 'c': goto yy208; - case 'D': - case 'd': goto yy209; - case 'F': - case 'f': goto yy210; - case 'H': - case 'h': goto yy211; - case 'I': - case 'i': goto yy212; - case 'L': - case 'l': goto yy213; - case 'M': - case 'm': goto yy214; - case 'N': - case 'n': goto yy215; - case 'O': - case 'o': goto yy216; - case 'P': - case 'p': goto yy217; - case 'S': - case 's': goto yy218; - case 'T': - case 't': goto yy219; - case 'U': - case 'u': goto yy220; - default: goto yy200; - } + yych = *++p; + switch (yych) { + case '-': goto yy203; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy204; + default: goto yy81; + } yy202: - yych = *++p; - if (yych <= 'Z') { - if (yych == '-') goto yy221; - if (yych >= 'A') goto yy222; - } else { - if (yych <= '[') goto yy223; - if (yych <= '`') goto yy203; - if (yych <= 'z') goto yy222; - } + yych = *++p; + switch (yych) { + case '-': goto yy203; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy204; + case '>': goto yy86; + default: goto yy81; + } yy203: - p = marker; - goto yy200; + yych = *++p; + switch (yych) { + case '-': goto yy205; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy206; + default: goto yy81; + } yy204: - yych = *++p; - switch (yych) { - case 'A': - case 'a': goto yy206; - case 'B': - case 'b': goto yy207; - case 'C': - case 'c': goto yy208; - case 'D': - case 'd': goto yy209; - case 'F': - case 'f': goto yy210; - case 'H': - case 'h': goto yy211; - case 'I': - case 'i': goto yy212; - case 'L': - case 'l': goto yy213; - case 'M': - case 'm': goto yy214; - case 'N': - case 'n': goto yy215; - case 'O': - case 'o': goto yy216; - case 'P': - case 'p': goto yy224; - case 'S': - case 's': goto yy225; - case 'T': - case 't': goto yy226; - case 'U': - case 'u': goto yy220; - default: goto yy203; - } + yych = *++p; + switch (yych) { + case '-': goto yy205; + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy206; + case '>': goto yy86; + default: goto yy81; + } yy205: - ++p; - { return 3; } + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy207; + default: goto yy81; + } yy206: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'D') { - if (yych <= 'C') goto yy203; - goto yy227; - } else { - if (yych <= 'Q') goto yy203; - if (yych <= 'R') goto yy228; - goto yy229; - } - } else { - if (yych <= 'q') { - if (yych == 'd') goto yy227; - goto yy203; - } else { - if (yych <= 'r') goto yy228; - if (yych <= 's') goto yy229; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '.': goto yy82; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy207; + case '>': goto yy86; + default: goto yy81; + } yy207: - yych = *++p; - if (yych <= 'O') { - if (yych <= 'K') { - if (yych == 'A') goto yy230; - goto yy203; - } else { - if (yych <= 'L') goto yy231; - if (yych <= 'N') goto yy203; - goto yy232; - } - } else { - if (yych <= 'k') { - if (yych == 'a') goto yy230; - goto yy203; - } else { - if (yych <= 'l') goto yy231; - if (yych == 'o') goto yy232; - goto yy203; - } - } -yy208: - yych = *++p; - if (yych <= 'O') { - if (yych <= 'D') { - if (yych == 'A') goto yy233; - goto yy203; - } else { - if (yych <= 'E') goto yy234; - if (yych <= 'N') goto yy203; - goto yy235; - } - } else { - if (yych <= 'd') { - if (yych == 'a') goto yy233; - goto yy203; - } else { - if (yych <= 'e') goto yy234; - if (yych == 'o') goto yy235; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '.': goto yy82; + case '>': goto yy86; + default: goto yy81; + } +} + +} + +// Try to match an HTML tag after first <, returning num of chars matched. +bufsize_t _scan_html_tag(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '/': goto yy211; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy212; + default: goto yy209; + } yy209: - yych = *++p; - switch (yych) { - case 'D': - case 'L': - case 'T': - case 'd': - case 'l': - case 't': goto yy236; - case 'E': - case 'e': goto yy237; - case 'I': - case 'i': goto yy238; - default: goto yy203; - } + ++p; yy210: - yych = *++p; - if (yych <= 'R') { - if (yych <= 'N') { - if (yych == 'I') goto yy239; - goto yy203; - } else { - if (yych <= 'O') goto yy240; - if (yych <= 'Q') goto yy203; - goto yy241; - } - } else { - if (yych <= 'n') { - if (yych == 'i') goto yy239; - goto yy203; - } else { - if (yych <= 'o') goto yy240; - if (yych == 'r') goto yy241; - goto yy203; - } - } + { return 0; } yy211: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'D') { - if (yych <= '0') goto yy203; - if (yych <= '6') goto yy236; - goto yy203; - } else { - if (yych <= 'E') goto yy242; - if (yych == 'R') goto yy236; - goto yy203; - } - } else { - if (yych <= 'q') { - if (yych <= 'T') goto yy243; - if (yych == 'e') goto yy242; - goto yy203; - } else { - if (yych <= 'r') goto yy236; - if (yych == 't') goto yy243; - goto yy203; - } - } + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy213; + default: goto yy210; + } yy212: - yych = *++p; - if (yych == 'F') goto yy244; - if (yych == 'f') goto yy244; - goto yy203; + yych = *(marker = ++p); + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '-': + case '/': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '>': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy217; + default: goto yy210; + } yy213: - yych = *++p; - if (yych <= 'I') { - if (yych == 'E') goto yy245; - if (yych <= 'H') goto yy203; - goto yy246; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy203; - goto yy245; - } else { - if (yych == 'i') goto yy246; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy220; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy213; + case '>': goto yy219; + default: goto yy214; + } yy214: - yych = *++p; - if (yych <= 'E') { - if (yych == 'A') goto yy247; - if (yych <= 'D') goto yy203; - goto yy248; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy203; - goto yy247; - } else { - if (yych == 'e') goto yy248; - goto yy203; - } - } + p = marker; + goto yy210; yy215: - yych = *++p; - if (yych <= 'O') { - if (yych == 'A') goto yy249; - if (yych <= 'N') goto yy203; - goto yy250; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy203; - goto yy249; - } else { - if (yych == 'o') goto yy250; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy215; + case '/': goto yy218; + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy221; + case '>': goto yy219; + default: goto yy214; + } yy216: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy236; - if (yych <= 'O') goto yy203; - goto yy251; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy203; - goto yy236; - } else { - if (yych == 'p') goto yy251; - goto yy203; - } - } + yych = *++p; yy217: - yych = *++p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - if (yych <= 0x1F) goto yy203; - goto yy252; - } else { - if (yych == '/') goto yy253; - if (yych <= '=') goto yy203; - goto yy252; - } - } else { - if (yych <= 'R') { - if (yych == 'A') goto yy254; - if (yych <= 'Q') goto yy203; - goto yy255; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy203; - goto yy254; - } else { - if (yych == 'r') goto yy255; - goto yy203; - } - } - } + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy215; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy216; + case '/': goto yy218; + case '>': goto yy219; + default: goto yy214; + } yy218: - yych = *++p; - if (yych <= 'U') { - if (yych <= 'D') { - if (yych == 'C') goto yy256; - goto yy203; - } else { - if (yych <= 'E') goto yy257; - if (yych <= 'S') goto yy203; - if (yych <= 'T') goto yy258; - goto yy259; - } - } else { - if (yych <= 'e') { - if (yych == 'c') goto yy256; - if (yych <= 'd') goto yy203; - goto yy257; - } else { - if (yych <= 's') goto yy203; - if (yych <= 't') goto yy258; - if (yych <= 'u') goto yy259; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '>': goto yy219; + default: goto yy214; + } yy219: - yych = *++p; - switch (yych) { - case 'A': - case 'a': goto yy260; - case 'B': - case 'b': goto yy261; - case 'D': - case 'd': goto yy236; - case 'E': - case 'e': goto yy262; - case 'F': - case 'f': goto yy263; - case 'H': - case 'h': goto yy264; - case 'I': - case 'i': goto yy265; - case 'R': - case 'r': goto yy266; - default: goto yy203; - } + ++p; + { return (bufsize_t)(p - start); } yy220: - yych = *++p; - if (yych == 'L') goto yy236; - if (yych == 'l') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy220; + case '>': goto yy219; + default: goto yy214; + } yy221: - yych = *++p; - if (yych == '-') goto yy267; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy222; + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy221; + case '/': goto yy218; + case '=': goto yy223; + case '>': goto yy219; + default: goto yy214; + } yy222: - ++p; - { return 4; } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy222; + case '/': goto yy218; + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy221; + case '=': goto yy223; + case '>': goto yy219; + default: goto yy214; + } yy223: - yych = *++p; - if (yych == 'C') goto yy268; - if (yych == 'c') goto yy268; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: + case '<': + case '=': + case '>': + case '`': goto yy214; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy223; + case '"': goto yy225; + case '\'': goto yy226; + default: goto yy224; + } yy224: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= '@') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'A') goto yy254; - if (yych == 'a') goto yy254; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 0x00: + case '"': + case '\'': + case '<': + case '=': + case '`': goto yy214; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy215; + case '>': goto yy219; + default: goto yy224; + } yy225: - yych = *++p; - if (yych <= 'U') { - if (yych == 'E') goto yy257; - if (yych <= 'T') goto yy203; - goto yy259; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy203; - goto yy257; - } else { - if (yych == 'u') goto yy259; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 0x00: goto yy214; + case '"': goto yy227; + default: goto yy225; + } yy226: - yych = *++p; - switch (yych) { - case 'A': - case 'a': goto yy260; - case 'B': - case 'b': goto yy261; - case 'D': - case 'd': goto yy236; - case 'F': - case 'f': goto yy263; - case 'H': - case 'h': goto yy264; - case 'I': - case 'i': goto yy265; - case 'R': - case 'r': goto yy266; - default: goto yy203; - } + yych = *++p; + switch (yych) { + case 0x00: goto yy214; + case '\'': goto yy227; + default: goto yy226; + } yy227: - yych = *++p; - if (yych == 'D') goto yy269; - if (yych == 'd') goto yy269; - goto yy203; -yy228: - yych = *++p; - if (yych == 'T') goto yy270; - if (yych == 't') goto yy270; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy215; + case '/': goto yy218; + case '>': goto yy219; + default: goto yy214; + } +} + +} + +bufsize_t _scan_html_comment(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '-': goto yy231; + default: goto yy229; + } yy229: - yych = *++p; - if (yych == 'I') goto yy271; - if (yych == 'i') goto yy271; - goto yy203; + ++p; yy230: - yych = *++p; - if (yych == 'S') goto yy272; - if (yych == 's') goto yy272; - goto yy203; + { return 0; } yy231: - yych = *++p; - if (yych == 'O') goto yy273; - if (yych == 'o') goto yy273; - goto yy203; + yych = *(marker = ++p); + switch (yych) { + case '-': goto yy232; + default: goto yy230; + } yy232: - yych = *++p; - if (yych == 'D') goto yy274; - if (yych == 'd') goto yy274; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: goto yy233; + case '-': goto yy234; + default: goto yy232; + } yy233: - yych = *++p; - if (yych == 'P') goto yy275; - if (yych == 'p') goto yy275; - goto yy203; + p = marker; + goto yy230; yy234: - yych = *++p; - if (yych == 'N') goto yy276; - if (yych == 'n') goto yy276; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: goto yy233; + case '-': goto yy235; + default: goto yy232; + } yy235: - yych = *++p; - if (yych == 'L') goto yy277; - if (yych == 'l') goto yy277; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: goto yy233; + case '>': goto yy236; + default: goto yy232; + } yy236: - yych = *++p; - if (yych <= ' ') { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - if (yych <= 0x1F) goto yy203; - goto yy252; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy203; - goto yy253; - } else { - if (yych == '>') goto yy252; - goto yy203; - } - } -yy237: - yych = *++p; - if (yych == 'T') goto yy278; - if (yych == 't') goto yy278; - goto yy203; + ++p; + { return (bufsize_t)(p - start); } +} + +} + +bufsize_t _scan_html_pi(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case 0x00: goto yy238; + case '?': goto yy242; + default: goto yy240; + } yy238: - yych = *++p; - if (yych <= 'V') { - if (yych <= 'Q') { - if (yych == 'A') goto yy279; - goto yy203; - } else { - if (yych <= 'R') goto yy236; - if (yych <= 'U') goto yy203; - goto yy236; - } - } else { - if (yych <= 'q') { - if (yych == 'a') goto yy279; - goto yy203; - } else { - if (yych <= 'r') goto yy236; - if (yych == 'v') goto yy236; - goto yy203; - } - } + ++p; yy239: - yych = *++p; - if (yych <= 'G') { - if (yych == 'E') goto yy280; - if (yych <= 'F') goto yy203; - goto yy281; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy203; - goto yy280; - } else { - if (yych == 'g') goto yy281; - goto yy203; - } - } + { return 0; } yy240: - yych = *++p; - if (yych <= 'R') { - if (yych == 'O') goto yy276; - if (yych <= 'Q') goto yy203; - goto yy282; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy203; - goto yy276; - } else { - if (yych == 'r') goto yy282; - goto yy203; - } - } + yych = *(marker = ++p); + switch (yych) { + case 0x00: goto yy241; + case '?': goto yy243; + default: goto yy240; + } yy241: - yych = *++p; - if (yych == 'A') goto yy283; - if (yych == 'a') goto yy283; - goto yy203; + { return (bufsize_t)(p - start); } yy242: - yych = *++p; - if (yych == 'A') goto yy284; - if (yych == 'a') goto yy284; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: + case '>': goto yy239; + default: goto yy240; + } yy243: - yych = *++p; - if (yych == 'M') goto yy220; - if (yych == 'm') goto yy220; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: + case '>': goto yy244; + default: goto yy240; + } yy244: - yych = *++p; - if (yych == 'R') goto yy285; - if (yych == 'r') goto yy285; - goto yy203; -yy245: - yych = *++p; - if (yych == 'G') goto yy286; - if (yych == 'g') goto yy286; - goto yy203; + p = marker; + goto yy241; +} + +} + +bufsize_t _scan_html_declaration(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + (void) marker; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy247; + default: goto yy246; + } yy246: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'M') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'N') goto yy287; - if (yych == 'n') goto yy287; - goto yy203; - } - } + ++p; + { return 0; } yy247: - yych = *++p; - if (yych == 'I') goto yy288; - if (yych == 'i') goto yy288; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: + case '>': goto yy248; + default: goto yy247; + } yy248: - yych = *++p; - if (yych == 'N') goto yy289; - if (yych == 'n') goto yy289; - goto yy203; -yy249: - yych = *++p; - if (yych == 'V') goto yy236; - if (yych == 'v') goto yy236; - goto yy203; + { return (bufsize_t)(p - start); } +} + +} + +bufsize_t _scan_html_cdata(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 'C': goto yy252; + default: goto yy250; + } yy250: - yych = *++p; - if (yych == 'F') goto yy290; - if (yych == 'f') goto yy290; - goto yy203; + ++p; yy251: - yych = *++p; - if (yych == 'T') goto yy291; - if (yych == 't') goto yy291; - goto yy203; + { return 0; } yy252: - ++p; - { return 6; } + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 'D': goto yy253; + default: goto yy251; + } yy253: - yych = *++p; - if (yych == '>') goto yy252; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': goto yy255; + default: goto yy254; + } yy254: - yych = *++p; - if (yych == 'R') goto yy292; - if (yych == 'r') goto yy292; - goto yy203; + p = marker; + if (yyaccept == 0) goto yy251; + else goto yy259; yy255: - yych = *++p; - if (yych == 'E') goto yy293; - if (yych == 'e') goto yy293; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': goto yy256; + default: goto yy254; + } yy256: - yych = *++p; - if (yych == 'R') goto yy294; - if (yych == 'r') goto yy294; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': goto yy257; + default: goto yy254; + } yy257: - yych = *++p; - if (yych <= 'C') { - if (yych == 'A') goto yy295; - if (yych <= 'B') goto yy203; - goto yy275; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy203; - goto yy295; - } else { - if (yych == 'c') goto yy275; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '[': goto yy258; + default: goto yy254; + } yy258: - yych = *++p; - if (yych == 'Y') goto yy296; - if (yych == 'y') goto yy296; - goto yy203; + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: goto yy259; + case ']': goto yy260; + default: goto yy258; + } yy259: - yych = *++p; - if (yych == 'M') goto yy297; - if (yych == 'm') goto yy297; - goto yy203; + { return (bufsize_t)(p - start); } yy260: - yych = *++p; - if (yych == 'B') goto yy298; - if (yych == 'b') goto yy298; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: goto yy254; + case ']': goto yy261; + default: goto yy258; + } yy261: - yych = *++p; - if (yych == 'O') goto yy232; - if (yych == 'o') goto yy232; - goto yy203; -yy262: - yych = *++p; - if (yych == 'X') goto yy299; - if (yych == 'x') goto yy299; - goto yy203; + yych = *++p; + switch (yych) { + case 0x00: + case '>': goto yy254; + default: goto yy258; + } +} + +} + +// Try to match an HTML block tag start line, returning +// an integer code for the type of block (1-6, matching the spec). +// #7 is handled by a separate function, below. +bufsize_t _scan_html_block_start(const unsigned char *p) +{ + const unsigned char *marker = NULL; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '<': goto yy265; + default: goto yy263; + } yy263: - yych = *++p; - if (yych == 'O') goto yy300; - if (yych == 'o') goto yy300; - goto yy203; + ++p; yy264: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'D') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'E') goto yy301; - if (yych == 'e') goto yy301; - goto yy203; - } - } + { return 0; } yy265: - yych = *++p; - if (yych == 'T') goto yy298; - if (yych == 't') goto yy298; - goto yy203; + yych = *(marker = ++p); + switch (yych) { + case '!': goto yy266; + case '/': goto yy268; + case '?': goto yy269; + case 'A': + case 'a': goto yy270; + case 'B': + case 'b': goto yy271; + case 'C': + case 'c': goto yy272; + case 'D': + case 'd': goto yy273; + case 'F': + case 'f': goto yy274; + case 'H': + case 'h': goto yy275; + case 'I': + case 'i': goto yy276; + case 'L': + case 'l': goto yy277; + case 'M': + case 'm': goto yy278; + case 'N': + case 'n': goto yy279; + case 'O': + case 'o': goto yy280; + case 'P': + case 'p': goto yy281; + case 'S': + case 's': goto yy282; + case 'T': + case 't': goto yy283; + case 'U': + case 'u': goto yy284; + default: goto yy264; + } yy266: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= '@') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'A') goto yy302; - if (yych == 'a') goto yy302; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '-': goto yy285; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy286; + case '[': goto yy287; + default: goto yy267; + } yy267: - ++p; - { return 2; } + p = marker; + goto yy264; yy268: - yych = *++p; - if (yych == 'D') goto yy303; - if (yych == 'd') goto yy303; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy270; + case 'B': + case 'b': goto yy271; + case 'C': + case 'c': goto yy272; + case 'D': + case 'd': goto yy273; + case 'F': + case 'f': goto yy274; + case 'H': + case 'h': goto yy275; + case 'I': + case 'i': goto yy276; + case 'L': + case 'l': goto yy277; + case 'M': + case 'm': goto yy278; + case 'N': + case 'n': goto yy279; + case 'O': + case 'o': goto yy280; + case 'P': + case 'p': goto yy288; + case 'S': + case 's': goto yy289; + case 'T': + case 't': goto yy290; + case 'U': + case 'u': goto yy284; + default: goto yy267; + } yy269: - yych = *++p; - if (yych == 'R') goto yy304; - if (yych == 'r') goto yy304; - goto yy203; + ++p; + { return 3; } yy270: - yych = *++p; - if (yych == 'I') goto yy305; - if (yych == 'i') goto yy305; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy291; + case 'R': + case 'r': goto yy292; + case 'S': + case 's': goto yy293; + default: goto yy267; + } yy271: - yych = *++p; - if (yych == 'D') goto yy306; - if (yych == 'd') goto yy306; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy294; + case 'L': + case 'l': goto yy295; + case 'O': + case 'o': goto yy296; + default: goto yy267; + } yy272: - yych = *++p; - if (yych == 'E') goto yy307; - if (yych == 'e') goto yy307; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy297; + case 'E': + case 'e': goto yy298; + case 'O': + case 'o': goto yy299; + default: goto yy267; + } yy273: - yych = *++p; - if (yych == 'C') goto yy308; - if (yych == 'c') goto yy308; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'L': + case 'T': + case 'd': + case 'l': + case 't': goto yy300; + case 'E': + case 'e': goto yy301; + case 'I': + case 'i': goto yy302; + default: goto yy267; + } yy274: - yych = *++p; - if (yych == 'Y') goto yy236; - if (yych == 'y') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy303; + case 'O': + case 'o': goto yy304; + case 'R': + case 'r': goto yy305; + default: goto yy267; + } yy275: - yych = *++p; - if (yych == 'T') goto yy309; - if (yych == 't') goto yy309; - goto yy203; + yych = *++p; + switch (yych) { + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case 'R': + case 'r': goto yy300; + case 'E': + case 'e': goto yy306; + case 'T': + case 't': goto yy307; + default: goto yy267; + } yy276: - yych = *++p; - if (yych == 'T') goto yy310; - if (yych == 't') goto yy310; - goto yy203; + yych = *++p; + switch (yych) { + case 'F': + case 'f': goto yy308; + default: goto yy267; + } yy277: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'F') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'G') goto yy311; - if (yych == 'g') goto yy311; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy309; + case 'I': + case 'i': goto yy310; + default: goto yy267; + } yy278: - yych = *++p; - if (yych == 'A') goto yy312; - if (yych == 'a') goto yy312; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy311; + case 'E': + case 'e': goto yy312; + default: goto yy267; + } yy279: - yych = *++p; - if (yych == 'L') goto yy313; - if (yych == 'l') goto yy313; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy313; + case 'O': + case 'o': goto yy314; + default: goto yy267; + } yy280: - yych = *++p; - if (yych == 'L') goto yy314; - if (yych == 'l') goto yy314; - goto yy203; + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy300; + case 'P': + case 'p': goto yy315; + default: goto yy267; + } yy281: - yych = *++p; - if (yych <= 'U') { - if (yych == 'C') goto yy315; - if (yych <= 'T') goto yy203; - goto yy316; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy203; - goto yy315; - } else { - if (yych == 'u') goto yy316; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'A': + case 'a': goto yy318; + case 'R': + case 'r': goto yy319; + default: goto yy267; + } yy282: - yych = *++p; - if (yych == 'M') goto yy236; - if (yych == 'm') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy320; + case 'E': + case 'e': goto yy321; + case 'T': + case 't': goto yy322; + case 'U': + case 'u': goto yy323; + default: goto yy267; + } yy283: - yych = *++p; - if (yych == 'M') goto yy317; - if (yych == 'm') goto yy317; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy324; + case 'B': + case 'b': goto yy325; + case 'D': + case 'd': goto yy300; + case 'E': + case 'e': goto yy326; + case 'F': + case 'f': goto yy327; + case 'H': + case 'h': goto yy328; + case 'I': + case 'i': goto yy329; + case 'R': + case 'r': goto yy330; + default: goto yy267; + } yy284: - yych = *++p; - if (yych == 'D') goto yy318; - if (yych == 'd') goto yy318; - goto yy203; + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy300; + default: goto yy267; + } yy285: - yych = *++p; - if (yych == 'A') goto yy319; - if (yych == 'a') goto yy319; - goto yy203; + yych = *++p; + switch (yych) { + case '-': goto yy331; + default: goto yy267; + } yy286: - yych = *++p; - if (yych == 'E') goto yy320; - if (yych == 'e') goto yy320; - goto yy203; + ++p; + { return 4; } yy287: - yych = *++p; - if (yych == 'K') goto yy236; - if (yych == 'k') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy332; + default: goto yy267; + } yy288: - yych = *++p; - if (yych == 'N') goto yy236; - if (yych == 'n') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'A': + case 'a': goto yy318; + default: goto yy267; + } yy289: - yych = *++p; - if (yych == 'U') goto yy321; - if (yych == 'u') goto yy321; - goto yy203; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy321; + case 'U': + case 'u': goto yy323; + default: goto yy267; + } yy290: - yych = *++p; - if (yych == 'R') goto yy322; - if (yych == 'r') goto yy322; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy324; + case 'B': + case 'b': goto yy325; + case 'D': + case 'd': goto yy300; + case 'F': + case 'f': goto yy327; + case 'H': + case 'h': goto yy328; + case 'I': + case 'i': goto yy329; + case 'R': + case 'r': goto yy330; + default: goto yy267; + } yy291: - yych = *++p; - if (yych <= 'I') { - if (yych == 'G') goto yy311; - if (yych <= 'H') goto yy203; - goto yy323; - } else { - if (yych <= 'g') { - if (yych <= 'f') goto yy203; - goto yy311; - } else { - if (yych == 'i') goto yy323; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy333; + default: goto yy267; + } yy292: - yych = *++p; - if (yych == 'A') goto yy282; - if (yych == 'a') goto yy282; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy334; + default: goto yy267; + } yy293: - yych = *++p; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy324; - goto yy203; - } else { - if (yych <= ' ') goto yy324; - if (yych == '>') goto yy324; - goto yy203; - } + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy335; + default: goto yy267; + } yy294: - yych = *++p; - if (yych == 'I') goto yy325; - if (yych == 'i') goto yy325; - goto yy203; + yych = *++p; + switch (yych) { + case 'S': + case 's': goto yy336; + default: goto yy267; + } yy295: - yych = *++p; - if (yych == 'R') goto yy326; - if (yych == 'r') goto yy326; - goto yy203; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy337; + default: goto yy267; + } yy296: - yych = *++p; - if (yych == 'L') goto yy255; - if (yych == 'l') goto yy255; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy338; + default: goto yy267; + } yy297: - yych = *++p; - if (yych == 'M') goto yy327; - if (yych == 'm') goto yy327; - goto yy203; + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy339; + default: goto yy267; + } yy298: - yych = *++p; - if (yych == 'L') goto yy306; - if (yych == 'l') goto yy306; - goto yy203; + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy340; + default: goto yy267; + } yy299: - yych = *++p; - if (yych == 'T') goto yy328; - if (yych == 't') goto yy328; - goto yy203; + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy341; + default: goto yy267; + } yy300: - yych = *++p; - if (yych == 'O') goto yy329; - if (yych == 'o') goto yy329; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + default: goto yy267; + } yy301: - yych = *++p; - if (yych == 'A') goto yy330; - if (yych == 'a') goto yy330; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy342; + default: goto yy267; + } yy302: - yych = *++p; - if (yych == 'C') goto yy287; - if (yych == 'c') goto yy287; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy343; + case 'R': + case 'V': + case 'r': + case 'v': goto yy300; + default: goto yy267; + } yy303: - yych = *++p; - if (yych == 'A') goto yy331; - if (yych == 'a') goto yy331; - goto yy203; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy344; + case 'G': + case 'g': goto yy345; + default: goto yy267; + } yy304: - yych = *++p; - if (yych == 'E') goto yy332; - if (yych == 'e') goto yy332; - goto yy203; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy340; + case 'R': + case 'r': goto yy346; + default: goto yy267; + } yy305: - yych = *++p; - if (yych == 'C') goto yy298; - if (yych == 'c') goto yy298; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy347; + default: goto yy267; + } yy306: - yych = *++p; - if (yych == 'E') goto yy236; - if (yych == 'e') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy348; + default: goto yy267; + } yy307: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'E') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'F') goto yy333; - if (yych == 'f') goto yy333; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy284; + default: goto yy267; + } yy308: - yych = *++p; - if (yych == 'K') goto yy334; - if (yych == 'k') goto yy334; - goto yy203; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy349; + default: goto yy267; + } yy309: - yych = *++p; - if (yych == 'I') goto yy323; - if (yych == 'i') goto yy323; - goto yy203; + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy350; + default: goto yy267; + } yy310: - yych = *++p; - if (yych == 'E') goto yy335; - if (yych == 'e') goto yy335; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'N': + case 'n': goto yy351; + default: goto yy267; + } yy311: - yych = *++p; - if (yych == 'R') goto yy336; - if (yych == 'r') goto yy336; - goto yy203; + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy352; + default: goto yy267; + } yy312: - yych = *++p; - if (yych == 'I') goto yy337; - if (yych == 'i') goto yy337; - goto yy203; + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy353; + default: goto yy267; + } yy313: - yych = *++p; - if (yych == 'O') goto yy338; - if (yych == 'o') goto yy338; - goto yy203; + yych = *++p; + switch (yych) { + case 'V': + case 'v': goto yy300; + default: goto yy267; + } yy314: - yych = *++p; - if (yych == 'D') goto yy339; - if (yych == 'd') goto yy339; - goto yy203; + yych = *++p; + switch (yych) { + case 'F': + case 'f': goto yy354; + default: goto yy267; + } yy315: - yych = *++p; - if (yych == 'A') goto yy233; - if (yych == 'a') goto yy233; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy355; + default: goto yy267; + } yy316: - yych = *++p; - if (yych == 'R') goto yy306; - if (yych == 'r') goto yy306; - goto yy203; + ++p; + { return 6; } yy317: - yych = *++p; - if (yych == 'E') goto yy340; - if (yych == 'e') goto yy340; - goto yy203; + yych = *++p; + switch (yych) { + case '>': goto yy316; + default: goto yy267; + } yy318: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'D') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'E') goto yy335; - if (yych == 'e') goto yy335; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy356; + default: goto yy267; + } yy319: - yych = *++p; - if (yych == 'M') goto yy306; - if (yych == 'm') goto yy306; - goto yy203; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy357; + default: goto yy267; + } yy320: - yych = *++p; - if (yych == 'N') goto yy330; - if (yych == 'n') goto yy330; - goto yy203; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy358; + default: goto yy267; + } yy321: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'H') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'I') goto yy341; - if (yych == 'i') goto yy341; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy359; + case 'C': + case 'c': goto yy339; + default: goto yy267; + } yy322: - yych = *++p; - if (yych == 'A') goto yy342; - if (yych == 'a') goto yy342; - goto yy203; + yych = *++p; + switch (yych) { + case 'Y': + case 'y': goto yy360; + default: goto yy267; + } yy323: - yych = *++p; - if (yych == 'O') goto yy288; - if (yych == 'o') goto yy288; - goto yy203; + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy361; + default: goto yy267; + } yy324: - ++p; - { return 1; } + yych = *++p; + switch (yych) { + case 'B': + case 'b': goto yy362; + default: goto yy267; + } yy325: - yych = *++p; - if (yych == 'P') goto yy343; - if (yych == 'p') goto yy343; - goto yy203; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy296; + default: goto yy267; + } yy326: - yych = *++p; - if (yych == 'C') goto yy344; - if (yych == 'c') goto yy344; - goto yy203; + yych = *++p; + switch (yych) { + case 'X': + case 'x': goto yy363; + default: goto yy267; + } yy327: - yych = *++p; - if (yych == 'A') goto yy345; - if (yych == 'a') goto yy345; - goto yy203; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy364; + default: goto yy267; + } yy328: - yych = *++p; - if (yych == 'A') goto yy346; - if (yych == 'a') goto yy346; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'E': + case 'e': goto yy365; + default: goto yy267; + } yy329: - yych = *++p; - if (yych == 'T') goto yy236; - if (yych == 't') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy362; + default: goto yy267; + } yy330: - yych = *++p; - if (yych == 'D') goto yy236; - if (yych == 'd') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'A': + case 'a': goto yy366; + default: goto yy267; + } yy331: - yych = *++p; - if (yych == 'T') goto yy347; - if (yych == 't') goto yy347; - goto yy203; + ++p; + { return 2; } yy332: - yych = *++p; - if (yych == 'S') goto yy348; - if (yych == 's') goto yy348; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy367; + default: goto yy267; + } yy333: - yych = *++p; - if (yych == 'O') goto yy349; - if (yych == 'o') goto yy349; - goto yy203; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy368; + default: goto yy267; + } yy334: - yych = *++p; - if (yych == 'Q') goto yy350; - if (yych == 'q') goto yy350; - goto yy203; + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy369; + default: goto yy267; + } yy335: - yych = *++p; - if (yych == 'R') goto yy236; - if (yych == 'r') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy370; + default: goto yy267; + } yy336: - yych = *++p; - if (yych == 'O') goto yy351; - if (yych == 'o') goto yy351; - goto yy203; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy371; + default: goto yy267; + } yy337: - yych = *++p; - if (yych == 'L') goto yy348; - if (yych == 'l') goto yy348; - goto yy203; + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy372; + default: goto yy267; + } yy338: - yych = *++p; - if (yych == 'G') goto yy236; - if (yych == 'g') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'Y': + case 'y': goto yy300; + default: goto yy267; + } yy339: - yych = *++p; - if (yych == 'S') goto yy352; - if (yych == 's') goto yy352; - goto yy203; + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy373; + default: goto yy267; + } yy340: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy203; - if (yych <= '\r') goto yy252; - goto yy203; - } else { - if (yych <= ' ') goto yy252; - if (yych <= '.') goto yy203; - goto yy253; - } - } else { - if (yych <= 'R') { - if (yych == '>') goto yy252; - goto yy203; - } else { - if (yych <= 'S') goto yy352; - if (yych == 's') goto yy352; - goto yy203; - } - } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy374; + default: goto yy267; + } yy341: - yych = *++p; - if (yych == 'T') goto yy353; - if (yych == 't') goto yy353; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'G': + case 'g': goto yy375; + default: goto yy267; + } yy342: - yych = *++p; - if (yych == 'M') goto yy354; - if (yych == 'm') goto yy354; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy376; + default: goto yy267; + } yy343: - yych = *++p; - if (yych == 'T') goto yy293; - if (yych == 't') goto yy293; - goto yy203; + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy377; + default: goto yy267; + } yy344: - yych = *++p; - if (yych == 'H') goto yy236; - if (yych == 'h') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy378; + default: goto yy267; + } yy345: - yych = *++p; - if (yych == 'R') goto yy274; - if (yych == 'r') goto yy274; - goto yy203; + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy379; + case 'U': + case 'u': goto yy380; + default: goto yy267; + } yy346: - yych = *++p; - if (yych == 'R') goto yy355; - if (yych == 'r') goto yy355; - goto yy203; + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy300; + default: goto yy267; + } yy347: - yych = *++p; - if (yych == 'A') goto yy356; - if (yych == 'a') goto yy356; - goto yy203; + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy381; + default: goto yy267; + } yy348: - yych = *++p; - if (yych == 'S') goto yy236; - if (yych == 's') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy382; + default: goto yy267; + } yy349: - yych = *++p; - if (yych == 'N') goto yy329; - if (yych == 'n') goto yy329; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy383; + default: goto yy267; + } yy350: - yych = *++p; - if (yych == 'U') goto yy357; - if (yych == 'u') goto yy357; - goto yy203; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy384; + default: goto yy267; + } yy351: - yych = *++p; - if (yych == 'U') goto yy358; - if (yych == 'u') goto yy358; - goto yy203; + yych = *++p; + switch (yych) { + case 'K': + case 'k': goto yy300; + default: goto yy267; + } yy352: - yych = *++p; - if (yych == 'E') goto yy329; - if (yych == 'e') goto yy329; - goto yy203; + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy300; + default: goto yy267; + } yy353: - yych = *++p; - if (yych == 'E') goto yy282; - if (yych == 'e') goto yy282; - goto yy203; + yych = *++p; + switch (yych) { + case 'U': + case 'u': goto yy385; + default: goto yy267; + } yy354: - yych = *++p; - if (yych == 'E') goto yy348; - if (yych == 'e') goto yy348; - goto yy203; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy386; + default: goto yy267; + } yy355: - yych = *++p; - if (yych == 'E') goto yy359; - if (yych == 'e') goto yy359; - goto yy203; + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy375; + case 'I': + case 'i': goto yy387; + default: goto yy267; + } yy356: - yych = *++p; - if (yych == '[') goto yy360; - goto yy203; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy346; + default: goto yy267; + } yy357: - yych = *++p; - if (yych == 'O') goto yy361; - if (yych == 'o') goto yy361; - goto yy203; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy388; + default: goto yy267; + } yy358: - yych = *++p; - if (yych == 'P') goto yy236; - if (yych == 'p') goto yy236; - goto yy203; + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy389; + default: goto yy267; + } yy359: - yych = *++p; - if (yych == 'A') goto yy293; - if (yych == 'a') goto yy293; - goto yy203; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy390; + default: goto yy267; + } yy360: - ++p; - { return 5; } + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy319; + default: goto yy267; + } yy361: - yych = *++p; - if (yych == 'T') goto yy306; - if (yych == 't') goto yy306; - goto yy203; - } - -} - -// Try to match an HTML block tag start line of type 7, returning -// 7 if successful, 0 if not. -bufsize_t _scan_html_block_start_7(const unsigned char *p) -{ - const unsigned char *marker = NULL; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 224, 224, 224, 224, 224, 224, 224, - 224, 198, 210, 194, 198, 194, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 198, 224, 128, 224, 224, 224, 224, 64, - 224, 224, 224, 224, 224, 233, 232, 224, - 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 232, 224, 192, 192, 192, 224, - 224, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 224, 224, 224, 224, 232, - 192, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224 - }; - yych = *p; - if (yych == '<') goto yy364; - ++p; + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy391; + default: goto yy267; + } +yy362: + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy370; + default: goto yy267; + } yy363: - { return 0; } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy392; + default: goto yy267; + } yy364: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '@') { - if (yych != '/') goto yy363; - } else { - if (yych <= 'Z') goto yy366; - if (yych <= '`') goto yy363; - if (yych <= 'z') goto yy366; - goto yy363; - } - yych = *++p; - if (yych <= '@') goto yy365; - if (yych <= 'Z') goto yy367; - if (yych <= '`') goto yy365; - if (yych <= 'z') goto yy367; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy393; + default: goto yy267; + } yy365: - p = marker; - if (yyaccept == 0) goto yy363; - else goto yy374; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy394; + default: goto yy267; + } yy366: - yych = *++p; - if (yybm[0+yych] & 2) goto yy368; - if (yych <= '=') { - if (yych <= '.') { - if (yych == '-') goto yy366; - goto yy365; - } else { - if (yych <= '/') goto yy369; - if (yych <= '9') goto yy366; - goto yy365; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy370; - if (yych <= '@') goto yy365; - goto yy366; - } else { - if (yych <= '`') goto yy365; - if (yych <= 'z') goto yy366; - goto yy365; - } - } + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy351; + default: goto yy267; + } yy367: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy365; - if (yych <= '\r') goto yy371; - goto yy365; - } else { - if (yych <= ' ') goto yy371; - if (yych == '-') goto yy367; - goto yy365; - } - } else { - if (yych <= '@') { - if (yych <= '9') goto yy367; - if (yych == '>') goto yy370; - goto yy365; - } else { - if (yych <= 'Z') goto yy367; - if (yych <= '`') goto yy365; - if (yych <= 'z') goto yy367; - goto yy365; - } - } + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy395; + default: goto yy267; + } yy368: - yych = *++p; - if (yybm[0+yych] & 2) goto yy368; - if (yych <= '>') { - if (yych <= '9') { - if (yych != '/') goto yy365; - } else { - if (yych <= ':') goto yy372; - if (yych <= '=') goto yy365; - goto yy370; - } - } else { - if (yych <= '^') { - if (yych <= '@') goto yy365; - if (yych <= 'Z') goto yy372; - goto yy365; - } else { - if (yych == '`') goto yy365; - if (yych <= 'z') goto yy372; - goto yy365; - } - } + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy396; + default: goto yy267; + } yy369: - yych = *++p; - if (yych != '>') goto yy365; + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy362; + default: goto yy267; + } yy370: - yych = *++p; - if (yybm[0+yych] & 4) goto yy370; - if (yych <= 0x08) goto yy365; - if (yych <= '\n') goto yy373; - if (yych <= '\v') goto yy365; - if (yych <= '\r') goto yy375; - goto yy365; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy300; + default: goto yy267; + } yy371: - yych = *++p; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy365; - if (yych <= '\r') goto yy371; - goto yy365; - } else { - if (yych <= ' ') goto yy371; - if (yych == '>') goto yy370; - goto yy365; - } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'F': + case 'f': goto yy397; + default: goto yy267; + } yy372: - yych = *++p; - if (yybm[0+yych] & 8) goto yy372; - if (yych <= ',') { - if (yych <= '\r') { - if (yych <= 0x08) goto yy365; - goto yy376; - } else { - if (yych == ' ') goto yy376; - goto yy365; - } - } else { - if (yych <= '<') { - if (yych <= '/') goto yy369; - goto yy365; - } else { - if (yych <= '=') goto yy377; - if (yych <= '>') goto yy370; - goto yy365; - } - } + yych = *++p; + switch (yych) { + case 'K': + case 'k': goto yy398; + default: goto yy267; + } yy373: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 4) goto yy370; - if (yych <= 0x08) goto yy374; - if (yych <= '\n') goto yy373; - if (yych <= '\v') goto yy374; - if (yych <= '\r') goto yy375; + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy387; + default: goto yy267; + } yy374: - { return 7; } + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy399; + default: goto yy267; + } yy375: - ++p; - goto yy374; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy400; + default: goto yy267; + } yy376: - yych = *++p; - if (yych <= '<') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy365; - if (yych <= '\r') goto yy376; - if (yych <= 0x1F) goto yy365; - goto yy376; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy365; - goto yy369; - } else { - if (yych == ':') goto yy372; - goto yy365; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '=') goto yy377; - if (yych <= '>') goto yy370; - if (yych <= '@') goto yy365; - goto yy372; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy365; - goto yy372; - } else { - if (yych <= '`') goto yy365; - if (yych <= 'z') goto yy372; - goto yy365; - } - } - } + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy401; + default: goto yy267; + } yy377: - yych = *++p; - if (yybm[0+yych] & 32) goto yy378; - if (yych <= 0x00) goto yy365; - if (yych <= ' ') goto yy377; - if (yych <= '"') goto yy379; - if (yych <= '\'') goto yy380; - goto yy365; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy402; + default: goto yy267; + } yy378: - yych = *++p; - if (yybm[0+yych] & 32) goto yy378; - if (yych <= 0x00) goto yy365; - if (yych <= ' ') goto yy368; - if (yych == '>') goto yy370; - goto yy365; + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy403; + default: goto yy267; + } yy379: - yych = *++p; - if (yybm[0+yych] & 64) goto yy379; - if (yych <= 0x00) goto yy365; - goto yy381; + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy297; + default: goto yy267; + } yy380: - yych = *++p; - if (yybm[0+yych] & 128) goto yy380; - if (yych <= 0x00) goto yy365; + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy370; + default: goto yy267; + } yy381: - yych = *++p; - if (yybm[0+yych] & 2) goto yy368; - if (yych == '/') goto yy369; - if (yych == '>') goto yy370; - goto yy365; - } - -} - -// Try to match an HTML block end line of type 1 -bufsize_t _scan_html_block_end_1(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 128, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64 - }; - yych = *p; - if (yych <= '\n') { - if (yych <= 0x00) goto yy383; - if (yych <= '\t') goto yy385; - } else { - if (yych == '<') goto yy386; - goto yy385; - } + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy404; + default: goto yy267; + } +yy382: + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'E': + case 'e': goto yy399; + default: goto yy267; + } yy383: - ++p; + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy370; + default: goto yy267; + } yy384: - { return 0; } + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy394; + default: goto yy267; + } yy385: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy384; - if (yych == '\n') goto yy384; - goto yy388; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'I': + case 'i': goto yy405; + default: goto yy267; + } yy386: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '\n') { - if (yych <= 0x00) goto yy384; - if (yych <= '\t') goto yy388; - goto yy384; - } else { - if (yych == '/') goto yy391; - goto yy388; - } + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy406; + default: goto yy267; + } yy387: - yych = *++p; + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy352; + default: goto yy267; + } yy388: - if (yybm[0+yych] & 64) goto yy387; - if (yych >= '\v') goto yy390; + ++p; + { return 1; } yy389: - p = marker; - if (yyaccept == 0) goto yy384; - else goto yy404; + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy407; + default: goto yy267; + } yy390: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= '\n') { - if (yych <= 0x00) goto yy389; - if (yych <= '\t') goto yy387; - goto yy389; - } else { - if (yych != '/') goto yy387; - } + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy408; + default: goto yy267; + } yy391: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'S') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy389; - if (yych <= '\t') goto yy387; - goto yy389; - } else { - if (yych == 'P') goto yy392; - if (yych <= 'R') goto yy387; - goto yy393; - } - } else { - if (yych <= 'p') { - if (yych <= 'T') goto yy394; - if (yych <= 'o') goto yy387; - } else { - if (yych <= 'r') goto yy387; - if (yych <= 's') goto yy393; - if (yych <= 't') goto yy394; - goto yy387; - } - } + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy409; + default: goto yy267; + } yy392: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'Q') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'R') goto yy395; - if (yych == 'r') goto yy395; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy410; + default: goto yy267; + } yy393: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'S') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy389; - if (yych <= '\t') goto yy387; - goto yy389; - } else { - if (yych == 'C') goto yy396; - goto yy387; - } - } else { - if (yych <= 'c') { - if (yych <= 'T') goto yy397; - if (yych <= 'b') goto yy387; - goto yy396; - } else { - if (yych == 't') goto yy397; - goto yy387; - } - } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy300; + default: goto yy267; + } yy394: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'D') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'E') goto yy398; - if (yych == 'e') goto yy398; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy300; + default: goto yy267; + } yy395: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'D') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'E') goto yy399; - if (yych == 'e') goto yy399; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy411; + default: goto yy267; + } yy396: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'Q') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'R') goto yy400; - if (yych == 'r') goto yy400; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'S': + case 's': goto yy412; + default: goto yy267; + } yy397: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'X') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'Y') goto yy401; - if (yych == 'y') goto yy401; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy413; + default: goto yy267; + } yy398: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'W') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'X') goto yy402; - if (yych == 'x') goto yy402; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'Q': + case 'q': goto yy414; + default: goto yy267; + } yy399: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= '\n') { - if (yych <= 0x00) goto yy389; - if (yych <= '\t') goto yy387; - goto yy389; - } else { - if (yych == '>') goto yy403; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy300; + default: goto yy267; + } yy400: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'H') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'I') goto yy405; - if (yych == 'i') goto yy405; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy415; + default: goto yy267; + } yy401: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'K') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'L') goto yy395; - if (yych == 'l') goto yy395; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy412; + default: goto yy267; + } yy402: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'S') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'T') goto yy406; - if (yych == 't') goto yy406; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy300; + default: goto yy267; + } yy403: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy387; - if (yych >= '\v') goto yy390; + yych = *++p; + switch (yych) { + case 'S': + case 's': goto yy416; + default: goto yy267; + } yy404: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + case '>': goto yy316; + case '/': goto yy317; + case 'S': + case 's': goto yy416; + default: goto yy267; + } yy405: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'O') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'P') goto yy407; - if (yych == 'p') goto yy407; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy417; + default: goto yy267; + } yy406: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= '@') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'A') goto yy408; - if (yych == 'a') goto yy408; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy418; + default: goto yy267; + } yy407: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'S') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'T') goto yy399; - if (yych == 't') goto yy399; - goto yy387; - } + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy357; + default: goto yy267; + } yy408: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'Q') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'R') goto yy409; - if (yych != 'r') goto yy387; - } + yych = *++p; + switch (yych) { + case 'H': + case 'h': goto yy300; + default: goto yy267; + } yy409: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= 'D') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'E') goto yy410; - if (yych != 'e') goto yy387; - } + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy338; + default: goto yy267; + } yy410: - yych = *++p; - if (yybm[0+yych] & 128) goto yy390; - if (yych <= '@') { - if (yych <= 0x00) goto yy389; - if (yych == '\n') goto yy389; - goto yy387; - } else { - if (yych <= 'A') goto yy399; - if (yych == 'a') goto yy399; - goto yy387; - } - } - -} - -// Try to match an HTML block end line of type 2 -bufsize_t _scan_html_block_end_2(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 128, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64 - }; - yych = *p; - if (yych <= '\n') { - if (yych <= 0x00) goto yy412; - if (yych <= '\t') goto yy414; - } else { - if (yych == '-') goto yy415; - goto yy414; - } + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy419; + default: goto yy267; + } +yy411: + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy420; + default: goto yy267; + } yy412: - ++p; + yych = *++p; + switch (yych) { + case 'S': + case 's': goto yy300; + default: goto yy267; + } yy413: - { return 0; } + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy393; + default: goto yy267; + } yy414: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy413; - if (yych == '\n') goto yy413; - goto yy417; + yych = *++p; + switch (yych) { + case 'U': + case 'u': goto yy421; + default: goto yy267; + } yy415: - yyaccept = 0; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy416; - if (yych <= '\n') goto yy413; - goto yy420; + yych = *++p; + switch (yych) { + case 'U': + case 'u': goto yy422; + default: goto yy267; + } yy416: - yych = *++p; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy393; + default: goto yy267; + } yy417: - if (yybm[0+yych] & 64) goto yy416; - if (yych >= '\v') goto yy419; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy346; + default: goto yy267; + } yy418: - p = marker; - if (yyaccept == 0) goto yy413; - else goto yy421; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy412; + default: goto yy267; + } yy419: - yych = *++p; - if (yybm[0+yych] & 64) goto yy416; - if (yych <= '\n') goto yy418; + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy423; + default: goto yy267; + } yy420: - yych = *++p; - if (yybm[0+yych] & 128) goto yy420; - if (yych <= '\n') { - if (yych <= 0x00) goto yy418; - if (yych <= '\t') goto yy416; - goto yy418; - } else { - if (yych != '>') goto yy416; - } - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy416; - if (yych >= '\v') goto yy419; + yych = *++p; + switch (yych) { + case '[': goto yy424; + default: goto yy267; + } yy421: - { return (bufsize_t)(p - start); } - } + yych = *++p; + switch (yych) { + case 'O': + case 'o': goto yy425; + default: goto yy267; + } +yy422: + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy300; + default: goto yy267; + } +yy423: + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy357; + default: goto yy267; + } +yy424: + ++p; + { return 5; } +yy425: + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy370; + default: goto yy267; + } +} } -// Try to match an HTML block end line of type 3 -bufsize_t _scan_html_block_end_3(const unsigned char *p) +// Try to match an HTML block tag start line of type 7, returning +// 7 if successful, 0 if not. +bufsize_t _scan_html_block_start_7(const unsigned char *p) { const unsigned char *marker = NULL; - const unsigned char *start = p; - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 128, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64 - }; - yych = *p; - if (yych <= '\n') { - if (yych <= 0x00) goto yy423; - if (yych <= '\t') goto yy425; - } else { - if (yych == '?') goto yy426; - goto yy425; - } -yy423: - ++p; -yy424: - { return 0; } -yy425: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy424; - if (yych == '\n') goto yy424; - goto yy428; -yy426: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '\n') { - if (yych <= 0x00) goto yy424; - if (yych <= '\t') goto yy428; - goto yy424; - } else { - if (yych == '>') goto yy431; - goto yy428; - } +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case '<': goto yy429; + default: goto yy427; + } yy427: - yych = *++p; + ++p; yy428: - if (yybm[0+yych] & 64) goto yy427; - if (yych >= '\v') goto yy430; + { return 0; } yy429: - p = marker; - if (yyaccept == 0) goto yy424; - else goto yy432; + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case '/': goto yy430; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy432; + default: goto yy428; + } yy430: - yych = *++p; - if (yybm[0+yych] & 128) goto yy430; - if (yych <= '\n') { - if (yych <= 0x00) goto yy429; - if (yych <= '\t') goto yy427; - goto yy429; - } else { - if (yych != '>') goto yy427; - } + yych = *++p; + switch (yych) { + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy433; + default: goto yy431; + } yy431: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy427; - if (yych >= '\v') goto yy430; + p = marker; + if (yyaccept == 0) goto yy428; + else goto yy440; yy432: - { return (bufsize_t)(p - start); } - } - -} - -// Try to match an HTML block end line of type 4 -bufsize_t _scan_html_block_end_4(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 64, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128 - }; - yych = *p; - if (yybm[0+yych] & 64) goto yy437; - if (yych <= 0x00) goto yy434; - if (yych != '\n') goto yy436; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy434; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy432; + case '/': goto yy435; + case '>': goto yy436; + default: goto yy431; + } +yy433: + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy437; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy433; + case '>': goto yy436; + default: goto yy431; + } yy434: - ++p; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy434; + case '/': goto yy435; + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy438; + case '>': goto yy436; + default: goto yy431; + } yy435: - { return 0; } + yych = *++p; + switch (yych) { + case '>': goto yy436; + default: goto yy431; + } yy436: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy435; - if (yych == '\n') goto yy435; - goto yy440; + yych = *++p; + switch (yych) { + case '\t': + case '\f': + case ' ': goto yy436; + case '\n': goto yy439; + case '\r': goto yy441; + default: goto yy431; + } yy437: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy439; - if (yych >= '\v') goto yy437; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy437; + case '>': goto yy436; + default: goto yy431; + } yy438: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy442; + case '-': + case '.': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy438; + case '/': goto yy435; + case '=': goto yy443; + case '>': goto yy436; + default: goto yy431; + } yy439: - yych = *++p; + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case '\t': + case '\f': + case ' ': goto yy436; + case '\n': goto yy439; + case '\r': goto yy441; + default: goto yy440; + } yy440: - if (yybm[0+yych] & 128) goto yy439; - if (yych >= '\v') goto yy437; - p = marker; - if (yyaccept == 0) goto yy435; - else goto yy438; - } - -} - -// Try to match an HTML block end line of type 5 -bufsize_t _scan_html_block_end_5(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 128, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64 - }; - yych = *p; - if (yych <= '\n') { - if (yych <= 0x00) goto yy442; - if (yych <= '\t') goto yy444; - } else { - if (yych == ']') goto yy445; - goto yy444; - } + { return 7; } +yy441: + ++p; + goto yy440; yy442: - ++p; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy442; + case '/': goto yy435; + case ':': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy438; + case '=': goto yy443; + case '>': goto yy436; + default: goto yy431; + } yy443: - { return 0; } + yych = *++p; + switch (yych) { + case 0x00: + case '<': + case '=': + case '>': + case '`': goto yy431; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy443; + case '"': goto yy445; + case '\'': goto yy446; + default: goto yy444; + } yy444: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy443; - if (yych == '\n') goto yy443; - goto yy447; + yych = *++p; + switch (yych) { + case 0x00: + case '"': + case '\'': + case '<': + case '=': + case '`': goto yy431; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy434; + case '>': goto yy436; + default: goto yy444; + } yy445: - yyaccept = 0; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy446; - if (yych <= '\n') goto yy443; - goto yy450; + yych = *++p; + switch (yych) { + case 0x00: goto yy431; + case '"': goto yy447; + default: goto yy445; + } yy446: - yych = *++p; + yych = *++p; + switch (yych) { + case 0x00: goto yy431; + case '\'': goto yy447; + default: goto yy446; + } yy447: - if (yybm[0+yych] & 64) goto yy446; - if (yych >= '\v') goto yy449; -yy448: - p = marker; - if (yyaccept == 0) goto yy443; - else goto yy451; -yy449: - yych = *++p; - if (yybm[0+yych] & 64) goto yy446; - if (yych <= '\n') goto yy448; -yy450: - yych = *++p; - if (yybm[0+yych] & 128) goto yy450; - if (yych <= '\n') { - if (yych <= 0x00) goto yy448; - if (yych <= '\t') goto yy446; - goto yy448; - } else { - if (yych != '>') goto yy446; - } - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy446; - if (yych >= '\v') goto yy449; -yy451: - { return (bufsize_t)(p - start); } - } + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy434; + case '/': goto yy435; + case '>': goto yy436; + default: goto yy431; + } +} } -// Try to match a link title (in single quotes, in double quotes, or -// in parentheses), returning number of chars matched. Allow one -// level of internal nesting (quotes within quotes). -bufsize_t _scan_link_title(const unsigned char *p) +// Try to match an HTML block end line of type 1 +bufsize_t _scan_html_block_end_1(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - { - unsigned char yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[256] = { - 0, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 192, 208, 208, 208, 208, 144, - 80, 80, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 32, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208 - }; - yych = *p; - if (yych <= '&') { - if (yych == '"') goto yy454; - } else { - if (yych <= '\'') goto yy455; - if (yych <= '(') goto yy456; - } - ++p; +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 0x00: + case '\n': goto yy449; + case '<': goto yy452; + default: goto yy451; + } +yy449: + ++p; +yy450: + { return 0; } +yy451: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy450; + default: goto yy454; + } +yy452: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy450; + case '/': goto yy457; + default: goto yy454; + } yy453: - { return 0; } + yych = *++p; yy454: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy453; - goto yy458; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + default: goto yy453; + } yy455: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy453; - goto yy464; + p = marker; + if (yyaccept == 0) goto yy450; + else goto yy470; yy456: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy453; - if (yych == '(') goto yy453; - goto yy469; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '/': goto yy457; + case '<': goto yy456; + default: goto yy453; + } yy457: - yych = *++p; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'P': + case 'p': goto yy458; + case 'S': + case 's': goto yy459; + case 'T': + case 't': goto yy460; + default: goto yy453; + } yy458: - if (yybm[0+yych] & 16) goto yy457; - if (yych <= 0x00) goto yy459; - if (yych <= '"') goto yy460; - goto yy462; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'R': + case 'r': goto yy461; + default: goto yy453; + } yy459: - p = marker; - if (yyaccept <= 1) { - if (yyaccept == 0) goto yy453; - else goto yy461; - } else { - if (yyaccept == 2) goto yy466; - else goto yy471; - } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'C': + case 'c': goto yy462; + case 'T': + case 't': goto yy463; + default: goto yy453; + } yy460: - ++p; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'E': + case 'e': goto yy464; + default: goto yy453; + } yy461: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'E': + case 'e': goto yy465; + default: goto yy453; + } yy462: - yych = *++p; - if (yybm[0+yych] & 16) goto yy457; - if (yych <= 0x00) goto yy459; - if (yych <= '"') goto yy473; - goto yy462; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'R': + case 'r': goto yy466; + default: goto yy453; + } yy463: - yych = *++p; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'Y': + case 'y': goto yy467; + default: goto yy453; + } yy464: - if (yybm[0+yych] & 64) goto yy463; - if (yych <= 0x00) goto yy459; - if (yych >= '(') goto yy467; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'X': + case 'x': goto yy468; + default: goto yy453; + } yy465: - ++p; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case '>': goto yy469; + default: goto yy453; + } yy466: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'I': + case 'i': goto yy471; + default: goto yy453; + } yy467: - yych = *++p; - if (yybm[0+yych] & 64) goto yy463; - if (yych <= 0x00) goto yy459; - if (yych <= '\'') goto yy474; - goto yy467; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'L': + case 'l': goto yy461; + default: goto yy453; + } yy468: - yych = *++p; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'T': + case 't': goto yy472; + default: goto yy453; + } yy469: - if (yybm[0+yych] & 128) goto yy468; - if (yych <= '(') goto yy459; - if (yych >= '*') goto yy472; + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy470; + case '<': goto yy456; + default: goto yy453; + } yy470: - ++p; + { return (bufsize_t)(p - start); } yy471: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'P': + case 'p': goto yy473; + default: goto yy453; + } yy472: - yych = *++p; - if (yych <= ')') { - if (yych <= 0x00) goto yy459; - if (yych <= '(') goto yy468; - goto yy475; - } else { - if (yych == '\\') goto yy472; - goto yy468; - } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'A': + case 'a': goto yy474; + default: goto yy453; + } yy473: - yyaccept = 1; - yych = *(marker = ++p); - if (yybm[0+yych] & 16) goto yy457; - if (yych <= 0x00) goto yy461; - if (yych <= '"') goto yy460; - goto yy462; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'T': + case 't': goto yy465; + default: goto yy453; + } yy474: - yyaccept = 2; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy463; - if (yych <= 0x00) goto yy466; - if (yych <= '\'') goto yy465; - goto yy467; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'R': + case 'r': goto yy475; + default: goto yy453; + } yy475: - yyaccept = 3; - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy468; - if (yych <= '(') goto yy471; - if (yych <= ')') goto yy470; - goto yy472; - } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'E': + case 'e': goto yy476; + default: goto yy453; + } +yy476: + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy455; + case '<': goto yy456; + case 'A': + case 'a': goto yy465; + default: goto yy453; + } +} } -// Try to match an image size (=WxH, =Wx, =xH), returning number of chars matched. -// Extract the width and height to @d. -bufsize_t _scan_image_size(const unsigned char *p, void *d) +// Try to match an HTML block end line of type 2 +bufsize_t _scan_html_block_end_2(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - pair *data = (pair *)d; - int *pwidth = (int *)(data->first); - int *pheight = (int *)(data->second); - *pwidth = 0; - *pheight = 0; - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yych == '=') goto yy478; - ++p; -yy477: - { return 0; } +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 0x00: + case '\n': goto yy478; + case '-': goto yy481; + default: goto yy480; + } yy478: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy479; - if (yych == 'X') goto yy481; - if (yych == 'x') goto yy481; - goto yy477; + ++p; yy479: - yych = *++p; - if (yybm[0+yych] & 128) goto yy479; - if (yych == 'X') goto yy482; - if (yych == 'x') goto yy482; + { return 0; } yy480: - p = marker; - goto yy477; + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy479; + default: goto yy483; + } yy481: - yych = *++p; - if (yych <= '/') goto yy480; - if (yych <= '9') goto yy484; - goto yy480; + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy479; + case '-': goto yy486; + default: goto yy482; + } yy482: - yych = *++p; - if (yych <= '/') goto yy483; - if (yych <= '9') goto yy486; + yych = *++p; yy483: - { - *pwidth = natoi((const char *)start + 1, p - start - 2); - return (bufsize_t)(p - start); - } + switch (yych) { + case 0x00: + case '\n': goto yy484; + case '-': goto yy485; + default: goto yy482; + } yy484: - yych = *++p; - if (yych <= '/') goto yy485; - if (yych <= '9') goto yy484; + p = marker; + if (yyaccept == 0) goto yy479; + else goto yy488; yy485: - { - *pheight = natoi((const char *)start + 2, p - start - 2); - return (bufsize_t)(p - start); - } + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy484; + case '-': goto yy486; + default: goto yy482; + } yy486: - yych = *++p; - if (yych <= '/') goto yy487; - if (yych <= '9') goto yy486; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy484; + case '-': goto yy486; + case '>': goto yy487; + default: goto yy482; + } yy487: - { - const unsigned char *x_pos = (unsigned char *)memchr(start, 'x', p - start); - *pwidth = natoi((const char *)start + 1, x_pos - start - 1); - *pheight = natoi((const char *)x_pos + 1, p - x_pos - 1); - return (bufsize_t)(p - start); - } - } - + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy488; + case '-': goto yy485; + default: goto yy482; + } +yy488: + { return (bufsize_t)(p - start); } } -// Match space characters, including newlines. -bufsize_t _scan_spacechars(const unsigned char *p) -{ - const unsigned char *start = p; \ - - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yybm[0+yych] & 128) goto yy489; - ++p; - { return 0; } -yy489: - yych = *++p; - if (yybm[0+yych] & 128) goto yy489; - { return (bufsize_t)(p - start); } - } - } -// Match ATX heading start. -bufsize_t _scan_atx_heading_start(const unsigned char *p) +// Try to match an HTML block end line of type 3 +bufsize_t _scan_html_block_end_3(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yych == '#') goto yy492; - ++p; +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 0x00: + case '\n': goto yy490; + case '?': goto yy493; + default: goto yy492; + } +yy490: + ++p; yy491: - { return 0; } + { return 0; } yy492: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy493; - if (yych <= '\f') { - if (yych <= 0x08) goto yy491; - if (yych <= '\n') goto yy495; - goto yy491; - } else { - if (yych <= '\r') goto yy495; - if (yych == '#') goto yy496; - goto yy491; - } + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy491; + default: goto yy495; + } yy493: - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy491; + case '>': goto yy498; + default: goto yy495; + } yy494: - { return (bufsize_t)(p - start); } + yych = *++p; yy495: - ++p; - goto yy494; + switch (yych) { + case 0x00: + case '\n': goto yy496; + case '?': goto yy497; + default: goto yy494; + } yy496: - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; - if (yych <= '\f') { - if (yych <= 0x08) goto yy497; - if (yych <= '\n') goto yy495; - } else { - if (yych <= '\r') goto yy495; - if (yych == '#') goto yy498; - } + p = marker; + if (yyaccept == 0) goto yy491; + else goto yy499; yy497: - p = marker; - goto yy491; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy496; + case '>': goto yy498; + case '?': goto yy497; + default: goto yy494; + } yy498: - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; - if (yych <= '\f') { - if (yych <= 0x08) goto yy497; - if (yych <= '\n') goto yy495; - goto yy497; - } else { - if (yych <= '\r') goto yy495; - if (yych != '#') goto yy497; - } - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; - if (yych <= '\f') { - if (yych <= 0x08) goto yy497; - if (yych <= '\n') goto yy495; - goto yy497; - } else { - if (yych <= '\r') goto yy495; - if (yych != '#') goto yy497; - } - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; - if (yych <= '\f') { - if (yych <= 0x08) goto yy497; - if (yych <= '\n') goto yy495; - goto yy497; - } else { - if (yych <= '\r') goto yy495; - if (yych != '#') goto yy497; - } - yych = *++p; - if (yybm[0+yych] & 128) goto yy493; - if (yych <= 0x08) goto yy497; - if (yych <= '\n') goto yy495; - if (yych == '\r') goto yy495; - goto yy497; - } + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy499; + case '?': goto yy497; + default: goto yy494; + } +yy499: + { return (bufsize_t)(p - start); } +} } -// Match setext heading line. Return 1 for level-1 heading, -// 2 for level-2, 0 for no match. -bufsize_t _scan_setext_heading_line(const unsigned char *p) +// Try to match an HTML block end line of type 4 +bufsize_t _scan_html_block_end_4(const unsigned char *p) { const unsigned char *marker = NULL; + const unsigned char *start = p; - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yych == '-') goto yy501; - if (yych == '=') goto yy502; - ++p; -yy500: - { return 0; } +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 0x00: + case '\n': goto yy501; + case '>': goto yy504; + default: goto yy503; + } yy501: - yych = *(marker = ++p); - if (yybm[0+yych] & 64) goto yy507; - if (yych <= '\f') { - if (yych <= 0x08) goto yy500; - if (yych <= '\n') goto yy504; - goto yy500; - } else { - if (yych <= '\r') goto yy504; - if (yych == ' ') goto yy504; - goto yy500; - } + ++p; yy502: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) goto yy511; - if (yych <= '\f') { - if (yych <= 0x08) goto yy500; - if (yych <= '\n') goto yy509; - goto yy500; - } else { - if (yych <= '\r') goto yy509; - if (yych == ' ') goto yy509; - goto yy500; - } + { return 0; } yy503: - yych = *++p; + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy502; + default: goto yy507; + } yy504: - if (yybm[0+yych] & 32) goto yy503; - if (yych <= 0x08) goto yy505; - if (yych <= '\n') goto yy506; - if (yych == '\r') goto yy506; + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy505; + case '>': goto yy504; + default: goto yy506; + } yy505: - p = marker; - goto yy500; + { return (bufsize_t)(p - start); } yy506: - ++p; - { return 2; } + yych = *++p; yy507: - yych = *++p; - if (yybm[0+yych] & 32) goto yy503; - if (yych <= '\f') { - if (yych <= 0x08) goto yy505; - if (yych <= '\n') goto yy506; - goto yy505; - } else { - if (yych <= '\r') goto yy506; - if (yych == '-') goto yy507; - goto yy505; - } + switch (yych) { + case 0x00: + case '\n': goto yy508; + case '>': goto yy504; + default: goto yy506; + } yy508: - yych = *++p; -yy509: - if (yych <= '\f') { - if (yych <= 0x08) goto yy505; - if (yych <= '\t') goto yy508; - if (yych >= '\v') goto yy505; - } else { - if (yych <= '\r') goto yy510; - if (yych == ' ') goto yy508; - goto yy505; - } -yy510: - ++p; - { return 1; } -yy511: - yych = *++p; - if (yybm[0+yych] & 128) goto yy511; - if (yych <= '\f') { - if (yych <= 0x08) goto yy505; - if (yych <= '\t') goto yy508; - if (yych <= '\n') goto yy510; - goto yy505; - } else { - if (yych <= '\r') goto yy510; - if (yych == ' ') goto yy508; - goto yy505; - } - } + p = marker; + if (yyaccept == 0) goto yy502; + else goto yy505; +} } -// Scan an opening code fence. -bufsize_t _scan_open_code_fence(const unsigned char *p) +// Try to match an HTML block end line of type 5 +bufsize_t _scan_html_block_end_5(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 0, 192, 192, 0, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 144, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 224, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192 - }; - yych = *p; - if (yych == '`') goto yy514; - if (yych == '~') goto yy515; - ++p; +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 0x00: + case '\n': goto yy510; + case ']': goto yy513; + default: goto yy512; + } +yy510: + ++p; +yy511: + { return 0; } +yy512: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy511; + default: goto yy515; + } yy513: - { return 0; } + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy511; + case ']': goto yy518; + default: goto yy514; + } yy514: - yych = *(marker = ++p); - if (yych == '`') goto yy516; - goto yy513; + yych = *++p; yy515: - yych = *(marker = ++p); - if (yych == '~') goto yy518; - goto yy513; + switch (yych) { + case 0x00: + case '\n': goto yy516; + case ']': goto yy517; + default: goto yy514; + } yy516: - yych = *++p; - if (yybm[0+yych] & 16) goto yy519; + p = marker; + if (yyaccept == 0) goto yy511; + else goto yy520; yy517: - p = marker; - goto yy513; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy516; + case ']': goto yy518; + default: goto yy514; + } yy518: - yych = *++p; - if (yybm[0+yych] & 32) goto yy520; - goto yy517; + yych = *++p; + switch (yych) { + case 0x00: + case '\n': goto yy516; + case '>': goto yy519; + case ']': goto yy518; + default: goto yy514; + } yy519: - yych = *++p; - if (yybm[0+yych] & 16) goto yy519; - if (yych <= '\n') { - if (yych <= 0x00) goto yy517; - if (yych <= '\t') { - marker = p; - goto yy521; - } - marker = p; - goto yy522; - } else { - if (yych == '\r') { - marker = p; - goto yy522; - } - marker = p; - goto yy521; - } + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '\n': goto yy520; + case ']': goto yy517; + default: goto yy514; + } yy520: - yych = *++p; - if (yybm[0+yych] & 32) goto yy520; - if (yych <= '\n') { - if (yych <= 0x00) goto yy517; - if (yych <= '\t') { - marker = p; - goto yy523; - } - marker = p; - goto yy524; - } else { - if (yych == '\r') { - marker = p; - goto yy524; - } - marker = p; - goto yy523; - } -yy521: - yych = *++p; - if (yybm[0+yych] & 64) goto yy521; - if (yych <= 0x00) goto yy517; - if (yych >= 0x0E) goto yy517; -yy522: - ++p; - p = marker; - { return (bufsize_t)(p - start); } -yy523: - yych = *++p; - if (yybm[0+yych] & 128) goto yy523; - if (yych <= 0x00) goto yy517; -yy524: - ++p; - p = marker; - { return (bufsize_t)(p - start); } - } + { return (bufsize_t)(p - start); } +} } -// Scan a closing code fence with length at least len. -bufsize_t _scan_close_code_fence(const unsigned char *p) +// Try to match a link title (in single quotes, in double quotes, or +// in parentheses), returning number of chars matched. Allow one +// level of internal nesting (quotes within quotes). +bufsize_t _scan_link_title(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; - { - unsigned char yych; - static const unsigned char yybm[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }; - yych = *p; - if (yych == '`') goto yy527; - if (yych == '~') goto yy528; - ++p; +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case '"': goto yy524; + case '\'': goto yy525; + case '(': goto yy526; + default: goto yy522; + } +yy522: + ++p; +yy523: + { return 0; } +yy524: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) goto yy523; + goto yy528; +yy525: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) goto yy523; + goto yy534; yy526: - { return 0; } + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '(': goto yy523; + default: goto yy539; + } yy527: - yych = *(marker = ++p); - if (yych == '`') goto yy529; - goto yy526; + yych = *++p; yy528: - yych = *(marker = ++p); - if (yych == '~') goto yy531; - goto yy526; + switch (yych) { + case 0x00: goto yy529; + case '"': goto yy530; + case '\\': goto yy532; + default: goto yy527; + } yy529: - yych = *++p; - if (yybm[0+yych] & 32) goto yy532; + p = marker; + switch (yyaccept) { + case 0: goto yy523; + case 1: goto yy531; + case 2: goto yy536; + default: goto yy541; + } yy530: - p = marker; - goto yy526; + ++p; yy531: - yych = *++p; - if (yybm[0+yych] & 64) goto yy533; - goto yy530; + { return (bufsize_t)(p - start); } yy532: - yych = *++p; - if (yybm[0+yych] & 32) goto yy532; - if (yych <= '\f') { - if (yych <= 0x08) goto yy530; - if (yych <= '\t') { - marker = p; - goto yy534; - } - if (yych <= '\n') { - marker = p; - goto yy535; - } - goto yy530; - } else { - if (yych <= '\r') { - marker = p; - goto yy535; - } - if (yych == ' ') { - marker = p; - goto yy534; - } - goto yy530; - } + yych = *++p; + switch (yych) { + case 0x00: goto yy529; + case '"': goto yy543; + case '\\': goto yy532; + default: goto yy527; + } yy533: - yych = *++p; - if (yybm[0+yych] & 64) goto yy533; - if (yych <= '\f') { - if (yych <= 0x08) goto yy530; - if (yych <= '\t') { - marker = p; - goto yy536; - } - if (yych <= '\n') { - marker = p; - goto yy537; - } - goto yy530; - } else { - if (yych <= '\r') { - marker = p; - goto yy537; - } - if (yych == ' ') { - marker = p; - goto yy536; - } - goto yy530; - } + yych = *++p; yy534: - yych = *++p; - if (yybm[0+yych] & 128) goto yy534; - if (yych <= 0x08) goto yy530; - if (yych <= '\n') goto yy535; - if (yych != '\r') goto yy530; + switch (yych) { + case 0x00: goto yy529; + case '\'': goto yy535; + case '\\': goto yy537; + default: goto yy533; + } yy535: - ++p; - p = marker; - { return (bufsize_t)(p - start); } + ++p; yy536: - yych = *++p; - if (yych <= '\f') { - if (yych <= 0x08) goto yy530; - if (yych <= '\t') goto yy536; - if (yych >= '\v') goto yy530; - } else { - if (yych <= '\r') goto yy537; - if (yych == ' ') goto yy536; - goto yy530; - } + { return (bufsize_t)(p - start); } yy537: - ++p; - p = marker; - { return (bufsize_t)(p - start); } - } - -} - -// Returns positive value if a URL begins in a way that is potentially -// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0. -bufsize_t _scan_dangerous_url(const unsigned char *p) -{ - const unsigned char *marker = NULL; - const unsigned char *start = p; - - { - unsigned char yych; - unsigned int yyaccept = 0; - yych = *p; - if (yych <= 'V') { - if (yych <= 'F') { - if (yych == 'D') goto yy540; - if (yych >= 'F') goto yy541; - } else { - if (yych == 'J') goto yy542; - if (yych >= 'V') goto yy543; - } - } else { - if (yych <= 'f') { - if (yych == 'd') goto yy540; - if (yych >= 'f') goto yy541; - } else { - if (yych <= 'j') { - if (yych >= 'j') goto yy542; - } else { - if (yych == 'v') goto yy543; - } - } - } - ++p; + yych = *++p; + switch (yych) { + case 0x00: goto yy529; + case '\'': goto yy544; + case '\\': goto yy537; + default: goto yy533; + } +yy538: + yych = *++p; yy539: - { return 0; } + switch (yych) { + case 0x00: + case '(': goto yy529; + case ')': goto yy540; + case '\\': goto yy542; + default: goto yy538; + } yy540: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'A') goto yy544; - if (yych == 'a') goto yy544; - goto yy539; + ++p; yy541: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'I') goto yy546; - if (yych == 'i') goto yy546; - goto yy539; + { return (bufsize_t)(p - start); } yy542: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'A') goto yy547; - if (yych == 'a') goto yy547; - goto yy539; + yych = *++p; + switch (yych) { + case 0x00: goto yy529; + case ')': goto yy545; + case '\\': goto yy542; + default: goto yy538; + } yy543: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'B') goto yy548; - if (yych == 'b') goto yy548; - goto yy539; + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 0x00: goto yy531; + case '"': goto yy530; + case '\\': goto yy532; + default: goto yy527; + } yy544: - yych = *++p; - if (yych == 'T') goto yy549; - if (yych == 't') goto yy549; + yyaccept = 2; + yych = *(marker = ++p); + switch (yych) { + case 0x00: goto yy536; + case '\'': goto yy535; + case '\\': goto yy537; + default: goto yy533; + } yy545: - p = marker; - if (yyaccept == 0) goto yy539; - else goto yy557; -yy546: - yych = *++p; - if (yych == 'L') goto yy550; - if (yych == 'l') goto yy550; - goto yy545; + yyaccept = 3; + yych = *(marker = ++p); + switch (yych) { + case 0x00: + case '(': goto yy541; + case ')': goto yy540; + case '\\': goto yy542; + default: goto yy538; + } +} + +} + +// Try to match an image size (=WxH, =Wx, =xH), returning number of chars matched. +// Extract the width and height to @d. +bufsize_t _scan_image_size(const unsigned char *p, void *d) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + pair *data = (pair *)d; + int *pwidth = (int *)(data->first); + int *pheight = (int *)(data->second); + *pwidth = 0; + *pheight = 0; + + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '=': goto yy549; + default: goto yy547; + } yy547: - yych = *++p; - if (yych == 'V') goto yy551; - if (yych == 'v') goto yy551; - goto yy545; + ++p; yy548: - yych = *++p; - if (yych == 'S') goto yy552; - if (yych == 's') goto yy552; - goto yy545; + { return 0; } yy549: - yych = *++p; - if (yych == 'A') goto yy553; - if (yych == 'a') goto yy553; - goto yy545; + yych = *(marker = ++p); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy550; + case 'X': + case 'x': goto yy552; + default: goto yy548; + } yy550: - yych = *++p; - if (yych == 'E') goto yy554; - if (yych == 'e') goto yy554; - goto yy545; + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy550; + case 'X': + case 'x': goto yy553; + default: goto yy551; + } yy551: - yych = *++p; - if (yych == 'A') goto yy548; - if (yych == 'a') goto yy548; - goto yy545; + p = marker; + goto yy548; yy552: - yych = *++p; - if (yych == 'C') goto yy555; - if (yych == 'c') goto yy555; - goto yy545; + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy555; + default: goto yy551; + } yy553: - yych = *++p; - if (yych == ':') goto yy556; - goto yy545; + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy557; + default: goto yy554; + } yy554: - yych = *++p; - if (yych == ':') goto yy558; - goto yy545; + { + *pwidth = natoi((const char *)start + 1, p - start - 2); + return (bufsize_t)(p - start); + } yy555: - yych = *++p; - if (yych == 'R') goto yy559; - if (yych == 'r') goto yy559; - goto yy545; + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy555; + default: goto yy556; + } yy556: - yyaccept = 1; - yych = *(marker = ++p); - if (yych == 'I') goto yy560; - if (yych == 'i') goto yy560; + { + *pheight = natoi((const char *)start + 2, p - start - 2); + return (bufsize_t)(p - start); + } yy557: - { return (bufsize_t)(p - start); } + yych = *++p; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy557; + default: goto yy558; + } yy558: - ++p; - goto yy557; -yy559: - yych = *++p; - if (yych == 'I') goto yy561; - if (yych == 'i') goto yy561; - goto yy545; + { + const unsigned char *x_pos = (unsigned char *)memchr(start, 'x', p - start); + *pwidth = natoi((const char *)start + 1, x_pos - start - 1); + *pheight = natoi((const char *)x_pos + 1, p - x_pos - 1); + return (bufsize_t)(p - start); + } +} + +} + +// Match space characters, including newlines. +bufsize_t _scan_spacechars(const unsigned char *p) +{ + const unsigned char *start = p; \ + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy561; + default: goto yy560; + } yy560: - yych = *++p; - if (yych == 'M') goto yy562; - if (yych == 'm') goto yy562; - goto yy545; + ++p; + { return 0; } yy561: - yych = *++p; - if (yych == 'P') goto yy563; - if (yych == 'p') goto yy563; - goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': goto yy561; + default: goto yy562; + } yy562: - yych = *++p; - if (yych == 'A') goto yy564; - if (yych == 'a') goto yy564; - goto yy545; -yy563: - yych = *++p; - if (yych == 'T') goto yy554; - if (yych == 't') goto yy554; - goto yy545; + { return (bufsize_t)(p - start); } +} + +} + +// Match ATX heading start. +bufsize_t _scan_atx_heading_start(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '#': goto yy566; + default: goto yy564; + } yy564: - yych = *++p; - if (yych == 'G') goto yy565; - if (yych != 'g') goto yy545; + ++p; yy565: - yych = *++p; - if (yych == 'E') goto yy566; - if (yych != 'e') goto yy545; + { return 0; } yy566: - yych = *++p; - if (yych != '/') goto yy545; - yych = *++p; - if (yych <= 'W') { - if (yych <= 'J') { - if (yych == 'G') goto yy567; - if (yych <= 'I') goto yy545; - goto yy568; - } else { - if (yych == 'P') goto yy569; - if (yych <= 'V') goto yy545; - goto yy570; - } - } else { - if (yych <= 'j') { - if (yych == 'g') goto yy567; - if (yych <= 'i') goto yy545; - goto yy568; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy545; - goto yy569; - } else { - if (yych == 'w') goto yy570; - goto yy545; - } - } - } + yych = *(marker = ++p); + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + case '#': goto yy570; + default: goto yy565; + } yy567: - yych = *++p; - if (yych == 'I') goto yy571; - if (yych == 'i') goto yy571; - goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + default: goto yy568; + } yy568: - yych = *++p; - if (yych == 'P') goto yy572; - if (yych == 'p') goto yy572; - goto yy545; + { return (bufsize_t)(p - start); } yy569: - yych = *++p; - if (yych == 'N') goto yy573; - if (yych == 'n') goto yy573; - goto yy545; + ++p; + goto yy568; yy570: - yych = *++p; - if (yych == 'E') goto yy574; - if (yych == 'e') goto yy574; - goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + case '#': goto yy572; + default: goto yy571; + } yy571: - yych = *++p; - if (yych == 'F') goto yy575; - if (yych == 'f') goto yy575; - goto yy545; + p = marker; + goto yy565; yy572: - yych = *++p; - if (yych == 'E') goto yy573; - if (yych != 'e') goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + case '#': goto yy573; + default: goto yy571; + } yy573: - yych = *++p; - if (yych == 'G') goto yy575; - if (yych == 'g') goto yy575; - goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + case '#': goto yy574; + default: goto yy571; + } yy574: - yych = *++p; - if (yych == 'B') goto yy576; - if (yych == 'b') goto yy576; - goto yy545; + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + case '#': goto yy575; + default: goto yy571; + } yy575: - ++p; - { return 0; } -yy576: - yych = *++p; - if (yych == 'P') goto yy575; - if (yych == 'p') goto yy575; - goto yy545; - } + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy567; + case '\n': + case '\r': goto yy569; + default: goto yy571; + } +} + +} + +// Match setext heading line. Return 1 for level-1 heading, +// 2 for level-2, 0 for no match. +bufsize_t _scan_setext_heading_line(const unsigned char *p) +{ + const unsigned char *marker = NULL; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '-': goto yy579; + case '=': goto yy580; + default: goto yy577; + } +yy577: + ++p; +yy578: + { return 0; } +yy579: + yych = *(marker = ++p); + switch (yych) { + case '\t': + case '\n': + case '\r': + case ' ': goto yy582; + case '-': goto yy585; + default: goto yy578; + } +yy580: + yych = *(marker = ++p); + switch (yych) { + case '\t': + case '\n': + case '\r': + case ' ': goto yy587; + case '=': goto yy589; + default: goto yy578; + } +yy581: + yych = *++p; +yy582: + switch (yych) { + case '\t': + case ' ': goto yy581; + case '\n': + case '\r': goto yy584; + default: goto yy583; + } +yy583: + p = marker; + goto yy578; +yy584: + ++p; + { return 2; } +yy585: + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy581; + case '\n': + case '\r': goto yy584; + case '-': goto yy585; + default: goto yy583; + } +yy586: + yych = *++p; +yy587: + switch (yych) { + case '\t': + case ' ': goto yy586; + case '\n': + case '\r': goto yy588; + default: goto yy583; + } +yy588: + ++p; + { return 1; } +yy589: + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy586; + case '\n': + case '\r': goto yy588; + case '=': goto yy589; + default: goto yy583; + } +} + +} + +// Scan an opening code fence. +bufsize_t _scan_open_code_fence(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '`': goto yy593; + case '~': goto yy594; + default: goto yy591; + } +yy591: + ++p; +yy592: + { return 0; } +yy593: + yych = *(marker = ++p); + switch (yych) { + case '`': goto yy595; + default: goto yy592; + } +yy594: + yych = *(marker = ++p); + switch (yych) { + case '~': goto yy597; + default: goto yy592; + } +yy595: + yych = *++p; + switch (yych) { + case '`': goto yy598; + default: goto yy596; + } +yy596: + p = marker; + goto yy592; +yy597: + yych = *++p; + switch (yych) { + case '~': goto yy599; + default: goto yy596; + } +yy598: + yych = *++p; + switch (yych) { + case 0x00: goto yy596; + case '\n': + case '\r': + marker = p; + goto yy601; + case '`': goto yy598; + default: + marker = p; + goto yy600; + } +yy599: + yych = *++p; + switch (yych) { + case 0x00: goto yy596; + case '\n': + case '\r': + marker = p; + goto yy603; + case '~': goto yy599; + default: + marker = p; + goto yy602; + } +yy600: + yych = *++p; + switch (yych) { + case 0x00: + case '`': goto yy596; + case '\n': + case '\r': goto yy601; + default: goto yy600; + } +yy601: + ++p; + p = marker; + { return (bufsize_t)(p - start); } +yy602: + yych = *++p; + switch (yych) { + case 0x00: goto yy596; + case '\n': + case '\r': goto yy603; + default: goto yy602; + } +yy603: + ++p; + p = marker; + { return (bufsize_t)(p - start); } +} + +} + +// Scan a closing code fence with length at least len. +bufsize_t _scan_close_code_fence(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '`': goto yy607; + case '~': goto yy608; + default: goto yy605; + } +yy605: + ++p; +yy606: + { return 0; } +yy607: + yych = *(marker = ++p); + switch (yych) { + case '`': goto yy609; + default: goto yy606; + } +yy608: + yych = *(marker = ++p); + switch (yych) { + case '~': goto yy611; + default: goto yy606; + } +yy609: + yych = *++p; + switch (yych) { + case '`': goto yy612; + default: goto yy610; + } +yy610: + p = marker; + goto yy606; +yy611: + yych = *++p; + switch (yych) { + case '~': goto yy613; + default: goto yy610; + } +yy612: + yych = *++p; + switch (yych) { + case '\t': + case ' ': + marker = p; + goto yy614; + case '\n': + case '\r': + marker = p; + goto yy615; + case '`': goto yy612; + default: goto yy610; + } +yy613: + yych = *++p; + switch (yych) { + case '\t': + case ' ': + marker = p; + goto yy616; + case '\n': + case '\r': + marker = p; + goto yy617; + case '~': goto yy613; + default: goto yy610; + } +yy614: + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy614; + case '\n': + case '\r': goto yy615; + default: goto yy610; + } +yy615: + ++p; + p = marker; + { return (bufsize_t)(p - start); } +yy616: + yych = *++p; + switch (yych) { + case '\t': + case ' ': goto yy616; + case '\n': + case '\r': goto yy617; + default: goto yy610; + } +yy617: + ++p; + p = marker; + { return (bufsize_t)(p - start); } +} + +} + +bufsize_t _scan_formula_block_start(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '$': goto yy621; + case '\\': goto yy622; + default: goto yy619; + } +yy619: + ++p; +yy620: + { return 0; } +yy621: + yych = *(marker = ++p); + switch (yych) { + case '$': goto yy623; + default: goto yy620; + } +yy622: + yych = *(marker = ++p); + switch (yych) { + case 'B': + case 'b': goto yy625; + default: goto yy620; + } +yy623: + yych = *++p; + switch (yych) { + case '\n': goto yy626; + case '\r': goto yy627; + default: goto yy624; + } +yy624: + p = marker; + goto yy620; +yy625: + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy628; + default: goto yy624; + } +yy626: + ++p; + { return (bufsize_t)(p - start); } +yy627: + yych = *++p; + switch (yych) { + case '\n': goto yy626; + default: goto yy624; + } +yy628: + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy629; + default: goto yy624; + } +yy629: + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy630; + default: goto yy624; + } +yy630: + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy631; + default: goto yy624; + } +yy631: + yych = *++p; + switch (yych) { + case '{': goto yy632; + default: goto yy624; + } +yy632: + yych = *++p; + switch (yych) { + case '}': goto yy624; + default: goto yy634; + } +yy633: + yych = *++p; +yy634: + switch (yych) { + case 0x00: + case '\n': + case '\r': goto yy624; + case '}': goto yy635; + default: goto yy633; + } +yy635: + yych = *++p; + switch (yych) { + case '\n': goto yy636; + case '\r': goto yy637; + default: goto yy624; + } +yy636: + ++p; + { return (bufsize_t)(p - start); } +yy637: + yych = *++p; + switch (yych) { + case '\n': goto yy636; + default: goto yy624; + } +} + +} + +bufsize_t _scan_formula_block_end(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + yych = *p; + switch (yych) { + case '$': goto yy641; + case '\\': goto yy642; + default: goto yy639; + } +yy639: + ++p; +yy640: + { return 0; } +yy641: + yych = *(marker = ++p); + switch (yych) { + case '$': goto yy643; + default: goto yy640; + } +yy642: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': goto yy645; + default: goto yy640; + } +yy643: + yych = *++p; + switch (yych) { + case '\n': goto yy646; + case '\r': goto yy647; + default: goto yy644; + } +yy644: + p = marker; + goto yy640; +yy645: + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy648; + default: goto yy644; + } +yy646: + ++p; + { return (bufsize_t)(p - start); } +yy647: + yych = *++p; + switch (yych) { + case '\n': goto yy646; + default: goto yy644; + } +yy648: + yych = *++p; + switch (yych) { + case 'D': + case 'd': goto yy649; + default: goto yy644; + } +yy649: + yych = *++p; + switch (yych) { + case '{': goto yy650; + default: goto yy644; + } +yy650: + yych = *++p; + switch (yych) { + case '}': goto yy644; + default: goto yy652; + } +yy651: + yych = *++p; +yy652: + switch (yych) { + case 0x00: + case '\n': + case '\r': goto yy644; + case '}': goto yy653; + default: goto yy651; + } +yy653: + yych = *++p; + switch (yych) { + case '\n': goto yy654; + case '\r': goto yy655; + default: goto yy644; + } +yy654: + ++p; + { return (bufsize_t)(p - start); } +yy655: + yych = *++p; + switch (yych) { + case '\n': goto yy654; + default: goto yy644; + } +} + +} + +// Returns positive value if a URL begins in a way that is potentially +// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0. +bufsize_t _scan_dangerous_url(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; + +{ + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + switch (yych) { + case 'D': + case 'd': goto yy659; + case 'F': + case 'f': goto yy660; + case 'J': + case 'j': goto yy661; + case 'V': + case 'v': goto yy662; + default: goto yy657; + } +yy657: + ++p; +yy658: + { return 0; } +yy659: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': goto yy663; + default: goto yy658; + } +yy660: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 'I': + case 'i': goto yy665; + default: goto yy658; + } +yy661: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': goto yy666; + default: goto yy658; + } +yy662: + yyaccept = 0; + yych = *(marker = ++p); + switch (yych) { + case 'B': + case 'b': goto yy667; + default: goto yy658; + } +yy663: + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy668; + default: goto yy664; + } +yy664: + p = marker; + if (yyaccept == 0) goto yy658; + else goto yy676; +yy665: + yych = *++p; + switch (yych) { + case 'L': + case 'l': goto yy669; + default: goto yy664; + } +yy666: + yych = *++p; + switch (yych) { + case 'V': + case 'v': goto yy670; + default: goto yy664; + } +yy667: + yych = *++p; + switch (yych) { + case 'S': + case 's': goto yy671; + default: goto yy664; + } +yy668: + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy672; + default: goto yy664; + } +yy669: + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy673; + default: goto yy664; + } +yy670: + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy667; + default: goto yy664; + } +yy671: + yych = *++p; + switch (yych) { + case 'C': + case 'c': goto yy674; + default: goto yy664; + } +yy672: + yych = *++p; + switch (yych) { + case ':': goto yy675; + default: goto yy664; + } +yy673: + yych = *++p; + switch (yych) { + case ':': goto yy677; + default: goto yy664; + } +yy674: + yych = *++p; + switch (yych) { + case 'R': + case 'r': goto yy678; + default: goto yy664; + } +yy675: + yyaccept = 1; + yych = *(marker = ++p); + switch (yych) { + case 'I': + case 'i': goto yy679; + default: goto yy676; + } +yy676: + { return (bufsize_t)(p - start); } +yy677: + ++p; + goto yy676; +yy678: + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy680; + default: goto yy664; + } +yy679: + yych = *++p; + switch (yych) { + case 'M': + case 'm': goto yy681; + default: goto yy664; + } +yy680: + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy682; + default: goto yy664; + } +yy681: + yych = *++p; + switch (yych) { + case 'A': + case 'a': goto yy683; + default: goto yy664; + } +yy682: + yych = *++p; + switch (yych) { + case 'T': + case 't': goto yy673; + default: goto yy664; + } +yy683: + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy684; + default: goto yy664; + } +yy684: + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy685; + default: goto yy664; + } +yy685: + yych = *++p; + switch (yych) { + case '/': goto yy686; + default: goto yy664; + } +yy686: + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy687; + case 'J': + case 'j': goto yy688; + case 'P': + case 'p': goto yy689; + case 'W': + case 'w': goto yy690; + default: goto yy664; + } +yy687: + yych = *++p; + switch (yych) { + case 'I': + case 'i': goto yy691; + default: goto yy664; + } +yy688: + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy692; + default: goto yy664; + } +yy689: + yych = *++p; + switch (yych) { + case 'N': + case 'n': goto yy693; + default: goto yy664; + } +yy690: + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy694; + default: goto yy664; + } +yy691: + yych = *++p; + switch (yych) { + case 'F': + case 'f': goto yy695; + default: goto yy664; + } +yy692: + yych = *++p; + switch (yych) { + case 'E': + case 'e': goto yy693; + default: goto yy664; + } +yy693: + yych = *++p; + switch (yych) { + case 'G': + case 'g': goto yy695; + default: goto yy664; + } +yy694: + yych = *++p; + switch (yych) { + case 'B': + case 'b': goto yy696; + default: goto yy664; + } +yy695: + ++p; + { return 0; } +yy696: + yych = *++p; + switch (yych) { + case 'P': + case 'p': goto yy695; + default: goto yy664; + } +} } diff --git a/src/scanners.h b/src/scanners.h index 970ce6d30..53fd4a88f 100644 --- a/src/scanners.h +++ b/src/scanners.h @@ -38,6 +38,8 @@ bufsize_t _scan_setext_heading_line(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_dangerous_url(const unsigned char *p); +bufsize_t _scan_formula_block_start(const unsigned char *p); +bufsize_t _scan_formula_block_end(const unsigned char *p); #define scan_scheme(c, n) _scan_at(&_scan_scheme, c, n) #define scan_autolink_uri(c, n) _scan_at(&_scan_autolink_uri, c, n) @@ -63,6 +65,8 @@ bufsize_t _scan_dangerous_url(const unsigned char *p); #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_dangerous_url(c, n) _scan_at(&_scan_dangerous_url, c, n) +#define scan_formula_block_start(c, n) _scan_at(&_scan_formula_block_start, c, n) +#define scan_formula_block_end(c, n) _scan_at(&_scan_formula_block_end, c, n) #ifdef __cplusplus } diff --git a/src/scanners.re b/src/scanners.re index f690117d3..ddf426303 100644 --- a/src/scanners.re +++ b/src/scanners.re @@ -374,6 +374,28 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) */ } +bufsize_t _scan_formula_block_start(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; +/*!re2c + '$$' [\r]?[\n] { return (bufsize_t)(p - start); } + '\\begin{' [^}\r\n\x00]+ '}' [\r]?[\n] { return (bufsize_t)(p - start); } + * { return 0; } +*/ +} + +bufsize_t _scan_formula_block_end(const unsigned char *p) +{ + const unsigned char *marker = NULL; + const unsigned char *start = p; +/*!re2c + '$$' [\r]?[\n] { return (bufsize_t)(p - start); } + '\\end{' [^}\r\n\x00]+ '}' [\r]?[\n] { return (bufsize_t)(p - start); } + * { return 0; } +*/ +} + // Returns positive value if a URL begins in a way that is potentially // dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0. bufsize_t _scan_dangerous_url(const unsigned char *p) diff --git a/src/xml.c b/src/xml.c index 3839c552c..a613d22f6 100644 --- a/src/xml.c +++ b/src/xml.c @@ -120,6 +120,7 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, case CMARK_NODE_HTML_BLOCK: case CMARK_NODE_HTML_INLINE: case CMARK_NODE_FORMULA_INLINE: + case CMARK_NODE_FORMULA_BLOCK: cmark_strbuf_puts(xml, " xml:space=\"preserve\">"); escape_xml(xml, node->data, node->len); cmark_strbuf_puts(xml, " Date: Tue, 18 Mar 2025 21:33:39 +0800 Subject: [PATCH 2/2] fix --- src/scanners.c | 5 +++-- src/scanners.re | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/scanners.c b/src/scanners.c index f29aa06bc..d49eb278e 100644 --- a/src/scanners.c +++ b/src/scanners.c @@ -1,4 +1,4 @@ -/* Generated by re2c 4.1 on Tue Mar 18 21:07:28 2025 */ +/* Generated by re2c 4.1 on Tue Mar 18 21:33:29 2025 */ #include #include "chunk.h" #include "scanners.h" @@ -41,7 +41,8 @@ bufsize_t _scan_at_ext(bufsize_t (*scanner)(const unsigned char *, void *), } static int natoi(const char *buf, size_t len) { - char pb[len + 1]; + char pb[48]; + assert(len < 48U); for (size_t i = 0; i < len; ++i) { pb[i] = buf[i]; } diff --git a/src/scanners.re b/src/scanners.re index ddf426303..518323ec1 100644 --- a/src/scanners.re +++ b/src/scanners.re @@ -40,7 +40,8 @@ bufsize_t _scan_at_ext(bufsize_t (*scanner)(const unsigned char *, void *), } static int natoi(const char *buf, size_t len) { - char pb[len + 1]; + char pb[48]; + assert(len < 48U); for (size_t i = 0; i < len; ++i) { pb[i] = buf[i]; }