From 12cd5f723ed20d81c5b57db6abf0e464d1632c16428de652f001e19327e0c6ae Mon Sep 17 00:00:00 2001 From: Daniel Garcia Date: Mon, 14 Aug 2023 07:43:11 +0000 Subject: [PATCH] - Add cmark-gfm-13.patch to update cmark to 0.29.0.gfm.13 (gh#theacodes/cmarkgfm#63, bsc#1213317, CVE-2023-37463) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cmarkgfm?expand=0&rev=14 --- cmark-gfm-13.patch | 26742 ++++++++++++++++++++++++++++++++++++++ python-cmarkgfm.changes | 6 + python-cmarkgfm.spec | 3 +- 3 files changed, 26750 insertions(+), 1 deletion(-) create mode 100644 cmark-gfm-13.patch diff --git a/cmark-gfm-13.patch b/cmark-gfm-13.patch new file mode 100644 index 0000000..6c5e12c --- /dev/null +++ b/cmark-gfm-13.patch @@ -0,0 +1,26742 @@ +Index: cmarkgfm-2022.10.27/generated/unix/cmark-gfm_version.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/generated/unix/cmark-gfm_version.h ++++ cmarkgfm-2022.10.27/generated/unix/cmark-gfm_version.h +@@ -1,7 +1,7 @@ + #ifndef CMARK_GFM_VERSION_H + #define CMARK_GFM_VERSION_H + +-#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6) +-#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6" ++#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 13) ++#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.13" + + #endif +Index: cmarkgfm-2022.10.27/generated/windows/cmark-gfm_version.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/generated/windows/cmark-gfm_version.h ++++ cmarkgfm-2022.10.27/generated/windows/cmark-gfm_version.h +@@ -1,7 +1,7 @@ + #ifndef CMARK_GFM_VERSION_H + #define CMARK_GFM_VERSION_H + +-#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6) +-#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6" ++#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 13) ++#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.13" + + #endif +Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/autolink.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/autolink.c ++++ cmarkgfm-2022.10.27/third_party/cmark/extensions/autolink.c +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + + #if defined(_WIN32) + #define strncasecmp _strnicmp +@@ -35,44 +36,25 @@ static int sd_autolink_issafe(const uint + } + + static size_t autolink_delim(uint8_t *data, size_t link_end) { +- uint8_t cclose, copen; + size_t i; ++ size_t closing = 0; ++ size_t opening = 0; + +- for (i = 0; i < link_end; ++i) +- if (data[i] == '<') { ++ for (i = 0; i < link_end; ++i) { ++ const uint8_t c = data[i]; ++ if (c == '<') { + link_end = i; + break; ++ } else if (c == '(') { ++ opening++; ++ } else if (c == ')') { ++ closing++; + } ++ } + + while (link_end > 0) { +- cclose = data[link_end - 1]; +- +- switch (cclose) { ++ switch (data[link_end - 1]) { + case ')': +- copen = '('; +- break; +- default: +- copen = 0; +- } +- +- if (strchr("?!.,:*_~'\"", data[link_end - 1]) != NULL) +- link_end--; +- +- else if (data[link_end - 1] == ';') { +- size_t new_end = link_end - 2; +- +- while (new_end > 0 && cmark_isalpha(data[new_end])) +- new_end--; +- +- if (new_end < link_end - 2 && data[new_end] == '&') +- link_end = new_end; +- else +- link_end--; +- } else if (copen != 0) { +- size_t closing = 0; +- size_t opening = 0; +- i = 0; +- + /* Allow any number of matching brackets (as recognised in copen/cclose) + * at the end of the URL. If there is a greater number of closing + * brackets than opening ones, we remove one character from the end of +@@ -80,34 +62,52 @@ static size_t autolink_delim(uint8_t *da + * + * Examples (input text => output linked portion): + * +- * http://www.pokemon.com/Pikachu_(Electric) +- * => http://www.pokemon.com/Pikachu_(Electric) ++ * http://www.pokemon.com/Pikachu_(Electric) ++ * => http://www.pokemon.com/Pikachu_(Electric) + * +- * http://www.pokemon.com/Pikachu_((Electric) +- * => http://www.pokemon.com/Pikachu_((Electric) ++ * http://www.pokemon.com/Pikachu_((Electric) ++ * => http://www.pokemon.com/Pikachu_((Electric) + * +- * http://www.pokemon.com/Pikachu_(Electric)) +- * => http://www.pokemon.com/Pikachu_(Electric) ++ * http://www.pokemon.com/Pikachu_(Electric)) ++ * => http://www.pokemon.com/Pikachu_(Electric) + * +- * http://www.pokemon.com/Pikachu_((Electric)) +- * => http://www.pokemon.com/Pikachu_((Electric)) ++ * http://www.pokemon.com/Pikachu_((Electric)) ++ * => http://www.pokemon.com/Pikachu_((Electric)) + */ +- +- while (i < link_end) { +- if (data[i] == copen) +- opening++; +- else if (data[i] == cclose) +- closing++; +- +- i++; ++ if (closing <= opening) { ++ return link_end; + } ++ closing--; ++ link_end--; ++ break; ++ case '?': ++ case '!': ++ case '.': ++ case ',': ++ case ':': ++ case '*': ++ case '_': ++ case '~': ++ case '\'': ++ case '"': ++ link_end--; ++ break; ++ case ';': { ++ size_t new_end = link_end - 2; + +- if (closing <= opening) +- break; ++ while (new_end > 0 && cmark_isalpha(data[new_end])) ++ new_end--; + +- link_end--; +- } else ++ if (new_end < link_end - 2 && data[new_end] == '&') ++ link_end = new_end; ++ else ++ link_end--; + break; ++ } ++ ++ default: ++ return link_end; ++ } + } + + return link_end; +@@ -116,7 +116,20 @@ static size_t autolink_delim(uint8_t *da + static size_t check_domain(uint8_t *data, size_t size, int allow_short) { + size_t i, np = 0, uscore1 = 0, uscore2 = 0; + ++ /* The purpose of this code is to reject urls that contain an underscore ++ * in one of the last two segments. Examples: ++ * ++ * www.xxx.yyy.zzz autolinked ++ * www.xxx.yyy._zzz not autolinked ++ * www.xxx._yyy.zzz not autolinked ++ * www._xxx.yyy.zzz autolinked ++ * ++ * The reason is that domain names are allowed to include underscores, ++ * but host names are not. See: https://stackoverflow.com/a/2183140 ++ */ + for (i = 1; i < size - 1; i++) { ++ if (data[i] == '\\' && i < size - 2) ++ i++; + if (data[i] == '_') + uscore2++; + else if (data[i] == '.') { +@@ -127,8 +140,17 @@ static size_t check_domain(uint8_t *data + break; + } + +- if (uscore1 > 0 || uscore2 > 0) +- return 0; ++ if (uscore1 > 0 || uscore2 > 0) { ++ /* If the url is very long then accept it despite the underscores, ++ * to avoid quadratic behavior causing a denial of service. See: ++ * https://github.com/github/cmark-gfm/security/advisories/GHSA-29g3-96g3-jg6c ++ * Reasonable urls are unlikely to have more than 10 segments, so ++ * this extra condition shouldn't have any impact on normal usage. ++ */ ++ if (np <= 10) { ++ return 0; ++ } ++ } + + if (allow_short) { + /* We don't need a valid domain in the strict sense (with +@@ -165,7 +187,7 @@ static cmark_node *www_match(cmark_parse + if (link_end == 0) + return NULL; + +- while (link_end < size && !cmark_isspace(data[link_end])) ++ while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<') + link_end++; + + link_end = autolink_delim(data, link_end); +@@ -225,7 +247,7 @@ static cmark_node *url_match(cmark_parse + return 0; + + link_end += domain_len; +- while (link_end < size && !cmark_isspace(data[link_end])) ++ while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<') + link_end++; + + link_end = autolink_delim(data, link_end); +@@ -245,6 +267,11 @@ static cmark_node *url_match(cmark_parse + cmark_node *text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem); + text->as.literal = url; + cmark_node_append_child(node, text); ++ ++ node->start_line = text->start_line = node->end_line = text->end_line = cmark_inline_parser_get_line(inline_parser); ++ ++ node->start_column = text->start_column = max_rewind - rewind; ++ node->end_column = text->end_column = cmark_inline_parser_get_column(inline_parser) - 1; + + return node; + } +@@ -269,142 +296,167 @@ static cmark_node *match(cmark_syntax_ex + // inline was finished in inlines.c. + } + +-static bool validate_protocol(char protocol[], uint8_t *data, int rewind) { ++static bool validate_protocol(const char protocol[], uint8_t *data, size_t rewind, size_t max_rewind) { + size_t len = strlen(protocol); + ++ if (len > (max_rewind - rewind)) { ++ return false; ++ } ++ + // Check that the protocol matches +- for (int i = 1; i <= len; i++) { +- if (data[-rewind - i] != protocol[len - i]) { +- return false; +- } ++ if (memcmp(data - rewind - len, protocol, len) != 0) { ++ return false; ++ } ++ ++ if (len == (max_rewind - rewind)) { ++ return true; + } + +- char prev_char = data[-rewind - len - 1]; ++ char prev_char = data[-((ptrdiff_t)rewind) - len - 1]; + + // Make sure the character before the protocol is non-alphanumeric + return !cmark_isalnum(prev_char); + } + +-static void postprocess_text(cmark_parser *parser, cmark_node *text, int offset, int depth) { +- // postprocess_text can recurse very deeply if there is a very long line of +- // '@' only. Stop at a reasonable depth to ensure it cannot crash. +- if (depth > 1000) return; ++static void postprocess_text(cmark_parser *parser, cmark_node *text) { ++ size_t start = 0; ++ size_t offset = 0; ++ // `text` is going to be split into a list of nodes containing shorter segments ++ // of text, so we detach the memory buffer from text and use `cmark_chunk_dup` to ++ // create references to it. Later, `cmark_chunk_to_cstr` is used to convert ++ // the references into allocated buffers. The detached buffer is freed before we ++ // return. ++ cmark_chunk detached_chunk = text->as.literal; ++ text->as.literal = cmark_chunk_dup(&detached_chunk, 0, detached_chunk.len); ++ ++ uint8_t *data = text->as.literal.data; ++ size_t remaining = text->as.literal.len; ++ ++ while (true) { ++ size_t link_end; ++ uint8_t *at; ++ bool auto_mailto = true; ++ bool is_xmpp = false; ++ size_t rewind; ++ size_t max_rewind; ++ size_t np = 0; + +- size_t link_end; +- uint8_t *data = text->as.literal.data, +- *at; +- size_t size = text->as.literal.len; +- bool auto_mailto = true; +- bool is_xmpp = false; +- int rewind, max_rewind, +- nb = 0, np = 0, ns = 0; +- +- if (offset < 0 || (size_t)offset >= size) +- return; +- +- data += offset; +- size -= offset; +- +- at = (uint8_t *)memchr(data, '@', size); +- if (!at) +- return; +- +- max_rewind = (int)(at - data); +- data += max_rewind; +- size -= max_rewind; ++ if (offset >= remaining) ++ break; + +- for (rewind = 0; rewind < max_rewind; ++rewind) { +- uint8_t c = data[-rewind - 1]; ++ at = (uint8_t *)memchr(data + start + offset, '@', remaining - offset); ++ if (!at) ++ break; + +- if (cmark_isalnum(c)) +- continue; ++ max_rewind = at - (data + start + offset); + +- if (strchr(".+-_", c) != NULL) +- continue; ++found_at: ++ for (rewind = 0; rewind < max_rewind; ++rewind) { ++ uint8_t c = data[start + offset + max_rewind - rewind - 1]; + +- if (strchr(":", c) != NULL) { +- if (validate_protocol("mailto:", data, rewind)) { +- auto_mailto = false; ++ if (cmark_isalnum(c)) + continue; +- } + +- if (validate_protocol("xmpp:", data, rewind)) { +- auto_mailto = false; +- is_xmpp = true; ++ if (strchr(".+-_", c) != NULL) + continue; ++ ++ if (strchr(":", c) != NULL) { ++ if (validate_protocol("mailto:", data + start + offset + max_rewind, rewind, max_rewind)) { ++ auto_mailto = false; ++ continue; ++ } ++ ++ if (validate_protocol("xmpp:", data + start + offset + max_rewind, rewind, max_rewind)) { ++ auto_mailto = false; ++ is_xmpp = true; ++ continue; ++ } + } ++ ++ break; + } + +- break; +- } ++ if (rewind == 0) { ++ offset += max_rewind + 1; ++ continue; ++ } + +- if (rewind == 0 || ns > 0) { +- postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1); +- return; +- } ++ assert(data[start + offset + max_rewind] == '@'); ++ for (link_end = 1; link_end < remaining - offset - max_rewind; ++link_end) { ++ uint8_t c = data[start + offset + max_rewind + link_end]; + +- for (link_end = 0; link_end < size; ++link_end) { +- uint8_t c = data[link_end]; ++ if (cmark_isalnum(c)) ++ continue; + +- if (cmark_isalnum(c)) +- continue; ++ if (c == '@') { ++ // Found another '@', so go back and try again with an updated offset and max_rewind. ++ offset += max_rewind + 1; ++ max_rewind = link_end - 1; ++ goto found_at; ++ } else if (c == '.' && link_end < remaining - offset - max_rewind - 1 && ++ cmark_isalnum(data[start + offset + max_rewind + link_end + 1])) ++ np++; ++ else if (c == '/' && is_xmpp) ++ continue; ++ else if (c != '-' && c != '_') ++ break; ++ } + +- if (c == '@') +- nb++; +- else if (c == '.' && link_end < size - 1 && cmark_isalnum(data[link_end + 1])) +- np++; +- else if (c == '/' && is_xmpp) ++ if (link_end < 2 || np == 0 || ++ (!cmark_isalpha(data[start + offset + max_rewind + link_end - 1]) && ++ data[start + offset + max_rewind + link_end - 1] != '.')) { ++ offset += max_rewind + link_end; + continue; +- else if (c != '-' && c != '_') +- break; +- } ++ } + +- if (link_end < 2 || nb != 1 || np == 0 || +- (!cmark_isalpha(data[link_end - 1]) && data[link_end - 1] != '.')) { +- postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1); +- return; +- } ++ link_end = autolink_delim(data + start + offset + max_rewind, link_end); + +- link_end = autolink_delim(data, link_end); ++ if (link_end == 0) { ++ offset += max_rewind + 1; ++ continue; ++ } + +- if (link_end == 0) { +- postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1); +- return; +- } ++ cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem); ++ cmark_strbuf buf; ++ cmark_strbuf_init(parser->mem, &buf, 10); ++ if (auto_mailto) ++ cmark_strbuf_puts(&buf, "mailto:"); ++ cmark_strbuf_put(&buf, data + start + offset + max_rewind - rewind, (bufsize_t)(link_end + rewind)); ++ link_node->as.link.url = cmark_chunk_buf_detach(&buf); ++ ++ cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem); ++ cmark_chunk email = cmark_chunk_dup( ++ &detached_chunk, ++ (bufsize_t)(start + offset + max_rewind - rewind), ++ (bufsize_t)(link_end + rewind)); ++ cmark_chunk_to_cstr(parser->mem, &email); ++ link_text->as.literal = email; ++ cmark_node_append_child(link_node, link_text); + +- cmark_chunk_to_cstr(parser->mem, &text->as.literal); ++ cmark_node_insert_after(text, link_node); + +- cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem); +- cmark_strbuf buf; +- cmark_strbuf_init(parser->mem, &buf, 10); +- if (auto_mailto) +- cmark_strbuf_puts(&buf, "mailto:"); +- cmark_strbuf_put(&buf, data - rewind, (bufsize_t)(link_end + rewind)); +- link_node->as.link.url = cmark_chunk_buf_detach(&buf); +- +- cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem); +- cmark_chunk email = cmark_chunk_dup( +- &text->as.literal, +- offset + max_rewind - rewind, +- (bufsize_t)(link_end + rewind)); +- cmark_chunk_to_cstr(parser->mem, &email); +- link_text->as.literal = email; +- cmark_node_append_child(link_node, link_text); ++ cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem); ++ post->as.literal = cmark_chunk_dup(&detached_chunk, ++ (bufsize_t)(start + offset + max_rewind + link_end), ++ (bufsize_t)(remaining - offset - max_rewind - link_end)); + +- cmark_node_insert_after(text, link_node); ++ cmark_node_insert_after(link_node, post); + +- cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem); +- post->as.literal = cmark_chunk_dup(&text->as.literal, +- (bufsize_t)(offset + max_rewind + link_end), +- (bufsize_t)(size - link_end)); +- cmark_chunk_to_cstr(parser->mem, &post->as.literal); ++ text->as.literal = cmark_chunk_dup(&detached_chunk, (bufsize_t)start, (bufsize_t)(offset + max_rewind - rewind)); ++ cmark_chunk_to_cstr(parser->mem, &text->as.literal); + +- cmark_node_insert_after(link_node, post); ++ text = post; ++ start += offset + max_rewind + link_end; ++ remaining -= offset + max_rewind + link_end; ++ offset = 0; ++ } + +- text->as.literal.len = offset + max_rewind - rewind; +- text->as.literal.data[text->as.literal.len] = 0; ++ // Convert the reference to allocated memory. ++ assert(!text->as.literal.alloc); ++ cmark_chunk_to_cstr(parser->mem, &text->as.literal); + +- postprocess_text(parser, post, 0, depth + 1); ++ // Free the detached buffer. ++ cmark_chunk_free(parser->mem, &detached_chunk); + } + + static cmark_node *postprocess(cmark_syntax_extension *ext, cmark_parser *parser, cmark_node *root) { +@@ -431,7 +483,7 @@ static cmark_node *postprocess(cmark_syn + } + + if (ev == CMARK_EVENT_ENTER && node->type == CMARK_NODE_TEXT) { +- postprocess_text(parser, node, 0, /*depth*/0); ++ postprocess_text(parser, node); + } + } + +Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/cmark-gfm-core-extensions.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/cmark-gfm-core-extensions.h ++++ cmarkgfm-2022.10.27/third_party/cmark/extensions/cmark-gfm-core-extensions.h +@@ -6,45 +6,45 @@ extern "C" { + #endif + + #include "cmark-gfm-extension_api.h" +-#include "cmark-gfm-extensions_export.h" +-#include "config.h" // for bool ++#include "cmark-gfm_export.h" ++#include + #include + +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + void cmark_gfm_core_extensions_ensure_registered(void); + +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + uint16_t cmark_gfm_extensions_get_table_columns(cmark_node *node); + + /** Sets the number of columns for the table, returning 1 on success and 0 on error. + */ +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + int cmark_gfm_extensions_set_table_columns(cmark_node *node, uint16_t n_columns); + +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + uint8_t *cmark_gfm_extensions_get_table_alignments(cmark_node *node); + + /** Sets the alignments for the table, returning 1 on success and 0 on error. + */ +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + int cmark_gfm_extensions_set_table_alignments(cmark_node *node, uint16_t ncols, uint8_t *alignments); + +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + int cmark_gfm_extensions_get_table_row_is_header(cmark_node *node); + + /** Sets whether the node is a table header row, returning 1 on success and 0 on error. + */ +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + int cmark_gfm_extensions_set_table_row_is_header(cmark_node *node, int is_header); + +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + bool cmark_gfm_extensions_get_tasklist_item_checked(cmark_node *node); + /* For backwards compatibility */ + #define cmark_gfm_extensions_tasklist_is_checked cmark_gfm_extensions_get_tasklist_item_checked + + /** Sets whether a tasklist item is "checked" (completed), returning 1 on success and 0 on error. + */ +-CMARK_GFM_EXTENSIONS_EXPORT ++CMARK_GFM_EXPORT + int cmark_gfm_extensions_set_tasklist_item_checked(cmark_node *node, bool is_checked); + + #ifdef __cplusplus +Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/strikethrough.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/strikethrough.c ++++ cmarkgfm-2022.10.27/third_party/cmark/extensions/strikethrough.c +@@ -67,6 +67,7 @@ static delimiter *insert(cmark_syntax_ex + strikethrough->end_column = closer->inl_text->start_column + closer->inl_text->as.literal.len - 1; + cmark_node_free(closer->inl_text); + ++done: + delim = closer; + while (delim != NULL && delim != opener) { + tmp_delim = delim->previous; +@@ -76,7 +77,6 @@ static delimiter *insert(cmark_syntax_ex + + cmark_inline_parser_remove_delimiter(inline_parser, opener); + +-done: + return res; + } + +Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/table.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/table.c ++++ cmarkgfm-2022.10.27/third_party/cmark/extensions/table.c +@@ -11,42 +11,55 @@ + #include "table.h" + #include "cmark-gfm-core-extensions.h" + ++// Limit to prevent a malicious input from causing a denial of service. ++#define MAX_AUTOCOMPLETED_CELLS 0x80000 ++ ++// Custom node flag, initialized in `create_table_extension`. ++static cmark_node_internal_flags CMARK_NODE__TABLE_VISITED; ++ + cmark_node_type CMARK_NODE_TABLE, CMARK_NODE_TABLE_ROW, + CMARK_NODE_TABLE_CELL; + + typedef struct { ++ cmark_strbuf *buf; ++ int start_offset, end_offset, internal_offset; ++} node_cell; ++ ++typedef struct { + uint16_t n_columns; + int paragraph_offset; +- cmark_llist *cells; ++ node_cell *cells; + } table_row; + + typedef struct { + uint16_t n_columns; + uint8_t *alignments; ++ int n_rows; ++ int n_nonempty_cells; + } node_table; + + typedef struct { + bool is_header; + } node_table_row; + +-typedef struct { +- cmark_strbuf *buf; +- int start_offset, end_offset, internal_offset; +-} node_cell; +- +-static void free_table_cell(cmark_mem *mem, void *data) { +- node_cell *cell = (node_cell *)data; ++static void free_table_cell(cmark_mem *mem, node_cell *cell) { + cmark_strbuf_free((cmark_strbuf *)cell->buf); + mem->free(cell->buf); +- mem->free(cell); ++} ++ ++static void free_row_cells(cmark_mem *mem, table_row *row) { ++ while (row->n_columns > 0) { ++ free_table_cell(mem, &row->cells[--row->n_columns]); ++ } ++ mem->free(row->cells); ++ row->cells = NULL; + } + + static void free_table_row(cmark_mem *mem, table_row *row) { + if (!row) + return; + +- cmark_llist_free_full(mem, row->cells, (cmark_free_func)free_table_cell); +- ++ free_row_cells(mem, row); + mem->free(row); + } + +@@ -75,6 +88,33 @@ static int set_n_table_columns(cmark_nod + return 1; + } + ++// Increment the number of rows in the table. Also update n_nonempty_cells, ++// which keeps track of the number of cells which were parsed from the ++// input file. (If one of the rows is too short, then the trailing cells ++// are autocompleted. Autocompleted cells are not counted in n_nonempty_cells.) ++// The purpose of this is to prevent a malicious input from generating a very ++// large number of autocompleted cells, which could cause a denial of service ++// vulnerability. ++static int incr_table_row_count(cmark_node *node, int i) { ++ if (!node || node->type != CMARK_NODE_TABLE) { ++ return 0; ++ } ++ ++ ((node_table *)node->as.opaque)->n_rows++; ++ ((node_table *)node->as.opaque)->n_nonempty_cells += i; ++ return 1; ++} ++ ++// Calculate the number of autocompleted cells. ++static int get_n_autocompleted_cells(cmark_node *node) { ++ if (!node || node->type != CMARK_NODE_TABLE) { ++ return 0; ++ } ++ ++ const node_table *nt = (node_table *)node->as.opaque; ++ return (nt->n_columns * nt->n_rows) - nt->n_nonempty_cells; ++} ++ + static uint8_t *get_table_alignments(cmark_node *node) { + if (!node || node->type != CMARK_NODE_TABLE) + return 0; +@@ -90,6 +130,23 @@ static int set_table_alignments(cmark_no + return 1; + } + ++static uint8_t get_cell_alignment(cmark_node *node) { ++ if (!node || node->type != CMARK_NODE_TABLE_CELL) ++ return 0; ++ ++ const uint8_t *alignments = get_table_alignments(node->parent->parent); ++ int i = node->as.cell_index; ++ return alignments[i]; ++} ++ ++static int set_cell_index(cmark_node *node, int i) { ++ if (!node || node->type != CMARK_NODE_TABLE_CELL) ++ return 0; ++ ++ node->as.cell_index = i; ++ return 1; ++} ++ + static cmark_strbuf *unescape_pipes(cmark_mem *mem, unsigned char *string, bufsize_t len) + { + cmark_strbuf *res = (cmark_strbuf *)mem->calloc(1, sizeof(cmark_strbuf)); +@@ -111,6 +168,24 @@ static cmark_strbuf *unescape_pipes(cmar + return res; + } + ++// Adds a new cell to the end of the row. A pointer to the new cell is returned ++// for the caller to initialize. ++static node_cell* append_row_cell(cmark_mem *mem, table_row *row) { ++ const uint32_t n_columns = row->n_columns + 1; ++ // realloc when n_columns is a power of 2 ++ if ((n_columns & (n_columns-1)) == 0) { ++ // make sure we never wrap row->n_columns ++ // offset will != len and our exit will clean up as intended ++ if (n_columns > UINT16_MAX) { ++ return NULL; ++ } ++ // Use realloc to double the size of the buffer. ++ row->cells = (node_cell *)mem->realloc(row->cells, (2 * n_columns - 1) * sizeof(node_cell)); ++ } ++ row->n_columns = (uint16_t)n_columns; ++ return &row->cells[n_columns-1]; ++} ++ + static table_row *row_from_string(cmark_syntax_extension *self, + cmark_parser *parser, unsigned char *string, + int len) { +@@ -152,24 +227,22 @@ static table_row *row_from_string(cmark_ + cell_matched); + cmark_strbuf_trim(cell_buf); + +- node_cell *cell = (node_cell *)parser->mem->calloc(1, sizeof(*cell)); ++ node_cell *cell = append_row_cell(parser->mem, row); ++ if (!cell) { ++ int_overflow_abort = 1; ++ cmark_strbuf_free(cell_buf); ++ parser->mem->free(cell_buf); ++ break; ++ } + cell->buf = cell_buf; + cell->start_offset = offset; + cell->end_offset = offset + cell_matched - 1; ++ cell->internal_offset = 0; + +- while (cell->start_offset > 0 && string[cell->start_offset - 1] != '|') { ++ while (cell->start_offset > row->paragraph_offset && string[cell->start_offset - 1] != '|') { + --cell->start_offset; + ++cell->internal_offset; + } +- +- // make sure we never wrap row->n_columns +- // offset will != len and our exit will clean up as intended +- if (row->n_columns == UINT16_MAX) { +- int_overflow_abort = 1; +- break; +- } +- row->n_columns += 1; +- row->cells = cmark_llist_append(parser->mem, row->cells, cell); + } + + offset += cell_matched + pipe_matched; +@@ -187,9 +260,7 @@ static table_row *row_from_string(cmark_ + if (row_end_offset && offset != len) { + row->paragraph_offset = offset; + +- cmark_llist_free_full(parser->mem, row->cells, (cmark_free_func)free_table_cell); +- row->cells = NULL; +- row->n_columns = 0; ++ free_row_cells(parser->mem, row); + + // Scan past the (optional) leading pipe. + offset += scan_table_cell_end(string, len, offset); +@@ -235,25 +306,29 @@ static cmark_node *try_opening_table_hea + unsigned char *input, int len) { + cmark_node *table_header; + table_row *header_row = NULL; +- table_row *marker_row = NULL; ++ table_row *delimiter_row = NULL; + node_table_row *ntr; + const char *parent_string; + uint16_t i; + ++ if (parent_container->flags & CMARK_NODE__TABLE_VISITED) { ++ return parent_container; ++ } ++ + if (!scan_table_start(input, len, cmark_parser_get_first_nonspace(parser))) { + return parent_container; + } + +- // Since scan_table_start was successful, we must have a marker row. +- marker_row = row_from_string(self, parser, +- input + cmark_parser_get_first_nonspace(parser), +- len - cmark_parser_get_first_nonspace(parser)); ++ // Since scan_table_start was successful, we must have a delimiter row. ++ delimiter_row = row_from_string( ++ self, parser, input + cmark_parser_get_first_nonspace(parser), ++ len - cmark_parser_get_first_nonspace(parser)); + // assert may be optimized out, don't rely on it for security boundaries +- if (!marker_row) { ++ if (!delimiter_row) { + return parent_container; + } +- +- assert(marker_row); ++ ++ assert(delimiter_row); + + cmark_arena_push(); + +@@ -263,22 +338,23 @@ static cmark_node *try_opening_table_hea + parent_string = cmark_node_get_string_content(parent_container); + header_row = row_from_string(self, parser, (unsigned char *)parent_string, + (int)strlen(parent_string)); +- if (!header_row || header_row->n_columns != marker_row->n_columns) { +- free_table_row(parser->mem, marker_row); ++ if (!header_row || header_row->n_columns != delimiter_row->n_columns) { ++ free_table_row(parser->mem, delimiter_row); + free_table_row(parser->mem, header_row); + cmark_arena_pop(); ++ parent_container->flags |= CMARK_NODE__TABLE_VISITED; + return parent_container; + } + + if (cmark_arena_pop()) { +- marker_row = row_from_string( ++ delimiter_row = row_from_string( + self, parser, input + cmark_parser_get_first_nonspace(parser), + len - cmark_parser_get_first_nonspace(parser)); + header_row = row_from_string(self, parser, (unsigned char *)parent_string, + (int)strlen(parent_string)); + // row_from_string can return NULL, add additional check to ensure n_columns match +- if (!marker_row || !header_row || header_row->n_columns != marker_row->n_columns) { +- free_table_row(parser->mem, marker_row); ++ if (!delimiter_row || !header_row || header_row->n_columns != delimiter_row->n_columns) { ++ free_table_row(parser->mem, delimiter_row); + free_table_row(parser->mem, header_row); + return parent_container; + } +@@ -286,7 +362,7 @@ static cmark_node *try_opening_table_hea + + if (!cmark_node_set_type(parent_container, CMARK_NODE_TABLE)) { + free_table_row(parser->mem, header_row); +- free_table_row(parser->mem, marker_row); ++ free_table_row(parser->mem, delimiter_row); + return parent_container; + } + +@@ -299,13 +375,12 @@ static cmark_node *try_opening_table_hea + parent_container->as.opaque = parser->mem->calloc(1, sizeof(node_table)); + set_n_table_columns(parent_container, header_row->n_columns); + +- // allocate alignments based on marker_row->n_columns +- // since we populate the alignments array based on marker_row->cells ++ // allocate alignments based on delimiter_row->n_columns ++ // since we populate the alignments array based on delimiter_row->cells + uint8_t *alignments = +- (uint8_t *)parser->mem->calloc(marker_row->n_columns, sizeof(uint8_t)); +- cmark_llist *it = marker_row->cells; +- for (i = 0; it; it = it->next, ++i) { +- node_cell *node = (node_cell *)it->data; ++ (uint8_t *)parser->mem->calloc(delimiter_row->n_columns, sizeof(uint8_t)); ++ for (i = 0; i < delimiter_row->n_columns; ++i) { ++ node_cell *node = &delimiter_row->cells[i]; + bool left = node->buf->ptr[0] == ':', right = node->buf->ptr[node->buf->size - 1] == ':'; + + if (left && right) +@@ -327,27 +402,26 @@ static cmark_node *try_opening_table_hea + table_header->as.opaque = ntr = (node_table_row *)parser->mem->calloc(1, sizeof(node_table_row)); + ntr->is_header = true; + +- { +- cmark_llist *tmp; +- +- for (tmp = header_row->cells; tmp; tmp = tmp->next) { +- node_cell *cell = (node_cell *) tmp->data; +- cmark_node *header_cell = cmark_parser_add_child(parser, table_header, +- CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset); +- header_cell->start_line = header_cell->end_line = parent_container->start_line; +- header_cell->internal_offset = cell->internal_offset; +- header_cell->end_column = parent_container->start_column + cell->end_offset; +- cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr); +- cmark_node_set_syntax_extension(header_cell, self); +- } ++ for (i = 0; i < header_row->n_columns; ++i) { ++ node_cell *cell = &header_row->cells[i]; ++ cmark_node *header_cell = cmark_parser_add_child(parser, table_header, ++ CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset); ++ header_cell->start_line = header_cell->end_line = parent_container->start_line; ++ header_cell->internal_offset = cell->internal_offset; ++ header_cell->end_column = parent_container->start_column + cell->end_offset; ++ cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr); ++ cmark_node_set_syntax_extension(header_cell, self); ++ set_cell_index(header_cell, i); + } + ++ incr_table_row_count(parent_container, i); ++ + cmark_parser_advance_offset( + parser, (char *)input, + (int)strlen((char *)input) - 1 - cmark_parser_get_offset(parser), false); + + free_table_row(parser->mem, header_row); +- free_table_row(parser->mem, marker_row); ++ free_table_row(parser->mem, delimiter_row); + return parent_container; + } + +@@ -361,6 +435,10 @@ static cmark_node *try_opening_table_row + if (cmark_parser_is_blank(parser)) + return NULL; + ++ if (get_n_autocompleted_cells(parent_container) > MAX_AUTOCOMPLETED_CELLS) { ++ return NULL; ++ } ++ + table_row_block = + cmark_parser_add_child(parser, parent_container, CMARK_NODE_TABLE_ROW, + parent_container->start_column); +@@ -378,23 +456,26 @@ static cmark_node *try_opening_table_row + } + + { +- cmark_llist *tmp; + int i, table_columns = get_n_table_columns(parent_container); + +- for (tmp = row->cells, i = 0; tmp && i < table_columns; tmp = tmp->next, ++i) { +- node_cell *cell = (node_cell *) tmp->data; ++ for (i = 0; i < row->n_columns && i < table_columns; ++i) { ++ node_cell *cell = &row->cells[i]; + cmark_node *node = cmark_parser_add_child(parser, table_row_block, + CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset); + node->internal_offset = cell->internal_offset; + node->end_column = parent_container->start_column + cell->end_offset; + cmark_node_set_string_content(node, (char *) cell->buf->ptr); + cmark_node_set_syntax_extension(node, self); ++ set_cell_index(node, i); + } + ++ incr_table_row_count(parent_container, i); ++ + for (; i < table_columns; ++i) { + cmark_node *node = cmark_parser_add_child( + parser, table_row_block, CMARK_NODE_TABLE_CELL, 0); + cmark_node_set_syntax_extension(node, self); ++ set_cell_index(node, i); + } + } + +@@ -579,13 +660,7 @@ static const char *xml_attr(cmark_syntax + cmark_node *node) { + if (node->type == CMARK_NODE_TABLE_CELL) { + if (cmark_gfm_extensions_get_table_row_is_header(node->parent)) { +- uint8_t *alignments = get_table_alignments(node->parent->parent); +- int i = 0; +- cmark_node *n; +- for (n = node->parent->first_child; n; n = n->next, ++i) +- if (n == node) +- break; +- switch (alignments[i]) { ++ switch (get_cell_alignment(node)) { + case 'l': return " align=\"left\""; + case 'c': return " align=\"center\""; + case 'r': return " align=\"right\""; +@@ -673,7 +748,6 @@ static void html_render(cmark_syntax_ext + cmark_event_type ev_type, int options) { + bool entering = (ev_type == CMARK_EVENT_ENTER); + cmark_strbuf *html = renderer->html; +- cmark_node *n; + + // XXX: we just monopolise renderer->opaque. + struct html_table_state *table_state = +@@ -722,7 +796,6 @@ static void html_render(cmark_syntax_ext + } + } + } else if (node->type == CMARK_NODE_TABLE_CELL) { +- uint8_t *alignments = get_table_alignments(node->parent->parent); + if (entering) { + cmark_html_render_cr(html); + if (table_state->in_table_header) { +@@ -731,12 +804,7 @@ static void html_render(cmark_syntax_ext + cmark_strbuf_puts(html, "parent->first_child; n; n = n->next, ++i) +- if (n == node) +- break; +- +- switch (alignments[i]) { ++ switch (get_cell_alignment(node)) { + case 'l': html_table_add_align(html, "left", options); break; + case 'c': html_table_add_align(html, "center", options); break; + case 'r': html_table_add_align(html, "right", options); break; +@@ -785,6 +853,7 @@ static int escape(cmark_syntax_extension + cmark_syntax_extension *create_table_extension(void) { + cmark_syntax_extension *self = cmark_syntax_extension_new("table"); + ++ cmark_register_node_flag(&CMARK_NODE__TABLE_VISITED); + cmark_syntax_extension_set_match_block_func(self, matches); + cmark_syntax_extension_set_open_block_func(self, try_opening_table_block); + cmark_syntax_extension_set_get_type_string_func(self, get_type_string); +Index: cmarkgfm-2022.10.27/third_party/cmark/src/arena.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/arena.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/arena.c +@@ -68,15 +68,16 @@ static void *arena_calloc(size_t nmem, s + const size_t align = sizeof(size_t) - 1; + sz = (sz + align) & ~align; + ++ struct arena_chunk *chunk; + if (sz > A->sz) { +- A->prev = alloc_arena_chunk(sz, A->prev); +- return (uint8_t *) A->prev->ptr + sizeof(size_t); ++ A->prev = chunk = alloc_arena_chunk(sz, A->prev); ++ } else if (sz > A->sz - A->used) { ++ A = chunk = alloc_arena_chunk(A->sz + A->sz / 2, A); ++ } else { ++ chunk = A; + } +- if (sz > A->sz - A->used) { +- A = alloc_arena_chunk(A->sz + A->sz / 2, A); +- } +- void *ptr = (uint8_t *) A->ptr + A->used; +- A->used += sz; ++ void *ptr = (uint8_t *) chunk->ptr + chunk->used; ++ chunk->used += sz; + *((size_t *) ptr) = sz - sizeof(size_t); + return (uint8_t *) ptr + sizeof(size_t); + } +@@ -98,6 +99,6 @@ static void arena_free(void *ptr) { + + cmark_mem CMARK_ARENA_MEM_ALLOCATOR = {arena_calloc, arena_realloc, arena_free}; + +-cmark_mem *cmark_get_arena_mem_allocator() { ++cmark_mem *cmark_get_arena_mem_allocator(void) { + return &CMARK_ARENA_MEM_ALLOCATOR; + } +Index: cmarkgfm-2022.10.27/third_party/cmark/src/blocks.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/blocks.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/blocks.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "cmark_ctype.h" + #include "syntax_extension.h" +@@ -26,6 +27,14 @@ + #define CODE_INDENT 4 + #define TAB_STOP 4 + ++/** ++ * Very deeply nested lists can cause quadratic performance issues. ++ * This constant is used in open_new_blocks() to limit the nesting ++ * depth. It is unlikely that a non-contrived markdown document will ++ * be nested this deeply. ++ */ ++#define MAX_LIST_DEPTH 100 ++ + #ifndef MIN + #define MIN(x, y) ((x < y) ? x : y) + #endif +@@ -639,6 +648,14 @@ static cmark_node *finalize_document(cma + } + + finalize(parser, parser->root); ++ ++ // Limit total size of extra content created from reference links to ++ // document size to avoid superlinear growth. Always allow 100KB. ++ if (parser->total_size > 100000) ++ parser->refmap->max_ref_size = parser->total_size; ++ else ++ parser->refmap->max_ref_size = 100000; ++ + process_inlines(parser, parser->refmap, parser->options); + if (parser->options & CMARK_OPT_FOOTNOTES) + process_footnotes(parser); +@@ -698,6 +715,11 @@ static void S_parser_feed(cmark_parser * + const unsigned char *end = buffer + len; + static const uint8_t repl[] = {239, 191, 189}; + ++ if (len > UINT_MAX - parser->total_size) ++ parser->total_size = UINT_MAX; ++ else ++ parser->total_size += len; ++ + if (parser->last_buffer_ended_with_cr && *buffer == '\n') { + // skip NL if last buffer ended with CR ; see #117 + buffer++; +@@ -1105,10 +1127,11 @@ static void open_new_blocks(cmark_parser + bool has_content; + int save_offset; + int save_column; ++ size_t depth = 0; + + while (cont_type != CMARK_NODE_CODE_BLOCK && + cont_type != CMARK_NODE_HTML_BLOCK) { +- ++ depth++; + S_find_first_nonspace(parser, input); + indented = parser->indent >= CODE_INDENT; + +@@ -1194,15 +1217,17 @@ static void open_new_blocks(cmark_parser + parser->first_nonspace + 1); + S_advance_offset(parser, input, input->len - 1 - parser->offset, false); + } else if (!indented && +- parser->options & CMARK_OPT_FOOTNOTES && ++ (parser->options & CMARK_OPT_FOOTNOTES) && ++ depth < MAX_LIST_DEPTH && + (matched = scan_footnote_definition(input, parser->first_nonspace))) { + cmark_chunk c = cmark_chunk_dup(input, parser->first_nonspace + 2, matched - 2); +- cmark_chunk_to_cstr(parser->mem, &c); + + while (c.data[c.len - 1] != ']') + --c.len; + --c.len; + ++ cmark_chunk_to_cstr(parser->mem, &c); ++ + S_advance_offset(parser, input, parser->first_nonspace + matched - parser->offset, false); + *container = add_child(parser, *container, CMARK_NODE_FOOTNOTE_DEFINITION, parser->first_nonspace + matched + 1); + (*container)->as.literal = c; +@@ -1210,6 +1235,7 @@ static void open_new_blocks(cmark_parser + (*container)->internal_offset = matched; + } else if ((!indented || cont_type == CMARK_NODE_LIST) && + parser->indent < 4 && ++ depth < MAX_LIST_DEPTH && + (matched = parse_list_marker( + parser->mem, input, parser->first_nonspace, + (*container)->type == CMARK_NODE_PARAGRAPH, &data))) { +Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm-extension_api.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark-gfm-extension_api.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm-extension_api.h +@@ -114,6 +114,7 @@ typedef struct delimiter { + struct delimiter *previous; + struct delimiter *next; + cmark_node *inl_text; ++ bufsize_t position; + bufsize_t length; + unsigned char delim_char; + int can_open; +Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark-gfm.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm.h +@@ -111,13 +111,13 @@ typedef struct cmark_mem { + * realloc and free. + */ + CMARK_GFM_EXPORT +-cmark_mem *cmark_get_default_mem_allocator(); ++cmark_mem *cmark_get_default_mem_allocator(void); + + /** An arena allocator; uses system calloc to allocate large + * slabs of memory. Memory in these slabs is not reused at all. + */ + CMARK_GFM_EXPORT +-cmark_mem *cmark_get_arena_mem_allocator(); ++cmark_mem *cmark_get_arena_mem_allocator(void); + + /** Resets the arena allocator, quickly returning all used memory + * to the operating system. +@@ -225,6 +225,11 @@ CMARK_GFM_EXPORT cmark_node *cmark_node_ + */ + CMARK_GFM_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); + ++/** Returns the footnote reference of 'node', or NULL if 'node' doesn't have a ++ * footnote reference. ++ */ ++CMARK_GFM_EXPORT cmark_node *cmark_node_parent_footnote_def(cmark_node *node); ++ + /** + * ## Iterator + * +@@ -408,6 +413,17 @@ CMARK_GFM_EXPORT int cmark_node_get_list + */ + CMARK_GFM_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight); + ++/** ++ * Returns item index of 'node'. This is only used when rendering output ++ * formats such as commonmark, which need to output the index. It is not ++ * required for formats such as html or latex. ++ */ ++CMARK_GFM_EXPORT int cmark_node_get_item_index(cmark_node *node); ++ ++/** Sets item index of 'node'. Returns 1 on success, 0 on failure. ++ */ ++CMARK_GFM_EXPORT int cmark_node_set_item_index(cmark_node *node, int idx); ++ + /** Returns the info string from a fenced code block. + */ + CMARK_GFM_EXPORT const char *cmark_node_get_fence_info(cmark_node *node); +Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark.c +@@ -10,9 +10,9 @@ + cmark_node_type CMARK_NODE_LAST_BLOCK = CMARK_NODE_FOOTNOTE_DEFINITION; + cmark_node_type CMARK_NODE_LAST_INLINE = CMARK_NODE_FOOTNOTE_REFERENCE; + +-int cmark_version() { return CMARK_GFM_VERSION; } ++int cmark_version(void) { return CMARK_GFM_VERSION; } + +-const char *cmark_version_string() { return CMARK_GFM_VERSION_STRING; } ++const char *cmark_version_string(void) { return CMARK_GFM_VERSION_STRING; } + + static void *xcalloc(size_t nmem, size_t size) { + void *ptr = calloc(nmem, size); +@@ -38,7 +38,7 @@ static void xfree(void *ptr) { + + cmark_mem CMARK_DEFAULT_MEM_ALLOCATOR = {xcalloc, xrealloc, xfree}; + +-cmark_mem *cmark_get_default_mem_allocator() { ++cmark_mem *cmark_get_default_mem_allocator(void) { + return &CMARK_DEFAULT_MEM_ALLOCATOR; + } + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/commonmark.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/commonmark.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/commonmark.c +@@ -153,23 +153,8 @@ static bool is_autolink(cmark_node *node + link_text->as.literal.len) == 0); + } + +-// if node is a block node, returns node. +-// otherwise returns first block-level node that is an ancestor of node. +-// if there is no block-level ancestor, returns NULL. +-static cmark_node *get_containing_block(cmark_node *node) { +- while (node) { +- if (CMARK_NODE_BLOCK_P(node)) { +- return node; +- } else { +- node = node->parent; +- } +- } +- return NULL; +-} +- + static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { +- cmark_node *tmp; + int list_number; + cmark_delim_type list_delim; + int numticks; +@@ -180,7 +165,7 @@ static int S_render_node(cmark_renderer + char fencechar[2] = {'\0', '\0'}; + size_t info_len, code_len; + char listmarker[LISTMARKER_SIZE]; +- char *emph_delim; ++ const char *emph_delim; + bool first_in_list_item; + bufsize_t marker_width; + bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) && +@@ -189,14 +174,17 @@ static int S_render_node(cmark_renderer + // Don't adjust tight list status til we've started the list. + // Otherwise we loose the blank line between a paragraph and + // a following list. +- if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) { +- tmp = get_containing_block(node); +- renderer->in_tight_list_item = +- tmp && // tmp might be NULL if there is no containing block +- ((tmp->type == CMARK_NODE_ITEM && +- cmark_node_get_list_tight(tmp->parent)) || +- (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM && +- cmark_node_get_list_tight(tmp->parent->parent))); ++ if (entering) { ++ if (node->parent && node->parent->type == CMARK_NODE_ITEM) { ++ renderer->in_tight_list_item = node->parent->parent->as.list.tight; ++ } ++ } else { ++ if (node->type == CMARK_NODE_LIST) { ++ renderer->in_tight_list_item = ++ node->parent && ++ node->parent->type == CMARK_NODE_ITEM && ++ node->parent->parent->as.list.tight; ++ } + } + + if (node->extension && node->extension->commonmark_render_func) { +@@ -234,13 +222,8 @@ static int S_render_node(cmark_renderer + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + marker_width = 4; + } else { +- list_number = cmark_node_get_list_start(node->parent); ++ list_number = cmark_node_get_item_index(node); + list_delim = cmark_node_get_list_delim(node->parent); +- tmp = node; +- while (tmp->prev) { +- tmp = tmp->prev; +- list_number += 1; +- } + // we ensure a width of at least 4 so + // we get nice transition from single digits + // to double +@@ -405,10 +388,12 @@ static int S_render_node(cmark_renderer + break; + + case CMARK_NODE_STRONG: +- if (entering) { +- LIT("**"); +- } else { +- LIT("**"); ++ if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) { ++ if (entering) { ++ LIT("**"); ++ } else { ++ LIT("**"); ++ } + } + break; + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/html.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/html.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/html.c +@@ -63,10 +63,16 @@ static bool S_put_footnote_backref(cmark + if (renderer->written_footnote_ix >= renderer->footnote_ix) + return false; + renderer->written_footnote_ix = renderer->footnote_ix; ++ char m[32]; ++ snprintf(m, sizeof(m), "%d", renderer->written_footnote_ix); + + cmark_strbuf_puts(html, "as.literal.data, node->as.literal.len); +- cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩"); ++ cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\""); ++ cmark_strbuf_puts(html, m); ++ cmark_strbuf_puts(html, "\" aria-label=\"Back to reference "); ++ cmark_strbuf_puts(html, m); ++ cmark_strbuf_puts(html, "\">↩"); + + if (node->footnote.def_count > 1) + { +@@ -78,7 +84,15 @@ static bool S_put_footnote_backref(cmark + houdini_escape_href(html, node->as.literal.data, node->as.literal.len); + cmark_strbuf_puts(html, "-"); + cmark_strbuf_puts(html, n); +- cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩"); ++ cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\""); ++ cmark_strbuf_puts(html, m); ++ cmark_strbuf_puts(html, "-"); ++ cmark_strbuf_puts(html, n); ++ cmark_strbuf_puts(html, "\" aria-label=\"Back to reference "); ++ cmark_strbuf_puts(html, m); ++ cmark_strbuf_puts(html, "-"); ++ cmark_strbuf_puts(html, n); ++ cmark_strbuf_puts(html, "\">↩"); + cmark_strbuf_puts(html, n); + cmark_strbuf_puts(html, ""); + } +@@ -350,10 +364,12 @@ static int S_render_node(cmark_html_rend + break; + + case CMARK_NODE_STRONG: +- if (entering) { +- cmark_strbuf_puts(html, ""); +- } else { +- cmark_strbuf_puts(html, ""); ++ if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) { ++ if (entering) { ++ cmark_strbuf_puts(html, ""); ++ } else { ++ cmark_strbuf_puts(html, ""); ++ } + } + break; + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/inlines.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/inlines.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/inlines.c +@@ -35,7 +35,6 @@ static const char *RIGHTSINGLEQUOTE = "\ + + typedef struct bracket { + struct bracket *previous; +- struct delimiter *previous_delimiter; + cmark_node *inl_text; + bufsize_t position; + bool image; +@@ -45,9 +44,15 @@ typedef struct bracket { + bool in_bracket_image1; + } bracket; + ++#define FLAG_SKIP_HTML_CDATA (1u << 0) ++#define FLAG_SKIP_HTML_DECLARATION (1u << 1) ++#define FLAG_SKIP_HTML_PI (1u << 2) ++#define FLAG_SKIP_HTML_COMMENT (1u << 3) ++ + typedef struct subject{ + cmark_mem *mem; + cmark_chunk input; ++ unsigned flags; + int line; + bufsize_t pos; + int block_offset; +@@ -57,6 +62,7 @@ typedef struct subject{ + bracket *last_bracket; + bufsize_t backticks[MAXBACKTICKS + 1]; + bool scanned_for_backticks; ++ bool no_link_openers; + } subject; + + // Extensions may populate this. +@@ -111,6 +117,24 @@ static cmark_node *make_str_with_entitie + } + } + ++// Like cmark_node_append_child but without costly sanity checks. ++// Assumes that child was newly created. ++static void append_child(cmark_node *node, cmark_node *child) { ++ cmark_node *old_last_child = node->last_child; ++ ++ child->next = NULL; ++ child->prev = old_last_child; ++ child->parent = node; ++ node->last_child = child; ++ ++ if (old_last_child) { ++ old_last_child->next = child; ++ } else { ++ // Also set first_child if node previously had no children. ++ node->first_child = child; ++ } ++} ++ + // Duplicate a chunk by creating a copy of the buffer not by reusing the + // buffer like cmark_chunk_dup does. + static cmark_chunk chunk_clone(cmark_mem *mem, cmark_chunk *src) { +@@ -154,7 +178,7 @@ static CMARK_INLINE cmark_node *make_aut + link->start_line = link->end_line = subj->line; + link->start_column = start_column + 1; + link->end_column = end_column + 1; +- cmark_node_append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url)); ++ append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url)); + return link; + } + +@@ -163,6 +187,7 @@ static void subject_from_buf(cmark_mem * + int i; + e->mem = mem; + e->input = *chunk; ++ e->flags = 0; + e->line = line_number; + e->pos = 0; + e->block_offset = block_offset; +@@ -174,6 +199,7 @@ static void subject_from_buf(cmark_mem * + e->backticks[i] = 0; + } + e->scanned_for_backticks = false; ++ e->no_link_openers = true; + } + + static CMARK_INLINE int isbacktick(int c) { return (c == '`'); } +@@ -505,6 +531,7 @@ static void push_delimiter(subject *subj + delim->can_open = can_open; + delim->can_close = can_close; + delim->inl_text = inl_text; ++ delim->position = subj->pos; + delim->length = inl_text->as.literal.len; + delim->previous = subj->last_delim; + delim->next = NULL; +@@ -525,7 +552,6 @@ static void push_bracket(subject *subj, + b->active = true; + b->inl_text = inl_text; + b->previous = subj->last_bracket; +- b->previous_delimiter = subj->last_delim; + b->position = subj->pos; + b->bracket_after = false; + if (image) { +@@ -534,6 +560,9 @@ static void push_bracket(subject *subj, + b->in_bracket_image0 = true; + } + subj->last_bracket = b; ++ if (!image) { ++ subj->no_link_openers = false; ++ } + } + + // Assumes the subject has a c at the current position. +@@ -640,12 +669,13 @@ static cmark_syntax_extension *get_exten + return NULL; + } + +-static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *stack_bottom) { +- delimiter *closer = subj->last_delim; ++static void process_emphasis(cmark_parser *parser, subject *subj, bufsize_t stack_bottom) { ++ delimiter *candidate; ++ delimiter *closer = NULL; + delimiter *opener; + delimiter *old_closer; + bool opener_found; +- delimiter *openers_bottom[3][128]; ++ bufsize_t openers_bottom[3][128]; + int i; + + // initialize openers_bottom: +@@ -658,8 +688,10 @@ static void process_emphasis(cmark_parse + } + + // move back to first relevant delim. +- while (closer != NULL && closer->previous != stack_bottom) { +- closer = closer->previous; ++ candidate = subj->last_delim; ++ while (candidate != NULL && candidate->position >= stack_bottom) { ++ closer = candidate; ++ candidate = candidate->previous; + } + + // now move forward, looking for closers, and handling each +@@ -669,8 +701,8 @@ static void process_emphasis(cmark_parse + // Now look backwards for first matching opener: + opener = closer->previous; + opener_found = false; +- while (opener != NULL && opener != stack_bottom && +- opener != openers_bottom[closer->length % 3][closer->delim_char]) { ++ while (opener != NULL && opener->position >= stack_bottom && ++ opener->position >= openers_bottom[closer->length % 3][closer->delim_char]) { + if (opener->can_open && opener->delim_char == closer->delim_char) { + // interior closer of size 2 can't match opener of size 1 + // or of size 1 can't match 2 +@@ -696,27 +728,29 @@ static void process_emphasis(cmark_parse + } else { + closer = closer->next; + } +- } else if (closer->delim_char == '\'') { ++ } else if (closer->delim_char == '\'' || closer->delim_char == '"') { + cmark_chunk_free(subj->mem, &closer->inl_text->as.literal); +- closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE); +- if (opener_found) { +- cmark_chunk_free(subj->mem, &opener->inl_text->as.literal); +- opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE); ++ if (closer->delim_char == '\'') { ++ closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE); ++ } else { ++ closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE); + } + closer = closer->next; +- } else if (closer->delim_char == '"') { +- cmark_chunk_free(subj->mem, &closer->inl_text->as.literal); +- closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE); + if (opener_found) { + cmark_chunk_free(subj->mem, &opener->inl_text->as.literal); +- opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE); ++ if (old_closer->delim_char == '\'') { ++ opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE); ++ } else { ++ opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE); ++ } ++ remove_delimiter(subj, opener); ++ remove_delimiter(subj, old_closer); + } +- closer = closer->next; + } + if (!opener_found) { + // set lower bound for future searches for openers + openers_bottom[old_closer->length % 3][old_closer->delim_char] = +- old_closer->previous; ++ old_closer->position; + if (!old_closer->can_open) { + // we can remove a closer that can't be an + // opener, once we've seen there's no +@@ -729,7 +763,8 @@ static void process_emphasis(cmark_parse + } + } + // free all delimiters in list until stack_bottom: +- while (subj->last_delim != NULL && subj->last_delim != stack_bottom) { ++ while (subj->last_delim != NULL && ++ subj->last_delim->position >= stack_bottom) { + remove_delimiter(subj, subj->last_delim); + } + } +@@ -768,7 +803,8 @@ static delimiter *S_insert_emph(subject + tmp = opener_inl->next; + while (tmp && tmp != closer_inl) { + tmpnext = tmp->next; +- cmark_node_append_child(emph, tmp); ++ cmark_node_unlink(tmp); ++ append_child(emph, tmp); + tmp = tmpnext; + } + cmark_node_insert_after(opener_inl, emph); +@@ -899,7 +935,63 @@ static cmark_node *handle_pointy_brace(s + } + + // finally, try to match an html tag +- matchlen = scan_html_tag(&subj->input, subj->pos); ++ if (subj->pos + 2 <= subj->input.len) { ++ int c = subj->input.data[subj->pos]; ++ if (c == '!' && (subj->flags & FLAG_SKIP_HTML_COMMENT) == 0) { ++ c = subj->input.data[subj->pos+1]; ++ if (c == '-' && subj->input.data[subj->pos+2] == '-') { ++ if (subj->input.data[subj->pos+3] == '>') { ++ matchlen = 4; ++ } else if (subj->input.data[subj->pos+3] == '-' && ++ subj->input.data[subj->pos+4] == '>') { ++ matchlen = 5; ++ } else { ++ matchlen = scan_html_comment(&subj->input, subj->pos + 1); ++ if (matchlen > 0) { ++ matchlen += 1; // prefix "<" ++ } else { // no match through end of input: set a flag so ++ // we don't reparse looking for -->: ++ subj->flags |= FLAG_SKIP_HTML_COMMENT; ++ } ++ } ++ } else if (c == '[') { ++ if ((subj->flags & FLAG_SKIP_HTML_CDATA) == 0) { ++ matchlen = scan_html_cdata(&subj->input, subj->pos + 2); ++ if (matchlen > 0) { ++ // The regex doesn't require the final "]]>". But if we're not at ++ // the end of input, it must come after the match. Otherwise, ++ // disable subsequent scans to avoid quadratic behavior. ++ matchlen += 5; // prefix "![", suffix "]]>" ++ if (subj->pos + matchlen > subj->input.len) { ++ subj->flags |= FLAG_SKIP_HTML_CDATA; ++ matchlen = 0; ++ } ++ } ++ } ++ } else if ((subj->flags & FLAG_SKIP_HTML_DECLARATION) == 0) { ++ matchlen = scan_html_declaration(&subj->input, subj->pos + 1); ++ if (matchlen > 0) { ++ matchlen += 2; // prefix "!", suffix ">" ++ if (subj->pos + matchlen > subj->input.len) { ++ subj->flags |= FLAG_SKIP_HTML_DECLARATION; ++ matchlen = 0; ++ } ++ } ++ } ++ } else if (c == '?') { ++ if ((subj->flags & FLAG_SKIP_HTML_PI) == 0) { ++ // Note that we allow an empty match. ++ matchlen = scan_html_pi(&subj->input, subj->pos + 1); ++ matchlen += 3; // prefix "?", suffix "?>" ++ if (subj->pos + matchlen > subj->input.len) { ++ subj->flags |= FLAG_SKIP_HTML_PI; ++ matchlen = 0; ++ } ++ } ++ } else { ++ matchlen = scan_html_tag(&subj->input, subj->pos); ++ } ++ } + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos - 1, matchlen + 1); + subj->pos += matchlen; +@@ -1065,16 +1157,16 @@ static cmark_node *handle_close_bracket( + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); + } + +- if (!opener->active) { ++ // If we got here, we matched a potential link/image text. ++ // Now we check to see if it's a link/image. ++ is_image = opener->image; ++ ++ if (!is_image && subj->no_link_openers) { + // take delimiter off stack + pop_bracket(subj); + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); + } + +- // If we got here, we matched a potential link/image text. +- // Now we check to see if it's a link/image. +- is_image = opener->image; +- + after_link_text_pos = subj->pos; + + // First, look for an inline link. +@@ -1193,7 +1285,7 @@ noMatch: + // being replacing the opening '[' text node with a `^footnote-ref]` node. + cmark_node_insert_before(opener->inl_text, fnref); + +- process_emphasis(parser, subj, opener->previous_delimiter); ++ process_emphasis(parser, subj, opener->position); + // sometimes, the footnote reference text gets parsed into multiple nodes + // i.e. '[^example]' parsed into '[', '^exam', 'ple]'. + // this happens for ex with the autolink extension. when the autolinker +@@ -1238,42 +1330,22 @@ match: + tmp = opener->inl_text->next; + while (tmp) { + tmpnext = tmp->next; +- cmark_node_append_child(inl, tmp); ++ cmark_node_unlink(tmp); ++ append_child(inl, tmp); + tmp = tmpnext; + } + + // Free the bracket [: + cmark_node_free(opener->inl_text); + +- process_emphasis(parser, subj, opener->previous_delimiter); ++ process_emphasis(parser, subj, opener->position); + pop_bracket(subj); + +- // Now, if we have a link, we also want to deactivate earlier link +- // delimiters. (This code can be removed if we decide to allow links ++ // Now, if we have a link, we also want to deactivate links until ++ // we get a new opener. (This code can be removed if we decide to allow links + // inside links.) + if (!is_image) { +- opener = subj->last_bracket; +- while (opener != NULL) { +- if (!opener->image) { +- if (!opener->active) { +- break; +- } else { +- opener->active = false; +- } +- } +- opener = opener->previous; +- } +- bool in_bracket_image1 = false; +- if (opener) { +- in_bracket_image1 = opener->in_bracket_image1; +- } +- bracket *opener2 = subj->last_bracket; +- while (opener2 != opener) { +- if (opener2->image) { +- opener2->in_bracket_image1 = in_bracket_image1; +- } +- opener2 = opener2->previous; +- } ++ subj->no_link_openers = true; + } + + return NULL; +@@ -1451,7 +1523,7 @@ static int parse_inline(cmark_parser *pa + new_inl = make_str(subj, startpos, endpos - 1, contents); + } + if (new_inl != NULL) { +- cmark_node_append_child(parent, new_inl); ++ append_child(parent, new_inl); + } + + return 1; +@@ -1470,7 +1542,7 @@ void cmark_parse_inlines(cmark_parser *p + while (!is_eof(&subj) && parse_inline(parser, &subj, parent, options)) + ; + +- process_emphasis(parser, &subj, NULL); ++ process_emphasis(parser, &subj, 0); + // free bracket and delim stack + while (subj.last_delim) { + remove_delimiter(&subj, subj.last_delim); +Index: cmarkgfm-2022.10.27/third_party/cmark/src/latex.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/latex.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/latex.c +@@ -385,10 +385,12 @@ static int S_render_node(cmark_renderer + break; + + case CMARK_NODE_STRONG: +- if (entering) { +- LIT("\\textbf{"); +- } else { +- LIT("}"); ++ if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) { ++ if (entering) { ++ LIT("\\textbf{"); ++ } else { ++ LIT("}"); ++ } + } + break; + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/man.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/man.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/man.c +@@ -74,7 +74,6 @@ static void S_outc(cmark_renderer *rende + + static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { +- cmark_node *tmp; + int list_number; + bool entering = (ev_type == CMARK_EVENT_ENTER); + bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options); +@@ -123,12 +122,7 @@ static int S_render_node(cmark_renderer + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + LIT("\\[bu] 2"); + } else { +- list_number = cmark_node_get_list_start(node->parent); +- tmp = node; +- while (tmp->prev) { +- tmp = tmp->prev; +- list_number += 1; +- } ++ list_number = cmark_node_get_item_index(node); + char list_number_s[LIST_NUMBER_SIZE]; + snprintf(list_number_s, LIST_NUMBER_SIZE, "\"%d.\" 4", list_number); + LIT(list_number_s); +@@ -225,10 +219,12 @@ static int S_render_node(cmark_renderer + break; + + case CMARK_NODE_STRONG: +- if (entering) { +- LIT("\\f[B]"); +- } else { +- LIT("\\f[]"); ++ if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) { ++ if (entering) { ++ LIT("\\f[B]"); ++ } else { ++ LIT("\\f[]"); ++ } + } + break; + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/map.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/map.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/map.c +@@ -51,7 +51,7 @@ refsearch(const void *label, const void + } + + static void sort_map(cmark_map *map) { +- unsigned int i = 0, last = 0, size = map->size; ++ size_t i = 0, last = 0, size = map->size; + cmark_map_entry *r = map->refs, **sorted = NULL; + + sorted = (cmark_map_entry **)map->mem->calloc(size, sizeof(cmark_map_entry *)); +@@ -73,6 +73,7 @@ static void sort_map(cmark_map *map) { + + cmark_map_entry *cmark_map_lookup(cmark_map *map, cmark_chunk *label) { + cmark_map_entry **ref = NULL; ++ cmark_map_entry *r = NULL; + unsigned char *norm; + + if (label->len < 1 || label->len > MAX_LINK_LABEL_LENGTH) +@@ -91,10 +92,15 @@ cmark_map_entry *cmark_map_lookup(cmark_ + ref = (cmark_map_entry **)bsearch(norm, map->sorted, map->size, sizeof(cmark_map_entry *), refsearch); + map->mem->free(norm); + +- if (!ref) +- return NULL; ++ if (ref != NULL) { ++ r = ref[0]; ++ /* Check for expansion limit */ ++ if (r->size > map->max_ref_size - map->ref_size) ++ return NULL; ++ map->ref_size += r->size; ++ } + +- return ref[0]; ++ return r; + } + + void cmark_map_free(cmark_map *map) { +@@ -118,5 +124,6 @@ cmark_map *cmark_map_new(cmark_mem *mem, + cmark_map *map = (cmark_map *)mem->calloc(1, sizeof(cmark_map)); + map->mem = mem; + map->free = free; ++ map->max_ref_size = UINT_MAX; + return map; + } +Index: cmarkgfm-2022.10.27/third_party/cmark/src/map.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/map.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/map.h +@@ -10,7 +10,8 @@ extern "C" { + struct cmark_map_entry { + struct cmark_map_entry *next; + unsigned char *label; +- unsigned int age; ++ size_t age; ++ size_t size; + }; + + typedef struct cmark_map_entry cmark_map_entry; +@@ -23,7 +24,9 @@ struct cmark_map { + cmark_mem *mem; + cmark_map_entry *refs; + cmark_map_entry **sorted; +- unsigned int size; ++ size_t size; ++ size_t ref_size; ++ size_t max_ref_size; + cmark_map_free_f free; + }; + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/node.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/node.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/node.c +@@ -5,10 +5,42 @@ + #include "node.h" + #include "syntax_extension.h" + ++/** ++ * Expensive safety checks are off by default, but can be enabled ++ * by calling cmark_enable_safety_checks(). ++ */ ++static bool enable_safety_checks = false; ++ ++void cmark_enable_safety_checks(bool enable) { ++ enable_safety_checks = enable; ++} ++ + static void S_node_unlink(cmark_node *node); + + #define NODE_MEM(node) cmark_node_mem(node) + ++void cmark_register_node_flag(cmark_node_internal_flags *flags) { ++ static cmark_node_internal_flags nextflag = CMARK_NODE__REGISTER_FIRST; ++ ++ // flags should be a pointer to a global variable and this function ++ // should only be called once to initialize its value. ++ if (*flags) { ++ fprintf(stderr, "flag initialization error in cmark_register_node_flag\n"); ++ abort(); ++ } ++ ++ // Check that we haven't run out of bits. ++ if (nextflag == 0) { ++ fprintf(stderr, "too many flags in cmark_register_node_flag\n"); ++ abort(); ++ } ++ ++ *flags = nextflag; ++ nextflag <<= 1; ++} ++ ++void cmark_init_standard_node_flags(void) {} ++ + bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type) { + if (child_type == CMARK_NODE_DOCUMENT) { + return false; +@@ -48,8 +80,6 @@ bool cmark_node_can_contain_type(cmark_n + } + + static bool S_can_contain(cmark_node *node, cmark_node *child) { +- cmark_node *cur; +- + if (node == NULL || child == NULL) { + return false; + } +@@ -57,14 +87,16 @@ static bool S_can_contain(cmark_node *no + return 0; + } + +- // Verify that child is not an ancestor of node or equal to node. +- cur = node; +- do { +- if (cur == child) { +- return false; +- } +- cur = cur->parent; +- } while (cur != NULL); ++ if (enable_safety_checks) { ++ // Verify that child is not an ancestor of node or equal to node. ++ cmark_node *cur = node; ++ do { ++ if (cur == child) { ++ return false; ++ } ++ cur = cur->parent; ++ } while (cur != NULL); ++ } + + return cmark_node_can_contain_type(node, (cmark_node_type) child->type); + } +@@ -301,6 +333,14 @@ cmark_node *cmark_node_last_child(cmark_ + } + } + ++cmark_node *cmark_node_parent_footnote_def(cmark_node *node) { ++ if (node == NULL) { ++ return NULL; ++ } else { ++ return node->parent_footnote_def; ++ } ++} ++ + void *cmark_node_get_user_data(cmark_node *node) { + if (node == NULL) { + return NULL; +@@ -337,6 +377,7 @@ const char *cmark_node_get_literal(cmark + case CMARK_NODE_HTML_INLINE: + case CMARK_NODE_CODE: + case CMARK_NODE_FOOTNOTE_REFERENCE: ++ case CMARK_NODE_FOOTNOTE_DEFINITION: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal); + + case CMARK_NODE_CODE_BLOCK: +@@ -521,6 +562,31 @@ int cmark_node_set_list_tight(cmark_node + return 1; + } else { + return 0; ++ } ++} ++ ++int cmark_node_get_item_index(cmark_node *node) { ++ if (node == NULL) { ++ return 0; ++ } ++ ++ if (node->type == CMARK_NODE_ITEM) { ++ return node->as.list.start; ++ } else { ++ return 0; ++ } ++} ++ ++int cmark_node_set_item_index(cmark_node *node, int idx) { ++ if (node == NULL || idx < 0) { ++ return 0; ++ } ++ ++ if (node->type == CMARK_NODE_ITEM) { ++ node->as.list.start = idx; ++ return 1; ++ } else { ++ return 0; + } + } + +Index: cmarkgfm-2022.10.27/third_party/cmark/src/node.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/node.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/node.h +@@ -52,8 +52,14 @@ enum cmark_node__internal_flags { + CMARK_NODE__OPEN = (1 << 0), + CMARK_NODE__LAST_LINE_BLANK = (1 << 1), + CMARK_NODE__LAST_LINE_CHECKED = (1 << 2), ++ ++ // Extensions can register custom flags by calling `cmark_register_node_flag`. ++ // This is the starting value for the custom flags. ++ CMARK_NODE__REGISTER_FIRST = (1 << 3), + }; + ++typedef uint16_t cmark_node_internal_flags; ++ + struct cmark_node { + cmark_strbuf content; + +@@ -72,10 +78,18 @@ struct cmark_node { + int end_column; + int internal_offset; + uint16_t type; +- uint16_t flags; ++ cmark_node_internal_flags flags; + + cmark_syntax_extension *extension; + ++ /** ++ * Used during cmark_render() to cache the most recent non-NULL ++ * extension, if you go up the parent chain like this: ++ * ++ * node->parent->...parent->extension ++ */ ++ cmark_syntax_extension *ancestor_extension; ++ + union { + int ref_ix; + int def_count; +@@ -91,10 +105,31 @@ struct cmark_node { + cmark_link link; + cmark_custom custom; + int html_block_type; ++ int cell_index; // For keeping track of TABLE_CELL table alignments + void *opaque; + } as; + }; + ++/** ++ * Syntax extensions can use this function to register a custom node ++ * flag. The flags are stored in the `flags` field of the `cmark_node` ++ * struct. The `flags` parameter should be the address of a global variable ++ * which will store the flag value. ++ */ ++CMARK_GFM_EXPORT ++void cmark_register_node_flag(cmark_node_internal_flags *flags); ++ ++/** ++ * DEPRECATED. ++ * ++ * This function was added in cmark-gfm version 0.29.0.gfm.7, and was ++ * required to be called at program start time, which caused ++ * backwards-compatibility issues in applications that use cmark-gfm as a ++ * library. It is now a no-op. ++ */ ++CMARK_GFM_EXPORT ++void cmark_init_standard_node_flags(void); ++ + static CMARK_INLINE cmark_mem *cmark_node_mem(cmark_node *node) { + return node->content.mem; + } +@@ -118,6 +153,13 @@ static CMARK_INLINE bool CMARK_NODE_INLI + + CMARK_GFM_EXPORT bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type); + ++/** ++ * Enable (or disable) extra safety checks. These extra checks cause ++ * extra performance overhead (in some cases quadratic), so they are only ++ * intended to be used during testing. ++ */ ++CMARK_GFM_EXPORT void cmark_enable_safety_checks(bool enable); ++ + #ifdef __cplusplus + } + #endif +Index: cmarkgfm-2022.10.27/third_party/cmark/src/parser.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/parser.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/parser.h +@@ -46,6 +46,7 @@ struct cmark_parser { + /* Options set by the user, see the Options section in cmark.h */ + int options; + bool last_buffer_ended_with_cr; ++ size_t total_size; + cmark_llist *syntax_extensions; + cmark_llist *inline_syntax_extensions; + cmark_ispunct_func backslash_ispunct; +Index: cmarkgfm-2022.10.27/third_party/cmark/src/plaintext.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/plaintext.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/plaintext.c +@@ -16,23 +16,8 @@ static CMARK_INLINE void outc(cmark_rend + cmark_render_code_point(renderer, c); + } + +-// if node is a block node, returns node. +-// otherwise returns first block-level node that is an ancestor of node. +-// if there is no block-level ancestor, returns NULL. +-static cmark_node *get_containing_block(cmark_node *node) { +- while (node) { +- if (CMARK_NODE_BLOCK_P(node)) { +- return node; +- } else { +- node = node->parent; +- } +- } +- return NULL; +-} +- + static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { +- cmark_node *tmp; + int list_number; + cmark_delim_type list_delim; + int i; +@@ -46,14 +31,17 @@ static int S_render_node(cmark_renderer + // Don't adjust tight list status til we've started the list. + // Otherwise we loose the blank line between a paragraph and + // a following list. +- if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) { +- tmp = get_containing_block(node); +- renderer->in_tight_list_item = +- tmp && // tmp might be NULL if there is no containing block +- ((tmp->type == CMARK_NODE_ITEM && +- cmark_node_get_list_tight(tmp->parent)) || +- (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM && +- cmark_node_get_list_tight(tmp->parent->parent))); ++ if (entering) { ++ if (node->parent && node->parent->type == CMARK_NODE_ITEM) { ++ renderer->in_tight_list_item = node->parent->parent->as.list.tight; ++ } ++ } else { ++ if (node->type == CMARK_NODE_LIST) { ++ renderer->in_tight_list_item = ++ node->parent && ++ node->parent->type == CMARK_NODE_ITEM && ++ node->parent->parent->as.list.tight; ++ } + } + + if (node->extension && node->extension->plaintext_render_func) { +@@ -79,13 +67,8 @@ static int S_render_node(cmark_renderer + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + marker_width = 4; + } else { +- list_number = cmark_node_get_list_start(node->parent); ++ list_number = cmark_node_get_item_index(node); + list_delim = cmark_node_get_list_delim(node->parent); +- tmp = node; +- while (tmp->prev) { +- tmp = tmp->prev; +- list_number += 1; +- } + // we ensure a width of at least 4 so + // we get nice transition from single digits + // to double +Index: cmarkgfm-2022.10.27/third_party/cmark/src/references.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/references.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/references.c +@@ -32,6 +32,7 @@ void cmark_reference_create(cmark_map *m + ref->title = cmark_clean_title(map->mem, title); + ref->entry.age = map->size; + ref->entry.next = map->refs; ++ ref->entry.size = ref->url.len + ref->title.len; + + map->refs = (cmark_map_entry *)ref; + map->size++; +Index: cmarkgfm-2022.10.27/third_party/cmark/src/render.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/render.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/render.c +@@ -31,13 +31,7 @@ static void S_out(cmark_renderer *render + cmark_chunk remainder = cmark_chunk_literal(""); + int k = renderer->buffer->size - 1; + +- cmark_syntax_extension *ext = NULL; +- cmark_node *n = node; +- while (n && !ext) { +- ext = n->extension; +- if (!ext) +- n = n->parent; +- } ++ cmark_syntax_extension *ext = node->ancestor_extension; + if (ext && !ext->commonmark_escape_func) + ext = NULL; + +@@ -182,6 +176,20 @@ char *cmark_render(cmark_mem *mem, cmark + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); ++ if (cur->extension) { ++ cur->ancestor_extension = cur->extension; ++ } else if (cur->parent) { ++ cur->ancestor_extension = cur->parent->ancestor_extension; ++ } ++ if (cur->type == CMARK_NODE_ITEM) { ++ // Calculate the list item's index, for the benefit of output formats ++ // like commonmark and plaintext. ++ if (cur->prev) { ++ cmark_node_set_item_index(cur, 1 + cmark_node_get_item_index(cur->prev)); ++ } else { ++ cmark_node_set_item_index(cur, cmark_node_get_list_start(cur->parent)); ++ } ++ } + if (!render_node(&renderer, cur, ev_type, options)) { + // a false value causes us to skip processing + // the node's contents. this is used for +Index: cmarkgfm-2022.10.27/third_party/cmark/src/scanners.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/scanners.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/scanners.c +@@ -1,10508 +1,14056 @@ +-/* Generated by re2c 1.3 */ +-#include +-#include "chunk.h" ++/* Generated by re2c 3.0 */ + #include "scanners.h" ++#include "chunk.h" ++#include + +-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; +- +- 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; +- } ++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; ++ ++ 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; ++ } + +- return res; ++ return res; + } + +- +- + // Try to match a scheme including colon. +-bufsize_t _scan_scheme(const unsigned char *p) +-{ ++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 yy2; +- if (yych <= 'Z') goto yy4; +- if (yych <= '`') goto yy2; +- if (yych <= 'z') goto yy4; +-yy2: +- ++p; +-yy3: +- { return 0; } +-yy4: +- yych = *(marker = ++p); +- if (yych <= '/') { +- if (yych <= '+') { +- if (yych <= '*') goto yy3; +- } else { +- if (yych <= ',') goto yy3; +- if (yych >= '/') goto yy3; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '9') goto yy5; +- if (yych <= '@') goto yy3; +- } else { +- if (yych <= '`') goto yy3; +- if (yych >= '{') goto yy3; +- } +- } +-yy5: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych == '+') goto yy7; +- } else { +- if (yych != '/') goto yy7; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych >= 'A') goto yy7; +- } else { +- if (yych <= '`') goto yy6; +- if (yych <= 'z') goto yy7; +- } +- } +-yy6: +- p = marker; +- goto yy3; +-yy7: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych == '+') goto yy10; +- goto yy6; +- } else { +- if (yych == '/') goto yy6; +- goto yy10; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- goto yy10; +- } else { +- if (yych <= '`') goto yy6; +- if (yych <= 'z') goto yy10; +- goto yy6; +- } +- } +-yy8: +- ++p; +- { return (bufsize_t)(p - start); } +-yy10: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy6; +- } else { +- if (yych == '/') goto yy6; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy8; +- if (yych <= '@') goto yy6; +- } else { +- if (yych <= '`') goto yy6; +- if (yych >= '{') goto yy6; +- } +- } +- yych = *++p; +- if (yych == ':') goto yy8; +- goto yy6; +-} +- ++ { ++ unsigned char yych; ++ yych = *p; ++ if (yych <= '@') ++ goto yy1; ++ if (yych <= 'Z') ++ goto yy3; ++ if (yych <= '`') ++ goto yy1; ++ if (yych <= 'z') ++ goto yy3; ++ yy1: ++ ++p; ++ yy2 : { 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; ++ } ++ } ++ 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; ++ } ++ } ++ yy5: ++ 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; ++ } ++ } ++ yy7: ++ ++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) +-{ ++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[] = { +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 yy41; +- if (yych <= 'Z') goto yy43; +- if (yych <= '`') goto yy41; +- if (yych <= 'z') goto yy43; +-yy41: +- ++p; +-yy42: +- { return 0; } +-yy43: +- yych = *(marker = ++p); +- if (yych <= '/') { +- if (yych <= '+') { +- if (yych <= '*') goto yy42; +- } else { +- if (yych <= ',') goto yy42; +- if (yych >= '/') goto yy42; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '9') goto yy44; +- if (yych <= '@') goto yy42; +- } else { +- if (yych <= '`') goto yy42; +- if (yych >= '{') goto yy42; +- } +- } +-yy44: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych == '+') goto yy46; +- } else { +- if (yych != '/') goto yy46; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych >= 'A') goto yy46; +- } else { +- if (yych <= '`') goto yy45; +- if (yych <= 'z') goto yy46; +- } +- } +-yy45: +- p = marker; +- goto yy42; +-yy46: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych == '+') goto yy49; +- goto yy45; +- } else { +- if (yych == '/') goto yy45; +- goto yy49; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- goto yy49; +- } else { +- if (yych <= '`') goto yy45; +- if (yych <= 'z') goto yy49; +- goto yy45; +- } +- } +-yy47: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy47; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '<') goto yy45; +- if (yych <= '>') goto yy50; +- goto yy45; +- } else { +- if (yych <= 0xDF) goto yy52; +- if (yych <= 0xE0) goto yy53; +- goto yy54; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy55; +- if (yych <= 0xEF) goto yy54; +- goto yy56; +- } else { +- if (yych <= 0xF3) goto yy57; +- if (yych <= 0xF4) goto yy58; +- goto yy45; +- } +- } +-yy49: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych == '+') goto yy59; +- goto yy45; +- } else { +- if (yych == '/') goto yy45; +- goto yy59; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- goto yy59; +- } else { +- if (yych <= '`') goto yy45; +- if (yych <= 'z') goto yy59; +- goto yy45; +- } +- } +-yy50: +- ++p; +- { return (bufsize_t)(p - start); } +-yy52: +- yych = *++p; +- if (yych <= 0x7F) goto yy45; +- if (yych <= 0xBF) goto yy47; +- goto yy45; +-yy53: +- yych = *++p; +- if (yych <= 0x9F) goto yy45; +- if (yych <= 0xBF) goto yy52; +- goto yy45; +-yy54: +- yych = *++p; +- if (yych <= 0x7F) goto yy45; +- if (yych <= 0xBF) goto yy52; +- goto yy45; +-yy55: +- yych = *++p; +- if (yych <= 0x7F) goto yy45; +- if (yych <= 0x9F) goto yy52; +- goto yy45; +-yy56: +- yych = *++p; +- if (yych <= 0x8F) goto yy45; +- if (yych <= 0xBF) goto yy54; +- goto yy45; +-yy57: +- yych = *++p; +- if (yych <= 0x7F) goto yy45; +- if (yych <= 0xBF) goto yy54; +- goto yy45; +-yy58: +- yych = *++p; +- if (yych <= 0x7F) goto yy45; +- if (yych <= 0x8F) goto yy54; +- goto yy45; +-yy59: +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych <= ',') { +- if (yych != '+') goto yy45; +- } else { +- if (yych == '/') goto yy45; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= ':') goto yy47; +- if (yych <= '@') goto yy45; +- } else { +- if (yych <= '`') goto yy45; +- if (yych >= '{') goto yy45; +- } +- } +- yych = *++p; +- if (yych == ':') goto yy47; +- goto yy45; +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy10; ++ if (yych <= 'Z') ++ goto yy12; ++ if (yych <= '`') ++ goto yy10; ++ if (yych <= 'z') ++ goto yy12; ++ yy10: ++ ++p; ++ yy11 : { return 0; } ++ 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; ++ } ++ } ++ 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; ++ } ++ } ++ yy14: ++ p = marker; ++ goto yy11; ++ 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; ++ } ++ } ++ yy16: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy16; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '<') ++ goto yy14; ++ if (yych <= '>') ++ goto yy18; ++ goto yy14; ++ } else { ++ if (yych <= 0xDF) ++ goto yy19; ++ if (yych <= 0xE0) ++ goto yy20; ++ goto yy21; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy22; ++ if (yych <= 0xEF) ++ goto yy21; ++ goto yy23; ++ } else { ++ if (yych <= 0xF3) ++ goto yy24; ++ if (yych <= 0xF4) ++ goto yy25; ++ goto yy14; ++ } ++ } ++ yy17: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych <= ',') { ++ if (yych == '+') ++ goto yy26; ++ goto yy14; ++ } else { ++ if (yych == '/') ++ goto yy14; ++ goto yy26; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= ':') ++ goto yy16; ++ if (yych <= '@') ++ goto yy14; ++ goto yy26; ++ } else { ++ if (yych <= '`') ++ goto yy14; ++ if (yych <= 'z') ++ goto yy26; ++ goto yy14; ++ } ++ } ++ yy18: ++ ++p; ++ { return (bufsize_t)(p - start); } ++ yy19: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy14; ++ if (yych <= 0xBF) ++ goto yy16; ++ goto yy14; ++ yy20: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy14; ++ if (yych <= 0xBF) ++ goto yy19; ++ goto yy14; ++ yy21: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy14; ++ if (yych <= 0xBF) ++ goto yy19; ++ goto yy14; ++ yy22: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy14; ++ if (yych <= 0x9F) ++ goto yy19; ++ goto yy14; ++ yy23: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy14; ++ if (yych <= 0xBF) ++ goto yy21; ++ goto yy14; ++ yy24: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy14; ++ if (yych <= 0xBF) ++ goto yy21; ++ goto yy14; ++ yy25: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy14; ++ if (yych <= 0x8F) ++ goto yy21; ++ goto yy14; ++ yy26: ++ 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) +-{ ++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[] = { +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 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 yy91; +- if (yych >= '#') goto yy91; +- } else { +- if (yych <= ')') goto yy89; +- if (yych != ',') goto yy91; +- } +- } else { +- if (yych <= '?') { +- if (yych == '=') goto yy91; +- if (yych >= '?') goto yy91; +- } else { +- if (yych <= 'Z') { +- if (yych >= 'A') goto yy91; +- } else { +- if (yych <= ']') goto yy89; +- if (yych <= '~') goto yy91; +- } +- } +- } +-yy89: +- ++p; +-yy90: +- { return 0; } +-yy91: +- yych = *(marker = ++p); +- if (yych <= ',') { +- if (yych <= '"') { +- if (yych == '!') goto yy93; +- goto yy90; +- } else { +- if (yych <= '\'') goto yy93; +- if (yych <= ')') goto yy90; +- if (yych <= '+') goto yy93; +- goto yy90; +- } +- } else { +- if (yych <= '>') { +- if (yych <= '9') goto yy93; +- if (yych == '=') goto yy93; +- goto yy90; +- } else { +- if (yych <= 'Z') goto yy93; +- if (yych <= ']') goto yy90; +- if (yych <= '~') goto yy93; +- goto yy90; +- } +- } +-yy92: +- yych = *++p; +-yy93: +- if (yybm[0+yych] & 128) { +- goto yy92; +- } +- if (yych <= '>') goto yy94; +- if (yych <= '@') goto yy95; +-yy94: +- p = marker; +- goto yy90; +-yy95: +- yych = *++p; +- if (yych <= '@') { +- if (yych <= '/') goto yy94; +- if (yych >= ':') goto yy94; +- } else { +- if (yych <= 'Z') goto yy96; +- if (yych <= '`') goto yy94; +- if (yych >= '{') goto yy94; +- } +-yy96: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy98; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy98; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy98; +- goto yy94; +- } +- } +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy101; +- if (yych <= '/') goto yy94; +- goto yy102; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy102; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy102; +- goto yy94; +- } +- } +-yy98: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych <= '-') goto yy101; +- goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy102; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy102; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy102; +- goto yy94; +- } +- } +-yy99: +- ++p; +- { return (bufsize_t)(p - start); } +-yy101: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy103; +- if (yych <= '/') goto yy94; +- goto yy104; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy104; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy104; +- goto yy94; +- } +- } +-yy102: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy104; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy104; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy104; +- goto yy94; +- } +- } +-yy103: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy105; +- if (yych <= '/') goto yy94; +- goto yy106; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy106; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy106; +- goto yy94; +- } +- } +-yy104: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy106; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy106; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy106; +- goto yy94; +- } +- } +-yy105: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy107; +- if (yych <= '/') goto yy94; +- goto yy108; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy108; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy108; +- goto yy94; +- } +- } +-yy106: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy108; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy108; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy108; +- goto yy94; +- } +- } +-yy107: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy109; +- if (yych <= '/') goto yy94; +- goto yy110; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy110; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy110; +- goto yy94; +- } +- } +-yy108: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy110; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy110; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy110; +- goto yy94; +- } +- } +-yy109: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy111; +- if (yych <= '/') goto yy94; +- goto yy112; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy112; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy112; +- goto yy94; +- } +- } +-yy110: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy112; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy112; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy112; +- goto yy94; +- } +- } +-yy111: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy113; +- if (yych <= '/') goto yy94; +- goto yy114; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy114; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy114; +- goto yy94; +- } +- } +-yy112: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy114; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy114; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy114; +- goto yy94; +- } +- } +-yy113: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy115; +- if (yych <= '/') goto yy94; +- goto yy116; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy116; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy116; +- goto yy94; +- } +- } +-yy114: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy116; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy116; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy116; +- goto yy94; +- } +- } +-yy115: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy117; +- if (yych <= '/') goto yy94; +- goto yy118; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy118; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy118; +- goto yy94; +- } +- } +-yy116: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy118; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy118; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy118; +- goto yy94; +- } +- } +-yy117: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy119; +- if (yych <= '/') goto yy94; +- goto yy120; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy120; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy120; +- goto yy94; +- } +- } +-yy118: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy120; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy120; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy120; +- goto yy94; +- } +- } +-yy119: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy121; +- if (yych <= '/') goto yy94; +- goto yy122; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy122; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy122; +- goto yy94; +- } +- } +-yy120: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy122; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy122; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy122; +- goto yy94; +- } +- } +-yy121: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy123; +- if (yych <= '/') goto yy94; +- goto yy124; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy124; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy124; +- goto yy94; +- } +- } +-yy122: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy124; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy124; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy124; +- goto yy94; +- } +- } +-yy123: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy125; +- if (yych <= '/') goto yy94; +- goto yy126; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy126; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy126; +- goto yy94; +- } +- } +-yy124: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy126; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy126; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy126; +- goto yy94; +- } +- } +-yy125: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy127; +- if (yych <= '/') goto yy94; +- goto yy128; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy128; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy128; +- goto yy94; +- } +- } +-yy126: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy128; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy128; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy128; +- goto yy94; +- } +- } +-yy127: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy129; +- if (yych <= '/') goto yy94; +- goto yy130; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy130; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy130; +- goto yy94; +- } +- } +-yy128: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy130; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy130; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy130; +- goto yy94; +- } +- } +-yy129: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy131; +- if (yych <= '/') goto yy94; +- goto yy132; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy132; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy132; +- goto yy94; +- } +- } +-yy130: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy132; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy132; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy132; +- goto yy94; +- } +- } +-yy131: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy133; +- if (yych <= '/') goto yy94; +- goto yy134; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy134; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy134; +- goto yy94; +- } +- } +-yy132: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy134; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy134; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy134; +- goto yy94; +- } +- } +-yy133: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy135; +- if (yych <= '/') goto yy94; +- goto yy136; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy136; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy136; +- goto yy94; +- } +- } +-yy134: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy136; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy136; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy136; +- goto yy94; +- } +- } +-yy135: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy137; +- if (yych <= '/') goto yy94; +- goto yy138; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy138; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy138; +- goto yy94; +- } +- } +-yy136: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy138; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy138; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy138; +- goto yy94; +- } +- } +-yy137: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy139; +- if (yych <= '/') goto yy94; +- goto yy140; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy140; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy140; +- goto yy94; +- } +- } +-yy138: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy140; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy140; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy140; +- goto yy94; +- } +- } +-yy139: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy141; +- if (yych <= '/') goto yy94; +- goto yy142; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy142; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy142; +- goto yy94; +- } +- } +-yy140: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy142; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy142; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy142; +- goto yy94; +- } +- } +-yy141: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy143; +- if (yych <= '/') goto yy94; +- goto yy144; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy144; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy144; +- goto yy94; +- } +- } +-yy142: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy144; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy144; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy144; +- goto yy94; +- } +- } +-yy143: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy145; +- if (yych <= '/') goto yy94; +- goto yy146; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy146; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy146; +- goto yy94; +- } +- } +-yy144: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy146; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy146; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy146; +- goto yy94; +- } +- } +-yy145: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy147; +- if (yych <= '/') goto yy94; +- goto yy148; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy148; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy148; +- goto yy94; +- } +- } +-yy146: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy148; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy148; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy148; +- goto yy94; +- } +- } +-yy147: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy149; +- if (yych <= '/') goto yy94; +- goto yy150; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy150; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy150; +- goto yy94; +- } +- } +-yy148: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy150; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy150; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy150; +- goto yy94; +- } +- } +-yy149: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy151; +- if (yych <= '/') goto yy94; +- goto yy152; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy152; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy152; +- goto yy94; +- } +- } +-yy150: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy152; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy152; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy152; +- goto yy94; +- } +- } +-yy151: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy153; +- if (yych <= '/') goto yy94; +- goto yy154; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy154; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy154; +- goto yy94; +- } +- } +-yy152: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy154; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy154; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy154; +- goto yy94; +- } +- } +-yy153: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy155; +- if (yych <= '/') goto yy94; +- goto yy156; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy156; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy156; +- goto yy94; +- } +- } +-yy154: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy156; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy156; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy156; +- goto yy94; +- } +- } +-yy155: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy157; +- if (yych <= '/') goto yy94; +- goto yy158; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy158; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy158; +- goto yy94; +- } +- } +-yy156: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy158; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy158; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy158; +- goto yy94; +- } +- } +-yy157: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy159; +- if (yych <= '/') goto yy94; +- goto yy160; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy160; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy160; +- goto yy94; +- } +- } +-yy158: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy160; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy160; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy160; +- goto yy94; +- } +- } +-yy159: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy161; +- if (yych <= '/') goto yy94; +- goto yy162; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy162; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy162; +- goto yy94; +- } +- } +-yy160: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy162; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy162; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy162; +- goto yy94; +- } +- } +-yy161: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy163; +- if (yych <= '/') goto yy94; +- goto yy164; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy164; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy164; +- goto yy94; +- } +- } +-yy162: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy164; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy164; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy164; +- goto yy94; +- } +- } +-yy163: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy165; +- if (yych <= '/') goto yy94; +- goto yy166; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy166; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy166; +- goto yy94; +- } +- } +-yy164: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy166; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy166; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy166; +- goto yy94; +- } +- } +-yy165: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy167; +- if (yych <= '/') goto yy94; +- goto yy168; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy168; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy168; +- goto yy94; +- } +- } +-yy166: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy168; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy168; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy168; +- goto yy94; +- } +- } +-yy167: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy169; +- if (yych <= '/') goto yy94; +- goto yy170; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy170; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy170; +- goto yy94; +- } +- } +-yy168: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy170; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy170; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy170; +- goto yy94; +- } +- } +-yy169: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy171; +- if (yych <= '/') goto yy94; +- goto yy172; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy172; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy172; +- goto yy94; +- } +- } +-yy170: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy172; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy172; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy172; +- goto yy94; +- } +- } +-yy171: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy173; +- if (yych <= '/') goto yy94; +- goto yy174; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy174; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy174; +- goto yy94; +- } +- } +-yy172: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy174; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy174; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy174; +- goto yy94; +- } +- } +-yy173: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy175; +- if (yych <= '/') goto yy94; +- goto yy176; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy176; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy176; +- goto yy94; +- } +- } +-yy174: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy176; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy176; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy176; +- goto yy94; +- } +- } +-yy175: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy177; +- if (yych <= '/') goto yy94; +- goto yy178; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy178; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy178; +- goto yy94; +- } +- } +-yy176: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy178; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy178; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy178; +- goto yy94; +- } +- } +-yy177: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy179; +- if (yych <= '/') goto yy94; +- goto yy180; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy180; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy180; +- goto yy94; +- } +- } +-yy178: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy180; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy180; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy180; +- goto yy94; +- } +- } +-yy179: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy181; +- if (yych <= '/') goto yy94; +- goto yy182; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy182; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy182; +- goto yy94; +- } +- } +-yy180: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy182; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy182; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy182; +- goto yy94; +- } +- } +-yy181: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy183; +- if (yych <= '/') goto yy94; +- goto yy184; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy184; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy184; +- goto yy94; +- } +- } +-yy182: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy184; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy184; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy184; +- goto yy94; +- } +- } +-yy183: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy185; +- if (yych <= '/') goto yy94; +- goto yy186; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy186; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy186; +- goto yy94; +- } +- } +-yy184: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy186; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy186; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy186; +- goto yy94; +- } +- } +-yy185: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy187; +- if (yych <= '/') goto yy94; +- goto yy188; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy188; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy188; +- goto yy94; +- } +- } +-yy186: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy188; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy188; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy188; +- goto yy94; +- } +- } +-yy187: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy189; +- if (yych <= '/') goto yy94; +- goto yy190; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy190; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy190; +- goto yy94; +- } +- } +-yy188: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy190; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy190; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy190; +- goto yy94; +- } +- } +-yy189: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy191; +- if (yych <= '/') goto yy94; +- goto yy192; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy192; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy192; +- goto yy94; +- } +- } +-yy190: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy192; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy192; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy192; +- goto yy94; +- } +- } +-yy191: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy193; +- if (yych <= '/') goto yy94; +- goto yy194; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy194; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy194; +- goto yy94; +- } +- } +-yy192: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy194; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy194; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy194; +- goto yy94; +- } +- } +-yy193: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy195; +- if (yych <= '/') goto yy94; +- goto yy196; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy196; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy196; +- goto yy94; +- } +- } +-yy194: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy196; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy196; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy196; +- goto yy94; +- } +- } +-yy195: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy197; +- if (yych <= '/') goto yy94; +- goto yy198; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy198; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy198; +- goto yy94; +- } +- } +-yy196: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy198; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy198; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy198; +- goto yy94; +- } +- } +-yy197: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy199; +- if (yych <= '/') goto yy94; +- goto yy200; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy200; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy200; +- goto yy94; +- } +- } +-yy198: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy200; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy200; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy200; +- goto yy94; +- } +- } +-yy199: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy201; +- if (yych <= '/') goto yy94; +- goto yy202; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy202; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy202; +- goto yy94; +- } +- } +-yy200: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy202; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy202; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy202; +- goto yy94; +- } +- } +-yy201: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy203; +- if (yych <= '/') goto yy94; +- goto yy204; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy204; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy204; +- goto yy94; +- } +- } +-yy202: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy204; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy204; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy204; +- goto yy94; +- } +- } +-yy203: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy205; +- if (yych <= '/') goto yy94; +- goto yy206; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy206; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy206; +- goto yy94; +- } +- } +-yy204: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy206; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy206; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy206; +- goto yy94; +- } +- } +-yy205: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy207; +- if (yych <= '/') goto yy94; +- goto yy208; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy208; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy208; +- goto yy94; +- } +- } +-yy206: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy208; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy208; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy208; +- goto yy94; +- } +- } +-yy207: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy209; +- if (yych <= '/') goto yy94; +- goto yy210; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy210; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy210; +- goto yy94; +- } +- } +-yy208: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy210; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy210; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy210; +- goto yy94; +- } +- } +-yy209: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy211; +- if (yych <= '/') goto yy94; +- goto yy212; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy212; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy212; +- goto yy94; +- } +- } +-yy210: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy212; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy212; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy212; +- goto yy94; +- } +- } +-yy211: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy213; +- if (yych <= '/') goto yy94; +- goto yy214; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy214; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy214; +- goto yy94; +- } +- } +-yy212: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy214; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy214; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy214; +- goto yy94; +- } +- } +-yy213: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy215; +- if (yych <= '/') goto yy94; +- goto yy216; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy216; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy216; +- goto yy94; +- } +- } +-yy214: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy216; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy216; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy216; +- goto yy94; +- } +- } +-yy215: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy217; +- if (yych <= '/') goto yy94; +- goto yy218; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy218; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy218; +- goto yy94; +- } +- } +-yy216: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy218; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy218; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy218; +- goto yy94; +- } +- } +-yy217: +- yych = *++p; +- if (yych <= '9') { +- if (yych == '-') goto yy219; +- if (yych <= '/') goto yy94; +- goto yy220; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy94; +- goto yy220; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy220; +- goto yy94; +- } +- } +-yy218: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= ',') goto yy94; +- if (yych >= '.') goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy220; +- goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- goto yy220; +- } else { +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy220; +- goto yy94; +- } +- } +-yy219: +- yych = *++p; +- if (yych <= '@') { +- if (yych <= '/') goto yy94; +- if (yych <= '9') goto yy221; +- goto yy94; +- } else { +- if (yych <= 'Z') goto yy221; +- if (yych <= '`') goto yy94; +- if (yych <= 'z') goto yy221; +- goto yy94; +- } +-yy220: +- yych = *++p; +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych <= '-') goto yy94; +- goto yy95; +- } else { +- if (yych <= '/') goto yy94; +- if (yych >= ':') goto yy94; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy99; +- if (yych <= '@') goto yy94; +- } else { +- if (yych <= '`') goto yy94; +- if (yych >= '{') goto yy94; +- } +- } +-yy221: +- yych = *++p; +- if (yych == '.') goto yy95; +- if (yych == '>') goto yy99; +- goto yy94; ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 yy30; ++ if (yych >= '#') ++ goto yy30; ++ } else { ++ if (yych <= ')') ++ goto yy28; ++ if (yych != ',') ++ goto yy30; ++ } ++ } else { ++ if (yych <= '?') { ++ if (yych == '=') ++ goto yy30; ++ if (yych >= '?') ++ goto yy30; ++ } else { ++ if (yych <= 'Z') { ++ if (yych >= 'A') ++ goto yy30; ++ } else { ++ if (yych <= ']') ++ goto yy28; ++ if (yych <= '~') ++ goto yy30; ++ } ++ } ++ } ++ yy28: ++ ++p; ++ yy29 : { return 0; } ++ yy30: ++ yych = *(marker = ++p); ++ if (yych <= ',') { ++ if (yych <= '"') { ++ if (yych == '!') ++ goto yy32; ++ goto yy29; ++ } else { ++ if (yych <= '\'') ++ goto yy32; ++ if (yych <= ')') ++ goto yy29; ++ if (yych <= '+') ++ goto yy32; ++ goto yy29; ++ } ++ } else { ++ if (yych <= '>') { ++ if (yych <= '9') ++ goto yy32; ++ if (yych == '=') ++ goto yy32; ++ goto yy29; ++ } else { ++ if (yych <= 'Z') ++ goto yy32; ++ if (yych <= ']') ++ goto yy29; ++ if (yych <= '~') ++ goto yy32; ++ goto yy29; ++ } ++ } ++ yy31: ++ yych = *++p; ++ yy32: ++ if (yybm[0 + yych] & 128) { ++ goto yy31; ++ } ++ if (yych <= '>') ++ goto yy33; ++ if (yych <= '@') ++ goto yy34; ++ yy33: ++ p = marker; ++ goto yy29; ++ yy34: ++ yych = *++p; ++ if (yych <= '@') { ++ if (yych <= '/') ++ goto yy33; ++ if (yych >= ':') ++ goto yy33; ++ } else { ++ if (yych <= 'Z') ++ goto yy35; ++ if (yych <= '`') ++ goto yy33; ++ if (yych >= '{') ++ goto yy33; ++ } ++ yy35: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy36; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy36; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy36; ++ goto yy33; ++ } ++ } ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy38; ++ if (yych <= '/') ++ goto yy33; ++ goto yy39; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy39; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy39; ++ goto yy33; ++ } ++ } ++ yy36: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych <= '-') ++ goto yy38; ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy39; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy39; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy39; ++ goto yy33; ++ } ++ } ++ yy37: ++ ++p; ++ { return (bufsize_t)(p - start); } ++ yy38: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy40; ++ if (yych <= '/') ++ goto yy33; ++ goto yy41; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy41; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy41; ++ goto yy33; ++ } ++ } ++ yy39: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy41; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy41; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy41; ++ goto yy33; ++ } ++ } ++ yy40: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy42; ++ if (yych <= '/') ++ goto yy33; ++ goto yy43; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy43; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy43; ++ goto yy33; ++ } ++ } ++ yy41: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy43; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy43; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy43; ++ goto yy33; ++ } ++ } ++ yy42: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy44; ++ if (yych <= '/') ++ goto yy33; ++ goto yy45; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy45; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy45; ++ goto yy33; ++ } ++ } ++ yy43: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy45; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy45; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy45; ++ goto yy33; ++ } ++ } ++ yy44: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy46; ++ if (yych <= '/') ++ goto yy33; ++ goto yy47; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy47; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy47; ++ goto yy33; ++ } ++ } ++ yy45: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy47; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy47; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy47; ++ goto yy33; ++ } ++ } ++ yy46: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy48; ++ if (yych <= '/') ++ goto yy33; ++ goto yy49; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy49; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy49; ++ goto yy33; ++ } ++ } ++ yy47: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy49; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy49; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy49; ++ goto yy33; ++ } ++ } ++ yy48: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy50; ++ if (yych <= '/') ++ goto yy33; ++ goto yy51; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy51; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy51; ++ goto yy33; ++ } ++ } ++ yy49: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy51; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy51; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy51; ++ goto yy33; ++ } ++ } ++ yy50: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy52; ++ if (yych <= '/') ++ goto yy33; ++ goto yy53; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy53; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy53; ++ goto yy33; ++ } ++ } ++ yy51: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy53; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy53; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy53; ++ goto yy33; ++ } ++ } ++ yy52: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy54; ++ if (yych <= '/') ++ goto yy33; ++ goto yy55; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy55; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy55; ++ goto yy33; ++ } ++ } ++ yy53: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy55; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy55; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy55; ++ goto yy33; ++ } ++ } ++ yy54: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy56; ++ if (yych <= '/') ++ goto yy33; ++ goto yy57; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy57; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy57; ++ goto yy33; ++ } ++ } ++ yy55: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy57; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy57; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy57; ++ goto yy33; ++ } ++ } ++ yy56: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy58; ++ if (yych <= '/') ++ goto yy33; ++ goto yy59; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy59; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy59; ++ goto yy33; ++ } ++ } ++ yy57: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy59; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy59; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy59; ++ goto yy33; ++ } ++ } ++ yy58: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy60; ++ if (yych <= '/') ++ goto yy33; ++ goto yy61; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy61; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy61; ++ goto yy33; ++ } ++ } ++ yy59: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy61; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy61; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy61; ++ goto yy33; ++ } ++ } ++ yy60: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy62; ++ if (yych <= '/') ++ goto yy33; ++ goto yy63; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy63; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy63; ++ goto yy33; ++ } ++ } ++ yy61: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy63; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy63; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy63; ++ goto yy33; ++ } ++ } ++ yy62: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy64; ++ if (yych <= '/') ++ goto yy33; ++ goto yy65; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy65; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy65; ++ goto yy33; ++ } ++ } ++ yy63: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy65; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy65; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy65; ++ goto yy33; ++ } ++ } ++ yy64: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy66; ++ if (yych <= '/') ++ goto yy33; ++ goto yy67; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy67; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy67; ++ goto yy33; ++ } ++ } ++ yy65: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy67; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy67; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy67; ++ goto yy33; ++ } ++ } ++ yy66: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy68; ++ if (yych <= '/') ++ goto yy33; ++ goto yy69; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy69; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy69; ++ goto yy33; ++ } ++ } ++ yy67: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy69; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy69; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy69; ++ goto yy33; ++ } ++ } ++ yy68: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy70; ++ if (yych <= '/') ++ goto yy33; ++ goto yy71; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy71; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy71; ++ goto yy33; ++ } ++ } ++ yy69: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy71; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy71; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy71; ++ goto yy33; ++ } ++ } ++ yy70: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy72; ++ if (yych <= '/') ++ goto yy33; ++ goto yy73; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy73; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy73; ++ goto yy33; ++ } ++ } ++ yy71: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy73; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy73; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy73; ++ goto yy33; ++ } ++ } ++ yy72: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy74; ++ if (yych <= '/') ++ goto yy33; ++ goto yy75; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy75; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy75; ++ goto yy33; ++ } ++ } ++ yy73: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy75; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy75; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy75; ++ goto yy33; ++ } ++ } ++ yy74: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy76; ++ if (yych <= '/') ++ goto yy33; ++ goto yy77; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy77; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy77; ++ goto yy33; ++ } ++ } ++ yy75: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy77; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy77; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy77; ++ goto yy33; ++ } ++ } ++ yy76: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy78; ++ if (yych <= '/') ++ goto yy33; ++ goto yy79; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy79; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy79; ++ goto yy33; ++ } ++ } ++ yy77: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy79; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy79; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy79; ++ goto yy33; ++ } ++ } ++ yy78: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy80; ++ if (yych <= '/') ++ goto yy33; ++ goto yy81; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy81; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy81; ++ goto yy33; ++ } ++ } ++ yy79: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy81; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy81; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy81; ++ goto yy33; ++ } ++ } ++ yy80: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy82; ++ if (yych <= '/') ++ goto yy33; ++ goto yy83; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy83; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy83; ++ goto yy33; ++ } ++ } ++ yy81: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy83; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy83; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy83; ++ goto yy33; ++ } ++ } ++ yy82: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy84; ++ if (yych <= '/') ++ goto yy33; ++ goto yy85; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy85; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy85; ++ goto yy33; ++ } ++ } ++ yy83: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy85; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy85; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy85; ++ goto yy33; ++ } ++ } ++ yy84: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy86; ++ if (yych <= '/') ++ goto yy33; ++ goto yy87; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy87; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy87; ++ goto yy33; ++ } ++ } ++ yy85: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy87; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy87; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy87; ++ goto yy33; ++ } ++ } ++ yy86: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy88; ++ if (yych <= '/') ++ goto yy33; ++ goto yy89; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy89; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy89; ++ goto yy33; ++ } ++ } ++ yy87: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy89; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy89; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy89; ++ goto yy33; ++ } ++ } ++ yy88: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy90; ++ if (yych <= '/') ++ goto yy33; ++ goto yy91; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy91; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy91; ++ goto yy33; ++ } ++ } ++ yy89: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy91; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy91; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy91; ++ goto yy33; ++ } ++ } ++ yy90: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy92; ++ if (yych <= '/') ++ goto yy33; ++ goto yy93; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy93; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy93; ++ goto yy33; ++ } ++ } ++ yy91: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy93; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy93; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy93; ++ goto yy33; ++ } ++ } ++ yy92: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy94; ++ if (yych <= '/') ++ goto yy33; ++ goto yy95; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy95; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy95; ++ goto yy33; ++ } ++ } ++ yy93: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy95; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy95; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy95; ++ goto yy33; ++ } ++ } ++ yy94: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy96; ++ if (yych <= '/') ++ goto yy33; ++ goto yy97; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy97; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy97; ++ goto yy33; ++ } ++ } ++ yy95: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy97; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy97; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy97; ++ goto yy33; ++ } ++ } ++ yy96: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy98; ++ if (yych <= '/') ++ goto yy33; ++ goto yy99; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy99; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy99; ++ goto yy33; ++ } ++ } ++ yy97: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy99; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy99; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy99; ++ goto yy33; ++ } ++ } ++ yy98: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy100; ++ if (yych <= '/') ++ goto yy33; ++ goto yy101; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy101; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy101; ++ goto yy33; ++ } ++ } ++ yy99: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy101; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy101; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy101; ++ goto yy33; ++ } ++ } ++ yy100: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy102; ++ if (yych <= '/') ++ goto yy33; ++ goto yy103; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy103; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy103; ++ goto yy33; ++ } ++ } ++ yy101: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy103; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy103; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy103; ++ goto yy33; ++ } ++ } ++ yy102: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy104; ++ if (yych <= '/') ++ goto yy33; ++ goto yy105; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy105; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy105; ++ goto yy33; ++ } ++ } ++ yy103: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy105; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy105; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy105; ++ goto yy33; ++ } ++ } ++ yy104: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy106; ++ if (yych <= '/') ++ goto yy33; ++ goto yy107; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy107; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy107; ++ goto yy33; ++ } ++ } ++ yy105: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy107; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy107; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy107; ++ goto yy33; ++ } ++ } ++ yy106: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy108; ++ if (yych <= '/') ++ goto yy33; ++ goto yy109; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy109; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy109; ++ goto yy33; ++ } ++ } ++ yy107: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy109; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy109; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy109; ++ goto yy33; ++ } ++ } ++ yy108: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy110; ++ if (yych <= '/') ++ goto yy33; ++ goto yy111; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy111; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy111; ++ goto yy33; ++ } ++ } ++ yy109: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy111; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy111; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy111; ++ goto yy33; ++ } ++ } ++ yy110: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy112; ++ if (yych <= '/') ++ goto yy33; ++ goto yy113; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy113; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy113; ++ goto yy33; ++ } ++ } ++ yy111: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy113; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy113; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy113; ++ goto yy33; ++ } ++ } ++ yy112: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy114; ++ if (yych <= '/') ++ goto yy33; ++ goto yy115; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy115; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy115; ++ goto yy33; ++ } ++ } ++ yy113: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy115; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy115; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy115; ++ goto yy33; ++ } ++ } ++ yy114: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy116; ++ if (yych <= '/') ++ goto yy33; ++ goto yy117; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy117; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy117; ++ goto yy33; ++ } ++ } ++ yy115: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy117; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy117; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy117; ++ goto yy33; ++ } ++ } ++ yy116: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy118; ++ if (yych <= '/') ++ goto yy33; ++ goto yy119; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy119; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy119; ++ goto yy33; ++ } ++ } ++ yy117: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy119; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy119; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy119; ++ goto yy33; ++ } ++ } ++ yy118: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy120; ++ if (yych <= '/') ++ goto yy33; ++ goto yy121; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy121; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy121; ++ goto yy33; ++ } ++ } ++ yy119: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy121; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy121; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy121; ++ goto yy33; ++ } ++ } ++ yy120: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy122; ++ if (yych <= '/') ++ goto yy33; ++ goto yy123; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy123; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy123; ++ goto yy33; ++ } ++ } ++ yy121: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy123; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy123; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy123; ++ goto yy33; ++ } ++ } ++ yy122: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy124; ++ if (yych <= '/') ++ goto yy33; ++ goto yy125; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy125; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy125; ++ goto yy33; ++ } ++ } ++ yy123: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy125; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy125; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy125; ++ goto yy33; ++ } ++ } ++ yy124: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy126; ++ if (yych <= '/') ++ goto yy33; ++ goto yy127; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy127; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy127; ++ goto yy33; ++ } ++ } ++ yy125: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy127; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy127; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy127; ++ goto yy33; ++ } ++ } ++ yy126: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy128; ++ if (yych <= '/') ++ goto yy33; ++ goto yy129; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy129; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy129; ++ goto yy33; ++ } ++ } ++ yy127: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy129; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy129; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy129; ++ goto yy33; ++ } ++ } ++ yy128: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy130; ++ if (yych <= '/') ++ goto yy33; ++ goto yy131; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy131; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy131; ++ goto yy33; ++ } ++ } ++ yy129: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy131; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy131; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy131; ++ goto yy33; ++ } ++ } ++ yy130: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy132; ++ if (yych <= '/') ++ goto yy33; ++ goto yy133; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy133; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy133; ++ goto yy33; ++ } ++ } ++ yy131: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy133; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy133; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy133; ++ goto yy33; ++ } ++ } ++ yy132: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy134; ++ if (yych <= '/') ++ goto yy33; ++ goto yy135; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy135; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy135; ++ goto yy33; ++ } ++ } ++ yy133: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy135; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy135; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy135; ++ goto yy33; ++ } ++ } ++ yy134: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy136; ++ if (yych <= '/') ++ goto yy33; ++ goto yy137; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy137; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy137; ++ goto yy33; ++ } ++ } ++ yy135: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy137; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy137; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy137; ++ goto yy33; ++ } ++ } ++ yy136: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy138; ++ if (yych <= '/') ++ goto yy33; ++ goto yy139; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy139; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy139; ++ goto yy33; ++ } ++ } ++ yy137: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy139; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy139; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy139; ++ goto yy33; ++ } ++ } ++ yy138: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy140; ++ if (yych <= '/') ++ goto yy33; ++ goto yy141; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy141; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy141; ++ goto yy33; ++ } ++ } ++ yy139: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy141; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy141; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy141; ++ goto yy33; ++ } ++ } ++ yy140: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy142; ++ if (yych <= '/') ++ goto yy33; ++ goto yy143; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy143; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy143; ++ goto yy33; ++ } ++ } ++ yy141: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy143; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy143; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy143; ++ goto yy33; ++ } ++ } ++ yy142: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy144; ++ if (yych <= '/') ++ goto yy33; ++ goto yy145; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy145; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy145; ++ goto yy33; ++ } ++ } ++ yy143: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy145; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy145; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy145; ++ goto yy33; ++ } ++ } ++ yy144: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy146; ++ if (yych <= '/') ++ goto yy33; ++ goto yy147; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy147; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy147; ++ goto yy33; ++ } ++ } ++ yy145: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy147; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy147; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy147; ++ goto yy33; ++ } ++ } ++ yy146: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy148; ++ if (yych <= '/') ++ goto yy33; ++ goto yy149; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy149; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy149; ++ goto yy33; ++ } ++ } ++ yy147: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy149; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy149; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy149; ++ goto yy33; ++ } ++ } ++ yy148: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy150; ++ if (yych <= '/') ++ goto yy33; ++ goto yy151; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy151; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy151; ++ goto yy33; ++ } ++ } ++ yy149: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy151; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy151; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy151; ++ goto yy33; ++ } ++ } ++ yy150: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy152; ++ if (yych <= '/') ++ goto yy33; ++ goto yy153; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy153; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy153; ++ goto yy33; ++ } ++ } ++ yy151: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy153; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy153; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy153; ++ goto yy33; ++ } ++ } ++ yy152: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy154; ++ if (yych <= '/') ++ goto yy33; ++ goto yy155; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy155; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy155; ++ goto yy33; ++ } ++ } ++ yy153: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy155; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy155; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy155; ++ goto yy33; ++ } ++ } ++ yy154: ++ yych = *++p; ++ if (yych <= '9') { ++ if (yych == '-') ++ goto yy156; ++ if (yych <= '/') ++ goto yy33; ++ goto yy157; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy33; ++ goto yy157; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy157; ++ goto yy33; ++ } ++ } ++ yy155: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= ',') ++ goto yy33; ++ if (yych >= '.') ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy157; ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ goto yy157; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy157; ++ goto yy33; ++ } ++ } ++ yy156: ++ yych = *++p; ++ if (yych <= '@') { ++ if (yych <= '/') ++ goto yy33; ++ if (yych <= '9') ++ goto yy158; ++ goto yy33; ++ } else { ++ if (yych <= 'Z') ++ goto yy158; ++ if (yych <= '`') ++ goto yy33; ++ if (yych <= 'z') ++ goto yy158; ++ goto yy33; ++ } ++ yy157: ++ yych = *++p; ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych <= '-') ++ goto yy33; ++ goto yy34; ++ } else { ++ if (yych <= '/') ++ goto yy33; ++ if (yych >= ':') ++ goto yy33; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy37; ++ if (yych <= '@') ++ goto yy33; ++ } else { ++ if (yych <= '`') ++ goto yy33; ++ if (yych >= '{') ++ goto yy33; ++ } ++ } ++ yy158: ++ yych = *++p; ++ if (yych == '.') ++ goto yy34; ++ if (yych == '>') ++ goto yy37; ++ goto yy33; ++ } + } + ++// 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[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 <= '@') { ++ if (yych == '/') ++ goto yy162; ++ } else { ++ if (yych <= 'Z') ++ goto yy163; ++ if (yych <= '`') ++ goto yy160; ++ if (yych <= 'z') ++ goto yy163; ++ } ++ yy160: ++ ++p; ++ yy161 : { return 0; } ++ yy162: ++ yych = *(marker = ++p); ++ if (yych <= '@') ++ goto yy161; ++ if (yych <= 'Z') ++ goto yy164; ++ if (yych <= '`') ++ goto yy161; ++ if (yych <= 'z') ++ goto yy164; ++ goto yy161; ++ yy163: ++ yych = *(marker = ++p); ++ if (yych <= '.') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy161; ++ if (yych <= '\r') ++ goto yy168; ++ goto yy161; ++ } else { ++ if (yych <= ' ') ++ goto yy168; ++ if (yych == '-') ++ goto yy168; ++ goto yy161; ++ } ++ } else { ++ if (yych <= '@') { ++ if (yych <= '9') ++ goto yy168; ++ if (yych == '>') ++ goto yy168; ++ goto yy161; ++ } else { ++ if (yych <= 'Z') ++ goto yy168; ++ if (yych <= '`') ++ goto yy161; ++ if (yych <= 'z') ++ goto yy168; ++ goto yy161; ++ } ++ } ++ yy164: ++ yych = *++p; ++ if (yybm[0 + yych] & 4) { ++ goto yy164; ++ } ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy165; ++ if (yych <= '\r') ++ goto yy171; ++ } else { ++ if (yych <= ' ') ++ goto yy171; ++ if (yych == '>') ++ goto yy170; ++ } ++ yy165: ++ p = marker; ++ goto yy161; ++ yy166: ++ yych = *++p; ++ if (yybm[0 + yych] & 8) { ++ goto yy166; ++ } ++ if (yych <= '>') { ++ if (yych <= '9') { ++ if (yych == '/') ++ goto yy169; ++ goto yy165; ++ } else { ++ if (yych <= ':') ++ goto yy172; ++ if (yych <= '=') ++ goto yy165; ++ goto yy170; ++ } ++ } else { ++ if (yych <= '^') { ++ if (yych <= '@') ++ goto yy165; ++ if (yych <= 'Z') ++ goto yy172; ++ goto yy165; ++ } else { ++ if (yych == '`') ++ goto yy165; ++ if (yych <= 'z') ++ goto yy172; ++ goto yy165; ++ } ++ } ++ yy167: ++ yych = *++p; ++ yy168: ++ if (yybm[0 + yych] & 8) { ++ goto yy166; ++ } ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych == '-') ++ goto yy167; ++ goto yy165; ++ } else { ++ if (yych <= '/') ++ goto yy169; ++ if (yych <= '9') ++ goto yy167; ++ goto yy165; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy170; ++ if (yych <= '@') ++ goto yy165; ++ goto yy167; ++ } else { ++ if (yych <= '`') ++ goto yy165; ++ if (yych <= 'z') ++ goto yy167; ++ goto yy165; ++ } ++ } ++ yy169: ++ yych = *++p; ++ if (yych != '>') ++ goto yy165; ++ yy170: ++ ++p; ++ { return (bufsize_t)(p - start); } ++ yy171: ++ yych = *++p; ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy165; ++ if (yych <= '\r') ++ goto yy171; ++ goto yy165; ++ } else { ++ if (yych <= ' ') ++ goto yy171; ++ if (yych == '>') ++ goto yy170; ++ goto yy165; ++ } ++ yy172: ++ yych = *++p; ++ if (yybm[0 + yych] & 16) { ++ goto yy172; ++ } ++ if (yych <= ',') { ++ if (yych <= '\r') { ++ if (yych <= 0x08) ++ goto yy165; ++ } else { ++ if (yych != ' ') ++ goto yy165; ++ } ++ } else { ++ if (yych <= '<') { ++ if (yych <= '/') ++ goto yy169; ++ goto yy165; ++ } else { ++ if (yych <= '=') ++ goto yy174; ++ if (yych <= '>') ++ goto yy170; ++ goto yy165; ++ } ++ } ++ yy173: ++ yych = *++p; ++ if (yych <= '<') { ++ if (yych <= ' ') { ++ if (yych <= 0x08) ++ goto yy165; ++ if (yych <= '\r') ++ goto yy173; ++ if (yych <= 0x1F) ++ goto yy165; ++ goto yy173; ++ } else { ++ if (yych <= '/') { ++ if (yych <= '.') ++ goto yy165; ++ goto yy169; ++ } else { ++ if (yych == ':') ++ goto yy172; ++ goto yy165; ++ } ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '=') ++ goto yy174; ++ if (yych <= '>') ++ goto yy170; ++ if (yych <= '@') ++ goto yy165; ++ goto yy172; ++ } else { ++ if (yych <= '_') { ++ if (yych <= '^') ++ goto yy165; ++ goto yy172; ++ } else { ++ if (yych <= '`') ++ goto yy165; ++ if (yych <= 'z') ++ goto yy172; ++ goto yy165; ++ } ++ } ++ } ++ yy174: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy175; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '"') { ++ if (yych <= 0x00) ++ goto yy165; ++ if (yych <= ' ') ++ goto yy174; ++ goto yy176; ++ } else { ++ if (yych <= '\'') ++ goto yy177; ++ if (yych <= 0xC1) ++ goto yy165; ++ if (yych <= 0xDF) ++ goto yy178; ++ goto yy179; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy181; ++ goto yy180; ++ } else { ++ if (yych <= 0xF0) ++ goto yy182; ++ if (yych <= 0xF3) ++ goto yy183; ++ if (yych <= 0xF4) ++ goto yy184; ++ goto yy165; ++ } ++ } ++ yy175: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy175; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy165; ++ if (yych <= ' ') ++ goto yy166; ++ goto yy165; ++ } else { ++ if (yych <= '>') ++ goto yy170; ++ if (yych <= 0xC1) ++ goto yy165; ++ if (yych <= 0xDF) ++ goto yy178; ++ goto yy179; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy181; ++ goto yy180; ++ } else { ++ if (yych <= 0xF0) ++ goto yy182; ++ if (yych <= 0xF3) ++ goto yy183; ++ if (yych <= 0xF4) ++ goto yy184; ++ goto yy165; ++ } ++ } ++ yy176: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy176; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy165; ++ if (yych <= '"') ++ goto yy185; ++ goto yy165; ++ } else { ++ if (yych <= 0xDF) ++ goto yy186; ++ if (yych <= 0xE0) ++ goto yy187; ++ goto yy188; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy189; ++ if (yych <= 0xEF) ++ goto yy188; ++ goto yy190; ++ } else { ++ if (yych <= 0xF3) ++ goto yy191; ++ if (yych <= 0xF4) ++ goto yy192; ++ goto yy165; ++ } ++ } ++ yy177: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy177; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy165; ++ if (yych <= '\'') ++ goto yy185; ++ goto yy165; ++ } else { ++ if (yych <= 0xDF) ++ goto yy193; ++ if (yych <= 0xE0) ++ goto yy194; ++ goto yy195; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy196; ++ if (yych <= 0xEF) ++ goto yy195; ++ goto yy197; ++ } else { ++ if (yych <= 0xF3) ++ goto yy198; ++ if (yych <= 0xF4) ++ goto yy199; ++ goto yy165; ++ } ++ } ++ yy178: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy175; ++ goto yy165; ++ yy179: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy178; ++ goto yy165; ++ yy180: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy178; ++ goto yy165; ++ yy181: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x9F) ++ goto yy178; ++ goto yy165; ++ yy182: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy180; ++ goto yy165; ++ yy183: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy180; ++ goto yy165; ++ yy184: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x8F) ++ goto yy180; ++ goto yy165; ++ yy185: ++ yych = *++p; ++ if (yybm[0 + yych] & 8) { ++ goto yy166; ++ } ++ if (yych == '/') ++ goto yy169; ++ if (yych == '>') ++ goto yy170; ++ goto yy165; ++ yy186: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy176; ++ goto yy165; ++ yy187: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy186; ++ goto yy165; ++ yy188: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy186; ++ goto yy165; ++ yy189: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x9F) ++ goto yy186; ++ goto yy165; ++ yy190: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy188; ++ goto yy165; ++ yy191: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy188; ++ goto yy165; ++ yy192: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x8F) ++ goto yy188; ++ goto yy165; ++ yy193: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy177; ++ goto yy165; ++ yy194: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy193; ++ goto yy165; ++ yy195: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy193; ++ goto yy165; ++ yy196: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x9F) ++ goto yy193; ++ goto yy165; ++ yy197: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy195; ++ goto yy165; ++ yy198: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0xBF) ++ goto yy195; ++ goto yy165; ++ yy199: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy165; ++ if (yych <= 0x8F) ++ goto yy195; ++ goto yy165; ++ } ++} ++ ++// Try to (liberally) match an HTML tag after first <, returning num of chars ++// matched. ++bufsize_t _scan_liberal_html_tag(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[] = { ++ 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 <= 0xE0) { ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy201; ++ if (yych <= '\t') ++ goto yy203; ++ } else { ++ if (yych <= 0x7F) ++ goto yy203; ++ if (yych <= 0xC1) ++ goto yy201; ++ if (yych <= 0xDF) ++ goto yy204; ++ goto yy205; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy207; ++ goto yy206; ++ } else { ++ if (yych <= 0xF0) ++ goto yy208; ++ if (yych <= 0xF3) ++ goto yy209; ++ if (yych <= 0xF4) ++ goto yy210; ++ } ++ } ++ yy201: ++ ++p; ++ yy202 : { return 0; } ++ yy203: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy202; ++ if (yych <= '\t') ++ goto yy212; ++ goto yy202; ++ } else { ++ if (yych <= 0x7F) ++ goto yy212; ++ if (yych <= 0xC1) ++ goto yy202; ++ if (yych <= 0xF4) ++ goto yy212; ++ goto yy202; ++ } ++ yy204: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy202; ++ if (yych <= 0xBF) ++ goto yy211; ++ goto yy202; ++ yy205: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy202; ++ if (yych <= 0xBF) ++ goto yy216; ++ goto yy202; ++ yy206: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy202; ++ if (yych <= 0xBF) ++ goto yy216; ++ goto yy202; ++ yy207: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy202; ++ if (yych <= 0x9F) ++ goto yy216; ++ goto yy202; ++ yy208: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy202; ++ if (yych <= 0xBF) ++ goto yy218; ++ goto yy202; ++ yy209: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy202; ++ if (yych <= 0xBF) ++ goto yy218; ++ goto yy202; ++ yy210: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy202; ++ if (yych <= 0x8F) ++ goto yy218; ++ goto yy202; ++ yy211: ++ yych = *++p; ++ yy212: ++ if (yybm[0 + yych] & 64) { ++ goto yy211; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy213; ++ if (yych <= '>') ++ goto yy214; ++ } else { ++ if (yych <= 0xDF) ++ goto yy216; ++ if (yych <= 0xE0) ++ goto yy217; ++ goto yy218; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy219; ++ if (yych <= 0xEF) ++ goto yy218; ++ goto yy220; ++ } else { ++ if (yych <= 0xF3) ++ goto yy221; ++ if (yych <= 0xF4) ++ goto yy222; ++ } ++ } ++ yy213: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy202; ++ } else { ++ goto yy215; ++ } ++ yy214: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy211; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy215; ++ if (yych <= '>') ++ goto yy214; ++ } else { ++ if (yych <= 0xDF) ++ goto yy216; ++ if (yych <= 0xE0) ++ goto yy217; ++ goto yy218; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy219; ++ if (yych <= 0xEF) ++ goto yy218; ++ goto yy220; ++ } else { ++ if (yych <= 0xF3) ++ goto yy221; ++ if (yych <= 0xF4) ++ goto yy222; ++ } ++ } ++ yy215 : { return (bufsize_t)(p - start); } ++ yy216: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy213; ++ if (yych <= 0xBF) ++ goto yy211; ++ goto yy213; ++ yy217: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy213; ++ if (yych <= 0xBF) ++ goto yy216; ++ goto yy213; ++ yy218: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy213; ++ if (yych <= 0xBF) ++ goto yy216; ++ goto yy213; ++ yy219: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy213; ++ if (yych <= 0x9F) ++ goto yy216; ++ goto yy213; ++ yy220: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy213; ++ if (yych <= 0xBF) ++ goto yy218; ++ goto yy213; ++ yy221: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy213; ++ if (yych <= 0xBF) ++ goto yy218; ++ goto yy213; ++ yy222: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy213; ++ if (yych <= 0x8F) ++ goto yy218; ++ goto yy213; ++ } + } + +-// Try to match an HTML tag after first <, returning num of chars matched. +-bufsize_t _scan_html_tag(const unsigned char *p) +-{ ++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[] = { +- /* table 1 .. 8: 0 */ +- 0, 250, 250, 250, 250, 250, 250, 250, +- 250, 235, 235, 235, 235, 235, 250, 250, +- 250, 250, 250, 250, 250, 250, 250, 250, +- 250, 250, 250, 250, 250, 250, 250, 250, +- 235, 250, 202, 250, 250, 250, 250, 170, +- 250, 250, 250, 250, 250, 246, 254, 250, +- 254, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 250, 234, 234, 232, 250, +- 250, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 250, 250, 122, 250, 254, +- 234, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 254, 254, 254, 254, 254, +- 254, 254, 254, 250, 250, 250, 250, 250, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- /* table 9 .. 11: 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, 192, 128, 128, +- 192, 192, 192, 192, 192, 192, 192, 192, +- 192, 192, 128, 128, 128, 128, 128, 0, +- 128, 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, 128, 128, 128, 128, 128, +- 128, 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, 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, +- }; +- yych = *p; +- if (yych <= '>') { +- if (yych <= '!') { +- if (yych >= '!') goto yy226; +- } else { +- if (yych == '/') goto yy227; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '?') goto yy228; +- if (yych >= 'A') goto yy229; +- } else { +- if (yych <= '`') goto yy224; +- if (yych <= 'z') goto yy229; +- } +- } +-yy224: +- ++p; +-yy225: +- { return 0; } +-yy226: +- yych = *(marker = ++p); +- if (yybm[256+yych] & 32) { +- goto yy232; +- } +- if (yych == '-') goto yy230; +- if (yych <= '@') goto yy225; +- if (yych <= '[') goto yy234; +- goto yy225; +-yy227: +- yych = *(marker = ++p); +- if (yych <= '@') goto yy225; +- if (yych <= 'Z') goto yy235; +- if (yych <= '`') goto yy225; +- if (yych <= 'z') goto yy235; +- goto yy225; +-yy228: +- yych = *(marker = ++p); +- if (yych <= 0x00) goto yy225; +- if (yych <= 0x7F) goto yy238; +- if (yych <= 0xC1) goto yy225; +- if (yych <= 0xF4) goto yy238; +- goto yy225; +-yy229: +- yych = *(marker = ++p); +- if (yych <= '.') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy225; +- if (yych <= '\r') goto yy250; +- goto yy225; +- } else { +- if (yych <= ' ') goto yy250; +- if (yych == '-') goto yy250; +- goto yy225; +- } +- } else { +- if (yych <= '@') { +- if (yych <= '9') goto yy250; +- if (yych == '>') goto yy250; +- goto yy225; +- } else { +- if (yych <= 'Z') goto yy250; +- if (yych <= '`') goto yy225; +- if (yych <= 'z') goto yy250; +- goto yy225; +- } +- } +-yy230: +- yych = *++p; +- if (yych == '-') goto yy254; +-yy231: +- p = marker; +- goto yy225; +-yy232: +- yych = *++p; +- if (yybm[256+yych] & 32) { +- goto yy232; +- } +- if (yych <= 0x08) goto yy231; +- if (yych <= '\r') goto yy255; +- if (yych == ' ') goto yy255; +- goto yy231; +-yy234: +- yych = *++p; +- if (yych == 'C') goto yy257; +- if (yych == 'c') goto yy257; +- goto yy231; +-yy235: +- yych = *++p; +- if (yybm[256+yych] & 64) { +- goto yy235; +- } +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy231; +- if (yych <= '\r') goto yy258; +- goto yy231; +- } else { +- if (yych <= ' ') goto yy258; +- if (yych == '>') goto yy252; +- goto yy231; +- } +-yy237: +- yych = *++p; +-yy238: +- if (yybm[256+yych] & 128) { +- goto yy237; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych >= '@') goto yy231; +- } else { +- if (yych <= 0xDF) goto yy240; +- if (yych <= 0xE0) goto yy241; +- goto yy242; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy243; +- if (yych <= 0xEF) goto yy242; +- goto yy244; +- } else { +- if (yych <= 0xF3) goto yy245; +- if (yych <= 0xF4) goto yy246; +- goto yy231; +- } +- } +- yych = *++p; +- if (yych <= 0xE0) { +- if (yych <= '>') { +- if (yych <= 0x00) goto yy231; +- if (yych <= '=') goto yy237; +- goto yy252; +- } else { +- if (yych <= 0x7F) goto yy237; +- if (yych <= 0xC1) goto yy231; +- if (yych >= 0xE0) goto yy241; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy243; +- goto yy242; +- } else { +- if (yych <= 0xF0) goto yy244; +- if (yych <= 0xF3) goto yy245; +- if (yych <= 0xF4) goto yy246; +- goto yy231; +- } +- } +-yy240: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy237; +- goto yy231; +-yy241: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy240; +- goto yy231; +-yy242: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy240; +- goto yy231; +-yy243: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy240; +- goto yy231; +-yy244: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy242; +- goto yy231; +-yy245: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy242; +- goto yy231; +-yy246: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy242; +- goto yy231; +-yy247: +- yych = *++p; +- if (yybm[0+yych] & 1) { +- goto yy247; +- } +- if (yych <= '>') { +- if (yych <= '9') { +- if (yych == '/') goto yy251; +- goto yy231; +- } else { +- if (yych <= ':') goto yy260; +- if (yych <= '=') goto yy231; +- goto yy252; +- } +- } else { +- if (yych <= '^') { +- if (yych <= '@') goto yy231; +- if (yych <= 'Z') goto yy260; +- goto yy231; +- } else { +- if (yych == '`') goto yy231; +- if (yych <= 'z') goto yy260; +- goto yy231; +- } +- } +-yy249: +- yych = *++p; +-yy250: +- if (yybm[0+yych] & 1) { +- goto yy247; +- } +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych == '-') goto yy249; +- goto yy231; +- } else { +- if (yych <= '/') goto yy251; +- if (yych <= '9') goto yy249; +- goto yy231; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy252; +- if (yych <= '@') goto yy231; +- goto yy249; +- } else { +- if (yych <= '`') goto yy231; +- if (yych <= 'z') goto yy249; +- goto yy231; +- } +- } +-yy251: +- yych = *++p; +- if (yych != '>') goto yy231; +-yy252: +- ++p; +- { return (bufsize_t)(p - start); } +-yy254: +- yych = *++p; +- if (yych == '-') goto yy264; +- if (yych == '>') goto yy231; +- goto yy263; +-yy255: +- yych = *++p; +- if (yybm[0+yych] & 2) { +- goto yy255; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= '>') goto yy252; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy272; +- if (yych <= 0xE0) goto yy273; +- goto yy274; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy275; +- if (yych <= 0xEF) goto yy274; +- goto yy276; +- } else { +- if (yych <= 0xF3) goto yy277; +- if (yych <= 0xF4) goto yy278; +- goto yy231; +- } +- } +-yy257: +- yych = *++p; +- if (yych == 'D') goto yy279; +- if (yych == 'd') goto yy279; +- goto yy231; +-yy258: +- yych = *++p; +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy231; +- if (yych <= '\r') goto yy258; +- goto yy231; +- } else { +- if (yych <= ' ') goto yy258; +- if (yych == '>') goto yy252; +- goto yy231; +- } +-yy260: +- yych = *++p; +- if (yybm[0+yych] & 4) { +- goto yy260; +- } +- if (yych <= ',') { +- if (yych <= '\r') { +- if (yych <= 0x08) goto yy231; +- goto yy280; +- } else { +- if (yych == ' ') goto yy280; +- goto yy231; +- } +- } else { +- if (yych <= '<') { +- if (yych <= '/') goto yy251; +- goto yy231; +- } else { +- if (yych <= '=') goto yy282; +- if (yych <= '>') goto yy252; +- goto yy231; +- } +- } +-yy262: +- yych = *++p; +-yy263: +- if (yybm[0+yych] & 8) { +- goto yy262; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= '-') goto yy284; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy265; +- if (yych <= 0xE0) goto yy266; +- goto yy267; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy268; +- if (yych <= 0xEF) goto yy267; +- goto yy269; +- } else { +- if (yych <= 0xF3) goto yy270; +- if (yych <= 0xF4) goto yy271; +- goto yy231; +- } +- } +-yy264: +- yych = *++p; +- if (yych == '-') goto yy251; +- if (yych == '>') goto yy231; +- goto yy263; +-yy265: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy262; +- goto yy231; +-yy266: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy265; +- goto yy231; +-yy267: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy265; +- goto yy231; +-yy268: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy265; +- goto yy231; +-yy269: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy267; +- goto yy231; +-yy270: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy267; +- goto yy231; +-yy271: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy267; +- goto yy231; +-yy272: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy255; +- goto yy231; +-yy273: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy272; +- goto yy231; +-yy274: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy272; +- goto yy231; +-yy275: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy272; +- goto yy231; +-yy276: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy274; +- goto yy231; +-yy277: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy274; +- goto yy231; +-yy278: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy274; +- goto yy231; +-yy279: +- yych = *++p; +- if (yych == 'A') goto yy285; +- if (yych == 'a') goto yy285; +- goto yy231; +-yy280: +- yych = *++p; +- if (yych <= '<') { +- if (yych <= ' ') { +- if (yych <= 0x08) goto yy231; +- if (yych <= '\r') goto yy280; +- if (yych <= 0x1F) goto yy231; +- goto yy280; +- } else { +- if (yych <= '/') { +- if (yych <= '.') goto yy231; +- goto yy251; +- } else { +- if (yych == ':') goto yy260; +- goto yy231; +- } +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '=') goto yy282; +- if (yych <= '>') goto yy252; +- if (yych <= '@') goto yy231; +- goto yy260; +- } else { +- if (yych <= '_') { +- if (yych <= '^') goto yy231; +- goto yy260; +- } else { +- if (yych <= '`') goto yy231; +- if (yych <= 'z') goto yy260; +- goto yy231; +- } +- } +- } +-yy282: +- yych = *++p; +- if (yybm[0+yych] & 16) { +- goto yy286; +- } +- if (yych <= 0xE0) { +- if (yych <= '"') { +- if (yych <= 0x00) goto yy231; +- if (yych <= ' ') goto yy282; +- goto yy288; +- } else { +- if (yych <= '\'') goto yy290; +- if (yych <= 0xC1) goto yy231; +- if (yych <= 0xDF) goto yy292; +- goto yy293; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy295; +- goto yy294; +- } else { +- if (yych <= 0xF0) goto yy296; +- if (yych <= 0xF3) goto yy297; +- if (yych <= 0xF4) goto yy298; +- goto yy231; +- } +- } +-yy284: +- yych = *++p; +- if (yybm[0+yych] & 8) { +- goto yy262; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= '-') goto yy251; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy265; +- if (yych <= 0xE0) goto yy266; +- goto yy267; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy268; +- if (yych <= 0xEF) goto yy267; +- goto yy269; +- } else { +- if (yych <= 0xF3) goto yy270; +- if (yych <= 0xF4) goto yy271; +- goto yy231; +- } +- } +-yy285: +- yych = *++p; +- if (yych == 'T') goto yy299; +- if (yych == 't') goto yy299; +- goto yy231; +-yy286: +- yych = *++p; +- if (yybm[0+yych] & 16) { +- goto yy286; +- } +- if (yych <= 0xE0) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy231; +- if (yych <= ' ') goto yy247; +- goto yy231; +- } else { +- if (yych <= '>') goto yy252; +- if (yych <= 0xC1) goto yy231; +- if (yych <= 0xDF) goto yy292; +- goto yy293; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy295; +- goto yy294; +- } else { +- if (yych <= 0xF0) goto yy296; +- if (yych <= 0xF3) goto yy297; +- if (yych <= 0xF4) goto yy298; +- goto yy231; +- } +- } +-yy288: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy288; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= '"') goto yy300; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy301; +- if (yych <= 0xE0) goto yy302; +- goto yy303; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy304; +- if (yych <= 0xEF) goto yy303; +- goto yy305; +- } else { +- if (yych <= 0xF3) goto yy306; +- if (yych <= 0xF4) goto yy307; +- goto yy231; +- } +- } +-yy290: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy290; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= '\'') goto yy300; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy308; +- if (yych <= 0xE0) goto yy309; +- goto yy310; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy311; +- if (yych <= 0xEF) goto yy310; +- goto yy312; +- } else { +- if (yych <= 0xF3) goto yy313; +- if (yych <= 0xF4) goto yy314; +- goto yy231; +- } +- } +-yy292: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy286; +- goto yy231; +-yy293: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy292; +- goto yy231; +-yy294: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy292; +- goto yy231; +-yy295: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy292; +- goto yy231; +-yy296: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy294; +- goto yy231; +-yy297: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy294; +- goto yy231; +-yy298: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy294; +- goto yy231; +-yy299: +- yych = *++p; +- if (yych == 'A') goto yy315; +- if (yych == 'a') goto yy315; +- goto yy231; +-yy300: +- yych = *++p; +- if (yybm[0+yych] & 1) { +- goto yy247; +- } +- if (yych == '/') goto yy251; +- if (yych == '>') goto yy252; +- goto yy231; +-yy301: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy288; +- goto yy231; +-yy302: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy301; +- goto yy231; +-yy303: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy301; +- goto yy231; +-yy304: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy301; +- goto yy231; +-yy305: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy303; +- goto yy231; +-yy306: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy303; +- goto yy231; +-yy307: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy303; +- goto yy231; +-yy308: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy290; +- goto yy231; +-yy309: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy308; +- goto yy231; +-yy310: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy308; +- goto yy231; +-yy311: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy308; +- goto yy231; +-yy312: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy310; +- goto yy231; +-yy313: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy310; +- goto yy231; +-yy314: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy310; +- goto yy231; +-yy315: +- yych = *++p; +- if (yych != '[') goto yy231; +-yy316: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy316; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych >= '^') goto yy231; +- } else { +- if (yych <= 0xDF) goto yy319; +- if (yych <= 0xE0) goto yy320; +- goto yy321; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy322; +- if (yych <= 0xEF) goto yy321; +- goto yy323; +- } else { +- if (yych <= 0xF3) goto yy324; +- if (yych <= 0xF4) goto yy325; +- goto yy231; +- } +- } +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy316; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy231; +- if (yych <= ']') goto yy326; +- goto yy231; +- } else { +- if (yych <= 0xDF) goto yy319; +- if (yych <= 0xE0) goto yy320; +- goto yy321; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy322; +- if (yych <= 0xEF) goto yy321; +- goto yy323; +- } else { +- if (yych <= 0xF3) goto yy324; +- if (yych <= 0xF4) goto yy325; +- goto yy231; +- } +- } +-yy319: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy316; +- goto yy231; +-yy320: +- yych = *++p; +- if (yych <= 0x9F) goto yy231; +- if (yych <= 0xBF) goto yy319; +- goto yy231; +-yy321: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy319; +- goto yy231; +-yy322: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x9F) goto yy319; +- goto yy231; +-yy323: +- yych = *++p; +- if (yych <= 0x8F) goto yy231; +- if (yych <= 0xBF) goto yy321; +- goto yy231; +-yy324: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0xBF) goto yy321; +- goto yy231; +-yy325: +- yych = *++p; +- if (yych <= 0x7F) goto yy231; +- if (yych <= 0x8F) goto yy321; +- goto yy231; +-yy326: +- yych = *++p; +- if (yych <= 0xE0) { +- if (yych <= '>') { +- if (yych <= 0x00) goto yy231; +- if (yych <= '=') goto yy316; +- goto yy252; +- } else { +- if (yych <= 0x7F) goto yy316; +- if (yych <= 0xC1) goto yy231; +- if (yych <= 0xDF) goto yy319; +- goto yy320; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy322; +- goto yy321; +- } else { +- if (yych <= 0xF0) goto yy323; +- if (yych <= 0xF3) goto yy324; +- if (yych <= 0xF4) goto yy325; +- goto yy231; +- } +- } ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy225; ++ ++p; ++ yy224 : { return 0; } ++ yy225: ++ yych = *(marker = ++p); ++ if (yych != '-') ++ goto yy224; ++ yy226: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy226; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy227; ++ if (yych <= '-') ++ goto yy228; ++ } else { ++ if (yych <= 0xDF) ++ goto yy229; ++ if (yych <= 0xE0) ++ goto yy230; ++ goto yy231; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy232; ++ if (yych <= 0xEF) ++ goto yy231; ++ goto yy233; ++ } else { ++ if (yych <= 0xF3) ++ goto yy234; ++ if (yych <= 0xF4) ++ goto yy235; ++ } ++ } ++ yy227: ++ p = marker; ++ goto yy224; ++ yy228: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy226; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy227; ++ if (yych <= '-') ++ goto yy236; ++ goto yy227; ++ } else { ++ if (yych <= 0xDF) ++ goto yy229; ++ if (yych <= 0xE0) ++ goto yy230; ++ goto yy231; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy232; ++ if (yych <= 0xEF) ++ goto yy231; ++ goto yy233; ++ } else { ++ if (yych <= 0xF3) ++ goto yy234; ++ if (yych <= 0xF4) ++ goto yy235; ++ goto yy227; ++ } ++ } ++ yy229: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy227; ++ if (yych <= 0xBF) ++ goto yy226; ++ goto yy227; ++ yy230: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy227; ++ if (yych <= 0xBF) ++ goto yy229; ++ goto yy227; ++ yy231: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy227; ++ if (yych <= 0xBF) ++ goto yy229; ++ goto yy227; ++ yy232: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy227; ++ if (yych <= 0x9F) ++ goto yy229; ++ goto yy227; ++ yy233: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy227; ++ if (yych <= 0xBF) ++ goto yy231; ++ goto yy227; ++ yy234: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy227; ++ if (yych <= 0xBF) ++ goto yy231; ++ goto yy227; ++ yy235: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy227; ++ if (yych <= 0x8F) ++ goto yy231; ++ goto yy227; ++ yy236: ++ yych = *++p; ++ if (yych <= 0xE0) { ++ if (yych <= '>') { ++ if (yych <= 0x00) ++ goto yy227; ++ if (yych <= '=') ++ goto yy226; ++ } else { ++ if (yych <= 0x7F) ++ goto yy226; ++ if (yych <= 0xC1) ++ goto yy227; ++ if (yych <= 0xDF) ++ goto yy229; ++ goto yy230; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy232; ++ goto yy231; ++ } else { ++ if (yych <= 0xF0) ++ goto yy233; ++ if (yych <= 0xF3) ++ goto yy234; ++ if (yych <= 0xF4) ++ goto yy235; ++ goto yy227; ++ } ++ } ++ ++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; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy240; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy238; ++ if (yych <= '?') ++ goto yy243; ++ } else { ++ if (yych <= 0xDF) ++ goto yy244; ++ if (yych <= 0xE0) ++ goto yy245; ++ goto yy246; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy247; ++ if (yych <= 0xEF) ++ goto yy246; ++ goto yy248; ++ } else { ++ if (yych <= 0xF3) ++ goto yy249; ++ if (yych <= 0xF4) ++ goto yy250; ++ } ++ } ++ yy238: ++ ++p; ++ yy239 : { return 0; } ++ yy240: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ yy241: ++ if (yybm[0 + yych] & 128) { ++ goto yy240; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy242; ++ if (yych <= '?') ++ goto yy251; ++ } else { ++ if (yych <= 0xDF) ++ goto yy253; ++ if (yych <= 0xE0) ++ goto yy254; ++ goto yy255; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy256; ++ if (yych <= 0xEF) ++ goto yy255; ++ goto yy257; ++ } else { ++ if (yych <= 0xF3) ++ goto yy258; ++ if (yych <= 0xF4) ++ goto yy259; ++ } ++ } ++ yy242 : { return (bufsize_t)(p - start); } ++ yy243: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= '?') { ++ if (yych <= 0x00) ++ goto yy239; ++ if (yych <= '=') ++ goto yy241; ++ if (yych <= '>') ++ goto yy239; ++ goto yy240; ++ } else { ++ if (yych <= 0x7F) ++ goto yy241; ++ if (yych <= 0xC1) ++ goto yy239; ++ if (yych <= 0xF4) ++ goto yy241; ++ goto yy239; ++ } ++ yy244: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy239; ++ if (yych <= 0xBF) ++ goto yy240; ++ goto yy239; ++ yy245: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy239; ++ if (yych <= 0xBF) ++ goto yy253; ++ goto yy239; ++ yy246: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy239; ++ if (yych <= 0xBF) ++ goto yy253; ++ goto yy239; ++ yy247: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy239; ++ if (yych <= 0x9F) ++ goto yy253; ++ goto yy239; ++ yy248: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy239; ++ if (yych <= 0xBF) ++ goto yy255; ++ goto yy239; ++ yy249: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy239; ++ if (yych <= 0xBF) ++ goto yy255; ++ goto yy239; ++ yy250: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy239; ++ if (yych <= 0x8F) ++ goto yy255; ++ goto yy239; ++ yy251: ++ yych = *++p; ++ if (yych <= 0xE0) { ++ if (yych <= '>') { ++ if (yych <= 0x00) ++ goto yy252; ++ if (yych <= '=') ++ goto yy240; ++ } else { ++ if (yych <= 0x7F) ++ goto yy240; ++ if (yych <= 0xC1) ++ goto yy252; ++ if (yych <= 0xDF) ++ goto yy253; ++ goto yy254; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy256; ++ goto yy255; ++ } else { ++ if (yych <= 0xF0) ++ goto yy257; ++ if (yych <= 0xF3) ++ goto yy258; ++ if (yych <= 0xF4) ++ goto yy259; ++ } ++ } ++ yy252: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy242; ++ } else { ++ goto yy239; ++ } ++ yy253: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy252; ++ if (yych <= 0xBF) ++ goto yy240; ++ goto yy252; ++ yy254: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy252; ++ if (yych <= 0xBF) ++ goto yy253; ++ goto yy252; ++ yy255: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy252; ++ if (yych <= 0xBF) ++ goto yy253; ++ goto yy252; ++ yy256: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy252; ++ if (yych <= 0x9F) ++ goto yy253; ++ goto yy252; ++ yy257: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy252; ++ if (yych <= 0xBF) ++ goto yy255; ++ goto yy252; ++ yy258: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy252; ++ if (yych <= 0xBF) ++ goto yy255; ++ goto yy252; ++ yy259: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy252; ++ if (yych <= 0x8F) ++ goto yy255; ++ goto yy252; ++ } + } + +-// Try to (liberally) match an HTML tag after first <, returning num of chars matched. +-bufsize_t _scan_liberal_html_tag(const unsigned char *p) +-{ ++bufsize_t _scan_html_declaration(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[] = { +- 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, 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= 0xE0) { +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy329; +- if (yych <= '\t') goto yy331; +- } else { +- if (yych <= 0x7F) goto yy331; +- if (yych <= 0xC1) goto yy329; +- if (yych <= 0xDF) goto yy332; +- goto yy333; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy335; +- goto yy334; +- } else { +- if (yych <= 0xF0) goto yy336; +- if (yych <= 0xF3) goto yy337; +- if (yych <= 0xF4) goto yy338; +- } +- } +-yy329: +- ++p; +-yy330: +- { return 0; } +-yy331: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy330; +- if (yych <= '\t') goto yy340; +- goto yy330; +- } else { +- if (yych <= 0x7F) goto yy340; +- if (yych <= 0xC1) goto yy330; +- if (yych <= 0xF4) goto yy340; +- goto yy330; +- } +-yy332: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy330; +- if (yych <= 0xBF) goto yy339; +- goto yy330; +-yy333: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy330; +- if (yych <= 0xBF) goto yy345; +- goto yy330; +-yy334: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy330; +- if (yych <= 0xBF) goto yy345; +- goto yy330; +-yy335: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy330; +- if (yych <= 0x9F) goto yy345; +- goto yy330; +-yy336: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy330; +- if (yych <= 0xBF) goto yy347; +- goto yy330; +-yy337: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy330; +- if (yych <= 0xBF) goto yy347; +- goto yy330; +-yy338: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy330; +- if (yych <= 0x8F) goto yy347; +- goto yy330; +-yy339: +- yych = *++p; +-yy340: +- if (yybm[0+yych] & 64) { +- goto yy339; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy341; +- if (yych <= '>') goto yy342; +- } else { +- if (yych <= 0xDF) goto yy345; +- if (yych <= 0xE0) goto yy346; +- goto yy347; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy348; +- if (yych <= 0xEF) goto yy347; +- goto yy349; +- } else { +- if (yych <= 0xF3) goto yy350; +- if (yych <= 0xF4) goto yy351; +- } +- } +-yy341: +- p = marker; +- if (yyaccept == 0) { +- goto yy330; +- } else { +- goto yy344; +- } +-yy342: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy339; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy344; +- if (yych <= '>') goto yy342; +- } else { +- if (yych <= 0xDF) goto yy345; +- if (yych <= 0xE0) goto yy346; +- goto yy347; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy348; +- if (yych <= 0xEF) goto yy347; +- goto yy349; +- } else { +- if (yych <= 0xF3) goto yy350; +- if (yych <= 0xF4) goto yy351; +- } +- } +-yy344: +- { return (bufsize_t)(p - start); } +-yy345: +- yych = *++p; +- if (yych <= 0x7F) goto yy341; +- if (yych <= 0xBF) goto yy339; +- goto yy341; +-yy346: +- yych = *++p; +- if (yych <= 0x9F) goto yy341; +- if (yych <= 0xBF) goto yy345; +- goto yy341; +-yy347: +- yych = *++p; +- if (yych <= 0x7F) goto yy341; +- if (yych <= 0xBF) goto yy345; +- goto yy341; +-yy348: +- yych = *++p; +- if (yych <= 0x7F) goto yy341; +- if (yych <= 0x9F) goto yy345; +- goto yy341; +-yy349: +- yych = *++p; +- if (yych <= 0x8F) goto yy341; +- if (yych <= 0xBF) goto yy347; +- goto yy341; +-yy350: +- yych = *++p; +- if (yych <= 0x7F) goto yy341; +- if (yych <= 0xBF) goto yy347; +- goto yy341; +-yy351: +- yych = *++p; +- if (yych <= 0x7F) goto yy341; +- if (yych <= 0x8F) goto yy347; +- goto yy341; ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 64, 64, 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, 64, 64, 64, 64, 64, 64, 64, ++ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, ++ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, ++ 64, 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, ++ }; ++ yych = *p; ++ if (yych <= '@') ++ goto yy261; ++ if (yych <= 'Z') ++ goto yy263; ++ yy261: ++ ++p; ++ yy262 : { return 0; } ++ yy263: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy266; ++ } ++ if (yych <= 0x08) ++ goto yy262; ++ if (yych <= '\r') ++ goto yy264; ++ if (yych != ' ') ++ goto yy262; ++ yy264: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy264; ++ } ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) { ++ if (yych >= 0xC2) ++ goto yy268; ++ } else { ++ if (yych <= 0xE0) ++ goto yy269; ++ if (yych <= 0xEC) ++ goto yy270; ++ goto yy271; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy270; ++ goto yy272; ++ } else { ++ if (yych <= 0xF3) ++ goto yy273; ++ if (yych <= 0xF4) ++ goto yy274; ++ } ++ } ++ yy265 : { return (bufsize_t)(p - start); } ++ yy266: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy266; ++ } ++ if (yych <= 0x08) ++ goto yy267; ++ if (yych <= '\r') ++ goto yy264; ++ if (yych == ' ') ++ goto yy264; ++ yy267: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy262; ++ } else { ++ goto yy265; ++ } ++ yy268: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy267; ++ if (yych <= 0xBF) ++ goto yy264; ++ goto yy267; ++ yy269: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy267; ++ if (yych <= 0xBF) ++ goto yy268; ++ goto yy267; ++ yy270: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy267; ++ if (yych <= 0xBF) ++ goto yy268; ++ goto yy267; ++ yy271: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy267; ++ if (yych <= 0x9F) ++ goto yy268; ++ goto yy267; ++ yy272: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy267; ++ if (yych <= 0xBF) ++ goto yy270; ++ goto yy267; ++ yy273: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy267; ++ if (yych <= 0xBF) ++ goto yy270; ++ goto yy267; ++ yy274: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy267; ++ if (yych <= 0x8F) ++ goto yy270; ++ goto yy267; ++ } + } + ++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[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 == 'C') ++ goto yy277; ++ if (yych == 'c') ++ goto yy277; ++ ++p; ++ yy276 : { return 0; } ++ yy277: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych == 'D') ++ goto yy278; ++ if (yych != 'd') ++ goto yy276; ++ yy278: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy280; ++ if (yych == 'a') ++ goto yy280; ++ yy279: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy276; ++ } else { ++ goto yy284; ++ } ++ yy280: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy281; ++ if (yych != 't') ++ goto yy279; ++ yy281: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy282; ++ if (yych != 'a') ++ goto yy279; ++ yy282: ++ yych = *++p; ++ if (yych != '[') ++ goto yy279; ++ yy283: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy283; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy284; ++ if (yych <= ']') ++ goto yy285; ++ } else { ++ if (yych <= 0xDF) ++ goto yy286; ++ if (yych <= 0xE0) ++ goto yy287; ++ goto yy288; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy289; ++ if (yych <= 0xEF) ++ goto yy288; ++ goto yy290; ++ } else { ++ if (yych <= 0xF3) ++ goto yy291; ++ if (yych <= 0xF4) ++ goto yy292; ++ } ++ } ++ yy284 : { return (bufsize_t)(p - start); } ++ yy285: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy283; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy279; ++ if (yych <= ']') ++ goto yy293; ++ goto yy279; ++ } else { ++ if (yych <= 0xDF) ++ goto yy286; ++ if (yych <= 0xE0) ++ goto yy287; ++ goto yy288; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy289; ++ if (yych <= 0xEF) ++ goto yy288; ++ goto yy290; ++ } else { ++ if (yych <= 0xF3) ++ goto yy291; ++ if (yych <= 0xF4) ++ goto yy292; ++ goto yy279; ++ } ++ } ++ yy286: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy279; ++ if (yych <= 0xBF) ++ goto yy283; ++ goto yy279; ++ yy287: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy279; ++ if (yych <= 0xBF) ++ goto yy286; ++ goto yy279; ++ yy288: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy279; ++ if (yych <= 0xBF) ++ goto yy286; ++ goto yy279; ++ yy289: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy279; ++ if (yych <= 0x9F) ++ goto yy286; ++ goto yy279; ++ yy290: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy279; ++ if (yych <= 0xBF) ++ goto yy288; ++ goto yy279; ++ yy291: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy279; ++ if (yych <= 0xBF) ++ goto yy288; ++ goto yy279; ++ yy292: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy279; ++ if (yych <= 0x8F) ++ goto yy288; ++ goto yy279; ++ yy293: ++ yych = *++p; ++ if (yych <= 0xE0) { ++ if (yych <= '>') { ++ if (yych <= 0x00) ++ goto yy279; ++ if (yych <= '=') ++ goto yy283; ++ goto yy279; ++ } else { ++ if (yych <= 0x7F) ++ goto yy283; ++ if (yych <= 0xC1) ++ goto yy279; ++ if (yych <= 0xDF) ++ goto yy286; ++ goto yy287; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy289; ++ goto yy288; ++ } else { ++ if (yych <= 0xF0) ++ goto yy290; ++ if (yych <= 0xF3) ++ goto yy291; ++ if (yych <= 0xF4) ++ goto yy292; ++ goto yy279; ++ } ++ } ++ } + } + + // 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) +-{ ++bufsize_t _scan_html_block_start(const unsigned char *p) { + const unsigned char *marker = NULL; + +-{ +- unsigned char yych; +- yych = *p; +- if (yych == '<') goto yy356; +- ++p; +-yy355: +- { return 0; } +-yy356: +- yych = *(marker = ++p); +- switch (yych) { +- case '!': goto yy357; +- case '/': goto yy359; +- case '?': goto yy360; +- case 'A': +- case 'a': goto yy362; +- case 'B': +- case 'b': goto yy363; +- case 'C': +- case 'c': goto yy364; +- case 'D': +- case 'd': goto yy365; +- case 'F': +- case 'f': goto yy366; +- case 'H': +- case 'h': goto yy367; +- case 'I': +- case 'i': goto yy368; +- case 'L': +- case 'l': goto yy369; +- case 'M': +- case 'm': goto yy370; +- case 'N': +- case 'n': goto yy371; +- case 'O': +- case 'o': goto yy372; +- case 'P': +- case 'p': goto yy373; +- case 'S': +- case 's': goto yy374; +- case 'T': +- case 't': goto yy375; +- case 'U': +- case 'u': goto yy376; +- default: goto yy355; +- } +-yy357: +- yych = *++p; +- if (yych <= '@') { +- if (yych == '-') goto yy377; +- } else { +- if (yych <= 'Z') goto yy378; +- if (yych <= '[') goto yy380; +- } +-yy358: +- p = marker; +- goto yy355; +-yy359: +- yych = *++p; +- switch (yych) { +- case 'A': +- case 'a': goto yy362; +- case 'B': +- case 'b': goto yy363; +- case 'C': +- case 'c': goto yy364; +- case 'D': +- case 'd': goto yy365; +- case 'F': +- case 'f': goto yy366; +- case 'H': +- case 'h': goto yy367; +- case 'I': +- case 'i': goto yy368; +- case 'L': +- case 'l': goto yy369; +- case 'M': +- case 'm': goto yy370; +- case 'N': +- case 'n': goto yy371; +- case 'O': +- case 'o': goto yy372; +- case 'P': +- case 'p': goto yy381; +- case 'S': +- case 's': goto yy382; +- case 'T': +- case 't': goto yy375; +- case 'U': +- case 'u': goto yy376; +- default: goto yy358; +- } +-yy360: +- ++p; +- { return 3; } +-yy362: +- yych = *++p; +- if (yych <= 'S') { +- if (yych <= 'D') { +- if (yych <= 'C') goto yy358; +- goto yy383; +- } else { +- if (yych <= 'Q') goto yy358; +- if (yych <= 'R') goto yy384; +- goto yy385; +- } +- } else { +- if (yych <= 'q') { +- if (yych == 'd') goto yy383; +- goto yy358; +- } else { +- if (yych <= 'r') goto yy384; +- if (yych <= 's') goto yy385; +- goto yy358; +- } +- } +-yy363: +- yych = *++p; +- if (yych <= 'O') { +- if (yych <= 'K') { +- if (yych == 'A') goto yy386; +- goto yy358; +- } else { +- if (yych <= 'L') goto yy387; +- if (yych <= 'N') goto yy358; +- goto yy388; +- } +- } else { +- if (yych <= 'k') { +- if (yych == 'a') goto yy386; +- goto yy358; +- } else { +- if (yych <= 'l') goto yy387; +- if (yych == 'o') goto yy388; +- goto yy358; +- } +- } +-yy364: +- yych = *++p; +- if (yych <= 'O') { +- if (yych <= 'D') { +- if (yych == 'A') goto yy389; +- goto yy358; +- } else { +- if (yych <= 'E') goto yy390; +- if (yych <= 'N') goto yy358; +- goto yy391; +- } +- } else { +- if (yych <= 'd') { +- if (yych == 'a') goto yy389; +- goto yy358; +- } else { +- if (yych <= 'e') goto yy390; +- if (yych == 'o') goto yy391; +- goto yy358; +- } +- } +-yy365: +- yych = *++p; +- switch (yych) { +- case 'D': +- case 'L': +- case 'T': +- case 'd': +- case 'l': +- case 't': goto yy392; +- case 'E': +- case 'e': goto yy393; +- case 'I': +- case 'i': goto yy394; +- default: goto yy358; +- } +-yy366: +- yych = *++p; +- if (yych <= 'R') { +- if (yych <= 'N') { +- if (yych == 'I') goto yy395; +- goto yy358; +- } else { +- if (yych <= 'O') goto yy396; +- if (yych <= 'Q') goto yy358; +- goto yy397; +- } +- } else { +- if (yych <= 'n') { +- if (yych == 'i') goto yy395; +- goto yy358; +- } else { +- if (yych <= 'o') goto yy396; +- if (yych == 'r') goto yy397; +- goto yy358; +- } +- } +-yy367: +- yych = *++p; +- if (yych <= 'S') { +- if (yych <= 'D') { +- if (yych <= '0') goto yy358; +- if (yych <= '6') goto yy392; +- goto yy358; +- } else { +- if (yych <= 'E') goto yy398; +- if (yych == 'R') goto yy392; +- goto yy358; +- } +- } else { +- if (yych <= 'q') { +- if (yych <= 'T') goto yy399; +- if (yych == 'e') goto yy398; +- goto yy358; +- } else { +- if (yych <= 'r') goto yy392; +- if (yych == 't') goto yy399; +- goto yy358; +- } +- } +-yy368: +- yych = *++p; +- if (yych == 'F') goto yy400; +- if (yych == 'f') goto yy400; +- goto yy358; +-yy369: +- yych = *++p; +- if (yych <= 'I') { +- if (yych == 'E') goto yy401; +- if (yych <= 'H') goto yy358; +- goto yy402; +- } else { +- if (yych <= 'e') { +- if (yych <= 'd') goto yy358; +- goto yy401; +- } else { +- if (yych == 'i') goto yy402; +- goto yy358; +- } +- } +-yy370: +- yych = *++p; +- if (yych <= 'E') { +- if (yych == 'A') goto yy403; +- if (yych <= 'D') goto yy358; +- goto yy404; +- } else { +- if (yych <= 'a') { +- if (yych <= '`') goto yy358; +- goto yy403; +- } else { +- if (yych == 'e') goto yy404; +- goto yy358; +- } +- } +-yy371: +- yych = *++p; +- if (yych <= 'O') { +- if (yych == 'A') goto yy405; +- if (yych <= 'N') goto yy358; +- goto yy406; +- } else { +- if (yych <= 'a') { +- if (yych <= '`') goto yy358; +- goto yy405; +- } else { +- if (yych == 'o') goto yy406; +- goto yy358; +- } +- } +-yy372: +- yych = *++p; +- if (yych <= 'P') { +- if (yych == 'L') goto yy392; +- if (yych <= 'O') goto yy358; +- goto yy407; +- } else { +- if (yych <= 'l') { +- if (yych <= 'k') goto yy358; +- goto yy392; +- } else { +- if (yych == 'p') goto yy407; +- goto yy358; +- } +- } +-yy373: +- yych = *++p; +- if (yych <= '>') { +- if (yych <= ' ') { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- if (yych <= 0x1F) goto yy358; +- goto yy408; +- } else { +- if (yych == '/') goto yy410; +- if (yych <= '=') goto yy358; +- goto yy408; +- } +- } else { +- if (yych <= 'R') { +- if (yych == 'A') goto yy411; +- if (yych <= 'Q') goto yy358; +- goto yy412; +- } else { +- if (yych <= 'a') { +- if (yych <= '`') goto yy358; +- goto yy411; +- } else { +- if (yych == 'r') goto yy412; +- goto yy358; +- } +- } +- } +-yy374: +- yych = *++p; +- if (yych <= 'U') { +- if (yych <= 'D') { +- if (yych == 'C') goto yy413; +- goto yy358; +- } else { +- if (yych <= 'E') goto yy414; +- if (yych <= 'S') goto yy358; +- if (yych <= 'T') goto yy415; +- goto yy416; +- } +- } else { +- if (yych <= 'e') { +- if (yych == 'c') goto yy413; +- if (yych <= 'd') goto yy358; +- goto yy414; +- } else { +- if (yych <= 's') goto yy358; +- if (yych <= 't') goto yy415; +- if (yych <= 'u') goto yy416; +- goto yy358; +- } +- } +-yy375: +- yych = *++p; +- switch (yych) { +- case 'A': +- case 'a': goto yy417; +- case 'B': +- case 'b': goto yy418; +- case 'D': +- case 'd': goto yy392; +- case 'F': +- case 'f': goto yy419; +- case 'H': +- case 'h': goto yy420; +- case 'I': +- case 'i': goto yy421; +- case 'R': +- case 'r': goto yy422; +- default: goto yy358; +- } +-yy376: +- yych = *++p; +- if (yych == 'L') goto yy392; +- if (yych == 'l') goto yy392; +- goto yy358; +-yy377: +- yych = *++p; +- if (yych == '-') goto yy423; +- goto yy358; +-yy378: +- ++p; +- { return 4; } +-yy380: +- yych = *++p; +- if (yych == 'C') goto yy425; +- if (yych == 'c') goto yy425; +- goto yy358; +-yy381: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= '@') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'A') goto yy411; +- if (yych == 'a') goto yy411; +- goto yy358; +- } +- } +-yy382: +- yych = *++p; +- if (yych <= 'U') { +- if (yych == 'E') goto yy414; +- if (yych <= 'T') goto yy358; +- goto yy416; +- } else { +- if (yych <= 'e') { +- if (yych <= 'd') goto yy358; +- goto yy414; +- } else { +- if (yych == 'u') goto yy416; +- goto yy358; +- } +- } +-yy383: +- yych = *++p; +- if (yych == 'D') goto yy426; +- if (yych == 'd') goto yy426; +- goto yy358; +-yy384: +- yych = *++p; +- if (yych == 'T') goto yy427; +- if (yych == 't') goto yy427; +- goto yy358; +-yy385: +- yych = *++p; +- if (yych == 'I') goto yy428; +- if (yych == 'i') goto yy428; +- goto yy358; +-yy386: +- yych = *++p; +- if (yych == 'S') goto yy429; +- if (yych == 's') goto yy429; +- goto yy358; +-yy387: +- yych = *++p; +- if (yych == 'O') goto yy430; +- if (yych == 'o') goto yy430; +- goto yy358; +-yy388: +- yych = *++p; +- if (yych == 'D') goto yy431; +- if (yych == 'd') goto yy431; +- goto yy358; +-yy389: +- yych = *++p; +- if (yych == 'P') goto yy432; +- if (yych == 'p') goto yy432; +- goto yy358; +-yy390: +- yych = *++p; +- if (yych == 'N') goto yy433; +- if (yych == 'n') goto yy433; +- goto yy358; +-yy391: +- yych = *++p; +- if (yych == 'L') goto yy434; +- if (yych == 'l') goto yy434; +- goto yy358; +-yy392: +- yych = *++p; +- if (yych <= ' ') { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- if (yych <= 0x1F) goto yy358; +- goto yy408; +- } else { +- if (yych <= '/') { +- if (yych <= '.') goto yy358; +- goto yy410; +- } else { +- if (yych == '>') goto yy408; +- goto yy358; +- } +- } +-yy393: +- yych = *++p; +- if (yych == 'T') goto yy435; +- if (yych == 't') goto yy435; +- goto yy358; +-yy394: +- yych = *++p; +- if (yych <= 'V') { +- if (yych <= 'Q') { +- if (yych == 'A') goto yy436; +- goto yy358; +- } else { +- if (yych <= 'R') goto yy392; +- if (yych <= 'U') goto yy358; +- goto yy392; +- } +- } else { +- if (yych <= 'q') { +- if (yych == 'a') goto yy436; +- goto yy358; +- } else { +- if (yych <= 'r') goto yy392; +- if (yych == 'v') goto yy392; +- goto yy358; +- } +- } +-yy395: +- yych = *++p; +- if (yych <= 'G') { +- if (yych == 'E') goto yy437; +- if (yych <= 'F') goto yy358; +- goto yy438; +- } else { +- if (yych <= 'e') { +- if (yych <= 'd') goto yy358; +- goto yy437; +- } else { +- if (yych == 'g') goto yy438; +- goto yy358; +- } +- } +-yy396: +- yych = *++p; +- if (yych <= 'R') { +- if (yych == 'O') goto yy433; +- if (yych <= 'Q') goto yy358; +- goto yy439; +- } else { +- if (yych <= 'o') { +- if (yych <= 'n') goto yy358; +- goto yy433; +- } else { +- if (yych == 'r') goto yy439; +- goto yy358; +- } +- } +-yy397: +- yych = *++p; +- if (yych == 'A') goto yy440; +- if (yych == 'a') goto yy440; +- goto yy358; +-yy398: +- yych = *++p; +- if (yych == 'A') goto yy441; +- if (yych == 'a') goto yy441; +- goto yy358; +-yy399: +- yych = *++p; +- if (yych == 'M') goto yy376; +- if (yych == 'm') goto yy376; +- goto yy358; +-yy400: +- yych = *++p; +- if (yych == 'R') goto yy442; +- if (yych == 'r') goto yy442; +- goto yy358; +-yy401: +- yych = *++p; +- if (yych == 'G') goto yy443; +- if (yych == 'g') goto yy443; +- goto yy358; +-yy402: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'M') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'N') goto yy444; +- if (yych == 'n') goto yy444; +- goto yy358; +- } +- } +-yy403: +- yych = *++p; +- if (yych == 'I') goto yy445; +- if (yych == 'i') goto yy445; +- goto yy358; +-yy404: +- yych = *++p; +- if (yych == 'N') goto yy446; +- if (yych == 'n') goto yy446; +- goto yy358; +-yy405: +- yych = *++p; +- if (yych == 'V') goto yy392; +- if (yych == 'v') goto yy392; +- goto yy358; +-yy406: +- yych = *++p; +- if (yych == 'F') goto yy447; +- if (yych == 'f') goto yy447; +- goto yy358; +-yy407: +- yych = *++p; +- if (yych == 'T') goto yy448; +- if (yych == 't') goto yy448; +- goto yy358; +-yy408: +- ++p; +- { return 6; } +-yy410: +- yych = *++p; +- if (yych == '>') goto yy408; +- goto yy358; +-yy411: +- yych = *++p; +- if (yych == 'R') goto yy449; +- if (yych == 'r') goto yy449; +- goto yy358; +-yy412: +- yych = *++p; +- if (yych == 'E') goto yy450; +- if (yych == 'e') goto yy450; +- goto yy358; +-yy413: +- yych = *++p; +- if (yych == 'R') goto yy451; +- if (yych == 'r') goto yy451; +- goto yy358; +-yy414: +- yych = *++p; +- if (yych == 'C') goto yy432; +- if (yych == 'c') goto yy432; +- goto yy358; +-yy415: +- yych = *++p; +- if (yych == 'Y') goto yy452; +- if (yych == 'y') goto yy452; +- goto yy358; +-yy416: +- yych = *++p; +- if (yych == 'M') goto yy453; +- if (yych == 'm') goto yy453; +- goto yy358; +-yy417: +- yych = *++p; +- if (yych == 'B') goto yy454; +- if (yych == 'b') goto yy454; +- goto yy358; +-yy418: +- yych = *++p; +- if (yych == 'O') goto yy388; +- if (yych == 'o') goto yy388; +- goto yy358; +-yy419: +- yych = *++p; +- if (yych == 'O') goto yy455; +- if (yych == 'o') goto yy455; +- goto yy358; +-yy420: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'D') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'E') goto yy456; +- if (yych == 'e') goto yy456; +- goto yy358; +- } +- } +-yy421: +- yych = *++p; +- if (yych == 'T') goto yy454; +- if (yych == 't') goto yy454; +- goto yy358; +-yy422: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= '@') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'A') goto yy457; +- if (yych == 'a') goto yy457; +- goto yy358; +- } +- } +-yy423: +- ++p; +- { return 2; } +-yy425: +- yych = *++p; +- if (yych == 'D') goto yy458; +- if (yych == 'd') goto yy458; +- goto yy358; +-yy426: +- yych = *++p; +- if (yych == 'R') goto yy459; +- if (yych == 'r') goto yy459; +- goto yy358; +-yy427: +- yych = *++p; +- if (yych == 'I') goto yy460; +- if (yych == 'i') goto yy460; +- goto yy358; +-yy428: +- yych = *++p; +- if (yych == 'D') goto yy461; +- if (yych == 'd') goto yy461; +- goto yy358; +-yy429: +- yych = *++p; +- if (yych == 'E') goto yy462; +- if (yych == 'e') goto yy462; +- goto yy358; +-yy430: +- yych = *++p; +- if (yych == 'C') goto yy463; +- if (yych == 'c') goto yy463; +- goto yy358; +-yy431: +- yych = *++p; +- if (yych == 'Y') goto yy392; +- if (yych == 'y') goto yy392; +- goto yy358; +-yy432: +- yych = *++p; +- if (yych == 'T') goto yy464; +- if (yych == 't') goto yy464; +- goto yy358; +-yy433: +- yych = *++p; +- if (yych == 'T') goto yy465; +- if (yych == 't') goto yy465; +- goto yy358; +-yy434: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'F') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'G') goto yy466; +- if (yych == 'g') goto yy466; +- goto yy358; +- } +- } +-yy435: +- yych = *++p; +- if (yych == 'A') goto yy467; +- if (yych == 'a') goto yy467; +- goto yy358; +-yy436: +- yych = *++p; +- if (yych == 'L') goto yy468; +- if (yych == 'l') goto yy468; +- goto yy358; +-yy437: +- yych = *++p; +- if (yych == 'L') goto yy469; +- if (yych == 'l') goto yy469; +- goto yy358; +-yy438: +- yych = *++p; +- if (yych <= 'U') { +- if (yych == 'C') goto yy470; +- if (yych <= 'T') goto yy358; +- goto yy471; +- } else { +- if (yych <= 'c') { +- if (yych <= 'b') goto yy358; +- goto yy470; +- } else { +- if (yych == 'u') goto yy471; +- goto yy358; +- } +- } +-yy439: +- yych = *++p; +- if (yych == 'M') goto yy392; +- if (yych == 'm') goto yy392; +- goto yy358; +-yy440: +- yych = *++p; +- if (yych == 'M') goto yy472; +- if (yych == 'm') goto yy472; +- goto yy358; +-yy441: +- yych = *++p; +- if (yych == 'D') goto yy473; +- if (yych == 'd') goto yy473; +- goto yy358; +-yy442: +- yych = *++p; +- if (yych == 'A') goto yy474; +- if (yych == 'a') goto yy474; +- goto yy358; +-yy443: +- yych = *++p; +- if (yych == 'E') goto yy475; +- if (yych == 'e') goto yy475; +- goto yy358; +-yy444: +- yych = *++p; +- if (yych == 'K') goto yy392; +- if (yych == 'k') goto yy392; +- goto yy358; +-yy445: +- yych = *++p; +- if (yych == 'N') goto yy392; +- if (yych == 'n') goto yy392; +- goto yy358; +-yy446: +- yych = *++p; +- if (yych == 'U') goto yy476; +- if (yych == 'u') goto yy476; +- goto yy358; +-yy447: +- yych = *++p; +- if (yych == 'R') goto yy477; +- if (yych == 'r') goto yy477; +- goto yy358; +-yy448: +- yych = *++p; +- if (yych <= 'I') { +- if (yych == 'G') goto yy466; +- if (yych <= 'H') goto yy358; +- goto yy478; +- } else { +- if (yych <= 'g') { +- if (yych <= 'f') goto yy358; +- goto yy466; +- } else { +- if (yych == 'i') goto yy478; +- goto yy358; +- } +- } +-yy449: +- yych = *++p; +- if (yych == 'A') goto yy439; +- if (yych == 'a') goto yy439; +- goto yy358; +-yy450: +- yych = *++p; +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy479; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy479; +- if (yych == '>') goto yy479; +- goto yy358; +- } +-yy451: +- yych = *++p; +- if (yych == 'I') goto yy481; +- if (yych == 'i') goto yy481; +- goto yy358; +-yy452: +- yych = *++p; +- if (yych == 'L') goto yy412; +- if (yych == 'l') goto yy412; +- goto yy358; +-yy453: +- yych = *++p; +- if (yych == 'M') goto yy482; +- if (yych == 'm') goto yy482; +- goto yy358; +-yy454: +- yych = *++p; +- if (yych == 'L') goto yy461; +- if (yych == 'l') goto yy461; +- goto yy358; +-yy455: +- yych = *++p; +- if (yych == 'O') goto yy483; +- if (yych == 'o') goto yy483; +- goto yy358; +-yy456: +- yych = *++p; +- if (yych == 'A') goto yy484; +- if (yych == 'a') goto yy484; +- goto yy358; +-yy457: +- yych = *++p; +- if (yych == 'C') goto yy444; +- if (yych == 'c') goto yy444; +- goto yy358; +-yy458: +- yych = *++p; +- if (yych == 'A') goto yy485; +- if (yych == 'a') goto yy485; +- goto yy358; +-yy459: +- yych = *++p; +- if (yych == 'E') goto yy486; +- if (yych == 'e') goto yy486; +- goto yy358; +-yy460: +- yych = *++p; +- if (yych == 'C') goto yy454; +- if (yych == 'c') goto yy454; +- goto yy358; +-yy461: +- yych = *++p; +- if (yych == 'E') goto yy392; +- if (yych == 'e') goto yy392; +- goto yy358; +-yy462: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'E') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'F') goto yy487; +- if (yych == 'f') goto yy487; +- goto yy358; +- } +- } +-yy463: +- yych = *++p; +- if (yych == 'K') goto yy488; +- if (yych == 'k') goto yy488; +- goto yy358; +-yy464: +- yych = *++p; +- if (yych == 'I') goto yy478; +- if (yych == 'i') goto yy478; +- goto yy358; +-yy465: +- yych = *++p; +- if (yych == 'E') goto yy489; +- if (yych == 'e') goto yy489; +- goto yy358; +-yy466: +- yych = *++p; +- if (yych == 'R') goto yy490; +- if (yych == 'r') goto yy490; +- goto yy358; +-yy467: +- yych = *++p; +- if (yych == 'I') goto yy491; +- if (yych == 'i') goto yy491; +- goto yy358; +-yy468: +- yych = *++p; +- if (yych == 'O') goto yy492; +- if (yych == 'o') goto yy492; +- goto yy358; +-yy469: +- yych = *++p; +- if (yych == 'D') goto yy493; +- if (yych == 'd') goto yy493; +- goto yy358; +-yy470: +- yych = *++p; +- if (yych == 'A') goto yy389; +- if (yych == 'a') goto yy389; +- goto yy358; +-yy471: +- yych = *++p; +- if (yych == 'R') goto yy461; +- if (yych == 'r') goto yy461; +- goto yy358; +-yy472: +- yych = *++p; +- if (yych == 'E') goto yy494; +- if (yych == 'e') goto yy494; +- goto yy358; +-yy473: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'D') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'E') goto yy489; +- if (yych == 'e') goto yy489; +- goto yy358; +- } +- } +-yy474: +- yych = *++p; +- if (yych == 'M') goto yy461; +- if (yych == 'm') goto yy461; +- goto yy358; +-yy475: +- yych = *++p; +- if (yych == 'N') goto yy484; +- if (yych == 'n') goto yy484; +- goto yy358; +-yy476: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'H') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'I') goto yy495; +- if (yych == 'i') goto yy495; +- goto yy358; +- } +- } +-yy477: +- yych = *++p; +- if (yych == 'A') goto yy496; +- if (yych == 'a') goto yy496; +- goto yy358; +-yy478: +- yych = *++p; +- if (yych == 'O') goto yy445; +- if (yych == 'o') goto yy445; +- goto yy358; +-yy479: +- ++p; +- { return 1; } +-yy481: +- yych = *++p; +- if (yych == 'P') goto yy497; +- if (yych == 'p') goto yy497; +- goto yy358; +-yy482: +- yych = *++p; +- if (yych == 'A') goto yy498; +- if (yych == 'a') goto yy498; +- goto yy358; +-yy483: +- yych = *++p; +- if (yych == 'T') goto yy392; +- if (yych == 't') goto yy392; +- goto yy358; +-yy484: +- yych = *++p; +- if (yych == 'D') goto yy392; +- if (yych == 'd') goto yy392; +- goto yy358; +-yy485: +- yych = *++p; +- if (yych == 'T') goto yy499; +- if (yych == 't') goto yy499; +- goto yy358; +-yy486: +- yych = *++p; +- if (yych == 'S') goto yy500; +- if (yych == 's') goto yy500; +- goto yy358; +-yy487: +- yych = *++p; +- if (yych == 'O') goto yy501; +- if (yych == 'o') goto yy501; +- goto yy358; +-yy488: +- yych = *++p; +- if (yych == 'Q') goto yy502; +- if (yych == 'q') goto yy502; +- goto yy358; +-yy489: +- yych = *++p; +- if (yych == 'R') goto yy392; +- if (yych == 'r') goto yy392; +- goto yy358; +-yy490: +- yych = *++p; +- if (yych == 'O') goto yy503; +- if (yych == 'o') goto yy503; +- goto yy358; +-yy491: +- yych = *++p; +- if (yych == 'L') goto yy500; +- if (yych == 'l') goto yy500; +- goto yy358; +-yy492: +- yych = *++p; +- if (yych == 'G') goto yy392; +- if (yych == 'g') goto yy392; +- goto yy358; +-yy493: +- yych = *++p; +- if (yych == 'S') goto yy504; +- if (yych == 's') goto yy504; +- goto yy358; +-yy494: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy358; +- if (yych <= '\r') goto yy408; +- goto yy358; +- } else { +- if (yych <= ' ') goto yy408; +- if (yych <= '.') goto yy358; +- goto yy410; +- } +- } else { +- if (yych <= 'R') { +- if (yych == '>') goto yy408; +- goto yy358; +- } else { +- if (yych <= 'S') goto yy504; +- if (yych == 's') goto yy504; +- goto yy358; +- } +- } +-yy495: +- yych = *++p; +- if (yych == 'T') goto yy505; +- if (yych == 't') goto yy505; +- goto yy358; +-yy496: +- yych = *++p; +- if (yych == 'M') goto yy506; +- if (yych == 'm') goto yy506; +- goto yy358; +-yy497: +- yych = *++p; +- if (yych == 'T') goto yy450; +- if (yych == 't') goto yy450; +- goto yy358; +-yy498: +- yych = *++p; +- if (yych == 'R') goto yy431; +- if (yych == 'r') goto yy431; +- goto yy358; +-yy499: +- yych = *++p; +- if (yych == 'A') goto yy507; +- if (yych == 'a') goto yy507; +- goto yy358; +-yy500: +- yych = *++p; +- if (yych == 'S') goto yy392; +- if (yych == 's') goto yy392; +- goto yy358; +-yy501: +- yych = *++p; +- if (yych == 'N') goto yy483; +- if (yych == 'n') goto yy483; +- goto yy358; +-yy502: +- yych = *++p; +- if (yych == 'U') goto yy508; +- if (yych == 'u') goto yy508; +- goto yy358; +-yy503: +- yych = *++p; +- if (yych == 'U') goto yy509; +- if (yych == 'u') goto yy509; +- goto yy358; +-yy504: +- yych = *++p; +- if (yych == 'E') goto yy483; +- if (yych == 'e') goto yy483; +- goto yy358; +-yy505: +- yych = *++p; +- if (yych == 'E') goto yy439; +- if (yych == 'e') goto yy439; +- goto yy358; +-yy506: +- yych = *++p; +- if (yych == 'E') goto yy500; +- if (yych == 'e') goto yy500; +- goto yy358; +-yy507: +- yych = *++p; +- if (yych == '[') goto yy510; +- goto yy358; +-yy508: +- yych = *++p; +- if (yych == 'O') goto yy512; +- if (yych == 'o') goto yy512; +- goto yy358; +-yy509: +- yych = *++p; +- if (yych == 'P') goto yy392; +- if (yych == 'p') goto yy392; +- goto yy358; +-yy510: +- ++p; +- { return 5; } +-yy512: +- yych = *++p; +- if (yych == 'T') goto yy461; +- if (yych == 't') goto yy461; +- goto yy358; +-} +- ++ { ++ unsigned char yych; ++ yych = *p; ++ if (yych == '<') ++ goto yy296; ++ ++p; ++ yy295 : { return 0; } ++ yy296: ++ yych = *(marker = ++p); ++ switch (yych) { ++ case '!': ++ goto yy297; ++ case '/': ++ goto yy299; ++ case '?': ++ goto yy300; ++ case 'A': ++ case 'a': ++ goto yy301; ++ case 'B': ++ case 'b': ++ goto yy302; ++ case 'C': ++ case 'c': ++ goto yy303; ++ case 'D': ++ case 'd': ++ goto yy304; ++ case 'F': ++ case 'f': ++ goto yy305; ++ case 'H': ++ case 'h': ++ goto yy306; ++ case 'I': ++ case 'i': ++ goto yy307; ++ case 'L': ++ case 'l': ++ goto yy308; ++ case 'M': ++ case 'm': ++ goto yy309; ++ case 'N': ++ case 'n': ++ goto yy310; ++ case 'O': ++ case 'o': ++ goto yy311; ++ case 'P': ++ case 'p': ++ goto yy312; ++ case 'S': ++ case 's': ++ goto yy313; ++ case 'T': ++ case 't': ++ goto yy314; ++ case 'U': ++ case 'u': ++ goto yy315; ++ default: ++ goto yy295; ++ } ++ yy297: ++ yych = *++p; ++ if (yych <= '@') { ++ if (yych == '-') ++ goto yy316; ++ } else { ++ if (yych <= 'Z') ++ goto yy317; ++ if (yych <= '[') ++ goto yy318; ++ } ++ yy298: ++ p = marker; ++ goto yy295; ++ yy299: ++ yych = *++p; ++ switch (yych) { ++ case 'A': ++ case 'a': ++ goto yy301; ++ case 'B': ++ case 'b': ++ goto yy302; ++ case 'C': ++ case 'c': ++ goto yy303; ++ case 'D': ++ case 'd': ++ goto yy304; ++ case 'F': ++ case 'f': ++ goto yy305; ++ case 'H': ++ case 'h': ++ goto yy306; ++ case 'I': ++ case 'i': ++ goto yy307; ++ case 'L': ++ case 'l': ++ goto yy308; ++ case 'M': ++ case 'm': ++ goto yy309; ++ case 'N': ++ case 'n': ++ goto yy310; ++ case 'O': ++ case 'o': ++ goto yy311; ++ case 'P': ++ case 'p': ++ goto yy319; ++ case 'S': ++ case 's': ++ goto yy320; ++ case 'T': ++ case 't': ++ goto yy321; ++ case 'U': ++ case 'u': ++ goto yy315; ++ default: ++ goto yy298; ++ } ++ yy300: ++ ++p; ++ { return 3; } ++ yy301: ++ yych = *++p; ++ if (yych <= 'S') { ++ if (yych <= 'D') { ++ if (yych <= 'C') ++ goto yy298; ++ goto yy322; ++ } else { ++ if (yych <= 'Q') ++ goto yy298; ++ if (yych <= 'R') ++ goto yy323; ++ goto yy324; ++ } ++ } else { ++ if (yych <= 'q') { ++ if (yych == 'd') ++ goto yy322; ++ goto yy298; ++ } else { ++ if (yych <= 'r') ++ goto yy323; ++ if (yych <= 's') ++ goto yy324; ++ goto yy298; ++ } ++ } ++ yy302: ++ yych = *++p; ++ if (yych <= 'O') { ++ if (yych <= 'K') { ++ if (yych == 'A') ++ goto yy325; ++ goto yy298; ++ } else { ++ if (yych <= 'L') ++ goto yy326; ++ if (yych <= 'N') ++ goto yy298; ++ goto yy327; ++ } ++ } else { ++ if (yych <= 'k') { ++ if (yych == 'a') ++ goto yy325; ++ goto yy298; ++ } else { ++ if (yych <= 'l') ++ goto yy326; ++ if (yych == 'o') ++ goto yy327; ++ goto yy298; ++ } ++ } ++ yy303: ++ yych = *++p; ++ if (yych <= 'O') { ++ if (yych <= 'D') { ++ if (yych == 'A') ++ goto yy328; ++ goto yy298; ++ } else { ++ if (yych <= 'E') ++ goto yy329; ++ if (yych <= 'N') ++ goto yy298; ++ goto yy330; ++ } ++ } else { ++ if (yych <= 'd') { ++ if (yych == 'a') ++ goto yy328; ++ goto yy298; ++ } else { ++ if (yych <= 'e') ++ goto yy329; ++ if (yych == 'o') ++ goto yy330; ++ goto yy298; ++ } ++ } ++ yy304: ++ yych = *++p; ++ switch (yych) { ++ case 'D': ++ case 'L': ++ case 'T': ++ case 'd': ++ case 'l': ++ case 't': ++ goto yy331; ++ case 'E': ++ case 'e': ++ goto yy332; ++ case 'I': ++ case 'i': ++ goto yy333; ++ default: ++ goto yy298; ++ } ++ yy305: ++ yych = *++p; ++ if (yych <= 'R') { ++ if (yych <= 'N') { ++ if (yych == 'I') ++ goto yy334; ++ goto yy298; ++ } else { ++ if (yych <= 'O') ++ goto yy335; ++ if (yych <= 'Q') ++ goto yy298; ++ goto yy336; ++ } ++ } else { ++ if (yych <= 'n') { ++ if (yych == 'i') ++ goto yy334; ++ goto yy298; ++ } else { ++ if (yych <= 'o') ++ goto yy335; ++ if (yych == 'r') ++ goto yy336; ++ goto yy298; ++ } ++ } ++ yy306: ++ yych = *++p; ++ if (yych <= 'S') { ++ if (yych <= 'D') { ++ if (yych <= '0') ++ goto yy298; ++ if (yych <= '6') ++ goto yy331; ++ goto yy298; ++ } else { ++ if (yych <= 'E') ++ goto yy337; ++ if (yych == 'R') ++ goto yy331; ++ goto yy298; ++ } ++ } else { ++ if (yych <= 'q') { ++ if (yych <= 'T') ++ goto yy338; ++ if (yych == 'e') ++ goto yy337; ++ goto yy298; ++ } else { ++ if (yych <= 'r') ++ goto yy331; ++ if (yych == 't') ++ goto yy338; ++ goto yy298; ++ } ++ } ++ yy307: ++ yych = *++p; ++ if (yych == 'F') ++ goto yy339; ++ if (yych == 'f') ++ goto yy339; ++ goto yy298; ++ yy308: ++ yych = *++p; ++ if (yych <= 'I') { ++ if (yych == 'E') ++ goto yy340; ++ if (yych <= 'H') ++ goto yy298; ++ goto yy341; ++ } else { ++ if (yych <= 'e') { ++ if (yych <= 'd') ++ goto yy298; ++ goto yy340; ++ } else { ++ if (yych == 'i') ++ goto yy341; ++ goto yy298; ++ } ++ } ++ yy309: ++ yych = *++p; ++ if (yych <= 'E') { ++ if (yych == 'A') ++ goto yy342; ++ if (yych <= 'D') ++ goto yy298; ++ goto yy343; ++ } else { ++ if (yych <= 'a') { ++ if (yych <= '`') ++ goto yy298; ++ goto yy342; ++ } else { ++ if (yych == 'e') ++ goto yy343; ++ goto yy298; ++ } ++ } ++ yy310: ++ yych = *++p; ++ if (yych <= 'O') { ++ if (yych == 'A') ++ goto yy344; ++ if (yych <= 'N') ++ goto yy298; ++ goto yy345; ++ } else { ++ if (yych <= 'a') { ++ if (yych <= '`') ++ goto yy298; ++ goto yy344; ++ } else { ++ if (yych == 'o') ++ goto yy345; ++ goto yy298; ++ } ++ } ++ yy311: ++ yych = *++p; ++ if (yych <= 'P') { ++ if (yych == 'L') ++ goto yy331; ++ if (yych <= 'O') ++ goto yy298; ++ goto yy346; ++ } else { ++ if (yych <= 'l') { ++ if (yych <= 'k') ++ goto yy298; ++ goto yy331; ++ } else { ++ if (yych == 'p') ++ goto yy346; ++ goto yy298; ++ } ++ } ++ yy312: ++ yych = *++p; ++ if (yych <= '>') { ++ if (yych <= ' ') { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ if (yych <= 0x1F) ++ goto yy298; ++ goto yy347; ++ } else { ++ if (yych == '/') ++ goto yy348; ++ if (yych <= '=') ++ goto yy298; ++ goto yy347; ++ } ++ } else { ++ if (yych <= 'R') { ++ if (yych == 'A') ++ goto yy349; ++ if (yych <= 'Q') ++ goto yy298; ++ goto yy350; ++ } else { ++ if (yych <= 'a') { ++ if (yych <= '`') ++ goto yy298; ++ goto yy349; ++ } else { ++ if (yych == 'r') ++ goto yy350; ++ goto yy298; ++ } ++ } ++ } ++ yy313: ++ yych = *++p; ++ switch (yych) { ++ case 'C': ++ case 'c': ++ goto yy351; ++ case 'E': ++ case 'e': ++ goto yy352; ++ case 'O': ++ case 'o': ++ goto yy353; ++ case 'T': ++ case 't': ++ goto yy354; ++ case 'U': ++ case 'u': ++ goto yy355; ++ default: ++ goto yy298; ++ } ++ yy314: ++ yych = *++p; ++ switch (yych) { ++ case 'A': ++ case 'a': ++ goto yy356; ++ case 'B': ++ case 'b': ++ goto yy357; ++ case 'D': ++ case 'd': ++ goto yy331; ++ case 'E': ++ case 'e': ++ goto yy358; ++ case 'F': ++ case 'f': ++ goto yy359; ++ case 'H': ++ case 'h': ++ goto yy360; ++ case 'I': ++ case 'i': ++ goto yy361; ++ case 'R': ++ case 'r': ++ goto yy362; ++ default: ++ goto yy298; ++ } ++ yy315: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy331; ++ if (yych == 'l') ++ goto yy331; ++ goto yy298; ++ yy316: ++ yych = *++p; ++ if (yych == '-') ++ goto yy363; ++ goto yy298; ++ yy317: ++ ++p; ++ { return 4; } ++ yy318: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy364; ++ if (yych == 'c') ++ goto yy364; ++ goto yy298; ++ yy319: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= '@') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'A') ++ goto yy349; ++ if (yych == 'a') ++ goto yy349; ++ goto yy298; ++ } ++ } ++ yy320: ++ yych = *++p; ++ if (yych <= 'U') { ++ if (yych <= 'N') { ++ if (yych == 'E') ++ goto yy352; ++ goto yy298; ++ } else { ++ if (yych <= 'O') ++ goto yy353; ++ if (yych <= 'T') ++ goto yy298; ++ goto yy355; ++ } ++ } else { ++ if (yych <= 'n') { ++ if (yych == 'e') ++ goto yy352; ++ goto yy298; ++ } else { ++ if (yych <= 'o') ++ goto yy353; ++ if (yych == 'u') ++ goto yy355; ++ goto yy298; ++ } ++ } ++ yy321: ++ yych = *++p; ++ switch (yych) { ++ case 'A': ++ case 'a': ++ goto yy356; ++ case 'B': ++ case 'b': ++ goto yy357; ++ case 'D': ++ case 'd': ++ goto yy331; ++ case 'F': ++ case 'f': ++ goto yy359; ++ case 'H': ++ case 'h': ++ goto yy360; ++ case 'I': ++ case 'i': ++ goto yy361; ++ case 'R': ++ case 'r': ++ goto yy362; ++ default: ++ goto yy298; ++ } ++ yy322: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy365; ++ if (yych == 'd') ++ goto yy365; ++ goto yy298; ++ yy323: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy366; ++ if (yych == 't') ++ goto yy366; ++ goto yy298; ++ yy324: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy367; ++ if (yych == 'i') ++ goto yy367; ++ goto yy298; ++ yy325: ++ yych = *++p; ++ if (yych == 'S') ++ goto yy368; ++ if (yych == 's') ++ goto yy368; ++ goto yy298; ++ yy326: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy369; ++ if (yych == 'o') ++ goto yy369; ++ goto yy298; ++ yy327: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy370; ++ if (yych == 'd') ++ goto yy370; ++ goto yy298; ++ yy328: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy371; ++ if (yych == 'p') ++ goto yy371; ++ goto yy298; ++ yy329: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy372; ++ if (yych == 'n') ++ goto yy372; ++ goto yy298; ++ yy330: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy373; ++ if (yych == 'l') ++ goto yy373; ++ goto yy298; ++ yy331: ++ yych = *++p; ++ if (yych <= ' ') { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ if (yych <= 0x1F) ++ goto yy298; ++ goto yy347; ++ } else { ++ if (yych <= '/') { ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } else { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } ++ } ++ yy332: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy374; ++ if (yych == 't') ++ goto yy374; ++ goto yy298; ++ yy333: ++ yych = *++p; ++ if (yych <= 'V') { ++ if (yych <= 'Q') { ++ if (yych == 'A') ++ goto yy375; ++ goto yy298; ++ } else { ++ if (yych <= 'R') ++ goto yy331; ++ if (yych <= 'U') ++ goto yy298; ++ goto yy331; ++ } ++ } else { ++ if (yych <= 'q') { ++ if (yych == 'a') ++ goto yy375; ++ goto yy298; ++ } else { ++ if (yych <= 'r') ++ goto yy331; ++ if (yych == 'v') ++ goto yy331; ++ goto yy298; ++ } ++ } ++ yy334: ++ yych = *++p; ++ if (yych <= 'G') { ++ if (yych == 'E') ++ goto yy376; ++ if (yych <= 'F') ++ goto yy298; ++ goto yy377; ++ } else { ++ if (yych <= 'e') { ++ if (yych <= 'd') ++ goto yy298; ++ goto yy376; ++ } else { ++ if (yych == 'g') ++ goto yy377; ++ goto yy298; ++ } ++ } ++ yy335: ++ yych = *++p; ++ if (yych <= 'R') { ++ if (yych == 'O') ++ goto yy372; ++ if (yych <= 'Q') ++ goto yy298; ++ goto yy378; ++ } else { ++ if (yych <= 'o') { ++ if (yych <= 'n') ++ goto yy298; ++ goto yy372; ++ } else { ++ if (yych == 'r') ++ goto yy378; ++ goto yy298; ++ } ++ } ++ yy336: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy379; ++ if (yych == 'a') ++ goto yy379; ++ goto yy298; ++ yy337: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy380; ++ if (yych == 'a') ++ goto yy380; ++ goto yy298; ++ yy338: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy315; ++ if (yych == 'm') ++ goto yy315; ++ goto yy298; ++ yy339: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy381; ++ if (yych == 'r') ++ goto yy381; ++ goto yy298; ++ yy340: ++ yych = *++p; ++ if (yych == 'G') ++ goto yy382; ++ if (yych == 'g') ++ goto yy382; ++ goto yy298; ++ yy341: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'M') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'N') ++ goto yy383; ++ if (yych == 'n') ++ goto yy383; ++ goto yy298; ++ } ++ } ++ yy342: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy384; ++ if (yych == 'i') ++ goto yy384; ++ goto yy298; ++ yy343: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy385; ++ if (yych == 'n') ++ goto yy385; ++ goto yy298; ++ yy344: ++ yych = *++p; ++ if (yych == 'V') ++ goto yy331; ++ if (yych == 'v') ++ goto yy331; ++ goto yy298; ++ yy345: ++ yych = *++p; ++ if (yych == 'F') ++ goto yy386; ++ if (yych == 'f') ++ goto yy386; ++ goto yy298; ++ yy346: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy387; ++ if (yych == 't') ++ goto yy387; ++ goto yy298; ++ yy347: ++ ++p; ++ { return 6; } ++ yy348: ++ yych = *++p; ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ yy349: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy388; ++ if (yych == 'r') ++ goto yy388; ++ goto yy298; ++ yy350: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy389; ++ if (yych == 'e') ++ goto yy389; ++ goto yy298; ++ yy351: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy390; ++ if (yych == 'r') ++ goto yy390; ++ goto yy298; ++ yy352: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy371; ++ if (yych == 'c') ++ goto yy371; ++ goto yy298; ++ yy353: ++ yych = *++p; ++ if (yych == 'U') ++ goto yy391; ++ if (yych == 'u') ++ goto yy391; ++ goto yy298; ++ yy354: ++ yych = *++p; ++ if (yych == 'Y') ++ goto yy392; ++ if (yych == 'y') ++ goto yy392; ++ goto yy298; ++ yy355: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy393; ++ if (yych == 'm') ++ goto yy393; ++ goto yy298; ++ yy356: ++ yych = *++p; ++ if (yych == 'B') ++ goto yy394; ++ if (yych == 'b') ++ goto yy394; ++ goto yy298; ++ yy357: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy327; ++ if (yych == 'o') ++ goto yy327; ++ goto yy298; ++ yy358: ++ yych = *++p; ++ if (yych == 'X') ++ goto yy395; ++ if (yych == 'x') ++ goto yy395; ++ goto yy298; ++ yy359: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy396; ++ if (yych == 'o') ++ goto yy396; ++ goto yy298; ++ yy360: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'D') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'E') ++ goto yy397; ++ if (yych == 'e') ++ goto yy397; ++ goto yy298; ++ } ++ } ++ yy361: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy394; ++ if (yych == 't') ++ goto yy394; ++ goto yy298; ++ yy362: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= '@') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'A') ++ goto yy398; ++ if (yych == 'a') ++ goto yy398; ++ goto yy298; ++ } ++ } ++ yy363: ++ ++p; ++ { return 2; } ++ yy364: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy399; ++ if (yych == 'd') ++ goto yy399; ++ goto yy298; ++ yy365: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy400; ++ if (yych == 'r') ++ goto yy400; ++ goto yy298; ++ yy366: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy401; ++ if (yych == 'i') ++ goto yy401; ++ goto yy298; ++ yy367: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy402; ++ if (yych == 'd') ++ goto yy402; ++ goto yy298; ++ yy368: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy403; ++ if (yych == 'e') ++ goto yy403; ++ goto yy298; ++ yy369: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy404; ++ if (yych == 'c') ++ goto yy404; ++ goto yy298; ++ yy370: ++ yych = *++p; ++ if (yych == 'Y') ++ goto yy331; ++ if (yych == 'y') ++ goto yy331; ++ goto yy298; ++ yy371: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy405; ++ if (yych == 't') ++ goto yy405; ++ goto yy298; ++ yy372: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy406; ++ if (yych == 't') ++ goto yy406; ++ goto yy298; ++ yy373: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'F') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'G') ++ goto yy407; ++ if (yych == 'g') ++ goto yy407; ++ goto yy298; ++ } ++ } ++ yy374: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy408; ++ if (yych == 'a') ++ goto yy408; ++ goto yy298; ++ yy375: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy409; ++ if (yych == 'l') ++ goto yy409; ++ goto yy298; ++ yy376: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy410; ++ if (yych == 'l') ++ goto yy410; ++ goto yy298; ++ yy377: ++ yych = *++p; ++ if (yych <= 'U') { ++ if (yych == 'C') ++ goto yy411; ++ if (yych <= 'T') ++ goto yy298; ++ goto yy412; ++ } else { ++ if (yych <= 'c') { ++ if (yych <= 'b') ++ goto yy298; ++ goto yy411; ++ } else { ++ if (yych == 'u') ++ goto yy412; ++ goto yy298; ++ } ++ } ++ yy378: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy331; ++ if (yych == 'm') ++ goto yy331; ++ goto yy298; ++ yy379: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy413; ++ if (yych == 'm') ++ goto yy413; ++ goto yy298; ++ yy380: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy414; ++ if (yych == 'd') ++ goto yy414; ++ goto yy298; ++ yy381: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy415; ++ if (yych == 'a') ++ goto yy415; ++ goto yy298; ++ yy382: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy416; ++ if (yych == 'e') ++ goto yy416; ++ goto yy298; ++ yy383: ++ yych = *++p; ++ if (yych == 'K') ++ goto yy331; ++ if (yych == 'k') ++ goto yy331; ++ goto yy298; ++ yy384: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy331; ++ if (yych == 'n') ++ goto yy331; ++ goto yy298; ++ yy385: ++ yych = *++p; ++ if (yych == 'U') ++ goto yy417; ++ if (yych == 'u') ++ goto yy417; ++ goto yy298; ++ yy386: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy418; ++ if (yych == 'r') ++ goto yy418; ++ goto yy298; ++ yy387: ++ yych = *++p; ++ if (yych <= 'I') { ++ if (yych == 'G') ++ goto yy407; ++ if (yych <= 'H') ++ goto yy298; ++ goto yy419; ++ } else { ++ if (yych <= 'g') { ++ if (yych <= 'f') ++ goto yy298; ++ goto yy407; ++ } else { ++ if (yych == 'i') ++ goto yy419; ++ goto yy298; ++ } ++ } ++ yy388: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy378; ++ if (yych == 'a') ++ goto yy378; ++ goto yy298; ++ yy389: ++ yych = *++p; ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy420; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy420; ++ if (yych == '>') ++ goto yy420; ++ goto yy298; ++ } ++ yy390: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy421; ++ if (yych == 'i') ++ goto yy421; ++ goto yy298; ++ yy391: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy422; ++ if (yych == 'r') ++ goto yy422; ++ goto yy298; ++ yy392: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy350; ++ if (yych == 'l') ++ goto yy350; ++ goto yy298; ++ yy393: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy423; ++ if (yych == 'm') ++ goto yy423; ++ goto yy298; ++ yy394: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy402; ++ if (yych == 'l') ++ goto yy402; ++ goto yy298; ++ yy395: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy424; ++ if (yych == 't') ++ goto yy424; ++ goto yy298; ++ yy396: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy425; ++ if (yych == 'o') ++ goto yy425; ++ goto yy298; ++ yy397: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy426; ++ if (yych == 'a') ++ goto yy426; ++ goto yy298; ++ yy398: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy383; ++ if (yych == 'c') ++ goto yy383; ++ goto yy298; ++ yy399: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy427; ++ if (yych == 'a') ++ goto yy427; ++ goto yy298; ++ yy400: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy428; ++ if (yych == 'e') ++ goto yy428; ++ goto yy298; ++ yy401: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy394; ++ if (yych == 'c') ++ goto yy394; ++ goto yy298; ++ yy402: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy331; ++ if (yych == 'e') ++ goto yy331; ++ goto yy298; ++ yy403: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'E') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'F') ++ goto yy429; ++ if (yych == 'f') ++ goto yy429; ++ goto yy298; ++ } ++ } ++ yy404: ++ yych = *++p; ++ if (yych == 'K') ++ goto yy430; ++ if (yych == 'k') ++ goto yy430; ++ goto yy298; ++ yy405: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy419; ++ if (yych == 'i') ++ goto yy419; ++ goto yy298; ++ yy406: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy431; ++ if (yych == 'e') ++ goto yy431; ++ goto yy298; ++ yy407: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy432; ++ if (yych == 'r') ++ goto yy432; ++ goto yy298; ++ yy408: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy433; ++ if (yych == 'i') ++ goto yy433; ++ goto yy298; ++ yy409: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy434; ++ if (yych == 'o') ++ goto yy434; ++ goto yy298; ++ yy410: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy435; ++ if (yych == 'd') ++ goto yy435; ++ goto yy298; ++ yy411: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy328; ++ if (yych == 'a') ++ goto yy328; ++ goto yy298; ++ yy412: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy402; ++ if (yych == 'r') ++ goto yy402; ++ goto yy298; ++ yy413: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy436; ++ if (yych == 'e') ++ goto yy436; ++ goto yy298; ++ yy414: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'D') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'E') ++ goto yy431; ++ if (yych == 'e') ++ goto yy431; ++ goto yy298; ++ } ++ } ++ yy415: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy402; ++ if (yych == 'm') ++ goto yy402; ++ goto yy298; ++ yy416: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy426; ++ if (yych == 'n') ++ goto yy426; ++ goto yy298; ++ yy417: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'H') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'I') ++ goto yy437; ++ if (yych == 'i') ++ goto yy437; ++ goto yy298; ++ } ++ } ++ yy418: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy438; ++ if (yych == 'a') ++ goto yy438; ++ goto yy298; ++ yy419: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy384; ++ if (yych == 'o') ++ goto yy384; ++ goto yy298; ++ yy420: ++ ++p; ++ { return 1; } ++ yy421: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy439; ++ if (yych == 'p') ++ goto yy439; ++ goto yy298; ++ yy422: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy402; ++ if (yych == 'c') ++ goto yy402; ++ goto yy298; ++ yy423: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy440; ++ if (yych == 'a') ++ goto yy440; ++ goto yy298; ++ yy424: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy441; ++ if (yych == 'a') ++ goto yy441; ++ goto yy298; ++ yy425: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy331; ++ if (yych == 't') ++ goto yy331; ++ goto yy298; ++ yy426: ++ yych = *++p; ++ if (yych == 'D') ++ goto yy331; ++ if (yych == 'd') ++ goto yy331; ++ goto yy298; ++ yy427: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy442; ++ if (yych == 't') ++ goto yy442; ++ goto yy298; ++ yy428: ++ yych = *++p; ++ if (yych == 'S') ++ goto yy443; ++ if (yych == 's') ++ goto yy443; ++ goto yy298; ++ yy429: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy444; ++ if (yych == 'o') ++ goto yy444; ++ goto yy298; ++ yy430: ++ yych = *++p; ++ if (yych == 'Q') ++ goto yy445; ++ if (yych == 'q') ++ goto yy445; ++ goto yy298; ++ yy431: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy331; ++ if (yych == 'r') ++ goto yy331; ++ goto yy298; ++ yy432: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy446; ++ if (yych == 'o') ++ goto yy446; ++ goto yy298; ++ yy433: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy443; ++ if (yych == 'l') ++ goto yy443; ++ goto yy298; ++ yy434: ++ yych = *++p; ++ if (yych == 'G') ++ goto yy331; ++ if (yych == 'g') ++ goto yy331; ++ goto yy298; ++ yy435: ++ yych = *++p; ++ if (yych == 'S') ++ goto yy447; ++ if (yych == 's') ++ goto yy447; ++ goto yy298; ++ yy436: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy298; ++ if (yych <= '\r') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= ' ') ++ goto yy347; ++ if (yych <= '.') ++ goto yy298; ++ goto yy348; ++ } ++ } else { ++ if (yych <= 'R') { ++ if (yych == '>') ++ goto yy347; ++ goto yy298; ++ } else { ++ if (yych <= 'S') ++ goto yy447; ++ if (yych == 's') ++ goto yy447; ++ goto yy298; ++ } ++ } ++ yy437: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy448; ++ if (yych == 't') ++ goto yy448; ++ goto yy298; ++ yy438: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy449; ++ if (yych == 'm') ++ goto yy449; ++ goto yy298; ++ yy439: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy389; ++ if (yych == 't') ++ goto yy389; ++ goto yy298; ++ yy440: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy370; ++ if (yych == 'r') ++ goto yy370; ++ goto yy298; ++ yy441: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy450; ++ if (yych == 'r') ++ goto yy450; ++ goto yy298; ++ yy442: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy451; ++ if (yych == 'a') ++ goto yy451; ++ goto yy298; ++ yy443: ++ yych = *++p; ++ if (yych == 'S') ++ goto yy331; ++ if (yych == 's') ++ goto yy331; ++ goto yy298; ++ yy444: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy425; ++ if (yych == 'n') ++ goto yy425; ++ goto yy298; ++ yy445: ++ yych = *++p; ++ if (yych == 'U') ++ goto yy452; ++ if (yych == 'u') ++ goto yy452; ++ goto yy298; ++ yy446: ++ yych = *++p; ++ if (yych == 'U') ++ goto yy453; ++ if (yych == 'u') ++ goto yy453; ++ goto yy298; ++ yy447: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy425; ++ if (yych == 'e') ++ goto yy425; ++ goto yy298; ++ yy448: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy378; ++ if (yych == 'e') ++ goto yy378; ++ goto yy298; ++ yy449: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy443; ++ if (yych == 'e') ++ goto yy443; ++ goto yy298; ++ yy450: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy454; ++ if (yych == 'e') ++ goto yy454; ++ goto yy298; ++ yy451: ++ yych = *++p; ++ if (yych == '[') ++ goto yy455; ++ goto yy298; ++ yy452: ++ yych = *++p; ++ if (yych == 'O') ++ goto yy456; ++ if (yych == 'o') ++ goto yy456; ++ goto yy298; ++ yy453: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy331; ++ if (yych == 'p') ++ goto yy331; ++ goto yy298; ++ yy454: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy389; ++ if (yych == 'a') ++ goto yy389; ++ goto yy298; ++ yy455: ++ ++p; ++ { return 5; } ++ yy456: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy402; ++ if (yych == 't') ++ goto yy402; ++ goto yy298; ++ } + } + + // 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) +-{ ++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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 yy517; +- ++p; +-yy516: +- { return 0; } +-yy517: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '@') { +- if (yych != '/') goto yy516; +- } else { +- if (yych <= 'Z') goto yy520; +- if (yych <= '`') goto yy516; +- if (yych <= 'z') goto yy520; +- goto yy516; +- } +- yych = *++p; +- if (yych <= '@') goto yy519; +- if (yych <= 'Z') goto yy522; +- if (yych <= '`') goto yy519; +- if (yych <= 'z') goto yy522; +-yy519: +- p = marker; +- if (yyaccept == 0) { +- goto yy516; +- } else { +- goto yy535; +- } +-yy520: +- yych = *++p; +- if (yybm[0+yych] & 2) { +- goto yy524; +- } +- if (yych <= '=') { +- if (yych <= '.') { +- if (yych == '-') goto yy520; +- goto yy519; +- } else { +- if (yych <= '/') goto yy526; +- if (yych <= '9') goto yy520; +- goto yy519; +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '>') goto yy527; +- if (yych <= '@') goto yy519; +- goto yy520; +- } else { +- if (yych <= '`') goto yy519; +- if (yych <= 'z') goto yy520; +- goto yy519; +- } +- } +-yy522: +- yych = *++p; +- if (yych <= '/') { +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy519; +- if (yych <= '\r') goto yy529; +- goto yy519; +- } else { +- if (yych <= ' ') goto yy529; +- if (yych == '-') goto yy522; +- goto yy519; +- } +- } else { +- if (yych <= '@') { +- if (yych <= '9') goto yy522; +- if (yych == '>') goto yy527; +- goto yy519; +- } else { +- if (yych <= 'Z') goto yy522; +- if (yych <= '`') goto yy519; +- if (yych <= 'z') goto yy522; +- goto yy519; +- } +- } +-yy524: +- yych = *++p; +- if (yybm[0+yych] & 2) { +- goto yy524; +- } +- if (yych <= '>') { +- if (yych <= '9') { +- if (yych != '/') goto yy519; +- } else { +- if (yych <= ':') goto yy531; +- if (yych <= '=') goto yy519; +- goto yy527; +- } +- } else { +- if (yych <= '^') { +- if (yych <= '@') goto yy519; +- if (yych <= 'Z') goto yy531; +- goto yy519; +- } else { +- if (yych == '`') goto yy519; +- if (yych <= 'z') goto yy531; +- goto yy519; +- } +- } +-yy526: +- yych = *++p; +- if (yych != '>') goto yy519; +-yy527: +- yych = *++p; +- if (yybm[0+yych] & 4) { +- goto yy527; +- } +- if (yych <= 0x08) goto yy519; +- if (yych <= '\n') goto yy533; +- if (yych <= '\v') goto yy519; +- if (yych <= '\r') goto yy536; +- goto yy519; +-yy529: +- yych = *++p; +- if (yych <= 0x1F) { +- if (yych <= 0x08) goto yy519; +- if (yych <= '\r') goto yy529; +- goto yy519; +- } else { +- if (yych <= ' ') goto yy529; +- if (yych == '>') goto yy527; +- goto yy519; +- } +-yy531: +- yych = *++p; +- if (yybm[0+yych] & 8) { +- goto yy531; +- } +- if (yych <= ',') { +- if (yych <= '\r') { +- if (yych <= 0x08) goto yy519; +- goto yy537; +- } else { +- if (yych == ' ') goto yy537; +- goto yy519; +- } +- } else { +- if (yych <= '<') { +- if (yych <= '/') goto yy526; +- goto yy519; +- } else { +- if (yych <= '=') goto yy539; +- if (yych <= '>') goto yy527; +- goto yy519; +- } +- } +-yy533: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 4) { +- goto yy527; +- } +- if (yych <= 0x08) goto yy535; +- if (yych <= '\n') goto yy533; +- if (yych <= '\v') goto yy535; +- if (yych <= '\r') goto yy536; +-yy535: +- { return 7; } +-yy536: +- ++p; +- goto yy535; +-yy537: +- yych = *++p; +- if (yych <= '<') { +- if (yych <= ' ') { +- if (yych <= 0x08) goto yy519; +- if (yych <= '\r') goto yy537; +- if (yych <= 0x1F) goto yy519; +- goto yy537; +- } else { +- if (yych <= '/') { +- if (yych <= '.') goto yy519; +- goto yy526; +- } else { +- if (yych == ':') goto yy531; +- goto yy519; +- } +- } +- } else { +- if (yych <= 'Z') { +- if (yych <= '=') goto yy539; +- if (yych <= '>') goto yy527; +- if (yych <= '@') goto yy519; +- goto yy531; +- } else { +- if (yych <= '_') { +- if (yych <= '^') goto yy519; +- goto yy531; +- } else { +- if (yych <= '`') goto yy519; +- if (yych <= 'z') goto yy531; +- goto yy519; +- } +- } +- } +-yy539: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy541; +- } +- if (yych <= 0xE0) { +- if (yych <= '"') { +- if (yych <= 0x00) goto yy519; +- if (yych <= ' ') goto yy539; +- goto yy543; +- } else { +- if (yych <= '\'') goto yy545; +- if (yych <= 0xC1) goto yy519; +- if (yych <= 0xDF) goto yy547; +- goto yy548; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy550; +- goto yy549; +- } else { +- if (yych <= 0xF0) goto yy551; +- if (yych <= 0xF3) goto yy552; +- if (yych <= 0xF4) goto yy553; +- goto yy519; +- } +- } +-yy541: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy541; +- } +- if (yych <= 0xE0) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy519; +- if (yych <= ' ') goto yy524; +- goto yy519; +- } else { +- if (yych <= '>') goto yy527; +- if (yych <= 0xC1) goto yy519; +- if (yych <= 0xDF) goto yy547; +- goto yy548; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy550; +- goto yy549; +- } else { +- if (yych <= 0xF0) goto yy551; +- if (yych <= 0xF3) goto yy552; +- if (yych <= 0xF4) goto yy553; +- goto yy519; +- } +- } +-yy543: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy543; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy519; +- if (yych <= '"') goto yy554; +- goto yy519; +- } else { +- if (yych <= 0xDF) goto yy555; +- if (yych <= 0xE0) goto yy556; +- goto yy557; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy558; +- if (yych <= 0xEF) goto yy557; +- goto yy559; +- } else { +- if (yych <= 0xF3) goto yy560; +- if (yych <= 0xF4) goto yy561; +- goto yy519; +- } +- } +-yy545: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy545; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy519; +- if (yych <= '\'') goto yy554; +- goto yy519; +- } else { +- if (yych <= 0xDF) goto yy562; +- if (yych <= 0xE0) goto yy563; +- goto yy564; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy565; +- if (yych <= 0xEF) goto yy564; +- goto yy566; +- } else { +- if (yych <= 0xF3) goto yy567; +- if (yych <= 0xF4) goto yy568; +- goto yy519; +- } +- } +-yy547: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy541; +- goto yy519; +-yy548: +- yych = *++p; +- if (yych <= 0x9F) goto yy519; +- if (yych <= 0xBF) goto yy547; +- goto yy519; +-yy549: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy547; +- goto yy519; +-yy550: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x9F) goto yy547; +- goto yy519; +-yy551: +- yych = *++p; +- if (yych <= 0x8F) goto yy519; +- if (yych <= 0xBF) goto yy549; +- goto yy519; +-yy552: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy549; +- goto yy519; +-yy553: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x8F) goto yy549; +- goto yy519; +-yy554: +- yych = *++p; +- if (yybm[0+yych] & 2) { +- goto yy524; +- } +- if (yych == '/') goto yy526; +- if (yych == '>') goto yy527; +- goto yy519; +-yy555: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy543; +- goto yy519; +-yy556: +- yych = *++p; +- if (yych <= 0x9F) goto yy519; +- if (yych <= 0xBF) goto yy555; +- goto yy519; +-yy557: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy555; +- goto yy519; +-yy558: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x9F) goto yy555; +- goto yy519; +-yy559: +- yych = *++p; +- if (yych <= 0x8F) goto yy519; +- if (yych <= 0xBF) goto yy557; +- goto yy519; +-yy560: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy557; +- goto yy519; +-yy561: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x8F) goto yy557; +- goto yy519; +-yy562: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy545; +- goto yy519; +-yy563: +- yych = *++p; +- if (yych <= 0x9F) goto yy519; +- if (yych <= 0xBF) goto yy562; +- goto yy519; +-yy564: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy562; +- goto yy519; +-yy565: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x9F) goto yy562; +- goto yy519; +-yy566: +- yych = *++p; +- if (yych <= 0x8F) goto yy519; +- if (yych <= 0xBF) goto yy564; +- goto yy519; +-yy567: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0xBF) goto yy564; +- goto yy519; +-yy568: +- yych = *++p; +- if (yych <= 0x7F) goto yy519; +- if (yych <= 0x8F) goto yy564; +- goto yy519; +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy459; ++ ++p; ++ yy458 : { return 0; } ++ yy459: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '@') { ++ if (yych != '/') ++ goto yy458; ++ } else { ++ if (yych <= 'Z') ++ goto yy461; ++ if (yych <= '`') ++ goto yy458; ++ if (yych <= 'z') ++ goto yy461; ++ goto yy458; ++ } ++ yych = *++p; ++ if (yych <= '@') ++ goto yy460; ++ if (yych <= 'Z') ++ goto yy462; ++ if (yych <= '`') ++ goto yy460; ++ if (yych <= 'z') ++ goto yy462; ++ yy460: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy458; ++ } else { ++ goto yy469; ++ } ++ yy461: ++ yych = *++p; ++ if (yybm[0 + yych] & 2) { ++ goto yy463; ++ } ++ if (yych <= '=') { ++ if (yych <= '.') { ++ if (yych == '-') ++ goto yy461; ++ goto yy460; ++ } else { ++ if (yych <= '/') ++ goto yy464; ++ if (yych <= '9') ++ goto yy461; ++ goto yy460; ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '>') ++ goto yy465; ++ if (yych <= '@') ++ goto yy460; ++ goto yy461; ++ } else { ++ if (yych <= '`') ++ goto yy460; ++ if (yych <= 'z') ++ goto yy461; ++ goto yy460; ++ } ++ } ++ yy462: ++ yych = *++p; ++ if (yych <= '/') { ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy460; ++ if (yych <= '\r') ++ goto yy466; ++ goto yy460; ++ } else { ++ if (yych <= ' ') ++ goto yy466; ++ if (yych == '-') ++ goto yy462; ++ goto yy460; ++ } ++ } else { ++ if (yych <= '@') { ++ if (yych <= '9') ++ goto yy462; ++ if (yych == '>') ++ goto yy465; ++ goto yy460; ++ } else { ++ if (yych <= 'Z') ++ goto yy462; ++ if (yych <= '`') ++ goto yy460; ++ if (yych <= 'z') ++ goto yy462; ++ goto yy460; ++ } ++ } ++ yy463: ++ yych = *++p; ++ if (yybm[0 + yych] & 2) { ++ goto yy463; ++ } ++ if (yych <= '>') { ++ if (yych <= '9') { ++ if (yych != '/') ++ goto yy460; ++ } else { ++ if (yych <= ':') ++ goto yy467; ++ if (yych <= '=') ++ goto yy460; ++ goto yy465; ++ } ++ } else { ++ if (yych <= '^') { ++ if (yych <= '@') ++ goto yy460; ++ if (yych <= 'Z') ++ goto yy467; ++ goto yy460; ++ } else { ++ if (yych == '`') ++ goto yy460; ++ if (yych <= 'z') ++ goto yy467; ++ goto yy460; ++ } ++ } ++ yy464: ++ yych = *++p; ++ if (yych != '>') ++ goto yy460; ++ yy465: ++ yych = *++p; ++ if (yybm[0 + yych] & 4) { ++ goto yy465; ++ } ++ if (yych <= 0x08) ++ goto yy460; ++ if (yych <= '\n') ++ goto yy468; ++ if (yych <= '\v') ++ goto yy460; ++ if (yych <= '\r') ++ goto yy470; ++ goto yy460; ++ yy466: ++ yych = *++p; ++ if (yych <= 0x1F) { ++ if (yych <= 0x08) ++ goto yy460; ++ if (yych <= '\r') ++ goto yy466; ++ goto yy460; ++ } else { ++ if (yych <= ' ') ++ goto yy466; ++ if (yych == '>') ++ goto yy465; ++ goto yy460; ++ } ++ yy467: ++ yych = *++p; ++ if (yybm[0 + yych] & 8) { ++ goto yy467; ++ } ++ if (yych <= ',') { ++ if (yych <= '\r') { ++ if (yych <= 0x08) ++ goto yy460; ++ goto yy471; ++ } else { ++ if (yych == ' ') ++ goto yy471; ++ goto yy460; ++ } ++ } else { ++ if (yych <= '<') { ++ if (yych <= '/') ++ goto yy464; ++ goto yy460; ++ } else { ++ if (yych <= '=') ++ goto yy472; ++ if (yych <= '>') ++ goto yy465; ++ goto yy460; ++ } ++ } ++ yy468: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 4) { ++ goto yy465; ++ } ++ if (yych <= 0x08) ++ goto yy469; ++ if (yych <= '\n') ++ goto yy468; ++ if (yych <= '\v') ++ goto yy469; ++ if (yych <= '\r') ++ goto yy470; ++ yy469 : { return 7; } ++ yy470: ++ ++p; ++ goto yy469; ++ yy471: ++ yych = *++p; ++ if (yych <= '<') { ++ if (yych <= ' ') { ++ if (yych <= 0x08) ++ goto yy460; ++ if (yych <= '\r') ++ goto yy471; ++ if (yych <= 0x1F) ++ goto yy460; ++ goto yy471; ++ } else { ++ if (yych <= '/') { ++ if (yych <= '.') ++ goto yy460; ++ goto yy464; ++ } else { ++ if (yych == ':') ++ goto yy467; ++ goto yy460; ++ } ++ } ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '=') ++ goto yy472; ++ if (yych <= '>') ++ goto yy465; ++ if (yych <= '@') ++ goto yy460; ++ goto yy467; ++ } else { ++ if (yych <= '_') { ++ if (yych <= '^') ++ goto yy460; ++ goto yy467; ++ } else { ++ if (yych <= '`') ++ goto yy460; ++ if (yych <= 'z') ++ goto yy467; ++ goto yy460; ++ } ++ } ++ } ++ yy472: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy473; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '"') { ++ if (yych <= 0x00) ++ goto yy460; ++ if (yych <= ' ') ++ goto yy472; ++ goto yy474; ++ } else { ++ if (yych <= '\'') ++ goto yy475; ++ if (yych <= 0xC1) ++ goto yy460; ++ if (yych <= 0xDF) ++ goto yy476; ++ goto yy477; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy479; ++ goto yy478; ++ } else { ++ if (yych <= 0xF0) ++ goto yy480; ++ if (yych <= 0xF3) ++ goto yy481; ++ if (yych <= 0xF4) ++ goto yy482; ++ goto yy460; ++ } ++ } ++ yy473: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy473; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy460; ++ if (yych <= ' ') ++ goto yy463; ++ goto yy460; ++ } else { ++ if (yych <= '>') ++ goto yy465; ++ if (yych <= 0xC1) ++ goto yy460; ++ if (yych <= 0xDF) ++ goto yy476; ++ goto yy477; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy479; ++ goto yy478; ++ } else { ++ if (yych <= 0xF0) ++ goto yy480; ++ if (yych <= 0xF3) ++ goto yy481; ++ if (yych <= 0xF4) ++ goto yy482; ++ goto yy460; ++ } ++ } ++ yy474: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy474; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy460; ++ if (yych <= '"') ++ goto yy483; ++ goto yy460; ++ } else { ++ if (yych <= 0xDF) ++ goto yy484; ++ if (yych <= 0xE0) ++ goto yy485; ++ goto yy486; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy487; ++ if (yych <= 0xEF) ++ goto yy486; ++ goto yy488; ++ } else { ++ if (yych <= 0xF3) ++ goto yy489; ++ if (yych <= 0xF4) ++ goto yy490; ++ goto yy460; ++ } ++ } ++ yy475: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy475; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy460; ++ if (yych <= '\'') ++ goto yy483; ++ goto yy460; ++ } else { ++ if (yych <= 0xDF) ++ goto yy491; ++ if (yych <= 0xE0) ++ goto yy492; ++ goto yy493; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy494; ++ if (yych <= 0xEF) ++ goto yy493; ++ goto yy495; ++ } else { ++ if (yych <= 0xF3) ++ goto yy496; ++ if (yych <= 0xF4) ++ goto yy497; ++ goto yy460; ++ } ++ } ++ yy476: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy473; ++ goto yy460; ++ yy477: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy476; ++ goto yy460; ++ yy478: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy476; ++ goto yy460; ++ yy479: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x9F) ++ goto yy476; ++ goto yy460; ++ yy480: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy478; ++ goto yy460; ++ yy481: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy478; ++ goto yy460; ++ yy482: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x8F) ++ goto yy478; ++ goto yy460; ++ yy483: ++ yych = *++p; ++ if (yybm[0 + yych] & 2) { ++ goto yy463; ++ } ++ if (yych == '/') ++ goto yy464; ++ if (yych == '>') ++ goto yy465; ++ goto yy460; ++ yy484: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy474; ++ goto yy460; ++ yy485: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy484; ++ goto yy460; ++ yy486: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy484; ++ goto yy460; ++ yy487: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x9F) ++ goto yy484; ++ goto yy460; ++ yy488: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy486; ++ goto yy460; ++ yy489: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy486; ++ goto yy460; ++ yy490: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x8F) ++ goto yy486; ++ goto yy460; ++ yy491: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy475; ++ goto yy460; ++ yy492: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy491; ++ goto yy460; ++ yy493: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy491; ++ goto yy460; ++ yy494: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x9F) ++ goto yy491; ++ goto yy460; ++ yy495: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy493; ++ goto yy460; ++ yy496: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0xBF) ++ goto yy493; ++ goto yy460; ++ yy497: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy460; ++ if (yych <= 0x8F) ++ goto yy493; ++ goto yy460; ++ } + } + + // Try to match an HTML block end line of type 1 +-bufsize_t _scan_html_block_end_1(const unsigned char *p) +-{ ++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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= 0xDF) { +- if (yych <= ';') { +- if (yych <= 0x00) goto yy571; +- if (yych != '\n') goto yy573; +- } else { +- if (yych <= '<') goto yy574; +- if (yych <= 0x7F) goto yy573; +- if (yych >= 0xC2) goto yy575; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy576; +- if (yych == 0xED) goto yy578; +- goto yy577; +- } else { +- if (yych <= 0xF0) goto yy579; +- if (yych <= 0xF3) goto yy580; +- if (yych <= 0xF4) goto yy581; +- } +- } +-yy571: +- ++p; +-yy572: +- { return 0; } +-yy573: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy572; +- if (yych <= '\t') goto yy583; +- goto yy572; +- } else { +- if (yych <= 0x7F) goto yy583; +- if (yych <= 0xC1) goto yy572; +- if (yych <= 0xF4) goto yy583; +- goto yy572; +- } +-yy574: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '.') { +- if (yych <= 0x00) goto yy572; +- if (yych == '\n') goto yy572; +- goto yy583; +- } else { +- if (yych <= 0x7F) { +- if (yych <= '/') goto yy594; +- goto yy583; +- } else { +- if (yych <= 0xC1) goto yy572; +- if (yych <= 0xF4) goto yy583; +- goto yy572; +- } +- } +-yy575: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy572; +- if (yych <= 0xBF) goto yy582; +- goto yy572; +-yy576: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy572; +- if (yych <= 0xBF) goto yy587; +- goto yy572; +-yy577: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy572; +- if (yych <= 0xBF) goto yy587; +- goto yy572; +-yy578: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy572; +- if (yych <= 0x9F) goto yy587; +- goto yy572; +-yy579: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy572; +- if (yych <= 0xBF) goto yy589; +- goto yy572; +-yy580: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy572; +- if (yych <= 0xBF) goto yy589; +- goto yy572; +-yy581: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy572; +- if (yych <= 0x8F) goto yy589; +- goto yy572; +-yy582: +- yych = *++p; +-yy583: +- if (yybm[0+yych] & 64) { +- goto yy582; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy584; +- if (yych <= '<') goto yy585; +- } else { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- goto yy589; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy590; +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- } +- } +-yy584: +- p = marker; +- if (yyaccept == 0) { +- goto yy572; +- } else { +- goto yy604; +- } +-yy585: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xDF) { +- if (yych <= '.') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= '/') goto yy594; +- if (yych <= 0x7F) goto yy582; +- if (yych <= 0xC1) goto yy584; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy588; +- if (yych == 0xED) goto yy590; +- goto yy589; +- } else { +- if (yych <= 0xF0) goto yy591; +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +-yy587: +- yych = *++p; +- if (yych <= 0x7F) goto yy584; +- if (yych <= 0xBF) goto yy582; +- goto yy584; +-yy588: +- yych = *++p; +- if (yych <= 0x9F) goto yy584; +- if (yych <= 0xBF) goto yy587; +- goto yy584; +-yy589: +- yych = *++p; +- if (yych <= 0x7F) goto yy584; +- if (yych <= 0xBF) goto yy587; +- goto yy584; +-yy590: +- yych = *++p; +- if (yych <= 0x7F) goto yy584; +- if (yych <= 0x9F) goto yy587; +- goto yy584; +-yy591: +- yych = *++p; +- if (yych <= 0x8F) goto yy584; +- if (yych <= 0xBF) goto yy589; +- goto yy584; +-yy592: +- yych = *++p; +- if (yych <= 0x7F) goto yy584; +- if (yych <= 0xBF) goto yy589; +- goto yy584; +-yy593: +- yych = *++p; +- if (yych <= 0x7F) goto yy584; +- if (yych <= 0x8F) goto yy589; +- goto yy584; +-yy594: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 's') { +- if (yych <= 'P') { +- if (yych <= '\t') { +- if (yych <= 0x00) goto yy584; +- goto yy582; +- } else { +- if (yych <= '\n') goto yy584; +- if (yych <= 'O') goto yy582; +- } +- } else { +- if (yych <= 'o') { +- if (yych == 'S') goto yy596; +- goto yy582; +- } else { +- if (yych <= 'p') goto yy595; +- if (yych <= 'r') goto yy582; +- goto yy596; +- } +- } +- } else { +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } else { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- goto yy589; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy590; +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy595: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'Q') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'q') { +- if (yych <= 'R') goto yy597; +- goto yy582; +- } else { +- if (yych <= 'r') goto yy597; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy596: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 't') { +- if (yych <= 'C') { +- if (yych <= '\t') { +- if (yych <= 0x00) goto yy584; +- goto yy582; +- } else { +- if (yych <= '\n') goto yy584; +- if (yych <= 'B') goto yy582; +- goto yy598; +- } +- } else { +- if (yych <= 'b') { +- if (yych == 'T') goto yy599; +- goto yy582; +- } else { +- if (yych <= 'c') goto yy598; +- if (yych <= 's') goto yy582; +- goto yy599; +- } +- } +- } else { +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } else { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- goto yy589; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy590; +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy597: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'D') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'd') { +- if (yych <= 'E') goto yy600; +- goto yy582; +- } else { +- if (yych <= 'e') goto yy600; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy598: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'Q') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'q') { +- if (yych <= 'R') goto yy601; +- goto yy582; +- } else { +- if (yych <= 'r') goto yy601; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy599: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'X') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'x') { +- if (yych <= 'Y') goto yy602; +- goto yy582; +- } else { +- if (yych <= 'y') goto yy602; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy600: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xDF) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= '>') goto yy603; +- if (yych <= 0x7F) goto yy582; +- if (yych <= 0xC1) goto yy584; +- goto yy587; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy588; +- if (yych == 0xED) goto yy590; +- goto yy589; +- } else { +- if (yych <= 0xF0) goto yy591; +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +-yy601: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'H') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'h') { +- if (yych <= 'I') goto yy605; +- goto yy582; +- } else { +- if (yych <= 'i') goto yy605; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy602: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'K') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'k') { +- if (yych <= 'L') goto yy597; +- goto yy582; +- } else { +- if (yych <= 'l') goto yy597; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy603: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy582; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy604; +- if (yych <= '<') goto yy585; +- } else { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- goto yy589; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy590; +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- } +- } +-yy604: +- { return (bufsize_t)(p - start); } +-yy605: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'O') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 'o') { +- if (yych >= 'Q') goto yy582; +- } else { +- if (yych <= 'p') goto yy606; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-yy606: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy585; +- } +- if (yych <= 0xC1) { +- if (yych <= 'S') { +- if (yych <= 0x00) goto yy584; +- if (yych == '\n') goto yy584; +- goto yy582; +- } else { +- if (yych <= 's') { +- if (yych <= 'T') goto yy600; +- goto yy582; +- } else { +- if (yych <= 't') goto yy600; +- if (yych <= 0x7F) goto yy582; +- goto yy584; +- } +- } +- } else { +- if (yych <= 0xED) { +- if (yych <= 0xDF) goto yy587; +- if (yych <= 0xE0) goto yy588; +- if (yych <= 0xEC) goto yy589; +- goto yy590; +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xEF) goto yy589; +- goto yy591; +- } else { +- if (yych <= 0xF3) goto yy592; +- if (yych <= 0xF4) goto yy593; +- goto yy584; +- } +- } +- } +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 <= 0xDF) { ++ if (yych <= ';') { ++ if (yych <= 0x00) ++ goto yy499; ++ if (yych != '\n') ++ goto yy501; ++ } else { ++ if (yych <= '<') ++ goto yy502; ++ if (yych <= 0x7F) ++ goto yy501; ++ if (yych >= 0xC2) ++ goto yy503; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy504; ++ if (yych == 0xED) ++ goto yy506; ++ goto yy505; ++ } else { ++ if (yych <= 0xF0) ++ goto yy507; ++ if (yych <= 0xF3) ++ goto yy508; ++ if (yych <= 0xF4) ++ goto yy509; ++ } ++ } ++ yy499: ++ ++p; ++ yy500 : { return 0; } ++ yy501: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy500; ++ if (yych <= '\t') ++ goto yy511; ++ goto yy500; ++ } else { ++ if (yych <= 0x7F) ++ goto yy511; ++ if (yych <= 0xC1) ++ goto yy500; ++ if (yych <= 0xF4) ++ goto yy511; ++ goto yy500; ++ } ++ yy502: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '.') { ++ if (yych <= 0x00) ++ goto yy500; ++ if (yych == '\n') ++ goto yy500; ++ goto yy511; ++ } else { ++ if (yych <= 0x7F) { ++ if (yych <= '/') ++ goto yy521; ++ goto yy511; ++ } else { ++ if (yych <= 0xC1) ++ goto yy500; ++ if (yych <= 0xF4) ++ goto yy511; ++ goto yy500; ++ } ++ } ++ yy503: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy500; ++ if (yych <= 0xBF) ++ goto yy510; ++ goto yy500; ++ yy504: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy500; ++ if (yych <= 0xBF) ++ goto yy514; ++ goto yy500; ++ yy505: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy500; ++ if (yych <= 0xBF) ++ goto yy514; ++ goto yy500; ++ yy506: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy500; ++ if (yych <= 0x9F) ++ goto yy514; ++ goto yy500; ++ yy507: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy500; ++ if (yych <= 0xBF) ++ goto yy516; ++ goto yy500; ++ yy508: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy500; ++ if (yych <= 0xBF) ++ goto yy516; ++ goto yy500; ++ yy509: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy500; ++ if (yych <= 0x8F) ++ goto yy516; ++ goto yy500; ++ yy510: ++ yych = *++p; ++ yy511: ++ if (yybm[0 + yych] & 64) { ++ goto yy510; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy512; ++ if (yych <= '<') ++ goto yy513; ++ } else { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ goto yy516; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy517; ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ } ++ } ++ yy512: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy500; ++ } else { ++ goto yy534; ++ } ++ yy513: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '.') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= '/') ++ goto yy521; ++ if (yych <= 0x7F) ++ goto yy510; ++ if (yych <= 0xC1) ++ goto yy512; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych == 0xED) ++ goto yy517; ++ goto yy516; ++ } else { ++ if (yych <= 0xF0) ++ goto yy518; ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ yy514: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy512; ++ if (yych <= 0xBF) ++ goto yy510; ++ goto yy512; ++ yy515: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy512; ++ if (yych <= 0xBF) ++ goto yy514; ++ goto yy512; ++ yy516: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy512; ++ if (yych <= 0xBF) ++ goto yy514; ++ goto yy512; ++ yy517: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy512; ++ if (yych <= 0x9F) ++ goto yy514; ++ goto yy512; ++ yy518: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy512; ++ if (yych <= 0xBF) ++ goto yy516; ++ goto yy512; ++ yy519: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy512; ++ if (yych <= 0xBF) ++ goto yy516; ++ goto yy512; ++ yy520: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy512; ++ if (yych <= 0x8F) ++ goto yy516; ++ goto yy512; ++ yy521: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 's') { ++ if (yych <= 'R') { ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych <= '\t') ++ goto yy510; ++ goto yy512; ++ } else { ++ if (yych != 'P') ++ goto yy510; ++ } ++ } else { ++ if (yych <= 'o') { ++ if (yych <= 'S') ++ goto yy523; ++ if (yych <= 'T') ++ goto yy524; ++ goto yy510; ++ } else { ++ if (yych <= 'p') ++ goto yy522; ++ if (yych <= 'r') ++ goto yy510; ++ goto yy523; ++ } ++ } ++ } else { ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 't') ++ goto yy524; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } else { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ goto yy516; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy517; ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy522: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'Q') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'q') { ++ if (yych <= 'R') ++ goto yy525; ++ goto yy510; ++ } else { ++ if (yych <= 'r') ++ goto yy525; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy523: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 't') { ++ if (yych <= 'C') { ++ if (yych <= '\t') { ++ if (yych <= 0x00) ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= '\n') ++ goto yy512; ++ if (yych <= 'B') ++ goto yy510; ++ goto yy526; ++ } ++ } else { ++ if (yych <= 'b') { ++ if (yych == 'T') ++ goto yy527; ++ goto yy510; ++ } else { ++ if (yych <= 'c') ++ goto yy526; ++ if (yych <= 's') ++ goto yy510; ++ goto yy527; ++ } ++ } ++ } else { ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } else { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ goto yy516; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy517; ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy524: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'D') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'd') { ++ if (yych <= 'E') ++ goto yy528; ++ goto yy510; ++ } else { ++ if (yych <= 'e') ++ goto yy528; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy525: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'D') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'd') { ++ if (yych <= 'E') ++ goto yy529; ++ goto yy510; ++ } else { ++ if (yych <= 'e') ++ goto yy529; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy526: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'Q') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'q') { ++ if (yych <= 'R') ++ goto yy530; ++ goto yy510; ++ } else { ++ if (yych <= 'r') ++ goto yy530; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy527: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'X') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'x') { ++ if (yych <= 'Y') ++ goto yy531; ++ goto yy510; ++ } else { ++ if (yych <= 'y') ++ goto yy531; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy528: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'W') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'w') { ++ if (yych <= 'X') ++ goto yy532; ++ goto yy510; ++ } else { ++ if (yych <= 'x') ++ goto yy532; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy529: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= '>') ++ goto yy533; ++ if (yych <= 0x7F) ++ goto yy510; ++ if (yych <= 0xC1) ++ goto yy512; ++ goto yy514; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych == 0xED) ++ goto yy517; ++ goto yy516; ++ } else { ++ if (yych <= 0xF0) ++ goto yy518; ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ yy530: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'H') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'h') { ++ if (yych <= 'I') ++ goto yy535; ++ goto yy510; ++ } else { ++ if (yych <= 'i') ++ goto yy535; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy531: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'K') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'k') { ++ if (yych <= 'L') ++ goto yy525; ++ goto yy510; ++ } else { ++ if (yych <= 'l') ++ goto yy525; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy532: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'S') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 's') { ++ if (yych <= 'T') ++ goto yy536; ++ goto yy510; ++ } else { ++ if (yych <= 't') ++ goto yy536; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy533: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy510; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy534; ++ if (yych <= '<') ++ goto yy513; ++ } else { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ goto yy516; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy517; ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ } ++ } ++ yy534 : { return (bufsize_t)(p - start); } ++ yy535: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'O') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'o') { ++ if (yych <= 'P') ++ goto yy537; ++ goto yy510; ++ } else { ++ if (yych <= 'p') ++ goto yy537; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy536: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= '@') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= '`') { ++ if (yych <= 'A') ++ goto yy538; ++ goto yy510; ++ } else { ++ if (yych <= 'a') ++ goto yy538; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy537: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'S') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 's') { ++ if (yych <= 'T') ++ goto yy529; ++ goto yy510; ++ } else { ++ if (yych <= 't') ++ goto yy529; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy538: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'Q') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'q') { ++ if (yych >= 'S') ++ goto yy510; ++ } else { ++ if (yych <= 'r') ++ goto yy539; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy539: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= 'D') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= 'd') { ++ if (yych >= 'F') ++ goto yy510; ++ } else { ++ if (yych <= 'e') ++ goto yy540; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ yy540: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy513; ++ } ++ if (yych <= 0xC1) { ++ if (yych <= '@') { ++ if (yych <= 0x00) ++ goto yy512; ++ if (yych == '\n') ++ goto yy512; ++ goto yy510; ++ } else { ++ if (yych <= '`') { ++ if (yych <= 'A') ++ goto yy529; ++ goto yy510; ++ } else { ++ if (yych <= 'a') ++ goto yy529; ++ if (yych <= 0x7F) ++ goto yy510; ++ goto yy512; ++ } ++ } ++ } else { ++ if (yych <= 0xED) { ++ if (yych <= 0xDF) ++ goto yy514; ++ if (yych <= 0xE0) ++ goto yy515; ++ if (yych <= 0xEC) ++ goto yy516; ++ goto yy517; ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xEF) ++ goto yy516; ++ goto yy518; ++ } else { ++ if (yych <= 0xF3) ++ goto yy519; ++ if (yych <= 0xF4) ++ goto yy520; ++ goto yy512; ++ } ++ } ++ } ++ } + } + + // Try to match an HTML block end line of type 2 +-bufsize_t _scan_html_block_end_2(const unsigned char *p) +-{ ++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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= 0xDF) { +- if (yych <= ',') { +- if (yych <= 0x00) goto yy609; +- if (yych != '\n') goto yy611; +- } else { +- if (yych <= '-') goto yy612; +- if (yych <= 0x7F) goto yy611; +- if (yych >= 0xC2) goto yy613; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy614; +- if (yych == 0xED) goto yy616; +- goto yy615; +- } else { +- if (yych <= 0xF0) goto yy617; +- if (yych <= 0xF3) goto yy618; +- if (yych <= 0xF4) goto yy619; +- } +- } +-yy609: +- ++p; +-yy610: +- { return 0; } +-yy611: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy610; +- if (yych <= '\t') goto yy621; +- goto yy610; +- } else { +- if (yych <= 0x7F) goto yy621; +- if (yych <= 0xC1) goto yy610; +- if (yych <= 0xF4) goto yy621; +- goto yy610; +- } +-yy612: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy631; +- } +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy610; +- if (yych <= '\t') goto yy621; +- goto yy610; +- } else { +- if (yych <= 0x7F) goto yy621; +- if (yych <= 0xC1) goto yy610; +- if (yych <= 0xF4) goto yy621; +- goto yy610; +- } +-yy613: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy610; +- if (yych <= 0xBF) goto yy620; +- goto yy610; +-yy614: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy610; +- if (yych <= 0xBF) goto yy624; +- goto yy610; +-yy615: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy610; +- if (yych <= 0xBF) goto yy624; +- goto yy610; +-yy616: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy610; +- if (yych <= 0x9F) goto yy624; +- goto yy610; +-yy617: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy610; +- if (yych <= 0xBF) goto yy626; +- goto yy610; +-yy618: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy610; +- if (yych <= 0xBF) goto yy626; +- goto yy610; +-yy619: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy610; +- if (yych <= 0x8F) goto yy626; +- goto yy610; +-yy620: +- yych = *++p; +-yy621: +- if (yybm[0+yych] & 64) { +- goto yy620; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy622; +- if (yych <= '-') goto yy623; +- } else { +- if (yych <= 0xDF) goto yy624; +- if (yych <= 0xE0) goto yy625; +- goto yy626; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy627; +- if (yych <= 0xEF) goto yy626; +- goto yy628; +- } else { +- if (yych <= 0xF3) goto yy629; +- if (yych <= 0xF4) goto yy630; +- } +- } +-yy622: +- p = marker; +- if (yyaccept == 0) { +- goto yy610; +- } else { +- goto yy634; +- } +-yy623: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy620; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy622; +- if (yych <= '-') goto yy631; +- goto yy622; +- } else { +- if (yych <= 0xDF) goto yy624; +- if (yych <= 0xE0) goto yy625; +- goto yy626; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy627; +- if (yych <= 0xEF) goto yy626; +- goto yy628; +- } else { +- if (yych <= 0xF3) goto yy629; +- if (yych <= 0xF4) goto yy630; +- goto yy622; +- } +- } +-yy624: +- yych = *++p; +- if (yych <= 0x7F) goto yy622; +- if (yych <= 0xBF) goto yy620; +- goto yy622; +-yy625: +- yych = *++p; +- if (yych <= 0x9F) goto yy622; +- if (yych <= 0xBF) goto yy624; +- goto yy622; +-yy626: +- yych = *++p; +- if (yych <= 0x7F) goto yy622; +- if (yych <= 0xBF) goto yy624; +- goto yy622; +-yy627: +- yych = *++p; +- if (yych <= 0x7F) goto yy622; +- if (yych <= 0x9F) goto yy624; +- goto yy622; +-yy628: +- yych = *++p; +- if (yych <= 0x8F) goto yy622; +- if (yych <= 0xBF) goto yy626; +- goto yy622; +-yy629: +- yych = *++p; +- if (yych <= 0x7F) goto yy622; +- if (yych <= 0xBF) goto yy626; +- goto yy622; +-yy630: +- yych = *++p; +- if (yych <= 0x7F) goto yy622; +- if (yych <= 0x8F) goto yy626; +- goto yy622; +-yy631: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy631; +- } +- if (yych <= 0xDF) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy622; +- if (yych == '\n') goto yy622; +- goto yy620; +- } else { +- if (yych <= '>') goto yy633; +- if (yych <= 0x7F) goto yy620; +- if (yych <= 0xC1) goto yy622; +- goto yy624; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy625; +- if (yych == 0xED) goto yy627; +- goto yy626; +- } else { +- if (yych <= 0xF0) goto yy628; +- if (yych <= 0xF3) goto yy629; +- if (yych <= 0xF4) goto yy630; +- goto yy622; +- } +- } +-yy633: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy620; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy634; +- if (yych <= '-') goto yy623; +- } else { +- if (yych <= 0xDF) goto yy624; +- if (yych <= 0xE0) goto yy625; +- goto yy626; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy627; +- if (yych <= 0xEF) goto yy626; +- goto yy628; +- } else { +- if (yych <= 0xF3) goto yy629; +- if (yych <= 0xF4) goto yy630; +- } +- } +-yy634: +- { return (bufsize_t)(p - start); } +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 <= 0xDF) { ++ if (yych <= ',') { ++ if (yych <= 0x00) ++ goto yy542; ++ if (yych != '\n') ++ goto yy544; ++ } else { ++ if (yych <= '-') ++ goto yy545; ++ if (yych <= 0x7F) ++ goto yy544; ++ if (yych >= 0xC2) ++ goto yy546; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy547; ++ if (yych == 0xED) ++ goto yy549; ++ goto yy548; ++ } else { ++ if (yych <= 0xF0) ++ goto yy550; ++ if (yych <= 0xF3) ++ goto yy551; ++ if (yych <= 0xF4) ++ goto yy552; ++ } ++ } ++ yy542: ++ ++p; ++ yy543 : { return 0; } ++ yy544: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy543; ++ if (yych <= '\t') ++ goto yy554; ++ goto yy543; ++ } else { ++ if (yych <= 0x7F) ++ goto yy554; ++ if (yych <= 0xC1) ++ goto yy543; ++ if (yych <= 0xF4) ++ goto yy554; ++ goto yy543; ++ } ++ yy545: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy564; ++ } ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy543; ++ if (yych <= '\t') ++ goto yy554; ++ goto yy543; ++ } else { ++ if (yych <= 0x7F) ++ goto yy554; ++ if (yych <= 0xC1) ++ goto yy543; ++ if (yych <= 0xF4) ++ goto yy554; ++ goto yy543; ++ } ++ yy546: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy543; ++ if (yych <= 0xBF) ++ goto yy553; ++ goto yy543; ++ yy547: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy543; ++ if (yych <= 0xBF) ++ goto yy557; ++ goto yy543; ++ yy548: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy543; ++ if (yych <= 0xBF) ++ goto yy557; ++ goto yy543; ++ yy549: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy543; ++ if (yych <= 0x9F) ++ goto yy557; ++ goto yy543; ++ yy550: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy543; ++ if (yych <= 0xBF) ++ goto yy559; ++ goto yy543; ++ yy551: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy543; ++ if (yych <= 0xBF) ++ goto yy559; ++ goto yy543; ++ yy552: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy543; ++ if (yych <= 0x8F) ++ goto yy559; ++ goto yy543; ++ yy553: ++ yych = *++p; ++ yy554: ++ if (yybm[0 + yych] & 64) { ++ goto yy553; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy555; ++ if (yych <= '-') ++ goto yy556; ++ } else { ++ if (yych <= 0xDF) ++ goto yy557; ++ if (yych <= 0xE0) ++ goto yy558; ++ goto yy559; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy560; ++ if (yych <= 0xEF) ++ goto yy559; ++ goto yy561; ++ } else { ++ if (yych <= 0xF3) ++ goto yy562; ++ if (yych <= 0xF4) ++ goto yy563; ++ } ++ } ++ yy555: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy543; ++ } else { ++ goto yy566; ++ } ++ yy556: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy553; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy555; ++ if (yych <= '-') ++ goto yy564; ++ goto yy555; ++ } else { ++ if (yych <= 0xDF) ++ goto yy557; ++ if (yych <= 0xE0) ++ goto yy558; ++ goto yy559; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy560; ++ if (yych <= 0xEF) ++ goto yy559; ++ goto yy561; ++ } else { ++ if (yych <= 0xF3) ++ goto yy562; ++ if (yych <= 0xF4) ++ goto yy563; ++ goto yy555; ++ } ++ } ++ yy557: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy555; ++ if (yych <= 0xBF) ++ goto yy553; ++ goto yy555; ++ yy558: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy555; ++ if (yych <= 0xBF) ++ goto yy557; ++ goto yy555; ++ yy559: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy555; ++ if (yych <= 0xBF) ++ goto yy557; ++ goto yy555; ++ yy560: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy555; ++ if (yych <= 0x9F) ++ goto yy557; ++ goto yy555; ++ yy561: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy555; ++ if (yych <= 0xBF) ++ goto yy559; ++ goto yy555; ++ yy562: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy555; ++ if (yych <= 0xBF) ++ goto yy559; ++ goto yy555; ++ yy563: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy555; ++ if (yych <= 0x8F) ++ goto yy559; ++ goto yy555; ++ yy564: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy564; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy555; ++ if (yych == '\n') ++ goto yy555; ++ goto yy553; ++ } else { ++ if (yych <= '>') ++ goto yy565; ++ if (yych <= 0x7F) ++ goto yy553; ++ if (yych <= 0xC1) ++ goto yy555; ++ goto yy557; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy558; ++ if (yych == 0xED) ++ goto yy560; ++ goto yy559; ++ } else { ++ if (yych <= 0xF0) ++ goto yy561; ++ if (yych <= 0xF3) ++ goto yy562; ++ if (yych <= 0xF4) ++ goto yy563; ++ goto yy555; ++ } ++ } ++ yy565: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy553; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy566; ++ if (yych <= '-') ++ goto yy556; ++ } else { ++ if (yych <= 0xDF) ++ goto yy557; ++ if (yych <= 0xE0) ++ goto yy558; ++ goto yy559; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy560; ++ if (yych <= 0xEF) ++ goto yy559; ++ goto yy561; ++ } else { ++ if (yych <= 0xF3) ++ goto yy562; ++ if (yych <= 0xF4) ++ goto yy563; ++ } ++ } ++ yy566 : { return (bufsize_t)(p - start); } ++ } + } + + // Try to match an HTML block end line of type 3 +-bufsize_t _scan_html_block_end_3(const unsigned char *p) +-{ ++bufsize_t _scan_html_block_end_3(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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= 0xDF) { +- if (yych <= '>') { +- if (yych <= 0x00) goto yy637; +- if (yych != '\n') goto yy639; +- } else { +- if (yych <= '?') goto yy640; +- if (yych <= 0x7F) goto yy639; +- if (yych >= 0xC2) goto yy641; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy642; +- if (yych == 0xED) goto yy644; +- goto yy643; +- } else { +- if (yych <= 0xF0) goto yy645; +- if (yych <= 0xF3) goto yy646; +- if (yych <= 0xF4) goto yy647; +- } +- } +-yy637: +- ++p; +-yy638: +- { return 0; } +-yy639: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy638; +- if (yych <= '\t') goto yy649; +- goto yy638; +- } else { +- if (yych <= 0x7F) goto yy649; +- if (yych <= 0xC1) goto yy638; +- if (yych <= 0xF4) goto yy649; +- goto yy638; +- } +-yy640: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '=') { +- if (yych <= 0x00) goto yy638; +- if (yych == '\n') goto yy638; +- goto yy649; +- } else { +- if (yych <= 0x7F) { +- if (yych <= '>') goto yy660; +- goto yy649; +- } else { +- if (yych <= 0xC1) goto yy638; +- if (yych <= 0xF4) goto yy649; +- goto yy638; +- } +- } +-yy641: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy638; +- if (yych <= 0xBF) goto yy648; +- goto yy638; +-yy642: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy638; +- if (yych <= 0xBF) goto yy653; +- goto yy638; +-yy643: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy638; +- if (yych <= 0xBF) goto yy653; +- goto yy638; +-yy644: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy638; +- if (yych <= 0x9F) goto yy653; +- goto yy638; +-yy645: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy638; +- if (yych <= 0xBF) goto yy655; +- goto yy638; +-yy646: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy638; +- if (yych <= 0xBF) goto yy655; +- goto yy638; +-yy647: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy638; +- if (yych <= 0x8F) goto yy655; +- goto yy638; +-yy648: +- yych = *++p; +-yy649: +- if (yybm[0+yych] & 64) { +- goto yy648; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy650; +- if (yych <= '?') goto yy651; +- } else { +- if (yych <= 0xDF) goto yy653; +- if (yych <= 0xE0) goto yy654; +- goto yy655; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy656; +- if (yych <= 0xEF) goto yy655; +- goto yy657; +- } else { +- if (yych <= 0xF3) goto yy658; +- if (yych <= 0xF4) goto yy659; +- } +- } +-yy650: +- p = marker; +- if (yyaccept == 0) { +- goto yy638; +- } else { +- goto yy661; +- } +-yy651: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy651; +- } +- if (yych <= 0xDF) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy650; +- if (yych == '\n') goto yy650; +- goto yy648; +- } else { +- if (yych <= '>') goto yy660; +- if (yych <= 0x7F) goto yy648; +- if (yych <= 0xC1) goto yy650; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy654; +- if (yych == 0xED) goto yy656; +- goto yy655; +- } else { +- if (yych <= 0xF0) goto yy657; +- if (yych <= 0xF3) goto yy658; +- if (yych <= 0xF4) goto yy659; +- goto yy650; +- } +- } +-yy653: +- yych = *++p; +- if (yych <= 0x7F) goto yy650; +- if (yych <= 0xBF) goto yy648; +- goto yy650; +-yy654: +- yych = *++p; +- if (yych <= 0x9F) goto yy650; +- if (yych <= 0xBF) goto yy653; +- goto yy650; +-yy655: +- yych = *++p; +- if (yych <= 0x7F) goto yy650; +- if (yych <= 0xBF) goto yy653; +- goto yy650; +-yy656: +- yych = *++p; +- if (yych <= 0x7F) goto yy650; +- if (yych <= 0x9F) goto yy653; +- goto yy650; +-yy657: +- yych = *++p; +- if (yych <= 0x8F) goto yy650; +- if (yych <= 0xBF) goto yy655; +- goto yy650; +-yy658: +- yych = *++p; +- if (yych <= 0x7F) goto yy650; +- if (yych <= 0xBF) goto yy655; +- goto yy650; +-yy659: +- yych = *++p; +- if (yych <= 0x7F) goto yy650; +- if (yych <= 0x8F) goto yy655; +- goto yy650; +-yy660: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy648; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy661; +- if (yych <= '?') goto yy651; +- } else { +- if (yych <= 0xDF) goto yy653; +- if (yych <= 0xE0) goto yy654; +- goto yy655; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy656; +- if (yych <= 0xEF) goto yy655; +- goto yy657; +- } else { +- if (yych <= 0xF3) goto yy658; +- if (yych <= 0xF4) goto yy659; +- } +- } +-yy661: +- { return (bufsize_t)(p - start); } +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 <= 0xDF) { ++ if (yych <= '>') { ++ if (yych <= 0x00) ++ goto yy568; ++ if (yych != '\n') ++ goto yy570; ++ } else { ++ if (yych <= '?') ++ goto yy571; ++ if (yych <= 0x7F) ++ goto yy570; ++ if (yych >= 0xC2) ++ goto yy572; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy573; ++ if (yych == 0xED) ++ goto yy575; ++ goto yy574; ++ } else { ++ if (yych <= 0xF0) ++ goto yy576; ++ if (yych <= 0xF3) ++ goto yy577; ++ if (yych <= 0xF4) ++ goto yy578; ++ } ++ } ++ yy568: ++ ++p; ++ yy569 : { return 0; } ++ yy570: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy569; ++ if (yych <= '\t') ++ goto yy580; ++ goto yy569; ++ } else { ++ if (yych <= 0x7F) ++ goto yy580; ++ if (yych <= 0xC1) ++ goto yy569; ++ if (yych <= 0xF4) ++ goto yy580; ++ goto yy569; ++ } ++ yy571: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy569; ++ if (yych == '\n') ++ goto yy569; ++ goto yy580; ++ } else { ++ if (yych <= 0x7F) { ++ if (yych <= '>') ++ goto yy590; ++ goto yy580; ++ } else { ++ if (yych <= 0xC1) ++ goto yy569; ++ if (yych <= 0xF4) ++ goto yy580; ++ goto yy569; ++ } ++ } ++ yy572: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy569; ++ if (yych <= 0xBF) ++ goto yy579; ++ goto yy569; ++ yy573: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy569; ++ if (yych <= 0xBF) ++ goto yy583; ++ goto yy569; ++ yy574: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy569; ++ if (yych <= 0xBF) ++ goto yy583; ++ goto yy569; ++ yy575: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy569; ++ if (yych <= 0x9F) ++ goto yy583; ++ goto yy569; ++ yy576: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy569; ++ if (yych <= 0xBF) ++ goto yy585; ++ goto yy569; ++ yy577: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy569; ++ if (yych <= 0xBF) ++ goto yy585; ++ goto yy569; ++ yy578: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy569; ++ if (yych <= 0x8F) ++ goto yy585; ++ goto yy569; ++ yy579: ++ yych = *++p; ++ yy580: ++ if (yybm[0 + yych] & 64) { ++ goto yy579; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy581; ++ if (yych <= '?') ++ goto yy582; ++ } else { ++ if (yych <= 0xDF) ++ goto yy583; ++ if (yych <= 0xE0) ++ goto yy584; ++ goto yy585; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy586; ++ if (yych <= 0xEF) ++ goto yy585; ++ goto yy587; ++ } else { ++ if (yych <= 0xF3) ++ goto yy588; ++ if (yych <= 0xF4) ++ goto yy589; ++ } ++ } ++ yy581: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy569; ++ } else { ++ goto yy591; ++ } ++ yy582: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy582; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy581; ++ if (yych == '\n') ++ goto yy581; ++ goto yy579; ++ } else { ++ if (yych <= '>') ++ goto yy590; ++ if (yych <= 0x7F) ++ goto yy579; ++ if (yych <= 0xC1) ++ goto yy581; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy584; ++ if (yych == 0xED) ++ goto yy586; ++ goto yy585; ++ } else { ++ if (yych <= 0xF0) ++ goto yy587; ++ if (yych <= 0xF3) ++ goto yy588; ++ if (yych <= 0xF4) ++ goto yy589; ++ goto yy581; ++ } ++ } ++ yy583: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy581; ++ if (yych <= 0xBF) ++ goto yy579; ++ goto yy581; ++ yy584: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy581; ++ if (yych <= 0xBF) ++ goto yy583; ++ goto yy581; ++ yy585: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy581; ++ if (yych <= 0xBF) ++ goto yy583; ++ goto yy581; ++ yy586: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy581; ++ if (yych <= 0x9F) ++ goto yy583; ++ goto yy581; ++ yy587: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy581; ++ if (yych <= 0xBF) ++ goto yy585; ++ goto yy581; ++ yy588: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy581; ++ if (yych <= 0xBF) ++ goto yy585; ++ goto yy581; ++ yy589: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy581; ++ if (yych <= 0x8F) ++ goto yy585; ++ goto yy581; ++ yy590: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy579; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy591; ++ if (yych <= '?') ++ goto yy582; ++ } else { ++ if (yych <= 0xDF) ++ goto yy583; ++ if (yych <= 0xE0) ++ goto yy584; ++ goto yy585; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy586; ++ if (yych <= 0xEF) ++ goto yy585; ++ goto yy587; ++ } else { ++ if (yych <= 0xF3) ++ goto yy588; ++ if (yych <= 0xF4) ++ goto yy589; ++ } ++ } ++ yy591 : { 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) +-{ ++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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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] & 64) { +- goto yy667; +- } +- if (yych <= 0xE0) { +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy664; +- if (yych <= '\t') goto yy666; +- } else { +- if (yych <= 0x7F) goto yy666; +- if (yych <= 0xC1) goto yy664; +- if (yych <= 0xDF) goto yy670; +- goto yy671; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy673; +- goto yy672; +- } else { +- if (yych <= 0xF0) goto yy674; +- if (yych <= 0xF3) goto yy675; +- if (yych <= 0xF4) goto yy676; +- } +- } +-yy664: +- ++p; +-yy665: +- { return 0; } +-yy666: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy665; +- if (yych <= '\t') goto yy678; +- goto yy665; +- } else { +- if (yych <= 0x7F) goto yy678; +- if (yych <= 0xC1) goto yy665; +- if (yych <= 0xF4) goto yy678; +- goto yy665; +- } +-yy667: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy677; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy669; +- if (yych <= '>') goto yy667; +- } else { +- if (yych <= 0xDF) goto yy680; +- if (yych <= 0xE0) goto yy681; +- goto yy682; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy683; +- if (yych <= 0xEF) goto yy682; +- goto yy684; +- } else { +- if (yych <= 0xF3) goto yy685; +- if (yych <= 0xF4) goto yy686; +- } +- } +-yy669: +- { return (bufsize_t)(p - start); } +-yy670: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy665; +- if (yych <= 0xBF) goto yy677; +- goto yy665; +-yy671: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy665; +- if (yych <= 0xBF) goto yy680; +- goto yy665; +-yy672: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy665; +- if (yych <= 0xBF) goto yy680; +- goto yy665; +-yy673: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy665; +- if (yych <= 0x9F) goto yy680; +- goto yy665; +-yy674: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy665; +- if (yych <= 0xBF) goto yy682; +- goto yy665; +-yy675: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy665; +- if (yych <= 0xBF) goto yy682; +- goto yy665; +-yy676: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy665; +- if (yych <= 0x8F) goto yy682; +- goto yy665; +-yy677: +- yych = *++p; +-yy678: +- if (yybm[0+yych] & 128) { +- goto yy677; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy679; +- if (yych <= '>') goto yy667; +- } else { +- if (yych <= 0xDF) goto yy680; +- if (yych <= 0xE0) goto yy681; +- goto yy682; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy683; +- if (yych <= 0xEF) goto yy682; +- goto yy684; +- } else { +- if (yych <= 0xF3) goto yy685; +- if (yych <= 0xF4) goto yy686; +- } +- } +-yy679: +- p = marker; +- if (yyaccept == 0) { +- goto yy665; +- } else { +- goto yy669; +- } +-yy680: +- yych = *++p; +- if (yych <= 0x7F) goto yy679; +- if (yych <= 0xBF) goto yy677; +- goto yy679; +-yy681: +- yych = *++p; +- if (yych <= 0x9F) goto yy679; +- if (yych <= 0xBF) goto yy680; +- goto yy679; +-yy682: +- yych = *++p; +- if (yych <= 0x7F) goto yy679; +- if (yych <= 0xBF) goto yy680; +- goto yy679; +-yy683: +- yych = *++p; +- if (yych <= 0x7F) goto yy679; +- if (yych <= 0x9F) goto yy680; +- goto yy679; +-yy684: +- yych = *++p; +- if (yych <= 0x8F) goto yy679; +- if (yych <= 0xBF) goto yy682; +- goto yy679; +-yy685: +- yych = *++p; +- if (yych <= 0x7F) goto yy679; +- if (yych <= 0xBF) goto yy682; +- goto yy679; +-yy686: +- yych = *++p; +- if (yych <= 0x7F) goto yy679; +- if (yych <= 0x8F) goto yy682; +- goto yy679; +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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] & 64) { ++ goto yy596; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy593; ++ if (yych <= '\t') ++ goto yy595; ++ } else { ++ if (yych <= 0x7F) ++ goto yy595; ++ if (yych <= 0xC1) ++ goto yy593; ++ if (yych <= 0xDF) ++ goto yy598; ++ goto yy599; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy601; ++ goto yy600; ++ } else { ++ if (yych <= 0xF0) ++ goto yy602; ++ if (yych <= 0xF3) ++ goto yy603; ++ if (yych <= 0xF4) ++ goto yy604; ++ } ++ } ++ yy593: ++ ++p; ++ yy594 : { return 0; } ++ yy595: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy594; ++ if (yych <= '\t') ++ goto yy606; ++ goto yy594; ++ } else { ++ if (yych <= 0x7F) ++ goto yy606; ++ if (yych <= 0xC1) ++ goto yy594; ++ if (yych <= 0xF4) ++ goto yy606; ++ goto yy594; ++ } ++ yy596: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy605; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy597; ++ if (yych <= '>') ++ goto yy596; ++ } else { ++ if (yych <= 0xDF) ++ goto yy608; ++ if (yych <= 0xE0) ++ goto yy609; ++ goto yy610; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy611; ++ if (yych <= 0xEF) ++ goto yy610; ++ goto yy612; ++ } else { ++ if (yych <= 0xF3) ++ goto yy613; ++ if (yych <= 0xF4) ++ goto yy614; ++ } ++ } ++ yy597 : { return (bufsize_t)(p - start); } ++ yy598: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy594; ++ if (yych <= 0xBF) ++ goto yy605; ++ goto yy594; ++ yy599: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy594; ++ if (yych <= 0xBF) ++ goto yy608; ++ goto yy594; ++ yy600: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy594; ++ if (yych <= 0xBF) ++ goto yy608; ++ goto yy594; ++ yy601: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy594; ++ if (yych <= 0x9F) ++ goto yy608; ++ goto yy594; ++ yy602: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy594; ++ if (yych <= 0xBF) ++ goto yy610; ++ goto yy594; ++ yy603: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy594; ++ if (yych <= 0xBF) ++ goto yy610; ++ goto yy594; ++ yy604: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy594; ++ if (yych <= 0x8F) ++ goto yy610; ++ goto yy594; ++ yy605: ++ yych = *++p; ++ yy606: ++ if (yybm[0 + yych] & 128) { ++ goto yy605; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy607; ++ if (yych <= '>') ++ goto yy596; ++ } else { ++ if (yych <= 0xDF) ++ goto yy608; ++ if (yych <= 0xE0) ++ goto yy609; ++ goto yy610; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy611; ++ if (yych <= 0xEF) ++ goto yy610; ++ goto yy612; ++ } else { ++ if (yych <= 0xF3) ++ goto yy613; ++ if (yych <= 0xF4) ++ goto yy614; ++ } ++ } ++ yy607: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy594; ++ } else { ++ goto yy597; ++ } ++ yy608: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy607; ++ if (yych <= 0xBF) ++ goto yy605; ++ goto yy607; ++ yy609: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy607; ++ if (yych <= 0xBF) ++ goto yy608; ++ goto yy607; ++ yy610: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy607; ++ if (yych <= 0xBF) ++ goto yy608; ++ goto yy607; ++ yy611: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy607; ++ if (yych <= 0x9F) ++ goto yy608; ++ goto yy607; ++ yy612: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy607; ++ if (yych <= 0xBF) ++ goto yy610; ++ goto yy607; ++ yy613: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy607; ++ if (yych <= 0xBF) ++ goto yy610; ++ goto yy607; ++ yy614: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy607; ++ if (yych <= 0x8F) ++ goto yy610; ++ goto yy607; ++ } + } + + // Try to match an HTML block end line of type 5 +-bufsize_t _scan_html_block_end_5(const unsigned char *p) +-{ ++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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= 0xDF) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy689; +- if (yych != '\n') goto yy691; +- } else { +- if (yych <= ']') goto yy692; +- if (yych <= 0x7F) goto yy691; +- if (yych >= 0xC2) goto yy693; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy694; +- if (yych == 0xED) goto yy696; +- goto yy695; +- } else { +- if (yych <= 0xF0) goto yy697; +- if (yych <= 0xF3) goto yy698; +- if (yych <= 0xF4) goto yy699; +- } +- } +-yy689: +- ++p; +-yy690: +- { return 0; } +-yy691: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy690; +- if (yych <= '\t') goto yy701; +- goto yy690; +- } else { +- if (yych <= 0x7F) goto yy701; +- if (yych <= 0xC1) goto yy690; +- if (yych <= 0xF4) goto yy701; +- goto yy690; +- } +-yy692: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy711; +- } +- if (yych <= '\n') { +- if (yych <= 0x00) goto yy690; +- if (yych <= '\t') goto yy701; +- goto yy690; +- } else { +- if (yych <= 0x7F) goto yy701; +- if (yych <= 0xC1) goto yy690; +- if (yych <= 0xF4) goto yy701; +- goto yy690; +- } +-yy693: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy690; +- if (yych <= 0xBF) goto yy700; +- goto yy690; +-yy694: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x9F) goto yy690; +- if (yych <= 0xBF) goto yy704; +- goto yy690; +-yy695: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy690; +- if (yych <= 0xBF) goto yy704; +- goto yy690; +-yy696: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy690; +- if (yych <= 0x9F) goto yy704; +- goto yy690; +-yy697: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x8F) goto yy690; +- if (yych <= 0xBF) goto yy706; +- goto yy690; +-yy698: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy690; +- if (yych <= 0xBF) goto yy706; +- goto yy690; +-yy699: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x7F) goto yy690; +- if (yych <= 0x8F) goto yy706; +- goto yy690; +-yy700: +- yych = *++p; +-yy701: +- if (yybm[0+yych] & 64) { +- goto yy700; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy702; +- if (yych <= ']') goto yy703; +- } else { +- if (yych <= 0xDF) goto yy704; +- if (yych <= 0xE0) goto yy705; +- goto yy706; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy707; +- if (yych <= 0xEF) goto yy706; +- goto yy708; +- } else { +- if (yych <= 0xF3) goto yy709; +- if (yych <= 0xF4) goto yy710; +- } +- } +-yy702: +- p = marker; +- if (yyaccept == 0) { +- goto yy690; +- } else { +- goto yy714; +- } +-yy703: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy700; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy702; +- if (yych <= ']') goto yy711; +- goto yy702; +- } else { +- if (yych <= 0xDF) goto yy704; +- if (yych <= 0xE0) goto yy705; +- goto yy706; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy707; +- if (yych <= 0xEF) goto yy706; +- goto yy708; +- } else { +- if (yych <= 0xF3) goto yy709; +- if (yych <= 0xF4) goto yy710; +- goto yy702; +- } +- } +-yy704: +- yych = *++p; +- if (yych <= 0x7F) goto yy702; +- if (yych <= 0xBF) goto yy700; +- goto yy702; +-yy705: +- yych = *++p; +- if (yych <= 0x9F) goto yy702; +- if (yych <= 0xBF) goto yy704; +- goto yy702; +-yy706: +- yych = *++p; +- if (yych <= 0x7F) goto yy702; +- if (yych <= 0xBF) goto yy704; +- goto yy702; +-yy707: +- yych = *++p; +- if (yych <= 0x7F) goto yy702; +- if (yych <= 0x9F) goto yy704; +- goto yy702; +-yy708: +- yych = *++p; +- if (yych <= 0x8F) goto yy702; +- if (yych <= 0xBF) goto yy706; +- goto yy702; +-yy709: +- yych = *++p; +- if (yych <= 0x7F) goto yy702; +- if (yych <= 0xBF) goto yy706; +- goto yy702; +-yy710: +- yych = *++p; +- if (yych <= 0x7F) goto yy702; +- if (yych <= 0x8F) goto yy706; +- goto yy702; +-yy711: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy711; +- } +- if (yych <= 0xDF) { +- if (yych <= '=') { +- if (yych <= 0x00) goto yy702; +- if (yych == '\n') goto yy702; +- goto yy700; +- } else { +- if (yych <= '>') goto yy713; +- if (yych <= 0x7F) goto yy700; +- if (yych <= 0xC1) goto yy702; +- goto yy704; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy705; +- if (yych == 0xED) goto yy707; +- goto yy706; +- } else { +- if (yych <= 0xF0) goto yy708; +- if (yych <= 0xF3) goto yy709; +- if (yych <= 0xF4) goto yy710; +- goto yy702; +- } +- } +-yy713: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy700; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= '\n') goto yy714; +- if (yych <= ']') goto yy703; +- } else { +- if (yych <= 0xDF) goto yy704; +- if (yych <= 0xE0) goto yy705; +- goto yy706; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy707; +- if (yych <= 0xEF) goto yy706; +- goto yy708; +- } else { +- if (yych <= 0xF3) goto yy709; +- if (yych <= 0xF4) goto yy710; +- } +- } +-yy714: +- { return (bufsize_t)(p - start); } +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 <= 0xDF) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy616; ++ if (yych != '\n') ++ goto yy618; ++ } else { ++ if (yych <= ']') ++ goto yy619; ++ if (yych <= 0x7F) ++ goto yy618; ++ if (yych >= 0xC2) ++ goto yy620; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy621; ++ if (yych == 0xED) ++ goto yy623; ++ goto yy622; ++ } else { ++ if (yych <= 0xF0) ++ goto yy624; ++ if (yych <= 0xF3) ++ goto yy625; ++ if (yych <= 0xF4) ++ goto yy626; ++ } ++ } ++ yy616: ++ ++p; ++ yy617 : { return 0; } ++ yy618: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy617; ++ if (yych <= '\t') ++ goto yy628; ++ goto yy617; ++ } else { ++ if (yych <= 0x7F) ++ goto yy628; ++ if (yych <= 0xC1) ++ goto yy617; ++ if (yych <= 0xF4) ++ goto yy628; ++ goto yy617; ++ } ++ yy619: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy638; ++ } ++ if (yych <= '\n') { ++ if (yych <= 0x00) ++ goto yy617; ++ if (yych <= '\t') ++ goto yy628; ++ goto yy617; ++ } else { ++ if (yych <= 0x7F) ++ goto yy628; ++ if (yych <= 0xC1) ++ goto yy617; ++ if (yych <= 0xF4) ++ goto yy628; ++ goto yy617; ++ } ++ yy620: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy617; ++ if (yych <= 0xBF) ++ goto yy627; ++ goto yy617; ++ yy621: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x9F) ++ goto yy617; ++ if (yych <= 0xBF) ++ goto yy631; ++ goto yy617; ++ yy622: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy617; ++ if (yych <= 0xBF) ++ goto yy631; ++ goto yy617; ++ yy623: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy617; ++ if (yych <= 0x9F) ++ goto yy631; ++ goto yy617; ++ yy624: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x8F) ++ goto yy617; ++ if (yych <= 0xBF) ++ goto yy633; ++ goto yy617; ++ yy625: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy617; ++ if (yych <= 0xBF) ++ goto yy633; ++ goto yy617; ++ yy626: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x7F) ++ goto yy617; ++ if (yych <= 0x8F) ++ goto yy633; ++ goto yy617; ++ yy627: ++ yych = *++p; ++ yy628: ++ if (yybm[0 + yych] & 64) { ++ goto yy627; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy629; ++ if (yych <= ']') ++ goto yy630; ++ } else { ++ if (yych <= 0xDF) ++ goto yy631; ++ if (yych <= 0xE0) ++ goto yy632; ++ goto yy633; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy634; ++ if (yych <= 0xEF) ++ goto yy633; ++ goto yy635; ++ } else { ++ if (yych <= 0xF3) ++ goto yy636; ++ if (yych <= 0xF4) ++ goto yy637; ++ } ++ } ++ yy629: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy617; ++ } else { ++ goto yy640; ++ } ++ yy630: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy627; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy629; ++ if (yych <= ']') ++ goto yy638; ++ goto yy629; ++ } else { ++ if (yych <= 0xDF) ++ goto yy631; ++ if (yych <= 0xE0) ++ goto yy632; ++ goto yy633; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy634; ++ if (yych <= 0xEF) ++ goto yy633; ++ goto yy635; ++ } else { ++ if (yych <= 0xF3) ++ goto yy636; ++ if (yych <= 0xF4) ++ goto yy637; ++ goto yy629; ++ } ++ } ++ yy631: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy629; ++ if (yych <= 0xBF) ++ goto yy627; ++ goto yy629; ++ yy632: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy629; ++ if (yych <= 0xBF) ++ goto yy631; ++ goto yy629; ++ yy633: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy629; ++ if (yych <= 0xBF) ++ goto yy631; ++ goto yy629; ++ yy634: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy629; ++ if (yych <= 0x9F) ++ goto yy631; ++ goto yy629; ++ yy635: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy629; ++ if (yych <= 0xBF) ++ goto yy633; ++ goto yy629; ++ yy636: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy629; ++ if (yych <= 0xBF) ++ goto yy633; ++ goto yy629; ++ yy637: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy629; ++ if (yych <= 0x8F) ++ goto yy633; ++ goto yy629; ++ yy638: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy638; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '=') { ++ if (yych <= 0x00) ++ goto yy629; ++ if (yych == '\n') ++ goto yy629; ++ goto yy627; ++ } else { ++ if (yych <= '>') ++ goto yy639; ++ if (yych <= 0x7F) ++ goto yy627; ++ if (yych <= 0xC1) ++ goto yy629; ++ goto yy631; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy632; ++ if (yych == 0xED) ++ goto yy634; ++ goto yy633; ++ } else { ++ if (yych <= 0xF0) ++ goto yy635; ++ if (yych <= 0xF3) ++ goto yy636; ++ if (yych <= 0xF4) ++ goto yy637; ++ goto yy629; ++ } ++ } ++ yy639: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy627; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= '\n') ++ goto yy640; ++ if (yych <= ']') ++ goto yy630; ++ } else { ++ if (yych <= 0xDF) ++ goto yy631; ++ if (yych <= 0xE0) ++ goto yy632; ++ goto yy633; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy634; ++ if (yych <= 0xEF) ++ goto yy633; ++ goto yy635; ++ } else { ++ if (yych <= 0xF3) ++ goto yy636; ++ if (yych <= 0xF4) ++ goto yy637; ++ } ++ } ++ yy640 : { return (bufsize_t)(p - start); } ++ } + } + + // 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) +-{ ++bufsize_t _scan_link_title(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[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 <= '&') { +- if (yych == '"') goto yy719; +- } else { +- if (yych <= '\'') goto yy720; +- if (yych <= '(') goto yy721; +- } +- ++p; +-yy718: +- { return 0; } +-yy719: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x00) goto yy718; +- if (yych <= 0x7F) goto yy723; +- if (yych <= 0xC1) goto yy718; +- if (yych <= 0xF4) goto yy723; +- goto yy718; +-yy720: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= 0x00) goto yy718; +- if (yych <= 0x7F) goto yy737; +- if (yych <= 0xC1) goto yy718; +- if (yych <= 0xF4) goto yy737; +- goto yy718; +-yy721: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych <= '(') { +- if (yych <= 0x00) goto yy718; +- if (yych <= '\'') goto yy750; +- goto yy718; +- } else { +- if (yych <= 0x7F) goto yy750; +- if (yych <= 0xC1) goto yy718; +- if (yych <= 0xF4) goto yy750; +- goto yy718; +- } +-yy722: +- yych = *++p; +-yy723: +- if (yybm[0+yych] & 16) { +- goto yy722; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy724; +- if (yych <= '"') goto yy725; +- goto yy727; +- } else { +- if (yych <= 0xC1) goto yy724; +- if (yych <= 0xDF) goto yy729; +- goto yy730; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy732; +- goto yy731; +- } else { +- if (yych <= 0xF0) goto yy733; +- if (yych <= 0xF3) goto yy734; +- if (yych <= 0xF4) goto yy735; +- } +- } +-yy724: +- p = marker; +- if (yyaccept <= 1) { +- if (yyaccept == 0) { +- goto yy718; +- } else { +- goto yy726; +- } +- } else { +- if (yyaccept == 2) { +- goto yy739; +- } else { +- goto yy752; +- } +- } +-yy725: +- ++p; +-yy726: +- { return (bufsize_t)(p - start); } +-yy727: +- yych = *++p; +- if (yybm[0+yych] & 16) { +- goto yy722; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy724; +- if (yych <= '"') goto yy762; +- goto yy727; +- } else { +- if (yych <= 0xC1) goto yy724; +- if (yych >= 0xE0) goto yy730; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy732; +- goto yy731; +- } else { +- if (yych <= 0xF0) goto yy733; +- if (yych <= 0xF3) goto yy734; +- if (yych <= 0xF4) goto yy735; +- goto yy724; +- } +- } +-yy729: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy722; +- goto yy724; +-yy730: +- yych = *++p; +- if (yych <= 0x9F) goto yy724; +- if (yych <= 0xBF) goto yy729; +- goto yy724; +-yy731: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy729; +- goto yy724; +-yy732: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x9F) goto yy729; +- goto yy724; +-yy733: +- yych = *++p; +- if (yych <= 0x8F) goto yy724; +- if (yych <= 0xBF) goto yy731; +- goto yy724; +-yy734: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy731; +- goto yy724; +-yy735: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x8F) goto yy731; +- goto yy724; +-yy736: +- yych = *++p; +-yy737: +- if (yybm[0+yych] & 64) { +- goto yy736; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy724; +- if (yych >= '(') goto yy740; +- } else { +- if (yych <= 0xC1) goto yy724; +- if (yych <= 0xDF) goto yy742; +- goto yy743; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy745; +- goto yy744; +- } else { +- if (yych <= 0xF0) goto yy746; +- if (yych <= 0xF3) goto yy747; +- if (yych <= 0xF4) goto yy748; +- goto yy724; +- } +- } +-yy738: +- ++p; +-yy739: +- { return (bufsize_t)(p - start); } +-yy740: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy736; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy724; +- if (yych <= '\'') goto yy763; +- goto yy740; +- } else { +- if (yych <= 0xC1) goto yy724; +- if (yych >= 0xE0) goto yy743; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy745; +- goto yy744; +- } else { +- if (yych <= 0xF0) goto yy746; +- if (yych <= 0xF3) goto yy747; +- if (yych <= 0xF4) goto yy748; +- goto yy724; +- } +- } +-yy742: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy736; +- goto yy724; +-yy743: +- yych = *++p; +- if (yych <= 0x9F) goto yy724; +- if (yych <= 0xBF) goto yy742; +- goto yy724; +-yy744: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy742; +- goto yy724; +-yy745: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x9F) goto yy742; +- goto yy724; +-yy746: +- yych = *++p; +- if (yych <= 0x8F) goto yy724; +- if (yych <= 0xBF) goto yy744; +- goto yy724; +-yy747: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy744; +- goto yy724; +-yy748: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x8F) goto yy744; +- goto yy724; +-yy749: +- yych = *++p; +-yy750: +- if (yybm[0+yych] & 128) { +- goto yy749; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= '(') goto yy724; +- if (yych >= '*') goto yy753; +- } else { +- if (yych <= 0xC1) goto yy724; +- if (yych <= 0xDF) goto yy755; +- goto yy756; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy758; +- goto yy757; +- } else { +- if (yych <= 0xF0) goto yy759; +- if (yych <= 0xF3) goto yy760; +- if (yych <= 0xF4) goto yy761; +- goto yy724; +- } +- } +-yy751: +- ++p; +-yy752: +- { return (bufsize_t)(p - start); } +-yy753: +- yych = *++p; +- if (yych <= 0xDF) { +- if (yych <= '[') { +- if (yych <= 0x00) goto yy724; +- if (yych == ')') goto yy764; +- goto yy749; +- } else { +- if (yych <= '\\') goto yy753; +- if (yych <= 0x7F) goto yy749; +- if (yych <= 0xC1) goto yy724; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) goto yy756; +- if (yych == 0xED) goto yy758; +- goto yy757; +- } else { +- if (yych <= 0xF0) goto yy759; +- if (yych <= 0xF3) goto yy760; +- if (yych <= 0xF4) goto yy761; +- goto yy724; +- } +- } +-yy755: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy749; +- goto yy724; +-yy756: +- yych = *++p; +- if (yych <= 0x9F) goto yy724; +- if (yych <= 0xBF) goto yy755; +- goto yy724; +-yy757: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy755; +- goto yy724; +-yy758: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x9F) goto yy755; +- goto yy724; +-yy759: +- yych = *++p; +- if (yych <= 0x8F) goto yy724; +- if (yych <= 0xBF) goto yy757; +- goto yy724; +-yy760: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0xBF) goto yy757; +- goto yy724; +-yy761: +- yych = *++p; +- if (yych <= 0x7F) goto yy724; +- if (yych <= 0x8F) goto yy757; +- goto yy724; +-yy762: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 16) { +- goto yy722; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy726; +- if (yych <= '"') goto yy725; +- goto yy727; +- } else { +- if (yych <= 0xC1) goto yy726; +- if (yych <= 0xDF) goto yy729; +- goto yy730; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy732; +- goto yy731; +- } else { +- if (yych <= 0xF0) goto yy733; +- if (yych <= 0xF3) goto yy734; +- if (yych <= 0xF4) goto yy735; +- goto yy726; +- } +- } +-yy763: +- yyaccept = 2; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy736; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= 0x00) goto yy739; +- if (yych <= '\'') goto yy738; +- goto yy740; +- } else { +- if (yych <= 0xC1) goto yy739; +- if (yych <= 0xDF) goto yy742; +- goto yy743; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy745; +- goto yy744; +- } else { +- if (yych <= 0xF0) goto yy746; +- if (yych <= 0xF3) goto yy747; +- if (yych <= 0xF4) goto yy748; +- goto yy739; +- } +- } +-yy764: +- yyaccept = 3; +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy749; +- } +- if (yych <= 0xE0) { +- if (yych <= '\\') { +- if (yych <= '(') goto yy752; +- if (yych <= ')') goto yy751; +- goto yy753; +- } else { +- if (yych <= 0xC1) goto yy752; +- if (yych <= 0xDF) goto yy755; +- goto yy756; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych == 0xED) goto yy758; +- goto yy757; +- } else { +- if (yych <= 0xF0) goto yy759; +- if (yych <= 0xF3) goto yy760; +- if (yych <= 0xF4) goto yy761; +- goto yy752; +- } +- } +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 <= '&') { ++ if (yych == '"') ++ goto yy643; ++ } else { ++ if (yych <= '\'') ++ goto yy644; ++ if (yych <= '(') ++ goto yy645; ++ } ++ ++p; ++ yy642 : { return 0; } ++ yy643: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x00) ++ goto yy642; ++ if (yych <= 0x7F) ++ goto yy647; ++ if (yych <= 0xC1) ++ goto yy642; ++ if (yych <= 0xF4) ++ goto yy647; ++ goto yy642; ++ yy644: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= 0x00) ++ goto yy642; ++ if (yych <= 0x7F) ++ goto yy660; ++ if (yych <= 0xC1) ++ goto yy642; ++ if (yych <= 0xF4) ++ goto yy660; ++ goto yy642; ++ yy645: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych <= '(') { ++ if (yych <= 0x00) ++ goto yy642; ++ if (yych <= '\'') ++ goto yy672; ++ goto yy642; ++ } else { ++ if (yych <= 0x7F) ++ goto yy672; ++ if (yych <= 0xC1) ++ goto yy642; ++ if (yych <= 0xF4) ++ goto yy672; ++ goto yy642; ++ } ++ yy646: ++ yych = *++p; ++ yy647: ++ if (yybm[0 + yych] & 16) { ++ goto yy646; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy648; ++ if (yych <= '"') ++ goto yy649; ++ goto yy651; ++ } else { ++ if (yych <= 0xC1) ++ goto yy648; ++ if (yych <= 0xDF) ++ goto yy652; ++ goto yy653; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy655; ++ goto yy654; ++ } else { ++ if (yych <= 0xF0) ++ goto yy656; ++ if (yych <= 0xF3) ++ goto yy657; ++ if (yych <= 0xF4) ++ goto yy658; ++ } ++ } ++ yy648: ++ p = marker; ++ if (yyaccept <= 1) { ++ if (yyaccept == 0) { ++ goto yy642; ++ } else { ++ goto yy650; ++ } ++ } else { ++ if (yyaccept == 2) { ++ goto yy662; ++ } else { ++ goto yy674; ++ } ++ } ++ yy649: ++ ++p; ++ yy650 : { return (bufsize_t)(p - start); } ++ yy651: ++ yych = *++p; ++ if (yybm[0 + yych] & 16) { ++ goto yy646; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy648; ++ if (yych <= '"') ++ goto yy683; ++ goto yy651; ++ } else { ++ if (yych <= 0xC1) ++ goto yy648; ++ if (yych >= 0xE0) ++ goto yy653; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy655; ++ goto yy654; ++ } else { ++ if (yych <= 0xF0) ++ goto yy656; ++ if (yych <= 0xF3) ++ goto yy657; ++ if (yych <= 0xF4) ++ goto yy658; ++ goto yy648; ++ } ++ } ++ yy652: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy646; ++ goto yy648; ++ yy653: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy652; ++ goto yy648; ++ yy654: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy652; ++ goto yy648; ++ yy655: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x9F) ++ goto yy652; ++ goto yy648; ++ yy656: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy654; ++ goto yy648; ++ yy657: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy654; ++ goto yy648; ++ yy658: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x8F) ++ goto yy654; ++ goto yy648; ++ yy659: ++ yych = *++p; ++ yy660: ++ if (yybm[0 + yych] & 64) { ++ goto yy659; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy648; ++ if (yych >= '(') ++ goto yy663; ++ } else { ++ if (yych <= 0xC1) ++ goto yy648; ++ if (yych <= 0xDF) ++ goto yy664; ++ goto yy665; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy667; ++ goto yy666; ++ } else { ++ if (yych <= 0xF0) ++ goto yy668; ++ if (yych <= 0xF3) ++ goto yy669; ++ if (yych <= 0xF4) ++ goto yy670; ++ goto yy648; ++ } ++ } ++ yy661: ++ ++p; ++ yy662 : { return (bufsize_t)(p - start); } ++ yy663: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy659; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy648; ++ if (yych <= '\'') ++ goto yy684; ++ goto yy663; ++ } else { ++ if (yych <= 0xC1) ++ goto yy648; ++ if (yych >= 0xE0) ++ goto yy665; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy667; ++ goto yy666; ++ } else { ++ if (yych <= 0xF0) ++ goto yy668; ++ if (yych <= 0xF3) ++ goto yy669; ++ if (yych <= 0xF4) ++ goto yy670; ++ goto yy648; ++ } ++ } ++ yy664: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy659; ++ goto yy648; ++ yy665: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy664; ++ goto yy648; ++ yy666: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy664; ++ goto yy648; ++ yy667: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x9F) ++ goto yy664; ++ goto yy648; ++ yy668: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy666; ++ goto yy648; ++ yy669: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy666; ++ goto yy648; ++ yy670: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x8F) ++ goto yy666; ++ goto yy648; ++ yy671: ++ yych = *++p; ++ yy672: ++ if (yybm[0 + yych] & 128) { ++ goto yy671; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= '(') ++ goto yy648; ++ if (yych >= '*') ++ goto yy675; ++ } else { ++ if (yych <= 0xC1) ++ goto yy648; ++ if (yych <= 0xDF) ++ goto yy676; ++ goto yy677; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy679; ++ goto yy678; ++ } else { ++ if (yych <= 0xF0) ++ goto yy680; ++ if (yych <= 0xF3) ++ goto yy681; ++ if (yych <= 0xF4) ++ goto yy682; ++ goto yy648; ++ } ++ } ++ yy673: ++ ++p; ++ yy674 : { return (bufsize_t)(p - start); } ++ yy675: ++ yych = *++p; ++ if (yych <= 0xDF) { ++ if (yych <= '[') { ++ if (yych <= 0x00) ++ goto yy648; ++ if (yych == ')') ++ goto yy685; ++ goto yy671; ++ } else { ++ if (yych <= '\\') ++ goto yy675; ++ if (yych <= 0x7F) ++ goto yy671; ++ if (yych <= 0xC1) ++ goto yy648; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) ++ goto yy677; ++ if (yych == 0xED) ++ goto yy679; ++ goto yy678; ++ } else { ++ if (yych <= 0xF0) ++ goto yy680; ++ if (yych <= 0xF3) ++ goto yy681; ++ if (yych <= 0xF4) ++ goto yy682; ++ goto yy648; ++ } ++ } ++ yy676: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy671; ++ goto yy648; ++ yy677: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy676; ++ goto yy648; ++ yy678: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy676; ++ goto yy648; ++ yy679: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x9F) ++ goto yy676; ++ goto yy648; ++ yy680: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy678; ++ goto yy648; ++ yy681: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0xBF) ++ goto yy678; ++ goto yy648; ++ yy682: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy648; ++ if (yych <= 0x8F) ++ goto yy678; ++ goto yy648; ++ yy683: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 16) { ++ goto yy646; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy650; ++ if (yych <= '"') ++ goto yy649; ++ goto yy651; ++ } else { ++ if (yych <= 0xC1) ++ goto yy650; ++ if (yych <= 0xDF) ++ goto yy652; ++ goto yy653; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy655; ++ goto yy654; ++ } else { ++ if (yych <= 0xF0) ++ goto yy656; ++ if (yych <= 0xF3) ++ goto yy657; ++ if (yych <= 0xF4) ++ goto yy658; ++ goto yy650; ++ } ++ } ++ yy684: ++ yyaccept = 2; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy659; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= 0x00) ++ goto yy662; ++ if (yych <= '\'') ++ goto yy661; ++ goto yy663; ++ } else { ++ if (yych <= 0xC1) ++ goto yy662; ++ if (yych <= 0xDF) ++ goto yy664; ++ goto yy665; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy667; ++ goto yy666; ++ } else { ++ if (yych <= 0xF0) ++ goto yy668; ++ if (yych <= 0xF3) ++ goto yy669; ++ if (yych <= 0xF4) ++ goto yy670; ++ goto yy662; ++ } ++ } ++ yy685: ++ yyaccept = 3; ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy671; ++ } ++ if (yych <= 0xE0) { ++ if (yych <= '\\') { ++ if (yych <= '(') ++ goto yy674; ++ if (yych <= ')') ++ goto yy673; ++ goto yy675; ++ } else { ++ if (yych <= 0xC1) ++ goto yy674; ++ if (yych <= 0xDF) ++ goto yy676; ++ goto yy677; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych == 0xED) ++ goto yy679; ++ goto yy678; ++ } else { ++ if (yych <= 0xF0) ++ goto yy680; ++ if (yych <= 0xF3) ++ goto yy681; ++ if (yych <= 0xF4) ++ goto yy682; ++ goto yy674; ++ } ++ } ++ } + } + + // 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[] = { +- 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 yy769; +- } +- ++p; +- { return 0; } +-yy769: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy769; +- } +- { return (bufsize_t)(p - start); } +-} ++bufsize_t _scan_spacechars(const unsigned char *p) { ++ const unsigned char *start = p; + ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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 yy687; ++ } ++ ++p; ++ { return 0; } ++ yy687: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy687; ++ } ++ { return (bufsize_t)(p - start); } ++ } + } + + // Match ATX heading start. +-bufsize_t _scan_atx_heading_start(const unsigned char *p) +-{ ++bufsize_t _scan_atx_heading_start(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + +-{ +- unsigned char yych; +- static const unsigned char yybm[] = { +- 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 yy776; +- ++p; +-yy775: +- { return 0; } +-yy776: +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy775; +- if (yych <= '\n') goto yy780; +- goto yy775; +- } else { +- if (yych <= '\r') goto yy780; +- if (yych == '#') goto yy781; +- goto yy775; +- } +-yy777: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +-yy779: +- { return (bufsize_t)(p - start); } +-yy780: +- ++p; +- goto yy779; +-yy781: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy782; +- if (yych <= '\n') goto yy780; +- } else { +- if (yych <= '\r') goto yy780; +- if (yych == '#') goto yy783; +- } +-yy782: +- p = marker; +- goto yy775; +-yy783: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy782; +- if (yych <= '\n') goto yy780; +- goto yy782; +- } else { +- if (yych <= '\r') goto yy780; +- if (yych != '#') goto yy782; +- } +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy782; +- if (yych <= '\n') goto yy780; +- goto yy782; +- } else { +- if (yych <= '\r') goto yy780; +- if (yych != '#') goto yy782; +- } +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy782; +- if (yych <= '\n') goto yy780; +- goto yy782; +- } else { +- if (yych <= '\r') goto yy780; +- if (yych != '#') goto yy782; +- } +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy777; +- } +- if (yych <= 0x08) goto yy782; +- if (yych <= '\n') goto yy780; +- if (yych == '\r') goto yy780; +- goto yy782; +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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 yy690; ++ ++p; ++ yy689 : { return 0; } ++ yy690: ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy689; ++ if (yych <= '\n') ++ goto yy693; ++ goto yy689; ++ } else { ++ if (yych <= '\r') ++ goto yy693; ++ if (yych == '#') ++ goto yy694; ++ goto yy689; ++ } ++ yy691: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ yy692 : { return (bufsize_t)(p - start); } ++ yy693: ++ ++p; ++ goto yy692; ++ yy694: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy695; ++ if (yych <= '\n') ++ goto yy693; ++ } else { ++ if (yych <= '\r') ++ goto yy693; ++ if (yych == '#') ++ goto yy696; ++ } ++ yy695: ++ p = marker; ++ goto yy689; ++ yy696: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy695; ++ if (yych <= '\n') ++ goto yy693; ++ goto yy695; ++ } else { ++ if (yych <= '\r') ++ goto yy693; ++ if (yych != '#') ++ goto yy695; ++ } ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy695; ++ if (yych <= '\n') ++ goto yy693; ++ goto yy695; ++ } else { ++ if (yych <= '\r') ++ goto yy693; ++ if (yych != '#') ++ goto yy695; ++ } ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy695; ++ if (yych <= '\n') ++ goto yy693; ++ goto yy695; ++ } else { ++ if (yych <= '\r') ++ goto yy693; ++ if (yych != '#') ++ goto yy695; ++ } ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy691; ++ } ++ if (yych <= 0x08) ++ goto yy695; ++ if (yych <= '\n') ++ goto yy693; ++ if (yych == '\r') ++ goto yy693; ++ goto yy695; ++ } + } + + // 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) +-{ ++bufsize_t _scan_setext_heading_line(const unsigned char *p) { + const unsigned char *marker = NULL; + +-{ +- unsigned char yych; +- static const unsigned char yybm[] = { +- 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 yy791; +- if (yych == '=') goto yy792; +- ++p; +-yy790: +- { return 0; } +-yy791: +- yych = *(marker = ++p); +- if (yybm[0+yych] & 64) { +- goto yy798; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy790; +- if (yych <= '\n') goto yy794; +- goto yy790; +- } else { +- if (yych <= '\r') goto yy794; +- if (yych == ' ') goto yy794; +- goto yy790; +- } +-yy792: +- yych = *(marker = ++p); +- if (yybm[0+yych] & 128) { +- goto yy804; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy790; +- if (yych <= '\n') goto yy801; +- goto yy790; +- } else { +- if (yych <= '\r') goto yy801; +- if (yych == ' ') goto yy801; +- goto yy790; +- } +-yy793: +- yych = *++p; +-yy794: +- if (yybm[0+yych] & 32) { +- goto yy793; +- } +- if (yych <= 0x08) goto yy795; +- if (yych <= '\n') goto yy796; +- if (yych == '\r') goto yy796; +-yy795: +- p = marker; +- goto yy790; +-yy796: +- ++p; +- { return 2; } +-yy798: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy793; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy795; +- if (yych <= '\n') goto yy796; +- goto yy795; +- } else { +- if (yych <= '\r') goto yy796; +- if (yych == '-') goto yy798; +- goto yy795; +- } +-yy800: +- yych = *++p; +-yy801: +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy795; +- if (yych <= '\t') goto yy800; +- if (yych >= '\v') goto yy795; +- } else { +- if (yych <= '\r') goto yy802; +- if (yych == ' ') goto yy800; +- goto yy795; +- } +-yy802: +- ++p; +- { return 1; } +-yy804: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy804; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy795; +- if (yych <= '\t') goto yy800; +- if (yych <= '\n') goto yy802; +- goto yy795; +- } else { +- if (yych <= '\r') goto yy802; +- if (yych == ' ') goto yy800; +- goto yy795; +- } +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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 yy699; ++ if (yych == '=') ++ goto yy700; ++ ++p; ++ yy698 : { return 0; } ++ yy699: ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 64) { ++ goto yy705; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy698; ++ if (yych <= '\n') ++ goto yy702; ++ goto yy698; ++ } else { ++ if (yych <= '\r') ++ goto yy702; ++ if (yych == ' ') ++ goto yy702; ++ goto yy698; ++ } ++ yy700: ++ yych = *(marker = ++p); ++ if (yybm[0 + yych] & 128) { ++ goto yy709; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy698; ++ if (yych <= '\n') ++ goto yy707; ++ goto yy698; ++ } else { ++ if (yych <= '\r') ++ goto yy707; ++ if (yych == ' ') ++ goto yy707; ++ goto yy698; ++ } ++ yy701: ++ yych = *++p; ++ yy702: ++ if (yybm[0 + yych] & 32) { ++ goto yy701; ++ } ++ if (yych <= 0x08) ++ goto yy703; ++ if (yych <= '\n') ++ goto yy704; ++ if (yych == '\r') ++ goto yy704; ++ yy703: ++ p = marker; ++ goto yy698; ++ yy704: ++ ++p; ++ { return 2; } ++ yy705: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy701; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy703; ++ if (yych <= '\n') ++ goto yy704; ++ goto yy703; ++ } else { ++ if (yych <= '\r') ++ goto yy704; ++ if (yych == '-') ++ goto yy705; ++ goto yy703; ++ } ++ yy706: ++ yych = *++p; ++ yy707: ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy703; ++ if (yych <= '\t') ++ goto yy706; ++ if (yych >= '\v') ++ goto yy703; ++ } else { ++ if (yych <= '\r') ++ goto yy708; ++ if (yych == ' ') ++ goto yy706; ++ goto yy703; ++ } ++ yy708: ++ ++p; ++ { return 1; } ++ yy709: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy709; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy703; ++ if (yych <= '\t') ++ goto yy706; ++ if (yych <= '\n') ++ goto yy708; ++ goto yy703; ++ } else { ++ if (yych <= '\r') ++ goto yy708; ++ if (yych == ' ') ++ goto yy706; ++ goto yy703; ++ } ++ } + } + + // Scan an opening code fence. +-bufsize_t _scan_open_code_fence(const unsigned char *p) +-{ ++bufsize_t _scan_open_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + +-{ +- unsigned char yych; +- static const unsigned char yybm[] = { +- 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 yy810; +- if (yych == '~') goto yy811; +- ++p; +-yy809: +- { return 0; } +-yy810: +- yych = *(marker = ++p); +- if (yych == '`') goto yy812; +- goto yy809; +-yy811: +- yych = *(marker = ++p); +- if (yych == '~') goto yy814; +- goto yy809; +-yy812: +- yych = *++p; +- if (yybm[0+yych] & 16) { +- goto yy815; +- } +-yy813: +- p = marker; +- goto yy809; +-yy814: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy817; +- } +- goto yy813; +-yy815: +- yych = *++p; +- if (yybm[0+yych] & 16) { +- goto yy815; +- } +- if (yych <= 0xDF) { +- if (yych <= '\f') { +- if (yych <= 0x00) goto yy813; +- if (yych == '\n') { +- marker = p; +- goto yy821; +- } +- marker = p; +- goto yy819; +- } else { +- if (yych <= '\r') { +- marker = p; +- goto yy821; +- } +- if (yych <= 0x7F) { +- marker = p; +- goto yy819; +- } +- if (yych <= 0xC1) goto yy813; +- marker = p; +- goto yy823; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) { +- marker = p; +- goto yy824; +- } +- if (yych == 0xED) { +- marker = p; +- goto yy826; +- } +- marker = p; +- goto yy825; +- } else { +- if (yych <= 0xF0) { +- marker = p; +- goto yy827; +- } +- if (yych <= 0xF3) { +- marker = p; +- goto yy828; +- } +- if (yych <= 0xF4) { +- marker = p; +- goto yy829; +- } +- goto yy813; +- } +- } +-yy817: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy817; +- } +- if (yych <= 0xDF) { +- if (yych <= '\f') { +- if (yych <= 0x00) goto yy813; +- if (yych == '\n') { +- marker = p; +- goto yy832; +- } +- marker = p; +- goto yy830; +- } else { +- if (yych <= '\r') { +- marker = p; +- goto yy832; +- } +- if (yych <= 0x7F) { +- marker = p; +- goto yy830; +- } +- if (yych <= 0xC1) goto yy813; +- marker = p; +- goto yy834; +- } +- } else { +- if (yych <= 0xEF) { +- if (yych <= 0xE0) { +- marker = p; +- goto yy835; +- } +- if (yych == 0xED) { +- marker = p; +- goto yy837; +- } +- marker = p; +- goto yy836; +- } else { +- if (yych <= 0xF0) { +- marker = p; +- goto yy838; +- } +- if (yych <= 0xF3) { +- marker = p; +- goto yy839; +- } +- if (yych <= 0xF4) { +- marker = p; +- goto yy840; +- } +- goto yy813; +- } +- } +-yy819: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy819; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy813; +- if (yych >= 0x0E) goto yy813; +- } else { +- if (yych <= 0xDF) goto yy823; +- if (yych <= 0xE0) goto yy824; +- goto yy825; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy826; +- if (yych <= 0xEF) goto yy825; +- goto yy827; +- } else { +- if (yych <= 0xF3) goto yy828; +- if (yych <= 0xF4) goto yy829; +- goto yy813; +- } +- } +-yy821: +- ++p; +- p = marker; +- { return (bufsize_t)(p - start); } +-yy823: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy819; +- goto yy813; +-yy824: +- yych = *++p; +- if (yych <= 0x9F) goto yy813; +- if (yych <= 0xBF) goto yy823; +- goto yy813; +-yy825: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy823; +- goto yy813; +-yy826: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0x9F) goto yy823; +- goto yy813; +-yy827: +- yych = *++p; +- if (yych <= 0x8F) goto yy813; +- if (yych <= 0xBF) goto yy825; +- goto yy813; +-yy828: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy825; +- goto yy813; +-yy829: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0x8F) goto yy825; +- goto yy813; +-yy830: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy830; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= 0x00) goto yy813; +- if (yych >= 0x0E) goto yy813; +- } else { +- if (yych <= 0xDF) goto yy834; +- if (yych <= 0xE0) goto yy835; +- goto yy836; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy837; +- if (yych <= 0xEF) goto yy836; +- goto yy838; +- } else { +- if (yych <= 0xF3) goto yy839; +- if (yych <= 0xF4) goto yy840; +- goto yy813; +- } +- } +-yy832: +- ++p; +- p = marker; +- { return (bufsize_t)(p - start); } +-yy834: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy830; +- goto yy813; +-yy835: +- yych = *++p; +- if (yych <= 0x9F) goto yy813; +- if (yych <= 0xBF) goto yy834; +- goto yy813; +-yy836: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy834; +- goto yy813; +-yy837: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0x9F) goto yy834; +- goto yy813; +-yy838: +- yych = *++p; +- if (yych <= 0x8F) goto yy813; +- if (yych <= 0xBF) goto yy836; +- goto yy813; +-yy839: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0xBF) goto yy836; +- goto yy813; +-yy840: +- yych = *++p; +- if (yych <= 0x7F) goto yy813; +- if (yych <= 0x8F) goto yy836; +- goto yy813; +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy712; ++ if (yych == '~') ++ goto yy713; ++ ++p; ++ yy711 : { return 0; } ++ yy712: ++ yych = *(marker = ++p); ++ if (yych == '`') ++ goto yy714; ++ goto yy711; ++ yy713: ++ yych = *(marker = ++p); ++ if (yych == '~') ++ goto yy716; ++ goto yy711; ++ yy714: ++ yych = *++p; ++ if (yybm[0 + yych] & 16) { ++ goto yy717; ++ } ++ yy715: ++ p = marker; ++ goto yy711; ++ yy716: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy718; ++ } ++ goto yy715; ++ yy717: ++ yych = *++p; ++ if (yybm[0 + yych] & 16) { ++ goto yy717; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '\f') { ++ if (yych <= 0x00) ++ goto yy715; ++ if (yych == '\n') { ++ marker = p; ++ goto yy720; ++ } ++ marker = p; ++ goto yy719; ++ } else { ++ if (yych <= '\r') { ++ marker = p; ++ goto yy720; ++ } ++ if (yych <= 0x7F) { ++ marker = p; ++ goto yy719; ++ } ++ if (yych <= 0xC1) ++ goto yy715; ++ marker = p; ++ goto yy721; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) { ++ marker = p; ++ goto yy722; ++ } ++ if (yych == 0xED) { ++ marker = p; ++ goto yy724; ++ } ++ marker = p; ++ goto yy723; ++ } else { ++ if (yych <= 0xF0) { ++ marker = p; ++ goto yy725; ++ } ++ if (yych <= 0xF3) { ++ marker = p; ++ goto yy726; ++ } ++ if (yych <= 0xF4) { ++ marker = p; ++ goto yy727; ++ } ++ goto yy715; ++ } ++ } ++ yy718: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy718; ++ } ++ if (yych <= 0xDF) { ++ if (yych <= '\f') { ++ if (yych <= 0x00) ++ goto yy715; ++ if (yych == '\n') { ++ marker = p; ++ goto yy729; ++ } ++ marker = p; ++ goto yy728; ++ } else { ++ if (yych <= '\r') { ++ marker = p; ++ goto yy729; ++ } ++ if (yych <= 0x7F) { ++ marker = p; ++ goto yy728; ++ } ++ if (yych <= 0xC1) ++ goto yy715; ++ marker = p; ++ goto yy730; ++ } ++ } else { ++ if (yych <= 0xEF) { ++ if (yych <= 0xE0) { ++ marker = p; ++ goto yy731; ++ } ++ if (yych == 0xED) { ++ marker = p; ++ goto yy733; ++ } ++ marker = p; ++ goto yy732; ++ } else { ++ if (yych <= 0xF0) { ++ marker = p; ++ goto yy734; ++ } ++ if (yych <= 0xF3) { ++ marker = p; ++ goto yy735; ++ } ++ if (yych <= 0xF4) { ++ marker = p; ++ goto yy736; ++ } ++ goto yy715; ++ } ++ } ++ yy719: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy719; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy715; ++ if (yych >= 0x0E) ++ goto yy715; ++ } else { ++ if (yych <= 0xDF) ++ goto yy721; ++ if (yych <= 0xE0) ++ goto yy722; ++ goto yy723; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy724; ++ if (yych <= 0xEF) ++ goto yy723; ++ goto yy725; ++ } else { ++ if (yych <= 0xF3) ++ goto yy726; ++ if (yych <= 0xF4) ++ goto yy727; ++ goto yy715; ++ } ++ } ++ yy720: ++ ++p; ++ p = marker; ++ { return (bufsize_t)(p - start); } ++ yy721: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy719; ++ goto yy715; ++ yy722: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy721; ++ goto yy715; ++ yy723: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy721; ++ goto yy715; ++ yy724: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0x9F) ++ goto yy721; ++ goto yy715; ++ yy725: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy723; ++ goto yy715; ++ yy726: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy723; ++ goto yy715; ++ yy727: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0x8F) ++ goto yy723; ++ goto yy715; ++ yy728: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy728; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= 0x00) ++ goto yy715; ++ if (yych >= 0x0E) ++ goto yy715; ++ } else { ++ if (yych <= 0xDF) ++ goto yy730; ++ if (yych <= 0xE0) ++ goto yy731; ++ goto yy732; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy733; ++ if (yych <= 0xEF) ++ goto yy732; ++ goto yy734; ++ } else { ++ if (yych <= 0xF3) ++ goto yy735; ++ if (yych <= 0xF4) ++ goto yy736; ++ goto yy715; ++ } ++ } ++ yy729: ++ ++p; ++ p = marker; ++ { return (bufsize_t)(p - start); } ++ yy730: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy728; ++ goto yy715; ++ yy731: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy730; ++ goto yy715; ++ yy732: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy730; ++ goto yy715; ++ yy733: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0x9F) ++ goto yy730; ++ goto yy715; ++ yy734: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy732; ++ goto yy715; ++ yy735: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0xBF) ++ goto yy732; ++ goto yy715; ++ yy736: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy715; ++ if (yych <= 0x8F) ++ goto yy732; ++ goto yy715; ++ } + } + + // Scan a closing code fence with length at least len. +-bufsize_t _scan_close_code_fence(const unsigned char *p) +-{ ++bufsize_t _scan_close_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + +-{ +- unsigned char yych; +- static const unsigned char yybm[] = { +- 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 yy845; +- if (yych == '~') goto yy846; +- ++p; +-yy844: +- { return 0; } +-yy845: +- yych = *(marker = ++p); +- if (yych == '`') goto yy847; +- goto yy844; +-yy846: +- yych = *(marker = ++p); +- if (yych == '~') goto yy849; +- goto yy844; +-yy847: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy850; +- } +-yy848: +- p = marker; +- goto yy844; +-yy849: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy852; +- } +- goto yy848; +-yy850: +- yych = *++p; +- if (yybm[0+yych] & 32) { +- goto yy850; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy848; +- if (yych <= '\t') { +- marker = p; +- goto yy854; +- } +- if (yych <= '\n') { +- marker = p; +- goto yy856; +- } +- goto yy848; +- } else { +- if (yych <= '\r') { +- marker = p; +- goto yy856; +- } +- if (yych == ' ') { +- marker = p; +- goto yy854; +- } +- goto yy848; +- } +-yy852: +- yych = *++p; +- if (yybm[0+yych] & 64) { +- goto yy852; +- } +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy848; +- if (yych <= '\t') { +- marker = p; +- goto yy858; +- } +- if (yych <= '\n') { +- marker = p; +- goto yy860; +- } +- goto yy848; +- } else { +- if (yych <= '\r') { +- marker = p; +- goto yy860; +- } +- if (yych == ' ') { +- marker = p; +- goto yy858; +- } +- goto yy848; +- } +-yy854: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy854; +- } +- if (yych <= 0x08) goto yy848; +- if (yych <= '\n') goto yy856; +- if (yych != '\r') goto yy848; +-yy856: +- ++p; +- p = marker; +- { return (bufsize_t)(p - start); } +-yy858: +- yych = *++p; +- if (yych <= '\f') { +- if (yych <= 0x08) goto yy848; +- if (yych <= '\t') goto yy858; +- if (yych >= '\v') goto yy848; +- } else { +- if (yych <= '\r') goto yy860; +- if (yych == ' ') goto yy858; +- goto yy848; +- } +-yy860: +- ++p; +- p = marker; +- { return (bufsize_t)(p - start); } +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 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 yy739; ++ if (yych == '~') ++ goto yy740; ++ ++p; ++ yy738 : { return 0; } ++ yy739: ++ yych = *(marker = ++p); ++ if (yych == '`') ++ goto yy741; ++ goto yy738; ++ yy740: ++ yych = *(marker = ++p); ++ if (yych == '~') ++ goto yy743; ++ goto yy738; ++ yy741: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy744; ++ } ++ yy742: ++ p = marker; ++ goto yy738; ++ yy743: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy745; ++ } ++ goto yy742; ++ yy744: ++ yych = *++p; ++ if (yybm[0 + yych] & 32) { ++ goto yy744; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy742; ++ if (yych <= '\t') { ++ marker = p; ++ goto yy746; ++ } ++ if (yych <= '\n') { ++ marker = p; ++ goto yy747; ++ } ++ goto yy742; ++ } else { ++ if (yych <= '\r') { ++ marker = p; ++ goto yy747; ++ } ++ if (yych == ' ') { ++ marker = p; ++ goto yy746; ++ } ++ goto yy742; ++ } ++ yy745: ++ yych = *++p; ++ if (yybm[0 + yych] & 64) { ++ goto yy745; ++ } ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy742; ++ if (yych <= '\t') { ++ marker = p; ++ goto yy748; ++ } ++ if (yych <= '\n') { ++ marker = p; ++ goto yy749; ++ } ++ goto yy742; ++ } else { ++ if (yych <= '\r') { ++ marker = p; ++ goto yy749; ++ } ++ if (yych == ' ') { ++ marker = p; ++ goto yy748; ++ } ++ goto yy742; ++ } ++ yy746: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy746; ++ } ++ if (yych <= 0x08) ++ goto yy742; ++ if (yych <= '\n') ++ goto yy747; ++ if (yych != '\r') ++ goto yy742; ++ yy747: ++ ++p; ++ p = marker; ++ { return (bufsize_t)(p - start); } ++ yy748: ++ yych = *++p; ++ if (yych <= '\f') { ++ if (yych <= 0x08) ++ goto yy742; ++ if (yych <= '\t') ++ goto yy748; ++ if (yych >= '\v') ++ goto yy742; ++ } else { ++ if (yych <= '\r') ++ goto yy749; ++ if (yych == ' ') ++ goto yy748; ++ goto yy742; ++ } ++ yy749: ++ ++p; ++ p = marker; ++ { return (bufsize_t)(p - start); } ++ } + } + + // Scans an entity. + // Returns number of chars matched. +-bufsize_t _scan_entity(const unsigned char *p) +-{ ++bufsize_t _scan_entity(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + +-{ +- unsigned char yych; +- yych = *p; +- if (yych == '&') goto yy866; +- ++p; +-yy865: +- { return 0; } +-yy866: +- yych = *(marker = ++p); +- if (yych <= '@') { +- if (yych != '#') goto yy865; +- } else { +- if (yych <= 'Z') goto yy869; +- if (yych <= '`') goto yy865; +- if (yych <= 'z') goto yy869; +- goto yy865; +- } +- yych = *++p; +- if (yych <= 'W') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy870; +- } else { +- if (yych <= 'X') goto yy871; +- if (yych == 'x') goto yy871; +- } +-yy868: +- p = marker; +- goto yy865; +-yy869: +- yych = *++p; +- if (yych <= '@') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy872; +- goto yy868; +- } else { +- if (yych <= 'Z') goto yy872; +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy872; +- goto yy868; +- } +-yy870: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy873; +- if (yych == ';') goto yy874; +- goto yy868; +-yy871: +- yych = *++p; +- if (yych <= '@') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy876; +- goto yy868; +- } else { +- if (yych <= 'F') goto yy876; +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy876; +- goto yy868; +- } +-yy872: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy877; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy877; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy877; +- goto yy868; +- } +- } +-yy873: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy878; +- if (yych != ';') goto yy868; +-yy874: +- ++p; +- { return (bufsize_t)(p - start); } +-yy876: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy879; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'F') { +- if (yych <= '@') goto yy868; +- goto yy879; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy879; +- goto yy868; +- } +- } +-yy877: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy880; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy880; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy880; +- goto yy868; +- } +- } +-yy878: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy881; +- if (yych == ';') goto yy874; +- goto yy868; +-yy879: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy882; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'F') { +- if (yych <= '@') goto yy868; +- goto yy882; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy882; +- goto yy868; +- } +- } +-yy880: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy883; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy883; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy883; +- goto yy868; +- } +- } +-yy881: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy884; +- if (yych == ';') goto yy874; +- goto yy868; +-yy882: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy885; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'F') { +- if (yych <= '@') goto yy868; +- goto yy885; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy885; +- goto yy868; +- } +- } +-yy883: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy886; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy886; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy886; +- goto yy868; +- } +- } +-yy884: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy887; +- if (yych == ';') goto yy874; +- goto yy868; +-yy885: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy888; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'F') { +- if (yych <= '@') goto yy868; +- goto yy888; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy888; +- goto yy868; +- } +- } +-yy886: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy889; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy889; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy889; +- goto yy868; +- } +- } +-yy887: +- yych = *++p; +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy890; +- if (yych == ';') goto yy874; +- goto yy868; +-yy888: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy890; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'F') { +- if (yych <= '@') goto yy868; +- goto yy890; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'f') goto yy890; +- goto yy868; +- } +- } +-yy889: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy891; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy891; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy891; +- goto yy868; +- } +- } +-yy890: +- yych = *++p; +- if (yych == ';') goto yy874; +- goto yy868; +-yy891: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy892; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy892: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy893; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy893: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy894; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy894: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy895; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy895: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy896; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy896: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy897; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy897: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy898; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy898: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy899; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy899: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy900; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy900: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy901; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy901: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy902; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy902: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy903; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy903: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy904; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy904: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy905; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy905: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy906; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy906: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy907; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy907: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy908; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy908: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy909; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy909: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy910; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy910: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy911; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy911: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy912; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy912: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy913; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy913: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy914; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- } else { +- if (yych <= '`') goto yy868; +- if (yych >= '{') goto yy868; +- } +- } +-yy914: +- yych = *++p; +- if (yych <= ';') { +- if (yych <= '/') goto yy868; +- if (yych <= '9') goto yy890; +- if (yych <= ':') goto yy868; +- goto yy874; +- } else { +- if (yych <= 'Z') { +- if (yych <= '@') goto yy868; +- goto yy890; +- } else { +- if (yych <= '`') goto yy868; +- if (yych <= 'z') goto yy890; +- goto yy868; +- } +- } +-} +- ++ { ++ unsigned char yych; ++ yych = *p; ++ if (yych == '&') ++ goto yy752; ++ ++p; ++ yy751 : { return 0; } ++ yy752: ++ yych = *(marker = ++p); ++ if (yych <= '@') { ++ if (yych != '#') ++ goto yy751; ++ } else { ++ if (yych <= 'Z') ++ goto yy754; ++ if (yych <= '`') ++ goto yy751; ++ if (yych <= 'z') ++ goto yy754; ++ goto yy751; ++ } ++ yych = *++p; ++ if (yych <= 'W') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy755; ++ } else { ++ if (yych <= 'X') ++ goto yy756; ++ if (yych == 'x') ++ goto yy756; ++ } ++ yy753: ++ p = marker; ++ goto yy751; ++ yy754: ++ yych = *++p; ++ if (yych <= '@') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy757; ++ goto yy753; ++ } else { ++ if (yych <= 'Z') ++ goto yy757; ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy757; ++ goto yy753; ++ } ++ yy755: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy758; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy756: ++ yych = *++p; ++ if (yych <= '@') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy760; ++ goto yy753; ++ } else { ++ if (yych <= 'F') ++ goto yy760; ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy760; ++ goto yy753; ++ } ++ yy757: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy761; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy761; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy761; ++ goto yy753; ++ } ++ } ++ yy758: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy762; ++ if (yych != ';') ++ goto yy753; ++ yy759: ++ ++p; ++ { return (bufsize_t)(p - start); } ++ yy760: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy763; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'F') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy763; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy763; ++ goto yy753; ++ } ++ } ++ yy761: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy764; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy764; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy764; ++ goto yy753; ++ } ++ } ++ yy762: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy765; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy763: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy766; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'F') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy766; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy766; ++ goto yy753; ++ } ++ } ++ yy764: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy767; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy767; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy767; ++ goto yy753; ++ } ++ } ++ yy765: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy768; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy766: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy769; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'F') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy769; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy769; ++ goto yy753; ++ } ++ } ++ yy767: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy770; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy770; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy770; ++ goto yy753; ++ } ++ } ++ yy768: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy771; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy769: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy772; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'F') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy772; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy772; ++ goto yy753; ++ } ++ } ++ yy770: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy773; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy773; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy773; ++ goto yy753; ++ } ++ } ++ yy771: ++ yych = *++p; ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy774; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy772: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy774; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'F') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy774; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'f') ++ goto yy774; ++ goto yy753; ++ } ++ } ++ yy773: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy775; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy775; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy775; ++ goto yy753; ++ } ++ } ++ yy774: ++ yych = *++p; ++ if (yych == ';') ++ goto yy759; ++ goto yy753; ++ yy775: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy776; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy776: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy777; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy777: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy778; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy778: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy779; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy779: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy780; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy780: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy781; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy781: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy782; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy782: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy783; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy783: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy784; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy784: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy785; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy785: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy786; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy786: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy787; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy787: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy788; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy788: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy789; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy789: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy790; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy790: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy791; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy791: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy792; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy792: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy793; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy793: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy794; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy794: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy795; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy795: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy796; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy796: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy797; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy797: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy798; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych >= '{') ++ goto yy753; ++ } ++ } ++ yy798: ++ yych = *++p; ++ if (yych <= ';') { ++ if (yych <= '/') ++ goto yy753; ++ if (yych <= '9') ++ goto yy774; ++ if (yych <= ':') ++ goto yy753; ++ goto yy759; ++ } else { ++ if (yych <= 'Z') { ++ if (yych <= '@') ++ goto yy753; ++ goto yy774; ++ } else { ++ if (yych <= '`') ++ goto yy753; ++ if (yych <= 'z') ++ goto yy774; ++ goto yy753; ++ } ++ } ++ } + } + + // 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) +-{ ++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 yy919; +- if (yych >= 'F') goto yy920; +- } else { +- if (yych == 'J') goto yy921; +- if (yych >= 'V') goto yy922; +- } +- } else { +- if (yych <= 'f') { +- if (yych == 'd') goto yy919; +- if (yych >= 'f') goto yy920; +- } else { +- if (yych <= 'j') { +- if (yych >= 'j') goto yy921; +- } else { +- if (yych == 'v') goto yy922; +- } +- } +- } +- ++p; +-yy918: +- { return 0; } +-yy919: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych == 'A') goto yy923; +- if (yych == 'a') goto yy923; +- goto yy918; +-yy920: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych == 'I') goto yy925; +- if (yych == 'i') goto yy925; +- goto yy918; +-yy921: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych == 'A') goto yy926; +- if (yych == 'a') goto yy926; +- goto yy918; +-yy922: +- yyaccept = 0; +- yych = *(marker = ++p); +- if (yych == 'B') goto yy927; +- if (yych == 'b') goto yy927; +- goto yy918; +-yy923: +- yych = *++p; +- if (yych == 'T') goto yy928; +- if (yych == 't') goto yy928; +-yy924: +- p = marker; +- if (yyaccept == 0) { +- goto yy918; +- } else { +- goto yy936; +- } +-yy925: +- yych = *++p; +- if (yych == 'L') goto yy929; +- if (yych == 'l') goto yy929; +- goto yy924; +-yy926: +- yych = *++p; +- if (yych == 'V') goto yy930; +- if (yych == 'v') goto yy930; +- goto yy924; +-yy927: +- yych = *++p; +- if (yych == 'S') goto yy931; +- if (yych == 's') goto yy931; +- goto yy924; +-yy928: +- yych = *++p; +- if (yych == 'A') goto yy932; +- if (yych == 'a') goto yy932; +- goto yy924; +-yy929: +- yych = *++p; +- if (yych == 'E') goto yy933; +- if (yych == 'e') goto yy933; +- goto yy924; +-yy930: +- yych = *++p; +- if (yych == 'A') goto yy927; +- if (yych == 'a') goto yy927; +- goto yy924; +-yy931: +- yych = *++p; +- if (yych == 'C') goto yy934; +- if (yych == 'c') goto yy934; +- goto yy924; +-yy932: +- yych = *++p; +- if (yych == ':') goto yy935; +- goto yy924; +-yy933: +- yych = *++p; +- if (yych == ':') goto yy937; +- goto yy924; +-yy934: +- yych = *++p; +- if (yych == 'R') goto yy938; +- if (yych == 'r') goto yy938; +- goto yy924; +-yy935: +- yyaccept = 1; +- yych = *(marker = ++p); +- if (yych == 'I') goto yy939; +- if (yych == 'i') goto yy939; +-yy936: +- { return (bufsize_t)(p - start); } +-yy937: +- ++p; +- goto yy936; +-yy938: +- yych = *++p; +- if (yych == 'I') goto yy940; +- if (yych == 'i') goto yy940; +- goto yy924; +-yy939: +- yych = *++p; +- if (yych == 'M') goto yy941; +- if (yych == 'm') goto yy941; +- goto yy924; +-yy940: +- yych = *++p; +- if (yych == 'P') goto yy942; +- if (yych == 'p') goto yy942; +- goto yy924; +-yy941: +- yych = *++p; +- if (yych == 'A') goto yy943; +- if (yych == 'a') goto yy943; +- goto yy924; +-yy942: +- yych = *++p; +- if (yych == 'T') goto yy933; +- if (yych == 't') goto yy933; +- goto yy924; +-yy943: +- yych = *++p; +- if (yych == 'G') goto yy944; +- if (yych != 'g') goto yy924; +-yy944: +- yych = *++p; +- if (yych == 'E') goto yy945; +- if (yych != 'e') goto yy924; +-yy945: +- yych = *++p; +- if (yych != '/') goto yy924; +- yych = *++p; +- if (yych <= 'W') { +- if (yych <= 'J') { +- if (yych == 'G') goto yy947; +- if (yych <= 'I') goto yy924; +- goto yy948; +- } else { +- if (yych == 'P') goto yy949; +- if (yych <= 'V') goto yy924; +- goto yy950; +- } +- } else { +- if (yych <= 'j') { +- if (yych == 'g') goto yy947; +- if (yych <= 'i') goto yy924; +- goto yy948; +- } else { +- if (yych <= 'p') { +- if (yych <= 'o') goto yy924; +- goto yy949; +- } else { +- if (yych == 'w') goto yy950; +- goto yy924; +- } +- } +- } +-yy947: +- yych = *++p; +- if (yych == 'I') goto yy951; +- if (yych == 'i') goto yy951; +- goto yy924; +-yy948: +- yych = *++p; +- if (yych == 'P') goto yy952; +- if (yych == 'p') goto yy952; +- goto yy924; +-yy949: +- yych = *++p; +- if (yych == 'N') goto yy953; +- if (yych == 'n') goto yy953; +- goto yy924; +-yy950: +- yych = *++p; +- if (yych == 'E') goto yy954; +- if (yych == 'e') goto yy954; +- goto yy924; +-yy951: +- yych = *++p; +- if (yych == 'F') goto yy955; +- if (yych == 'f') goto yy955; +- goto yy924; +-yy952: +- yych = *++p; +- if (yych == 'E') goto yy953; +- if (yych != 'e') goto yy924; +-yy953: +- yych = *++p; +- if (yych == 'G') goto yy955; +- if (yych == 'g') goto yy955; +- goto yy924; +-yy954: +- yych = *++p; +- if (yych == 'B') goto yy957; +- if (yych == 'b') goto yy957; +- goto yy924; +-yy955: +- ++p; +- { return 0; } +-yy957: +- yych = *++p; +- if (yych == 'P') goto yy955; +- if (yych == 'p') goto yy955; +- goto yy924; +-} +- ++ { ++ unsigned char yych; ++ unsigned int yyaccept = 0; ++ yych = *p; ++ if (yych <= 'V') { ++ if (yych <= 'F') { ++ if (yych == 'D') ++ goto yy801; ++ if (yych >= 'F') ++ goto yy802; ++ } else { ++ if (yych == 'J') ++ goto yy803; ++ if (yych >= 'V') ++ goto yy804; ++ } ++ } else { ++ if (yych <= 'f') { ++ if (yych == 'd') ++ goto yy801; ++ if (yych >= 'f') ++ goto yy802; ++ } else { ++ if (yych <= 'j') { ++ if (yych >= 'j') ++ goto yy803; ++ } else { ++ if (yych == 'v') ++ goto yy804; ++ } ++ } ++ } ++ ++p; ++ yy800 : { return 0; } ++ yy801: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych == 'A') ++ goto yy805; ++ if (yych == 'a') ++ goto yy805; ++ goto yy800; ++ yy802: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych == 'I') ++ goto yy807; ++ if (yych == 'i') ++ goto yy807; ++ goto yy800; ++ yy803: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych == 'A') ++ goto yy808; ++ if (yych == 'a') ++ goto yy808; ++ goto yy800; ++ yy804: ++ yyaccept = 0; ++ yych = *(marker = ++p); ++ if (yych == 'B') ++ goto yy809; ++ if (yych == 'b') ++ goto yy809; ++ goto yy800; ++ yy805: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy810; ++ if (yych == 't') ++ goto yy810; ++ yy806: ++ p = marker; ++ if (yyaccept == 0) { ++ goto yy800; ++ } else { ++ goto yy818; ++ } ++ yy807: ++ yych = *++p; ++ if (yych == 'L') ++ goto yy811; ++ if (yych == 'l') ++ goto yy811; ++ goto yy806; ++ yy808: ++ yych = *++p; ++ if (yych == 'V') ++ goto yy812; ++ if (yych == 'v') ++ goto yy812; ++ goto yy806; ++ yy809: ++ yych = *++p; ++ if (yych == 'S') ++ goto yy813; ++ if (yych == 's') ++ goto yy813; ++ goto yy806; ++ yy810: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy814; ++ if (yych == 'a') ++ goto yy814; ++ goto yy806; ++ yy811: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy815; ++ if (yych == 'e') ++ goto yy815; ++ goto yy806; ++ yy812: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy809; ++ if (yych == 'a') ++ goto yy809; ++ goto yy806; ++ yy813: ++ yych = *++p; ++ if (yych == 'C') ++ goto yy816; ++ if (yych == 'c') ++ goto yy816; ++ goto yy806; ++ yy814: ++ yych = *++p; ++ if (yych == ':') ++ goto yy817; ++ goto yy806; ++ yy815: ++ yych = *++p; ++ if (yych == ':') ++ goto yy819; ++ goto yy806; ++ yy816: ++ yych = *++p; ++ if (yych == 'R') ++ goto yy820; ++ if (yych == 'r') ++ goto yy820; ++ goto yy806; ++ yy817: ++ yyaccept = 1; ++ yych = *(marker = ++p); ++ if (yych == 'I') ++ goto yy821; ++ if (yych == 'i') ++ goto yy821; ++ yy818 : { return (bufsize_t)(p - start); } ++ yy819: ++ ++p; ++ goto yy818; ++ yy820: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy822; ++ if (yych == 'i') ++ goto yy822; ++ goto yy806; ++ yy821: ++ yych = *++p; ++ if (yych == 'M') ++ goto yy823; ++ if (yych == 'm') ++ goto yy823; ++ goto yy806; ++ yy822: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy824; ++ if (yych == 'p') ++ goto yy824; ++ goto yy806; ++ yy823: ++ yych = *++p; ++ if (yych == 'A') ++ goto yy825; ++ if (yych == 'a') ++ goto yy825; ++ goto yy806; ++ yy824: ++ yych = *++p; ++ if (yych == 'T') ++ goto yy815; ++ if (yych == 't') ++ goto yy815; ++ goto yy806; ++ yy825: ++ yych = *++p; ++ if (yych == 'G') ++ goto yy826; ++ if (yych != 'g') ++ goto yy806; ++ yy826: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy827; ++ if (yych != 'e') ++ goto yy806; ++ yy827: ++ yych = *++p; ++ if (yych != '/') ++ goto yy806; ++ yych = *++p; ++ if (yych <= 'W') { ++ if (yych <= 'J') { ++ if (yych == 'G') ++ goto yy828; ++ if (yych <= 'I') ++ goto yy806; ++ goto yy829; ++ } else { ++ if (yych == 'P') ++ goto yy830; ++ if (yych <= 'V') ++ goto yy806; ++ goto yy831; ++ } ++ } else { ++ if (yych <= 'j') { ++ if (yych == 'g') ++ goto yy828; ++ if (yych <= 'i') ++ goto yy806; ++ goto yy829; ++ } else { ++ if (yych <= 'p') { ++ if (yych <= 'o') ++ goto yy806; ++ goto yy830; ++ } else { ++ if (yych == 'w') ++ goto yy831; ++ goto yy806; ++ } ++ } ++ } ++ yy828: ++ yych = *++p; ++ if (yych == 'I') ++ goto yy832; ++ if (yych == 'i') ++ goto yy832; ++ goto yy806; ++ yy829: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy833; ++ if (yych == 'p') ++ goto yy833; ++ goto yy806; ++ yy830: ++ yych = *++p; ++ if (yych == 'N') ++ goto yy834; ++ if (yych == 'n') ++ goto yy834; ++ goto yy806; ++ yy831: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy835; ++ if (yych == 'e') ++ goto yy835; ++ goto yy806; ++ yy832: ++ yych = *++p; ++ if (yych == 'F') ++ goto yy836; ++ if (yych == 'f') ++ goto yy836; ++ goto yy806; ++ yy833: ++ yych = *++p; ++ if (yych == 'E') ++ goto yy834; ++ if (yych != 'e') ++ goto yy806; ++ yy834: ++ yych = *++p; ++ if (yych == 'G') ++ goto yy836; ++ if (yych == 'g') ++ goto yy836; ++ goto yy806; ++ yy835: ++ yych = *++p; ++ if (yych == 'B') ++ goto yy837; ++ if (yych == 'b') ++ goto yy837; ++ goto yy806; ++ yy836: ++ ++p; ++ { return 0; } ++ yy837: ++ yych = *++p; ++ if (yych == 'P') ++ goto yy836; ++ if (yych == 'p') ++ goto yy836; ++ goto yy806; ++ } + } + + // Scans a footnote definition opening. +-bufsize_t _scan_footnote_definition(const unsigned char *p) +-{ ++bufsize_t _scan_footnote_definition(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + +-{ +- unsigned char yych; +- static const unsigned char yybm[] = { +- 0, 64, 64, 64, 64, 64, 64, 64, +- 64, 128, 0, 64, 64, 0, 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, 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, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, +- 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 yy962; +- ++p; +-yy961: +- { return 0; } +-yy962: +- yych = *(marker = ++p); +- if (yych != '^') goto yy961; +- yych = *++p; +- if (yych != ']') goto yy966; +-yy964: +- p = marker; +- goto yy961; +-yy965: +- yych = *++p; +-yy966: +- if (yybm[0+yych] & 64) { +- goto yy965; +- } +- if (yych <= 0xEC) { +- if (yych <= 0xC1) { +- if (yych <= ' ') goto yy964; +- if (yych <= ']') goto yy974; +- goto yy964; +- } else { +- if (yych <= 0xDF) goto yy967; +- if (yych <= 0xE0) goto yy968; +- goto yy969; +- } +- } else { +- if (yych <= 0xF0) { +- if (yych <= 0xED) goto yy970; +- if (yych <= 0xEF) goto yy969; +- goto yy971; +- } else { +- if (yych <= 0xF3) goto yy972; +- if (yych <= 0xF4) goto yy973; +- goto yy964; +- } +- } +-yy967: +- yych = *++p; +- if (yych <= 0x7F) goto yy964; +- if (yych <= 0xBF) goto yy965; +- goto yy964; +-yy968: +- yych = *++p; +- if (yych <= 0x9F) goto yy964; +- if (yych <= 0xBF) goto yy967; +- goto yy964; +-yy969: +- yych = *++p; +- if (yych <= 0x7F) goto yy964; +- if (yych <= 0xBF) goto yy967; +- goto yy964; +-yy970: +- yych = *++p; +- if (yych <= 0x7F) goto yy964; +- if (yych <= 0x9F) goto yy967; +- goto yy964; +-yy971: +- yych = *++p; +- if (yych <= 0x8F) goto yy964; +- if (yych <= 0xBF) goto yy969; +- goto yy964; +-yy972: +- yych = *++p; +- if (yych <= 0x7F) goto yy964; +- if (yych <= 0xBF) goto yy969; +- goto yy964; +-yy973: +- yych = *++p; +- if (yych <= 0x7F) goto yy964; +- if (yych <= 0x8F) goto yy969; +- goto yy964; +-yy974: +- yych = *++p; +- if (yych != ':') goto yy964; +-yy975: +- yych = *++p; +- if (yybm[0+yych] & 128) { +- goto yy975; +- } +- { return (bufsize_t)(p - start); } +-} +- ++ { ++ unsigned char yych; ++ static const unsigned char yybm[] = { ++ 0, 64, 64, 64, 64, 64, 64, 64, 64, 128, 0, 64, 64, 0, 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, 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, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy840; ++ ++p; ++ yy839 : { return 0; } ++ yy840: ++ yych = *(marker = ++p); ++ if (yych != '^') ++ goto yy839; ++ yych = *++p; ++ if (yych != ']') ++ goto yy843; ++ yy841: ++ p = marker; ++ goto yy839; ++ yy842: ++ yych = *++p; ++ yy843: ++ if (yybm[0 + yych] & 64) { ++ goto yy842; ++ } ++ if (yych <= 0xEC) { ++ if (yych <= 0xC1) { ++ if (yych <= ' ') ++ goto yy841; ++ if (yych <= ']') ++ goto yy851; ++ goto yy841; ++ } else { ++ if (yych <= 0xDF) ++ goto yy844; ++ if (yych <= 0xE0) ++ goto yy845; ++ goto yy846; ++ } ++ } else { ++ if (yych <= 0xF0) { ++ if (yych <= 0xED) ++ goto yy847; ++ if (yych <= 0xEF) ++ goto yy846; ++ goto yy848; ++ } else { ++ if (yych <= 0xF3) ++ goto yy849; ++ if (yych <= 0xF4) ++ goto yy850; ++ goto yy841; ++ } ++ } ++ yy844: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy841; ++ if (yych <= 0xBF) ++ goto yy842; ++ goto yy841; ++ yy845: ++ yych = *++p; ++ if (yych <= 0x9F) ++ goto yy841; ++ if (yych <= 0xBF) ++ goto yy844; ++ goto yy841; ++ yy846: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy841; ++ if (yych <= 0xBF) ++ goto yy844; ++ goto yy841; ++ yy847: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy841; ++ if (yych <= 0x9F) ++ goto yy844; ++ goto yy841; ++ yy848: ++ yych = *++p; ++ if (yych <= 0x8F) ++ goto yy841; ++ if (yych <= 0xBF) ++ goto yy846; ++ goto yy841; ++ yy849: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy841; ++ if (yych <= 0xBF) ++ goto yy846; ++ goto yy841; ++ yy850: ++ yych = *++p; ++ if (yych <= 0x7F) ++ goto yy841; ++ if (yych <= 0x8F) ++ goto yy846; ++ goto yy841; ++ yy851: ++ yych = *++p; ++ if (yych != ':') ++ goto yy841; ++ yy852: ++ yych = *++p; ++ if (yybm[0 + yych] & 128) { ++ goto yy852; ++ } ++ { return (bufsize_t)(p - start); } ++ } + } +Index: cmarkgfm-2022.10.27/third_party/cmark/src/scanners.h +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/scanners.h ++++ cmarkgfm-2022.10.27/third_party/cmark/src/scanners.h +@@ -15,6 +15,10 @@ bufsize_t _scan_autolink_uri(const unsig + bufsize_t _scan_autolink_email(const unsigned char *p); + bufsize_t _scan_html_tag(const unsigned char *p); + bufsize_t _scan_liberal_html_tag(const unsigned char *p); ++bufsize_t _scan_html_comment(const unsigned char *p); ++bufsize_t _scan_html_pi(const unsigned char *p); ++bufsize_t _scan_html_declaration(const unsigned char *p); ++bufsize_t _scan_html_cdata(const unsigned char *p); + bufsize_t _scan_html_block_start(const unsigned char *p); + bufsize_t _scan_html_block_start_7(const unsigned char *p); + bufsize_t _scan_html_block_end_1(const unsigned char *p); +@@ -37,6 +41,10 @@ bufsize_t _scan_footnote_definition(cons + #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n) + #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n) + #define scan_liberal_html_tag(c, n) _scan_at(&_scan_liberal_html_tag, c, n) ++#define scan_html_comment(c, n) _scan_at(&_scan_html_comment, c, n) ++#define scan_html_pi(c, n) _scan_at(&_scan_html_pi, c, n) ++#define scan_html_declaration(c, n) _scan_at(&_scan_html_declaration, c, n) ++#define scan_html_cdata(c, n) _scan_at(&_scan_html_cdata, c, n) + #define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n) + #define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n) + #define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n) +Index: cmarkgfm-2022.10.27/third_party/cmark/src/xml.c +=================================================================== +--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/xml.c ++++ cmarkgfm-2022.10.27/third_party/cmark/src/xml.c +@@ -11,6 +11,7 @@ + #include "syntax_extension.h" + + #define BUFFER_SIZE 100 ++#define MAX_INDENT 40 + + // Functions to convert cmark_nodes to XML strings. + +@@ -26,7 +27,7 @@ struct render_state { + + static CMARK_INLINE void indent(struct render_state *state) { + int i; +- for (i = 0; i < state->indent; i++) { ++ for (i = 0; i < state->indent && i < MAX_INDENT; i++) { + cmark_strbuf_putc(state->xml, ' '); + } + } diff --git a/python-cmarkgfm.changes b/python-cmarkgfm.changes index 906eeed..c7b3197 100644 --- a/python-cmarkgfm.changes +++ b/python-cmarkgfm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Aug 14 07:36:03 UTC 2023 - Daniel Garcia + +- Add cmark-gfm-13.patch to update cmark to 0.29.0.gfm.13 + (gh#theacodes/cmarkgfm#63, bsc#1213317, CVE-2023-37463) + ------------------------------------------------------------------- Fri Apr 21 12:23:22 UTC 2023 - Dirk Müller diff --git a/python-cmarkgfm.spec b/python-cmarkgfm.spec index 39e5039..e8a1234 100644 --- a/python-cmarkgfm.spec +++ b/python-cmarkgfm.spec @@ -16,7 +16,6 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?sle15_python_module_pythons} Name: python-cmarkgfm Version: 2022.10.27 @@ -26,6 +25,8 @@ License: MIT Group: Development/Languages/Python URL: https://github.com/jonparrott/cmarkgfm Source: https://files.pythonhosted.org/packages/source/c/cmarkgfm/cmarkgfm-%{version}.tar.gz +# PATCH-FIX-UPSTREAM cmark-gfm-13.patch gh#theacodes/cmarkgfm#63 +Patch0: cmark-gfm-13.patch BuildRequires: %{python_module cffi >= 1.0.0} BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools}