diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-07-27 21:35:54 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-07-27 21:35:54 -0700 |
commit | 62cb38bf8a826125fba0034221343aa70dd3d415 (patch) | |
tree | 67348fa88068e1fdb2fca04d74c0ce60072bd280 | |
parent | aca7161e53ec40f6979d024d84afeb36fa911292 (diff) |
Use clang-format, llvm style, for formatting.
* Reformatted all source files.
* Added 'format' target to Makefile.
* Removed 'astyle' target.
* Updated .editorconfig.
-rw-r--r-- | .editorconfig | 4 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | man/man3/cmark.3 | 32 | ||||
-rw-r--r-- | src/bench.h | 16 | ||||
-rw-r--r-- | src/blocks.c | 1856 | ||||
-rw-r--r-- | src/buffer.c | 460 | ||||
-rw-r--r-- | src/buffer.h | 37 | ||||
-rw-r--r-- | src/chunk.h | 158 | ||||
-rw-r--r-- | src/cmark.c | 26 | ||||
-rw-r--r-- | src/cmark.h | 270 | ||||
-rw-r--r-- | src/cmark_ctype.c | 59 | ||||
-rw-r--r-- | src/commonmark.c | 817 | ||||
-rw-r--r-- | src/houdini.h | 36 | ||||
-rw-r--r-- | src/houdini_href_e.c | 107 | ||||
-rw-r--r-- | src/houdini_html_e.c | 87 | ||||
-rw-r--r-- | src/houdini_html_u.c | 243 | ||||
-rw-r--r-- | src/html.c | 598 | ||||
-rw-r--r-- | src/inlines.c | 1999 | ||||
-rw-r--r-- | src/inlines.h | 6 | ||||
-rw-r--r-- | src/iterator.c | 222 | ||||
-rw-r--r-- | src/iterator.h | 10 | ||||
-rw-r--r-- | src/latex.c | 780 | ||||
-rw-r--r-- | src/main.c | 343 | ||||
-rw-r--r-- | src/man.c | 438 | ||||
-rw-r--r-- | src/node.c | 1585 | ||||
-rw-r--r-- | src/node.h | 95 | ||||
-rw-r--r-- | src/parser.h | 28 | ||||
-rw-r--r-- | src/references.c | 212 | ||||
-rw-r--r-- | src/references.h | 18 | ||||
-rw-r--r-- | src/render.c | 311 | ||||
-rw-r--r-- | src/render.h | 63 | ||||
-rw-r--r-- | src/scanners.c | 48597 | ||||
-rw-r--r-- | src/scanners.h | 3 | ||||
-rw-r--r-- | src/utf8.c | 695 | ||||
-rw-r--r-- | src/xml.c | 279 |
35 files changed, 33323 insertions, 27175 deletions
diff --git a/.editorconfig b/.editorconfig index 915ad66..12032e6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,8 +9,8 @@ insert_final_newline = true [*.{c,h}] trim_trailing_whitespace = true -indent_style = tab -indent_size = 8 +indent_style = space +indent_size = 2 [Makefile] trim_trailing_whitespace = true @@ -20,7 +20,7 @@ RELEASE?=CommonMark-$(VERSION) INSTALL_PREFIX?=/usr/local CLANG_CHECK?=clang-check -.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug ubsan asan mingw archive bench astyle update-spec afl clang-check +.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug ubsan asan mingw archive bench format update-spec afl clang-check all: cmake_build man/man3/cmark.3 @@ -115,6 +115,7 @@ $(SRCDIR)/scanners.c: $(SRCDIR)/scanners.re esac re2c --case-insensitive -b -i --no-generation-date -8 \ --encoding-policy substitute -o $@ $< + clang-format -style llvm -i $@ # We include entities.inc in the repository, so normally this # doesn't need to be regenerated: @@ -167,9 +168,8 @@ bench: $(BENCHFILE) done \ } 2>&1 | grep 'real' | awk '{print $$2}' | python3 'bench/stats.py' -astyle: - astyle --style=linux -t -p -r 'src/*.c' --exclude=scanners.c - astyle --style=linux -t -p -r 'src/*.h' --exclude=html_unescape.h +format: + clang-format -style llvm -i src/*.c src/*.h operf: $(CMARK) operf $< < $(BENCHINP) > /dev/null diff --git a/man/man3/cmark.3 b/man/man3/cmark.3 index 1359fcc..4c539e8 100644 --- a/man/man3/cmark.3 +++ b/man/man3/cmark.3 @@ -1,4 +1,4 @@ -.TH cmark 3 "July 13, 2015" "LOCAL" "Library Functions Manual" +.TH cmark 3 "July 27, 2015" "LOCAL" "Library Functions Manual" .SH NAME .PP @@ -24,7 +24,7 @@ Node Structure Creating and Destroying Nodes .PP -\fIcmark_node*\f[] \fBcmark_node_new\f[](\fIcmark_node_type type\f[]) +\fIcmark_node *\f[] \fBcmark_node_new\f[](\fIcmark_node_type type\f[]) .PP Creates a new node of type \f[I]type\f[]. Note that the node may have @@ -41,34 +41,34 @@ Frees the memory allocated for a node. Tree Traversal .PP -\fIcmark_node*\f[] \fBcmark_node_next\f[](\fIcmark_node *node\f[]) +\fIcmark_node *\f[] \fBcmark_node_next\f[](\fIcmark_node *node\f[]) .PP Returns the next node in the sequence after \f[I]node\f[], or NULL if there is none. .PP -\fIcmark_node*\f[] \fBcmark_node_previous\f[](\fIcmark_node *node\f[]) +\fIcmark_node *\f[] \fBcmark_node_previous\f[](\fIcmark_node *node\f[]) .PP Returns the previous node in the sequence after \f[I]node\f[], or NULL if there is none. .PP -\fIcmark_node*\f[] \fBcmark_node_parent\f[](\fIcmark_node *node\f[]) +\fIcmark_node *\f[] \fBcmark_node_parent\f[](\fIcmark_node *node\f[]) .PP Returns the parent of \f[I]node\f[], or NULL if there is none. .PP -\fIcmark_node*\f[] \fBcmark_node_first_child\f[](\fIcmark_node *node\f[]) +\fIcmark_node *\f[] \fBcmark_node_first_child\f[](\fIcmark_node *node\f[]) .PP Returns the first child of \f[I]node\f[], or NULL if \f[I]node\f[] has no children. .PP -\fIcmark_node*\f[] \fBcmark_node_last_child\f[](\fIcmark_node *node\f[]) +\fIcmark_node *\f[] \fBcmark_node_last_child\f[](\fIcmark_node *node\f[]) .PP Returns the last child of \f[I]node\f[], or NULL if \f[I]node\f[] has no @@ -130,7 +130,7 @@ Nodes must only be modified after an \f[C]EXIT\f[] event, or an \f[C]ENTER\f[] event for leaf nodes. .PP -\fIcmark_iter*\f[] \fBcmark_iter_new\f[](\fIcmark_node *root\f[]) +\fIcmark_iter *\f[] \fBcmark_iter_new\f[](\fIcmark_node *root\f[]) .PP Creates a new iterator starting at \f[I]root\f[]. The current node and @@ -152,7 +152,7 @@ Advances to the next node and returns the event type \f[C]CMARK_EVENT_DONE\f[]). .PP -\fIcmark_node*\f[] \fBcmark_iter_get_node\f[](\fIcmark_iter *iter\f[]) +\fIcmark_node *\f[] \fBcmark_iter_get_node\f[](\fIcmark_iter *iter\f[]) .PP Returns the current node. @@ -164,7 +164,7 @@ Returns the current node. Returns the current event type. .PP -\fIcmark_node*\f[] \fBcmark_iter_get_root\f[](\fIcmark_iter *iter\f[]) +\fIcmark_node *\f[] \fBcmark_iter_get_root\f[](\fIcmark_iter *iter\f[]) .PP Returns the root node. @@ -181,7 +181,7 @@ descendant of the root node or the root node itself. Accessors .PP -\fIvoid*\f[] \fBcmark_node_get_user_data\f[](\fIcmark_node *node\f[]) +\fIvoid *\f[] \fBcmark_node_get_user_data\f[](\fIcmark_node *node\f[]) .PP Returns the user data of \f[I]node\f[]. @@ -200,14 +200,14 @@ failure. Returns the type of \f[I]node\f[], or \f[C]CMARK_NODE_NONE\f[] on error. .PP -\fIconst char*\f[] \fBcmark_node_get_type_string\f[](\fIcmark_node *node\f[]) +\fIconst char *\f[] \fBcmark_node_get_type_string\f[](\fIcmark_node *node\f[]) .PP Like \f[I]cmark_node_get_type\f[], but returns a string representation of the type, or \f[C]"<unknown>"\f[]. .PP -\fIconst char*\f[] \fBcmark_node_get_literal\f[](\fIcmark_node *node\f[]) +\fIconst char *\f[] \fBcmark_node_get_literal\f[](\fIcmark_node *node\f[]) .PP Returns the string contents of \f[I]node\f[], or NULL if none. @@ -288,7 +288,7 @@ Returns 1 if \f[I]node\f[] is a tight list, 0 otherwise. Sets the "tightness" of a list. Returns 1 on success, 0 on failure. .PP -\fIconst char*\f[] \fBcmark_node_get_fence_info\f[](\fIcmark_node *node\f[]) +\fIconst char *\f[] \fBcmark_node_get_fence_info\f[](\fIcmark_node *node\f[]) .PP Returns the info string from a fenced code block, or NULL if none. @@ -301,7 +301,7 @@ Sets the info string in a fenced code block, returning 1 on success and 0 on failure. .PP -\fIconst char*\f[] \fBcmark_node_get_url\f[](\fIcmark_node *node\f[]) +\fIconst char *\f[] \fBcmark_node_get_url\f[](\fIcmark_node *node\f[]) .PP Gets the URL of a link or image \f[I]node\f[], or NULL if none. @@ -314,7 +314,7 @@ Sets the URL of a link or image \f[I]node\f[]. Returns 1 on success, 0 on failure. .PP -\fIconst char*\f[] \fBcmark_node_get_title\f[](\fIcmark_node *node\f[]) +\fIconst char *\f[] \fBcmark_node_get_title\f[](\fIcmark_node *node\f[]) .PP Gets the title of a link or image \f[I]node\f[], or NULL if none. diff --git a/src/bench.h b/src/bench.h index bbea2c6..744dea3 100644 --- a/src/bench.h +++ b/src/bench.h @@ -9,15 +9,15 @@ float _cmark_start_time; float _cmark_end_time; float _cmark_save_time; -#define start_timer() \ - _cmark_save_time = _cmark_start_time; \ - _cmark_start_time = (float)clock()/CLOCKS_PER_SEC +#define start_timer() \ + _cmark_save_time = _cmark_start_time; \ + _cmark_start_time = (float)clock() / CLOCKS_PER_SEC -#define end_timer(M) \ - _cmark_end_time = (float)clock()/CLOCKS_PER_SEC; \ - fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, \ - __LINE__, (_cmark_end_time - _cmark_start_time) * 1000000); \ - _cmark_start_time = _cmark_save_time; +#define end_timer(M) \ + _cmark_end_time = (float)clock() / CLOCKS_PER_SEC; \ + fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, __LINE__, \ + (_cmark_end_time - _cmark_start_time) * 1000000); \ + _cmark_start_time = _cmark_save_time; #else #define start_timer() diff --git a/src/blocks.c b/src/blocks.c index 8828a11..c466fc2 100644 --- a/src/blocks.c +++ b/src/blocks.c @@ -19,1036 +19,998 @@ #define peek_at(i, n) (i)->data[n] -static inline bool -S_is_line_end_char(char c) -{ - return (c == '\n' || c == '\r'); +static inline bool S_is_line_end_char(char c) { + return (c == '\n' || c == '\r'); } -static void -S_parser_feed(cmark_parser *parser, const unsigned char *buffer, size_t len, - bool eof); - -static void -S_process_line(cmark_parser *parser, const unsigned char *buffer, - bufsize_t bytes); - -static cmark_node* make_block(cmark_node_type tag, int start_line, int start_column) -{ - cmark_node* e; - - e = (cmark_node *)calloc(1, sizeof(*e)); - if(e != NULL) { - e->type = tag; - e->open = true; - e->start_line = start_line; - e->start_column = start_column; - e->end_line = start_line; - cmark_strbuf_init(&e->string_content, 32); - } - - return e; +static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer, + size_t len, bool eof); + +static void S_process_line(cmark_parser *parser, const unsigned char *buffer, + bufsize_t bytes); + +static cmark_node *make_block(cmark_node_type tag, int start_line, + int start_column) { + cmark_node *e; + + e = (cmark_node *)calloc(1, sizeof(*e)); + if (e != NULL) { + e->type = tag; + e->open = true; + e->start_line = start_line; + e->start_column = start_column; + e->end_line = start_line; + cmark_strbuf_init(&e->string_content, 32); + } + + return e; } // Create a root document node. -static cmark_node* make_document() -{ - cmark_node *e = make_block(NODE_DOCUMENT, 1, 1); - return e; +static cmark_node *make_document() { + cmark_node *e = make_block(NODE_DOCUMENT, 1, 1); + return e; } -cmark_parser *cmark_parser_new(int options) -{ - cmark_parser *parser = (cmark_parser*)malloc(sizeof(cmark_parser)); - cmark_node *document = make_document(); - cmark_strbuf *line = (cmark_strbuf*)malloc(sizeof(cmark_strbuf)); - cmark_strbuf *buf = (cmark_strbuf*)malloc(sizeof(cmark_strbuf)); - cmark_strbuf_init(line, 256); - cmark_strbuf_init(buf, 0); - - parser->refmap = cmark_reference_map_new(); - parser->root = document; - parser->current = document; - parser->line_number = 0; - parser->offset = 0; - parser->column = 0; - parser->first_nonspace = 0; - parser->first_nonspace_column = 0; - parser->indent = 0; - parser->blank = false; - parser->curline = line; - parser->last_line_length = 0; - parser->linebuf = buf; - parser->options = options; - - return parser; +cmark_parser *cmark_parser_new(int options) { + cmark_parser *parser = (cmark_parser *)malloc(sizeof(cmark_parser)); + cmark_node *document = make_document(); + cmark_strbuf *line = (cmark_strbuf *)malloc(sizeof(cmark_strbuf)); + cmark_strbuf *buf = (cmark_strbuf *)malloc(sizeof(cmark_strbuf)); + cmark_strbuf_init(line, 256); + cmark_strbuf_init(buf, 0); + + parser->refmap = cmark_reference_map_new(); + parser->root = document; + parser->current = document; + parser->line_number = 0; + parser->offset = 0; + parser->column = 0; + parser->first_nonspace = 0; + parser->first_nonspace_column = 0; + parser->indent = 0; + parser->blank = false; + parser->curline = line; + parser->last_line_length = 0; + parser->linebuf = buf; + parser->options = options; + + return parser; } -void cmark_parser_free(cmark_parser *parser) -{ - cmark_strbuf_free(parser->curline); - free(parser->curline); - cmark_strbuf_free(parser->linebuf); - free(parser->linebuf); - cmark_reference_map_free(parser->refmap); - free(parser); +void cmark_parser_free(cmark_parser *parser) { + cmark_strbuf_free(parser->curline); + free(parser->curline); + cmark_strbuf_free(parser->linebuf); + free(parser->linebuf); + cmark_reference_map_free(parser->refmap); + free(parser); } -static cmark_node* -finalize(cmark_parser *parser, cmark_node* b); +static cmark_node *finalize(cmark_parser *parser, cmark_node *b); // Returns true if line has only space characters, else false. -static bool is_blank(cmark_strbuf *s, bufsize_t offset) -{ - while (offset < s->size) { - switch (s->ptr[offset]) { - case '\r': - case '\n': - return true; - case ' ': - offset++; - break; - case '\t': - offset++; - break; - default: - return false; - } - } - - return true; +static bool is_blank(cmark_strbuf *s, bufsize_t offset) { + while (offset < s->size) { + switch (s->ptr[offset]) { + case '\r': + case '\n': + return true; + case ' ': + offset++; + break; + case '\t': + offset++; + break; + default: + return false; + } + } + + return true; } -static inline bool can_contain(cmark_node_type parent_type, cmark_node_type child_type) -{ - return ( parent_type == NODE_DOCUMENT || - parent_type == NODE_BLOCK_QUOTE || - parent_type == NODE_ITEM || - (parent_type == NODE_LIST && child_type == NODE_ITEM) ); +static inline bool can_contain(cmark_node_type parent_type, + cmark_node_type child_type) { + return (parent_type == NODE_DOCUMENT || parent_type == NODE_BLOCK_QUOTE || + parent_type == NODE_ITEM || + (parent_type == NODE_LIST && child_type == NODE_ITEM)); } -static inline bool accepts_lines(cmark_node_type block_type) -{ - return (block_type == NODE_PARAGRAPH || - block_type == NODE_HEADER || - block_type == NODE_CODE_BLOCK); +static inline bool accepts_lines(cmark_node_type block_type) { + return (block_type == NODE_PARAGRAPH || block_type == NODE_HEADER || + block_type == NODE_CODE_BLOCK); } -static void add_line(cmark_node* node, cmark_chunk *ch, bufsize_t offset) -{ - assert(node->open); - cmark_strbuf_put(&node->string_content, ch->data + offset, ch->len - offset); +static void add_line(cmark_node *node, cmark_chunk *ch, bufsize_t offset) { + assert(node->open); + cmark_strbuf_put(&node->string_content, ch->data + offset, ch->len - offset); } -static void remove_trailing_blank_lines(cmark_strbuf *ln) -{ - bufsize_t i; - unsigned char c; - - for (i = ln->size - 1; i >= 0; --i) { - c = ln->ptr[i]; +static void remove_trailing_blank_lines(cmark_strbuf *ln) { + bufsize_t i; + unsigned char c; - if (c != ' ' && c != '\t' && !S_is_line_end_char(c)) - break; - } + for (i = ln->size - 1; i >= 0; --i) { + c = ln->ptr[i]; - if (i < 0) { - cmark_strbuf_clear(ln); - return; - } + if (c != ' ' && c != '\t' && !S_is_line_end_char(c)) + break; + } + if (i < 0) { + cmark_strbuf_clear(ln); + return; + } - for(; i < ln->size; ++i) { - c = ln->ptr[i]; + for (; i < ln->size; ++i) { + c = ln->ptr[i]; - if (!S_is_line_end_char(c)) - continue; + if (!S_is_line_end_char(c)) + continue; - cmark_strbuf_truncate(ln, i); - break; - } + cmark_strbuf_truncate(ln, i); + break; + } } // Check to see if a node ends with a blank line, descending // if needed into lists and sublists. -static bool ends_with_blank_line(cmark_node* node) -{ - cmark_node *cur = node; - while (cur != NULL) { - if (cur->last_line_blank) { - return true; - } - if (cur->type == NODE_LIST || cur->type == NODE_ITEM) { - cur = cur->last_child; - } else { - cur = NULL; - } - } - return false; +static bool ends_with_blank_line(cmark_node *node) { + cmark_node *cur = node; + while (cur != NULL) { + if (cur->last_line_blank) { + return true; + } + if (cur->type == NODE_LIST || cur->type == NODE_ITEM) { + cur = cur->last_child; + } else { + cur = NULL; + } + } + return false; } // Break out of all containing lists -static int break_out_of_lists(cmark_parser *parser, cmark_node ** bptr) -{ - cmark_node *container = *bptr; - cmark_node *b = parser->root; - // find first containing NODE_LIST: - while (b && b->type != NODE_LIST) { - b = b->last_child; - } - if (b) { - while (container && container != b) { - container = finalize(parser, container); - } - finalize(parser, b); - *bptr = b->parent; - } - return 0; +static int break_out_of_lists(cmark_parser *parser, cmark_node **bptr) { + cmark_node *container = *bptr; + cmark_node *b = parser->root; + // find first containing NODE_LIST: + while (b && b->type != NODE_LIST) { + b = b->last_child; + } + if (b) { + while (container && container != b) { + container = finalize(parser, container); + } + finalize(parser, b); + *bptr = b->parent; + } + return 0; } - -static cmark_node* -finalize(cmark_parser *parser, cmark_node* b) -{ - bufsize_t pos; - cmark_node* item; - cmark_node* subitem; - cmark_node* parent; - - parent = b->parent; - - assert(b->open); // shouldn't call finalize on closed blocks - b->open = false; - - if (parser->curline->size == 0) { - // end of input - line number has not been incremented - b->end_line = parser->line_number; - b->end_column = parser->last_line_length; - } else if (b->type == NODE_DOCUMENT || - (b->type == NODE_CODE_BLOCK && b->as.code.fenced) || - (b->type == NODE_HEADER && b->as.header.setext)) { - b->end_line = parser->line_number; - b->end_column = parser->curline->size; - if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n') - b->end_column -= 1; - if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\r') - b->end_column -= 1; - } else { - b->end_line = parser->line_number - 1; - b->end_column = parser->last_line_length; - } - - switch (b->type) { - case NODE_PARAGRAPH: - while (cmark_strbuf_at(&b->string_content, 0) == '[' && - (pos = cmark_parse_reference_inline(&b->string_content, parser->refmap))) { - - cmark_strbuf_drop(&b->string_content, pos); - } - if (is_blank(&b->string_content, 0)) { - // remove blank node (former reference def) - cmark_node_free(b); - } - break; - - case NODE_CODE_BLOCK: - if (!b->as.code.fenced) { // indented code - remove_trailing_blank_lines(&b->string_content); - cmark_strbuf_putc(&b->string_content, '\n'); - } else { - - // first line of contents becomes info - for (pos = 0; pos < b->string_content.size; ++pos) { - if (S_is_line_end_char(b->string_content.ptr[pos])) - break; - } - assert(pos < b->string_content.size); - - cmark_strbuf tmp = GH_BUF_INIT; - houdini_unescape_html_f( - &tmp, - b->string_content.ptr, - pos - ); - cmark_strbuf_trim(&tmp); - cmark_strbuf_unescape(&tmp); - b->as.code.info = cmark_chunk_buf_detach(&tmp); - - if (b->string_content.ptr[pos] == '\r') - pos += 1; - if (b->string_content.ptr[pos] == '\n') - pos += 1; - cmark_strbuf_drop(&b->string_content, pos); - } - b->as.code.literal = cmark_chunk_buf_detach(&b->string_content); - break; - - case NODE_HTML: - b->as.literal = cmark_chunk_buf_detach(&b->string_content); - break; - - case NODE_LIST: // determine tight/loose status - b->as.list.tight = true; // tight by default - item = b->first_child; - - while (item) { - // check for non-final non-empty list item ending with blank line: - if (item->last_line_blank && item->next) { - b->as.list.tight = false; - break; - } - // recurse into children of list item, to see if there are - // spaces between them: - subitem = item->first_child; - while (subitem) { - if (ends_with_blank_line(subitem) && - (item->next || subitem->next)) { - b->as.list.tight = false; - break; - } - subitem = subitem->next; - } - if (!(b->as.list.tight)) { - break; - } - item = item->next; - } - - break; - - default: - break; - } - return parent; +static cmark_node *finalize(cmark_parser *parser, cmark_node *b) { + bufsize_t pos; + cmark_node *item; + cmark_node *subitem; + cmark_node *parent; + + parent = b->parent; + + assert(b->open); // shouldn't call finalize on closed blocks + b->open = false; + + if (parser->curline->size == 0) { + // end of input - line number has not been incremented + b->end_line = parser->line_number; + b->end_column = parser->last_line_length; + } else if (b->type == NODE_DOCUMENT || + (b->type == NODE_CODE_BLOCK && b->as.code.fenced) || + (b->type == NODE_HEADER && b->as.header.setext)) { + b->end_line = parser->line_number; + b->end_column = parser->curline->size; + if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n') + b->end_column -= 1; + if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\r') + b->end_column -= 1; + } else { + b->end_line = parser->line_number - 1; + b->end_column = parser->last_line_length; + } + + switch (b->type) { + case NODE_PARAGRAPH: + while (cmark_strbuf_at(&b->string_content, 0) == '[' && + (pos = cmark_parse_reference_inline(&b->string_content, + parser->refmap))) { + + cmark_strbuf_drop(&b->string_content, pos); + } + if (is_blank(&b->string_content, 0)) { + // remove blank node (former reference def) + cmark_node_free(b); + } + break; + + case NODE_CODE_BLOCK: + if (!b->as.code.fenced) { // indented code + remove_trailing_blank_lines(&b->string_content); + cmark_strbuf_putc(&b->string_content, '\n'); + } else { + + // first line of contents becomes info + for (pos = 0; pos < b->string_content.size; ++pos) { + if (S_is_line_end_char(b->string_content.ptr[pos])) + break; + } + assert(pos < b->string_content.size); + + cmark_strbuf tmp = GH_BUF_INIT; + houdini_unescape_html_f(&tmp, b->string_content.ptr, pos); + cmark_strbuf_trim(&tmp); + cmark_strbuf_unescape(&tmp); + b->as.code.info = cmark_chunk_buf_detach(&tmp); + + if (b->string_content.ptr[pos] == '\r') + pos += 1; + if (b->string_content.ptr[pos] == '\n') + pos += 1; + cmark_strbuf_drop(&b->string_content, pos); + } + b->as.code.literal = cmark_chunk_buf_detach(&b->string_content); + break; + + case NODE_HTML: + b->as.literal = cmark_chunk_buf_detach(&b->string_content); + break; + + case NODE_LIST: // determine tight/loose status + b->as.list.tight = true; // tight by default + item = b->first_child; + + while (item) { + // check for non-final non-empty list item ending with blank line: + if (item->last_line_blank && item->next) { + b->as.list.tight = false; + break; + } + // recurse into children of list item, to see if there are + // spaces between them: + subitem = item->first_child; + while (subitem) { + if (ends_with_blank_line(subitem) && (item->next || subitem->next)) { + b->as.list.tight = false; + break; + } + subitem = subitem->next; + } + if (!(b->as.list.tight)) { + break; + } + item = item->next; + } + + break; + + default: + break; + } + return parent; } // Add a node as child of another. Return pointer to child. -static cmark_node* add_child(cmark_parser *parser, cmark_node* parent, - cmark_node_type block_type, int start_column) -{ - assert(parent); - - // if 'parent' isn't the kind of node that can accept this child, - // then back up til we hit a node that can. - while (!can_contain(parent->type, block_type)) { - parent = finalize(parser, parent); - } - - cmark_node* child = make_block(block_type, parser->line_number, start_column); - child->parent = parent; - - if (parent->last_child) { - parent->last_child->next = child; - child->prev = parent->last_child; - } else { - parent->first_child = child; - child->prev = NULL; - } - parent->last_child = child; - return child; +static cmark_node *add_child(cmark_parser *parser, cmark_node *parent, + cmark_node_type block_type, int start_column) { + assert(parent); + + // if 'parent' isn't the kind of node that can accept this child, + // then back up til we hit a node that can. + while (!can_contain(parent->type, block_type)) { + parent = finalize(parser, parent); + } + + cmark_node *child = make_block(block_type, parser->line_number, start_column); + child->parent = parent; + + if (parent->last_child) { + parent->last_child->next = child; + child->prev = parent->last_child; + } else { + parent->first_child = child; + child->prev = NULL; + } + parent->last_child = child; + return child; } - // Walk through node and all children, recursively, parsing // string content into inline content where appropriate. -static void process_inlines(cmark_node* root, cmark_reference_map *refmap, int options) -{ - cmark_iter *iter = cmark_iter_new(root); - cmark_node *cur; - cmark_event_type ev_type; - - while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { - cur = cmark_iter_get_node(iter); - if (ev_type == CMARK_EVENT_ENTER) { - if (cur->type == NODE_PARAGRAPH || - cur->type == NODE_HEADER) { - cmark_parse_inlines(cur, refmap, options); - } - } - } - - cmark_iter_free(iter); +static void process_inlines(cmark_node *root, cmark_reference_map *refmap, + int options) { + cmark_iter *iter = cmark_iter_new(root); + cmark_node *cur; + cmark_event_type ev_type; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (ev_type == CMARK_EVENT_ENTER) { + if (cur->type == NODE_PARAGRAPH || cur->type == NODE_HEADER) { + cmark_parse_inlines(cur, refmap, options); + } + } + } + + cmark_iter_free(iter); } // Attempts to parse a list item marker (bullet or enumerated). // On success, returns length of the marker, and populates // data with the details. On failure, returns 0. -static bufsize_t parse_list_marker(cmark_chunk *input, bufsize_t pos, cmark_list **dataptr) -{ - unsigned char c; - bufsize_t startpos; - cmark_list *data; - - startpos = pos; - c = peek_at(input, pos); - - if (c == '*' || c == '-' || c == '+') { - pos++; - if (!cmark_isspace(peek_at(input, pos))) { - return 0; - } - data = (cmark_list *)calloc(1, sizeof(*data)); - if(data == NULL) { - return 0; - } else { - data->marker_offset = 0; // will be adjusted later - data->list_type = CMARK_BULLET_LIST; - data->bullet_char = c; - data->start = 1; - data->delimiter = CMARK_PERIOD_DELIM; - data->tight = false; - } - } else if (cmark_isdigit(c)) { - int start = 0; - int digits = 0; - - do { - start = (10 * start) + (peek_at(input, pos) - '0'); - pos++; - digits++; - // We limit to 9 digits to avoid overflow, - // assuming max int is 2^31 - 1 - // This also seems to be the limit for 'start' in some browsers. - } while (digits < 9 && cmark_isdigit(peek_at(input, pos))); - - c = peek_at(input, pos); - if (c == '.' || c == ')') { - pos++; - if (!cmark_isspace(peek_at(input, pos))) { - return 0; - } - data = (cmark_list *)calloc(1, sizeof(*data)); - if(data == NULL) { - return 0; - } else { - data->marker_offset = 0; // will be adjusted later - data->list_type = CMARK_ORDERED_LIST; - data->bullet_char = 0; - data->start = start; - data->delimiter = (c == '.' ? CMARK_PERIOD_DELIM : CMARK_PAREN_DELIM); - data->tight = false; - } - } else { - return 0; - } - - } else { - return 0; - } - - *dataptr = data; - return (pos - startpos); +static bufsize_t parse_list_marker(cmark_chunk *input, bufsize_t pos, + cmark_list **dataptr) { + unsigned char c; + bufsize_t startpos; + cmark_list *data; + + startpos = pos; + c = peek_at(input, pos); + + if (c == '*' || c == '-' || c == '+') { + pos++; + if (!cmark_isspace(peek_at(input, pos))) { + return 0; + } + data = (cmark_list *)calloc(1, sizeof(*data)); + if (data == NULL) { + return 0; + } else { + data->marker_offset = 0; // will be adjusted later + data->list_type = CMARK_BULLET_LIST; + data->bullet_char = c; + data->start = 1; + data->delimiter = CMARK_PERIOD_DELIM; + data->tight = false; + } + } else if (cmark_isdigit(c)) { + int start = 0; + int digits = 0; + + do { + start = (10 * start) + (peek_at(input, pos) - '0'); + pos++; + digits++; + // We limit to 9 digits to avoid overflow, + // assuming max int is 2^31 - 1 + // This also seems to be the limit for 'start' in some browsers. + } while (digits < 9 && cmark_isdigit(peek_at(input, pos))); + + c = peek_at(input, pos); + if (c == '.' || c == ')') { + pos++; + if (!cmark_isspace(peek_at(input, pos))) { + return 0; + } + data = (cmark_list *)calloc(1, sizeof(*data)); + if (data == NULL) { + return 0; + } else { + data->marker_offset = 0; // will be adjusted later + data->list_type = CMARK_ORDERED_LIST; + data->bullet_char = 0; + data->start = start; + data->delimiter = (c == '.' ? CMARK_PERIOD_DELIM : CMARK_PAREN_DELIM); + data->tight = false; + } + } else { + return 0; + } + + } else { + return 0; + } + + *dataptr = data; + return (pos - startpos); } // Return 1 if list item belongs in list, else 0. -static int lists_match(cmark_list *list_data, cmark_list *item_data) -{ - return (list_data->list_type == item_data->list_type && - list_data->delimiter == item_data->delimiter && - // list_data->marker_offset == item_data.marker_offset && - list_data->bullet_char == item_data->bullet_char); +static int lists_match(cmark_list *list_data, cmark_list *item_data) { + return (list_data->list_type == item_data->list_type && + list_data->delimiter == item_data->delimiter && + // list_data->marker_offset == item_data.marker_offset && + list_data->bullet_char == item_data->bullet_char); } -static cmark_node *finalize_document(cmark_parser *parser) -{ - while (parser->current != parser->root) { - parser->current = finalize(parser, parser->current); - } +static cmark_node *finalize_document(cmark_parser *parser) { + while (parser->current != parser->root) { + parser->current = finalize(parser, parser->current); + } - finalize(parser, parser->root); - process_inlines(parser->root, parser->refmap, parser->options); + finalize(parser, parser->root); + process_inlines(parser->root, parser->refmap, parser->options); - return parser->root; + return parser->root; } -cmark_node *cmark_parse_file(FILE *f, int options) -{ - unsigned char buffer[4096]; - cmark_parser *parser = cmark_parser_new(options); - size_t bytes; - cmark_node *document; - - while ((bytes = fread(buffer, 1, sizeof(buffer), f)) > 0) { - bool eof = bytes < sizeof(buffer); - S_parser_feed(parser, buffer, bytes, eof); - if (eof) { - break; - } - } - - document = cmark_parser_finish(parser); - cmark_parser_free(parser); - return document; +cmark_node *cmark_parse_file(FILE *f, int options) { + unsigned char buffer[4096]; + cmark_parser *parser = cmark_parser_new(options); + size_t bytes; + cmark_node *document; + + while ((bytes = fread(buffer, 1, sizeof(buffer), f)) > 0) { + bool eof = bytes < sizeof(buffer); + S_parser_feed(parser, buffer, bytes, eof); + if (eof) { + break; + } + } + + document = cmark_parser_finish(parser); + cmark_parser_free(parser); + return document; } -cmark_node *cmark_parse_document(const char *buffer, size_t len, int options) -{ - cmark_parser *parser = cmark_parser_new(options); - cmark_node *document; +cmark_node *cmark_parse_document(const char *buffer, size_t len, int options) { + cmark_parser *parser = cmark_parser_new(options); + cmark_node *document; - S_parser_feed(parser, (const unsigned char *)buffer, len, true); + S_parser_feed(parser, (const unsigned char *)buffer, len, true); - document = cmark_parser_finish(parser); - cmark_parser_free(parser); - return document; + document = cmark_parser_finish(parser); + cmark_parser_free(parser); + return document; } -void -cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len) -{ - S_parser_feed(parser, (const unsigned char *)buffer, len, false); +void cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len) { + S_parser_feed(parser, (const unsigned char *)buffer, len, false); } -static void -S_parser_feed(cmark_parser *parser, const unsigned char *buffer, size_t len, - bool eof) -{ - const unsigned char *end = buffer + len; - static const uint8_t repl[] = {239, 191, 189}; - - while (buffer < end) { - const unsigned char *eol; - bufsize_t chunk_len; - bool process = false; - for (eol = buffer; eol < end; ++eol) { - if (S_is_line_end_char(*eol)) { - if (eol < end && *eol == '\r') - eol++; - if (eol < end && *eol == '\n') - eol++; - process = true; - break; - } - if (*eol == '\0' && eol < end) { - break; - } - } - if (eol >= end && eof) { - process = true; - } - - chunk_len = cmark_strbuf_check_bufsize(eol - buffer); - if (process) { - if (parser->linebuf->size > 0) { - cmark_strbuf_put(parser->linebuf, buffer, chunk_len); - S_process_line(parser, parser->linebuf->ptr, - parser->linebuf->size); - cmark_strbuf_clear(parser->linebuf); - } else { - S_process_line(parser, buffer, chunk_len); - } - } else { - if (eol < end && *eol == '\0') { - // omit NULL byte - cmark_strbuf_put(parser->linebuf, buffer, chunk_len); - // add replacement character - cmark_strbuf_put(parser->linebuf, repl, 3); - chunk_len += 1; // so we advance the buffer past NULL - } else { - cmark_strbuf_put(parser->linebuf, buffer, chunk_len); - } - } - - buffer += chunk_len; - } +static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer, + size_t len, bool eof) { + const unsigned char *end = buffer + len; + static const uint8_t repl[] = {239, 191, 189}; + + while (buffer < end) { + const unsigned char *eol; + bufsize_t chunk_len; + bool process = false; + for (eol = buffer; eol < end; ++eol) { + if (S_is_line_end_char(*eol)) { + if (eol < end && *eol == '\r') + eol++; + if (eol < end && *eol == '\n') + eol++; + process = true; + break; + } + if (*eol == '\0' && eol < end) { + break; + } + } + if (eol >= end && eof) { + process = true; + } + + chunk_len = cmark_strbuf_check_bufsize(eol - buffer); + if (process) { + if (parser->linebuf->size > 0) { + cmark_strbuf_put(parser->linebuf, buffer, chunk_len); + S_process_line(parser, parser->linebuf->ptr, parser->linebuf->size); + cmark_strbuf_clear(parser->linebuf); + } else { + S_process_line(parser, buffer, chunk_len); + } + } else { + if (eol < end && *eol == '\0') { + // omit NULL byte + cmark_strbuf_put(parser->linebuf, buffer, chunk_len); + // add replacement character + cmark_strbuf_put(parser->linebuf, repl, 3); + chunk_len += 1; // so we advance the buffer past NULL + } else { + cmark_strbuf_put(parser->linebuf, buffer, chunk_len); + } + } + + buffer += chunk_len; + } } -static void chop_trailing_hashtags(cmark_chunk *ch) -{ - bufsize_t n, orig_n; +static void chop_trailing_hashtags(cmark_chunk *ch) { + bufsize_t n, orig_n; - cmark_chunk_rtrim(ch); - orig_n = n = ch->len - 1; + cmark_chunk_rtrim(ch); + orig_n = n = ch->len - 1; - // if string ends in space followed by #s, remove these: - while (n >= 0 && peek_at(ch, n) == '#') - n--; + // if string ends in space followed by #s, remove these: + while (n >= 0 && peek_at(ch, n) == '#') + n--; - // Check for a space before the final #s: - if (n != orig_n && n >= 0 && - (peek_at(ch, n) == ' ' || peek_at(ch, n) == '\t')) { - ch->len = n; - cmark_chunk_rtrim(ch); - } + // Check for a space before the final #s: + if (n != orig_n && n >= 0 && + (peek_at(ch, n) == ' ' || peek_at(ch, n) == '\t')) { + ch->len = n; + cmark_chunk_rtrim(ch); + } } -static void -S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input) -{ - char c; - int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); - - parser->first_nonspace = parser->offset; - parser->first_nonspace_column = parser->column; - while ((c = peek_at(input, parser->first_nonspace))) { - if (c == ' ') { - parser->first_nonspace += 1; - parser->first_nonspace_column += 1; - chars_to_tab = chars_to_tab - 1; - if (chars_to_tab == 0) { - chars_to_tab = TAB_STOP; - } - } else if (c == '\t') { - parser->first_nonspace += 1; - parser->first_nonspace_column += chars_to_tab; - chars_to_tab = TAB_STOP; - } else { - break; - } - } - - parser->indent = parser->first_nonspace_column - parser->column; - parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace)); +static void S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input) { + char c; + int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); + + parser->first_nonspace = parser->offset; + parser->first_nonspace_column = parser->column; + while ((c = peek_at(input, parser->first_nonspace))) { + if (c == ' ') { + parser->first_nonspace += 1; + parser->first_nonspace_column += 1; + chars_to_tab = chars_to_tab - 1; + if (chars_to_tab == 0) { + chars_to_tab = TAB_STOP; + } + } else if (c == '\t') { + parser->first_nonspace += 1; + parser->first_nonspace_column += chars_to_tab; + chars_to_tab = TAB_STOP; + } else { + break; + } + } + + parser->indent = parser->first_nonspace_column - parser->column; + parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace)); } -static void -S_advance_offset(cmark_parser *parser, cmark_chunk *input, bufsize_t count, bool columns) -{ - char c; - int chars_to_tab; - while (count > 0 && (c = peek_at(input, parser->offset))) { - if (c == '\t') { - chars_to_tab = 4 - (parser->column % TAB_STOP); - parser->column += chars_to_tab; - parser->offset += 1; - count -= (columns ? chars_to_tab : 1); - } else { - parser->offset += 1; - parser->column += 1; // assume ascii; block starts are ascii - count -= 1; - } - } +static void S_advance_offset(cmark_parser *parser, cmark_chunk *input, + bufsize_t count, bool columns) { + char c; + int chars_to_tab; + while (count > 0 && (c = peek_at(input, parser->offset))) { + if (c == '\t') { + chars_to_tab = 4 - (parser->column % TAB_STOP); + parser->column += chars_to_tab; + parser->offset += 1; + count -= (columns ? chars_to_tab : 1); + } else { + parser->offset += 1; + parser->column += 1; // assume ascii; block starts are ascii + count -= 1; + } + } } - -static void -S_process_line(cmark_parser *parser, const unsigned char *buffer, bufsize_t bytes) -{ - cmark_node* last_matched_container; - bufsize_t matched = 0; - int lev = 0; - int i; - cmark_list *data = NULL; - bool all_matched = true; - cmark_node* container; - bool indented; - cmark_chunk input; - bool maybe_lazy; - - if (parser->options & CMARK_OPT_VALIDATE_UTF8) { - utf8proc_check(parser->curline, buffer, bytes); - } else { - cmark_strbuf_put(parser->curline, buffer, bytes); - } - parser->offset = 0; - parser->column = 0; - parser->blank = false; - - input.data = parser->curline->ptr; - input.len = parser->curline->size; - - // container starts at the document root. - container = parser->root; - - parser->line_number++; - - // for each containing node, try to parse the associated line start. - // bail out on failure: container will point to the last matching node. - - while (container->last_child && container->last_child->open) { - container = container->last_child; - - S_find_first_nonspace(parser, &input); - - if (container->type == NODE_BLOCK_QUOTE) { - matched = parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>'; - if (matched) { - S_advance_offset(parser, &input, parser->indent + 1, true); - if (peek_at(&input, parser->offset) == ' ') - parser->offset++; - } else { - all_matched = false; - } - - } else if (container->type == NODE_ITEM) { - if (parser->indent >= container->as.list.marker_offset + - container->as.list.padding) { - S_advance_offset(parser, &input, - container->as.list.marker_offset + - container->as.list.padding, true); - } else if (parser->blank) { - S_advance_offset(parser, &input, - parser->first_nonspace - parser->offset, false); - } else { - all_matched = false; - } - - } else if (container->type == NODE_CODE_BLOCK) { - - if (!container->as.code.fenced) { // indented - if (parser->indent >= CODE_INDENT) { - S_advance_offset(parser, &input, CODE_INDENT, true); - } else if (parser->blank) { - S_advance_offset(parser, &input, - parser->first_nonspace - parser->offset, - false); - } else { - all_matched = false; - } - } else { // fenced - matched = 0; - if (parser->indent <= 3 && - (peek_at(&input, parser->first_nonspace) == - container->as.code.fence_char)) { - matched = scan_close_code_fence(&input, - parser->first_nonspace); - } - if (matched >= container->as.code.fence_length) { - // closing fence - and since we're at - // the end of a line, we can return: - all_matched = false; - S_advance_offset(parser, &input, matched, false); - parser->current = finalize(parser, container); - goto finished; - } else { - // skip opt. spaces of fence parser->offset - i = container->as.code.fence_offset; - while (i > 0 && - peek_at(&input, parser->offset) == ' ') { - S_advance_offset(parser, &input, 1, false); - i--; - } - } - } - } else if (container->type == NODE_HEADER) { - - // a header can never contain more than one line - all_matched = false; - - } else if (container->type == NODE_HTML) { - - switch (container->as.html_block_type) { - case 1: - case 2: - case 3: - case 4: - case 5: - // these types of blocks can accept blanks - break; - case 6: - case 7: - if (parser->blank) { - all_matched = false; - } - break; - default: - fprintf(stderr, - "Error (%s:%d): Unknown HTML block type %d\n", - __FILE__, __LINE__, - container->as.html_block_type); - exit(1); - } - - } else if (container->type == NODE_PARAGRAPH) { - - if (parser->blank) { - all_matched = false; - } - - } - - if (!all_matched) { - container = container->parent; // back up to last matching node - break; - } - } - - last_matched_container = container; - - // check to see if we've hit 2nd blank line, break out of list: - if (parser->blank && container->last_line_blank) { - break_out_of_lists(parser, &container); - } - - maybe_lazy = parser->current->type == NODE_PARAGRAPH; - // try new container starts: - while (container->type != NODE_CODE_BLOCK && - container->type != NODE_HTML) { - - S_find_first_nonspace(parser, &input); - indented = parser->indent >= CODE_INDENT; - - if (!indented && peek_at(&input, parser->first_nonspace) == '>') { - - S_advance_offset(parser, &input, parser->first_nonspace + 1 - parser->offset, false); - // optional following character - if (peek_at(&input, parser->offset) == ' ') - S_advance_offset(parser, &input, 1, false); - container = add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1); - - } else if (!indented && (matched = scan_atx_header_start(&input, parser->first_nonspace))) { - - S_advance_offset(parser, &input, - parser->first_nonspace + matched - parser->offset, false); - container = add_child(parser, container, NODE_HEADER, parser->offset + 1); - - bufsize_t hashpos = cmark_chunk_strchr(&input, '#', parser->first_nonspace); - int level = 0; - - while (peek_at(&input, hashpos) == '#') { - level++; - hashpos++; - } - container->as.header.level = level; - container->as.header.setext = false; - - } else if (!indented && (matched = scan_open_code_fence(&input, parser->first_nonspace))) { - - container = add_child(parser, container, NODE_CODE_BLOCK, parser->first_nonspace + 1); - container->as.code.fenced = true; - container->as.code.fence_char = peek_at(&input, parser->first_nonspace); - container->as.code.fence_length = matched; - container->as.code.fence_offset = parser->first_nonspace - parser->offset; - container->as.code.info = cmark_chunk_literal(""); - S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false); - - } else if (!indented && - ((matched = scan_html_block_start(&input, parser->first_nonspace)) || - (container->type != NODE_PARAGRAPH && - (matched = scan_html_block_start_7(&input, parser->first_nonspace))))) { - - container = add_child(parser, container, NODE_HTML, parser->first_nonspace + 1); - container->as.html_block_type = matched; - // note, we don't adjust parser->offset because the tag is part of the text - - } else if (!indented && - container->type == NODE_PARAGRAPH && - (lev = scan_setext_header_line(&input, parser->first_nonspace)) && - // check that there is only one line in the paragraph: - (cmark_strbuf_strrchr(&container->string_content, '\n', - cmark_strbuf_len(&container->string_content) - 2) < 0)) { - - container->type = NODE_HEADER; - container->as.header.level = lev; - container->as.header.setext = true; - S_advance_offset(parser, &input, input.len - 1 - parser->offset, false); - - } else if (!indented && - !(container->type == NODE_PARAGRAPH && - !all_matched) && - (matched = scan_hrule(&input, parser->first_nonspace))) { - - // it's only now that we know the line is not part of a setext header: - container = add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1); - container = finalize(parser, container); - S_advance_offset(parser, &input, input.len - 1 - parser->offset, false); - - } else if ((matched = parse_list_marker(&input, parser->first_nonspace, &data)) && - (!indented || container->type == NODE_LIST)) { - // Note that we can have new list items starting with >= 4 - // spaces indent, as long as the list container is still open. - - // compute padding: - S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false); - i = 0; - while (i <= 5 && peek_at(&input, parser->offset + i) == ' ') { - i++; - } - // i = number of spaces after marker, up to 5 - if (i >= 5 || i < 1 || - S_is_line_end_char(peek_at(&input, parser->offset))) { - data->padding = matched + 1; - if (i > 0) { - S_advance_offset(parser, &input, 1, false); - } - } else { - data->padding = matched + i; - S_advance_offset(parser, &input, i, true); - } - - // check container; if it's a list, see if this list item - // can continue the list; otherwise, create a list container. - - data->marker_offset = parser->indent; - - if (container->type != NODE_LIST || - !lists_match(&container->as.list, data)) { - container = add_child(parser, container, NODE_LIST, - parser->first_nonspace + 1); - - memcpy(&container->as.list, data, sizeof(*data)); - } - - // add the list item - container = add_child(parser, container, NODE_ITEM, - parser->first_nonspace + 1); - /* TODO: static */ - memcpy(&container->as.list, data, sizeof(*data)); - free(data); - - } else if (indented && !maybe_lazy && !parser->blank) { - S_advance_offset(parser, &input, CODE_INDENT, true); - container = add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1); - container->as.code.fenced = false; - container->as.code.fence_char = 0; - container->as.code.fence_length = 0; - container->as.code.fence_offset = 0; - container->as.code.info = cmark_chunk_literal(""); - - } else { - break; - } - - if (accepts_lines(container->type)) { - // if it's a line container, it can't contain other containers - break; - } - maybe_lazy = false; - } - - // what remains at parser->offset is a text line. add the text to the - // appropriate container. - - S_find_first_nonspace(parser, &input); - - if (parser->blank && container->last_child) { - container->last_child->last_line_blank = true; - } - - // block quote lines are never blank as they start with > - // and we don't count blanks in fenced code for purposes of tight/loose - // lists or breaking out of lists. we also don't set last_line_blank - // on an empty list item. - container->last_line_blank = (parser->blank && - container->type != NODE_BLOCK_QUOTE && - container->type != NODE_HEADER && - !(container->type == NODE_CODE_BLOCK && - container->as.code.fenced) && - !(container->type == NODE_ITEM && - container->first_child == NULL && - container->start_line == parser->line_number)); - - cmark_node *cont = container; - while (cont->parent) { - cont->parent->last_line_blank = false; - cont = cont->parent; - } - - if (parser->current != last_matched_container && - container == last_matched_container && - !parser->blank && - parser->current->type == NODE_PARAGRAPH && - cmark_strbuf_len(&parser->current->string_content) > 0) { - - add_line(parser->current, &input, parser->offset); - - } else { // not a lazy continuation - - // finalize any blocks that were not matched and set cur to container: - while (parser->current != last_matched_container) { - parser->current = finalize(parser, parser->current); - assert(parser->current != NULL); - } - - if (container->type == NODE_CODE_BLOCK) { - - add_line(container, &input, parser->offset); - - } else if (container->type == NODE_HTML) { - - add_line(container, &input, parser->offset); - - int matches_end_condition; - switch (container->as.html_block_type) { - case 1: - // </script>, </style>, </pre> - matches_end_condition = - scan_html_block_end_1(&input, parser->first_nonspace); - break; - case 2: - // --> - matches_end_condition = - scan_html_block_end_2(&input, parser->first_nonspace); - break; - case 3: - // ?> - matches_end_condition = - scan_html_block_end_3(&input, parser->first_nonspace); - break; - case 4: - // > - matches_end_condition = - scan_html_block_end_4(&input, parser->first_nonspace); - break; - case 5: - // ]]> - matches_end_condition = - scan_html_block_end_5(&input, parser->first_nonspace); - break; - default: - matches_end_condition = 0; - break; - } - - if (matches_end_condition) { - container = finalize(parser, container); - assert(parser->current != NULL); - } - - } else if (parser->blank) { - - // ??? do nothing - - } else if (accepts_lines(container->type)) { - - if (container->type == NODE_HEADER && - container->as.header.setext == false) { - chop_trailing_hashtags(&input); - } - add_line(container, &input, parser->first_nonspace); - - } else { - // create paragraph container for line - container = add_child(parser, container, NODE_PARAGRAPH, parser->first_nonspace + 1); - add_line(container, &input, parser->first_nonspace); - - } - - parser->current = container; - } +static void S_process_line(cmark_parser *parser, const unsigned char *buffer, + bufsize_t bytes) { + cmark_node *last_matched_container; + bufsize_t matched = 0; + int lev = 0; + int i; + cmark_list *data = NULL; + bool all_matched = true; + cmark_node *container; + bool indented; + cmark_chunk input; + bool maybe_lazy; + + if (parser->options & CMARK_OPT_VALIDATE_UTF8) { + utf8proc_check(parser->curline, buffer, bytes); + } else { + cmark_strbuf_put(parser->curline, buffer, bytes); + } + parser->offset = 0; + parser->column = 0; + parser->blank = false; + + input.data = parser->curline->ptr; + input.len = parser->curline->size; + + // container starts at the document root. + container = parser->root; + + parser->line_number++; + + // for each containing node, try to parse the associated line start. + // bail out on failure: container will point to the last matching node. + + while (container->last_child && container->last_child->open) { + container = container->last_child; + + S_find_first_nonspace(parser, &input); + + if (container->type == NODE_BLOCK_QUOTE) { + matched = + parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>'; + if (matched) { + S_advance_offset(parser, &input, parser->indent + 1, true); + if (peek_at(&input, parser->offset) == ' ') + parser->offset++; + } else { + all_matched = false; + } + + } else if (container->type == NODE_ITEM) { + if (parser->indent >= + container->as.list.marker_offset + container->as.list.padding) { + S_advance_offset(parser, &input, container->as.list.marker_offset + + container->as.list.padding, + true); + } else if (parser->blank) { + S_advance_offset(parser, &input, + parser->first_nonspace - parser->offset, false); + } else { + all_matched = false; + } + + } else if (container->type == NODE_CODE_BLOCK) { + + if (!container->as.code.fenced) { // indented + if (parser->indent >= CODE_INDENT) { + S_advance_offset(parser, &input, CODE_INDENT, true); + } else if (parser->blank) { + S_advance_offset(parser, &input, + parser->first_nonspace - parser->offset, false); + } else { + all_matched = false; + } + } else { // fenced + matched = 0; + if (parser->indent <= 3 && (peek_at(&input, parser->first_nonspace) == + container->as.code.fence_char)) { + matched = scan_close_code_fence(&input, parser->first_nonspace); + } + if (matched >= container->as.code.fence_length) { + // closing fence - and since we're at + // the end of a line, we can return: + all_matched = false; + S_advance_offset(parser, &input, matched, false); + parser->current = finalize(parser, container); + goto finished; + } else { + // skip opt. spaces of fence parser->offset + i = container->as.code.fence_offset; + while (i > 0 && peek_at(&input, parser->offset) == ' ') { + S_advance_offset(parser, &input, 1, false); + i--; + } + } + } + } else if (container->type == NODE_HEADER) { + + // a header can never contain more than one line + all_matched = false; + + } else if (container->type == NODE_HTML) { + + switch (container->as.html_block_type) { + case 1: + case 2: + case 3: + case 4: + case 5: + // these types of blocks can accept blanks + break; + case 6: + case 7: + if (parser->blank) { + all_matched = false; + } + break; + default: + fprintf(stderr, "Error (%s:%d): Unknown HTML block type %d\n", __FILE__, + __LINE__, container->as.html_block_type); + exit(1); + } + + } else if (container->type == NODE_PARAGRAPH) { + + if (parser->blank) { + all_matched = false; + } + } + + if (!all_matched) { + container = container->parent; // back up to last matching node + break; + } + } + + last_matched_container = container; + + // check to see if we've hit 2nd blank line, break out of list: + if (parser->blank && container->last_line_blank) { + break_out_of_lists(parser, &container); + } + + maybe_lazy = parser->current->type == NODE_PARAGRAPH; + // try new container starts: + while (container->type != NODE_CODE_BLOCK && container->type != NODE_HTML) { + + S_find_first_nonspace(parser, &input); + indented = parser->indent >= CODE_INDENT; + + if (!indented && peek_at(&input, parser->first_nonspace) == '>') { + + S_advance_offset(parser, &input, + parser->first_nonspace + 1 - parser->offset, false); + // optional following character + if (peek_at(&input, parser->offset) == ' ') + S_advance_offset(parser, &input, 1, false); + container = + add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1); + + } else if (!indented && (matched = scan_atx_header_start( + &input, parser->first_nonspace))) { + + S_advance_offset(parser, &input, + parser->first_nonspace + matched - parser->offset, + false); + container = add_child(parser, container, NODE_HEADER, parser->offset + 1); + + bufsize_t hashpos = + cmark_chunk_strchr(&input, '#', parser->first_nonspace); + int level = 0; + + while (peek_at(&input, hashpos) == '#') { + level++; + hashpos++; + } + container->as.header.level = level; + container->as.header.setext = false; + + } else if (!indented && (matched = scan_open_code_fence( + &input, parser->first_nonspace))) { + + container = add_child(parser, container, NODE_CODE_BLOCK, + parser->first_nonspace + 1); + container->as.code.fenced = true; + container->as.code.fence_char = peek_at(&input, parser->first_nonspace); + container->as.code.fence_length = matched; + container->as.code.fence_offset = parser->first_nonspace - parser->offset; + container->as.code.info = cmark_chunk_literal(""); + S_advance_offset(parser, &input, + parser->first_nonspace + matched - parser->offset, + false); + + } else if (!indented && ((matched = scan_html_block_start( + &input, parser->first_nonspace)) || + (container->type != NODE_PARAGRAPH && + (matched = scan_html_block_start_7( + &input, parser->first_nonspace))))) { + + container = + add_child(parser, container, NODE_HTML, parser->first_nonspace + 1); + container->as.html_block_type = matched; + // note, we don't adjust parser->offset because the tag is part of the + // text + + } else if (!indented && container->type == NODE_PARAGRAPH && + (lev = + scan_setext_header_line(&input, parser->first_nonspace)) && + // check that there is only one line in the paragraph: + (cmark_strbuf_strrchr( + &container->string_content, '\n', + cmark_strbuf_len(&container->string_content) - 2) < 0)) { + + container->type = NODE_HEADER; + container->as.header.level = lev; + container->as.header.setext = true; + S_advance_offset(parser, &input, input.len - 1 - parser->offset, false); + + } else if (!indented && + !(container->type == NODE_PARAGRAPH && !all_matched) && + (matched = scan_hrule(&input, parser->first_nonspace))) { + + // it's only now that we know the line is not part of a setext header: + container = + add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1); + container = finalize(parser, container); + S_advance_offset(parser, &input, input.len - 1 - parser->offset, false); + + } else if ((matched = + parse_list_marker(&input, parser->first_nonspace, &data)) && + (!indented || container->type == NODE_LIST)) { + // Note that we can have new list items starting with >= 4 + // spaces indent, as long as the list container is still open. + + // compute padding: + S_advance_offset(parser, &input, + parser->first_nonspace + matched - parser->offset, + false); + i = 0; + while (i <= 5 && peek_at(&input, parser->offset + i) == ' ') { + i++; + } + // i = number of spaces after marker, up to 5 + if (i >= 5 || i < 1 || + S_is_line_end_char(peek_at(&input, parser->offset))) { + data->padding = matched + 1; + if (i > 0) { + S_advance_offset(parser, &input, 1, false); + } + } else { + data->padding = matched + i; + S_advance_offset(parser, &input, i, true); + } + + // check container; if it's a list, see if this list item + // can continue the list; otherwise, create a list container. + + data->marker_offset = parser->indent; + + if (container->type != NODE_LIST || + !lists_match(&container->as.list, data)) { + container = + add_child(parser, container, NODE_LIST, parser->first_nonspace + 1); + + memcpy(&container->as.list, data, sizeof(*data)); + } + + // add the list item + container = + add_child(parser, container, NODE_ITEM, parser->first_nonspace + 1); + /* TODO: static */ + memcpy(&container->as.list, data, sizeof(*data)); + free(data); + + } else if (indented && !maybe_lazy && !parser->blank) { + S_advance_offset(parser, &input, CODE_INDENT, true); + container = + add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1); + container->as.code.fenced = false; + container->as.code.fence_char = 0; + container->as.code.fence_length = 0; + container->as.code.fence_offset = 0; + container->as.code.info = cmark_chunk_literal(""); + + } else { + break; + } + + if (accepts_lines(container->type)) { + // if it's a line container, it can't contain other containers + break; + } + maybe_lazy = false; + } + + // what remains at parser->offset is a text line. add the text to the + // appropriate container. + + S_find_first_nonspace(parser, &input); + + if (parser->blank && container->last_child) { + container->last_child->last_line_blank = true; + } + + // block quote lines are never blank as they start with > + // and we don't count blanks in fenced code for purposes of tight/loose + // lists or breaking out of lists. we also don't set last_line_blank + // on an empty list item. + container->last_line_blank = + (parser->blank && container->type != NODE_BLOCK_QUOTE && + container->type != NODE_HEADER && + !(container->type == NODE_CODE_BLOCK && container->as.code.fenced) && + !(container->type == NODE_ITEM && container->first_child == NULL && + container->start_line == parser->line_number)); + + cmark_node *cont = container; + while (cont->parent) { + cont->parent->last_line_blank = false; + cont = cont->parent; + } + + if (parser->current != last_matched_container && + container == last_matched_container && !parser->blank && + parser->current->type == NODE_PARAGRAPH && + cmark_strbuf_len(&parser->current->string_content) > 0) { + + add_line(parser->current, &input, parser->offset); + + } else { // not a lazy continuation + + // finalize any blocks that were not matched and set cur to container: + while (parser->current != last_matched_container) { + parser->current = finalize(parser, parser->current); + assert(parser->current != NULL); + } + + if (container->type == NODE_CODE_BLOCK) { + + add_line(container, &input, parser->offset); + + } else if (container->type == NODE_HTML) { + + add_line(container, &input, parser->offset); + + int matches_end_condition; + switch (container->as.html_block_type) { + case 1: + // </script>, </style>, </pre> + matches_end_condition = + scan_html_block_end_1(&input, parser->first_nonspace); + break; + case 2: + // --> + matches_end_condition = + scan_html_block_end_2(&input, parser->first_nonspace); + break; + case 3: + // ?> + matches_end_condition = + scan_html_block_end_3(&input, parser->first_nonspace); + break; + case 4: + // > + matches_end_condition = + scan_html_block_end_4(&input, parser->first_nonspace); + break; + case 5: + // ]]> + matches_end_condition = + scan_html_block_end_5(&input, parser->first_nonspace); + break; + default: + matches_end_condition = 0; + break; + } + + if (matches_end_condition) { + container = finalize(parser, container); + assert(parser->current != NULL); + } + + } else if (parser->blank) { + + // ??? do nothing + + } else if (accepts_lines(container->type)) { + + if (container->type == NODE_HEADER && + container->as.header.setext == false) { + chop_trailing_hashtags(&input); + } + add_line(container, &input, parser->first_nonspace); + + } else { + // create paragraph container for line + container = add_child(parser, container, NODE_PARAGRAPH, + parser->first_nonspace + 1); + add_line(container, &input, parser->first_nonspace); + } + + parser->current = container; + } finished: - parser->last_line_length = parser->curline->size; - if (parser->last_line_length && - parser->curline->ptr[parser->last_line_length - 1] == '\n') - parser->last_line_length -= 1; - if (parser->last_line_length && - parser->curline->ptr[parser->last_line_length - 1] == '\r') - parser->last_line_length -= 1; - - cmark_strbuf_clear(parser->curline); - + parser->last_line_length = parser->curline->size; + if (parser->last_line_length && + parser->curline->ptr[parser->last_line_length - 1] == '\n') + parser->last_line_length -= 1; + if (parser->last_line_length && + parser->curline->ptr[parser->last_line_length - 1] == '\r') + parser->last_line_length -= 1; + + cmark_strbuf_clear(parser->curline); } -cmark_node *cmark_parser_finish(cmark_parser *parser) -{ - if (parser->linebuf->size) { - S_process_line(parser, parser->linebuf->ptr, - parser->linebuf->size); - cmark_strbuf_clear(parser->linebuf); - } +cmark_node *cmark_parser_finish(cmark_parser *parser) { + if (parser->linebuf->size) { + S_process_line(parser, parser->linebuf->ptr, parser->linebuf->size); + cmark_strbuf_clear(parser->linebuf); + } - finalize_document(parser); + finalize_document(parser); - if (parser->options & CMARK_OPT_NORMALIZE) { - cmark_consolidate_text_nodes(parser->root); - } + if (parser->options & CMARK_OPT_NORMALIZE) { + cmark_consolidate_text_nodes(parser->root); + } - cmark_strbuf_free(parser->curline); + cmark_strbuf_free(parser->curline); #if CMARK_DEBUG_NODES - if (cmark_node_check(parser->root, stderr)) { - abort(); - } + if (cmark_node_check(parser->root, stderr)) { + abort(); + } #endif - return parser->root; + return parser->root; } diff --git a/src/buffer.c b/src/buffer.c index 509eb6c..9d31881 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -16,323 +16,301 @@ unsigned char cmark_strbuf__initbuf[1]; #ifndef MIN -#define MIN(x,y) ((x<y) ? x : y) +#define MIN(x, y) ((x < y) ? x : y) #endif -void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size) -{ - buf->asize = 0; - buf->size = 0; - buf->ptr = cmark_strbuf__initbuf; +void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size) { + buf->asize = 0; + buf->size = 0; + buf->ptr = cmark_strbuf__initbuf; - if (initial_size > 0) - cmark_strbuf_grow(buf, initial_size); + if (initial_size > 0) + cmark_strbuf_grow(buf, initial_size); } -void cmark_strbuf_overflow_err() -{ - fprintf(stderr, "String buffer overflow"); - abort(); +void cmark_strbuf_overflow_err() { + fprintf(stderr, "String buffer overflow"); + abort(); } -static inline void -S_strbuf_grow_by(cmark_strbuf *buf, size_t add) -{ - size_t target_size = (size_t)buf->size + add; +static inline void S_strbuf_grow_by(cmark_strbuf *buf, size_t add) { + size_t target_size = (size_t)buf->size + add; - if (target_size < add /* Integer overflow. */ - || target_size > BUFSIZE_MAX /* Truncation overflow. */ - ) { - cmark_strbuf_overflow_err(); - return; /* unreachable */ - } + if (target_size < add /* Integer overflow. */ + || target_size > BUFSIZE_MAX /* Truncation overflow. */ + ) { + cmark_strbuf_overflow_err(); + return; /* unreachable */ + } - if ((bufsize_t)target_size >= buf->asize) - cmark_strbuf_grow(buf, (bufsize_t)target_size); + if ((bufsize_t)target_size >= buf->asize) + cmark_strbuf_grow(buf, (bufsize_t)target_size); } -void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) -{ - unsigned char *new_ptr; - - if (target_size < buf->asize) - return; - - if (buf->asize == 0) { - new_ptr = NULL; - } else { - new_ptr = buf->ptr; - } - - /* Oversize the buffer by 50% to guarantee amortized linear time - * complexity on append operations. */ - size_t new_size = (size_t)target_size + (size_t)target_size / 2; - - /* Account for terminating null byte. */ - new_size += 1; - - /* round allocation up to multiple of 8 */ - new_size = (new_size + 7) & ~7; - - if (new_size < (size_t)target_size /* Integer overflow. */ - || new_size > BUFSIZE_MAX /* Truncation overflow. */ - ) { - if (target_size >= BUFSIZE_MAX) { - /* No space for terminating null byte. */ - cmark_strbuf_overflow_err(); - return; /* unreachable */ - } - /* Oversize by the maximum possible amount. */ - new_size = BUFSIZE_MAX; - } - - new_ptr = (unsigned char *)realloc(new_ptr, new_size); - - if (!new_ptr) { - perror("realloc in cmark_strbuf_grow"); - abort(); - } - - buf->asize = (bufsize_t)new_size; - buf->ptr = new_ptr; +void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) { + unsigned char *new_ptr; + + if (target_size < buf->asize) + return; + + if (buf->asize == 0) { + new_ptr = NULL; + } else { + new_ptr = buf->ptr; + } + + /* Oversize the buffer by 50% to guarantee amortized linear time + * complexity on append operations. */ + size_t new_size = (size_t)target_size + (size_t)target_size / 2; + + /* Account for terminating null byte. */ + new_size += 1; + + /* round allocation up to multiple of 8 */ + new_size = (new_size + 7) & ~7; + + if (new_size < (size_t)target_size /* Integer overflow. */ + || new_size > BUFSIZE_MAX /* Truncation overflow. */ + ) { + if (target_size >= BUFSIZE_MAX) { + /* No space for terminating null byte. */ + cmark_strbuf_overflow_err(); + return; /* unreachable */ + } + /* Oversize by the maximum possible amount. */ + new_size = BUFSIZE_MAX; + } + + new_ptr = (unsigned char *)realloc(new_ptr, new_size); + + if (!new_ptr) { + perror("realloc in cmark_strbuf_grow"); + abort(); + } + + buf->asize = (bufsize_t)new_size; + buf->ptr = new_ptr; } -bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) -{ - return buf->size; -} +bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) { return buf->size; } -void cmark_strbuf_free(cmark_strbuf *buf) -{ - if (!buf) return; +void cmark_strbuf_free(cmark_strbuf *buf) { + if (!buf) + return; - if (buf->ptr != cmark_strbuf__initbuf) - free(buf->ptr); + if (buf->ptr != cmark_strbuf__initbuf) + free(buf->ptr); - cmark_strbuf_init(buf, 0); + cmark_strbuf_init(buf, 0); } -void cmark_strbuf_clear(cmark_strbuf *buf) -{ - buf->size = 0; +void cmark_strbuf_clear(cmark_strbuf *buf) { + buf->size = 0; - if (buf->asize > 0) - buf->ptr[0] = '\0'; + if (buf->asize > 0) + buf->ptr[0] = '\0'; } -void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, bufsize_t len) -{ - if (len <= 0 || data == NULL) { - cmark_strbuf_clear(buf); - } else { - if (data != buf->ptr) { - if (len >= buf->asize) - cmark_strbuf_grow(buf, len); - memmove(buf->ptr, data, len); - } - buf->size = len; - buf->ptr[buf->size] = '\0'; - } +void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len) { + if (len <= 0 || data == NULL) { + cmark_strbuf_clear(buf); + } else { + if (data != buf->ptr) { + if (len >= buf->asize) + cmark_strbuf_grow(buf, len); + memmove(buf->ptr, data, len); + } + buf->size = len; + buf->ptr[buf->size] = '\0'; + } } -void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) -{ - cmark_strbuf_set(buf, (const unsigned char *)string, - string ? cmark_strbuf_safe_strlen(string) : 0); +void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) { + cmark_strbuf_set(buf, (const unsigned char *)string, + string ? cmark_strbuf_safe_strlen(string) : 0); } -void cmark_strbuf_putc(cmark_strbuf *buf, int c) -{ - S_strbuf_grow_by(buf, 1); - buf->ptr[buf->size++] = c; - buf->ptr[buf->size] = '\0'; +void cmark_strbuf_putc(cmark_strbuf *buf, int c) { + S_strbuf_grow_by(buf, 1); + buf->ptr[buf->size++] = c; + buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, bufsize_t len) -{ - if (len <= 0) - return; +void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len) { + if (len <= 0) + return; - S_strbuf_grow_by(buf, len); - memmove(buf->ptr + buf->size, data, len); - buf->size += len; - buf->ptr[buf->size] = '\0'; + S_strbuf_grow_by(buf, len); + memmove(buf->ptr + buf->size, data, len); + buf->size += len; + buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) -{ - cmark_strbuf_put(buf, (const unsigned char *)string, - cmark_strbuf_safe_strlen(string)); +void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) { + cmark_strbuf_put(buf, (const unsigned char *)string, + cmark_strbuf_safe_strlen(string)); } -void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf) -{ - bufsize_t copylen; +void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, + const cmark_strbuf *buf) { + bufsize_t copylen; - assert(buf); - if (!data || datasize <= 0) - return; + assert(buf); + if (!data || datasize <= 0) + return; - data[0] = '\0'; + data[0] = '\0'; - if (buf->size == 0 || buf->asize <= 0) - return; + if (buf->size == 0 || buf->asize <= 0) + return; - copylen = buf->size; - if (copylen > datasize - 1) - copylen = datasize - 1; - memmove(data, buf->ptr, copylen); - data[copylen] = '\0'; + copylen = buf->size; + if (copylen > datasize - 1) + copylen = datasize - 1; + memmove(data, buf->ptr, copylen); + data[copylen] = '\0'; } -void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) -{ - cmark_strbuf t = *buf_a; - *buf_a = *buf_b; - *buf_b = t; +void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) { + cmark_strbuf t = *buf_a; + *buf_a = *buf_b; + *buf_b = t; } -unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) -{ - unsigned char *data = buf->ptr; +unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) { + unsigned char *data = buf->ptr; - if (buf->asize == 0) { - /* return an empty string */ - return (unsigned char *)calloc(1, 1); - } + if (buf->asize == 0) { + /* return an empty string */ + return (unsigned char *)calloc(1, 1); + } - cmark_strbuf_init(buf, 0); - return data; + cmark_strbuf_init(buf, 0); + return data; } -int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) -{ - int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size)); - return (result != 0) ? result : - (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0; +int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) { + int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size)); + return (result != 0) ? result + : (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0; } -bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) -{ - if (pos >= buf->size) - return -1; - if (pos < 0) - pos = 0; +bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) { + if (pos >= buf->size) + return -1; + if (pos < 0) + pos = 0; - const unsigned char *p = (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos); - if (!p) - return -1; + const unsigned char *p = + (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos); + if (!p) + return -1; - return (bufsize_t)(p - (const unsigned char *)buf->ptr); + return (bufsize_t)(p - (const unsigned char *)buf->ptr); } -bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) -{ - if (pos < 0 || buf->size == 0) - return -1; - if (pos >= buf->size) - pos = buf->size - 1; +bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) { + if (pos < 0 || buf->size == 0) + return -1; + if (pos >= buf->size) + pos = buf->size - 1; - for (bufsize_t i = pos; i >= 0; i--) { - if (buf->ptr[i] == (unsigned char) c) - return i; - } + for (bufsize_t i = pos; i >= 0; i--) { + if (buf->ptr[i] == (unsigned char)c) + return i; + } - return -1; + return -1; } -void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) -{ - if (len < 0) - len = 0; +void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) { + if (len < 0) + len = 0; - if (len < buf->size) { - buf->size = len; - buf->ptr[buf->size] = '\0'; - } + if (len < buf->size) { + buf->size = len; + buf->ptr[buf->size] = '\0'; + } } -void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) -{ - if (n > 0) { - if (n > buf->size) - n = buf->size; - buf->size = buf->size - n; - if (buf->size) - memmove(buf->ptr, buf->ptr + n, buf->size); - - buf->ptr[buf->size] = '\0'; - } +void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) { + if (n > 0) { + if (n > buf->size) + n = buf->size; + buf->size = buf->size - n; + if (buf->size) + memmove(buf->ptr, buf->ptr + n, buf->size); + + buf->ptr[buf->size] = '\0'; + } } -void cmark_strbuf_rtrim(cmark_strbuf *buf) -{ - if (!buf->size) - return; +void cmark_strbuf_rtrim(cmark_strbuf *buf) { + if (!buf->size) + return; - while (buf->size > 0) { - if (!cmark_isspace(buf->ptr[buf->size - 1])) - break; + while (buf->size > 0) { + if (!cmark_isspace(buf->ptr[buf->size - 1])) + break; - buf->size--; - } + buf->size--; + } - buf->ptr[buf->size] = '\0'; + buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_trim(cmark_strbuf *buf) -{ - bufsize_t i = 0; +void cmark_strbuf_trim(cmark_strbuf *buf) { + bufsize_t i = 0; - if (!buf->size) - return; + if (!buf->size) + return; - while (i < buf->size && cmark_isspace(buf->ptr[i])) - i++; + while (i < buf->size && cmark_isspace(buf->ptr[i])) + i++; - cmark_strbuf_drop(buf, i); + cmark_strbuf_drop(buf, i); - cmark_strbuf_rtrim(buf); + cmark_strbuf_rtrim(buf); } // Destructively modify string, collapsing consecutive // space and newline characters into a single space. -void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) -{ - bool last_char_was_space = false; - bufsize_t r, w; - - for (r = 0, w = 0; r < s->size; ++r) { - switch (s->ptr[r]) { - case ' ': - case '\n': - if (last_char_was_space) - break; - - s->ptr[w++] = ' '; - last_char_was_space = true; - break; - - default: - s->ptr[w++] = s->ptr[r]; - last_char_was_space = false; - } - } - - cmark_strbuf_truncate(s, w); +void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) { + bool last_char_was_space = false; + bufsize_t r, w; + + for (r = 0, w = 0; r < s->size; ++r) { + switch (s->ptr[r]) { + case ' ': + case '\n': + if (last_char_was_space) + break; + + s->ptr[w++] = ' '; + last_char_was_space = true; + break; + + default: + s->ptr[w++] = s->ptr[r]; + last_char_was_space = false; + } + } + + cmark_strbuf_truncate(s, w); } // Destructively unescape a string: remove backslashes before punctuation chars. -extern void cmark_strbuf_unescape(cmark_strbuf *buf) -{ - bufsize_t r, w; +extern void cmark_strbuf_unescape(cmark_strbuf *buf) { + bufsize_t r, w; - for (r = 0, w = 0; r < buf->size; ++r) { - if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1])) - r++; + for (r = 0, w = 0; r < buf->size; ++r) { + if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1])) + r++; - buf->ptr[w++] = buf->ptr[r]; - } + buf->ptr[w++] = buf->ptr[r]; + } - cmark_strbuf_truncate(buf, w); + cmark_strbuf_truncate(buf, w); } diff --git a/src/buffer.h b/src/buffer.h index 36ae0a1..e99db72 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -14,13 +14,14 @@ extern "C" { typedef int bufsize_t; typedef struct { - unsigned char *ptr; - bufsize_t asize, size; + unsigned char *ptr; + bufsize_t asize, size; } cmark_strbuf; extern unsigned char cmark_strbuf__initbuf[]; -#define GH_BUF_INIT { cmark_strbuf__initbuf, 0, 0 } +#define GH_BUF_INIT \ + { cmark_strbuf__initbuf, 0, 0 } #define BUFSIZE_MAX INT_MAX /** @@ -44,19 +45,21 @@ bufsize_t cmark_strbuf_len(const cmark_strbuf *buf); int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b); unsigned char *cmark_strbuf_detach(cmark_strbuf *buf); -void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf); +void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, + const cmark_strbuf *buf); -static inline const char *cmark_strbuf_cstr(const cmark_strbuf *buf) -{ - return (char *)buf->ptr; +static inline const char *cmark_strbuf_cstr(const cmark_strbuf *buf) { + return (char *)buf->ptr; } #define cmark_strbuf_at(buf, n) ((buf)->ptr[n]) -void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, bufsize_t len); +void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len); void cmark_strbuf_sets(cmark_strbuf *buf, const char *string); void cmark_strbuf_putc(cmark_strbuf *buf, int c); -void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, bufsize_t len); +void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len); void cmark_strbuf_puts(cmark_strbuf *buf, const char *string); void cmark_strbuf_clear(cmark_strbuf *buf); @@ -72,17 +75,15 @@ void cmark_strbuf_unescape(cmark_strbuf *s); /* Print error and abort. */ void cmark_strbuf_overflow_err(void); -static inline bufsize_t -cmark_strbuf_check_bufsize(size_t size) { - if (size > BUFSIZE_MAX) { - cmark_strbuf_overflow_err(); - } - return (bufsize_t)size; +static inline bufsize_t cmark_strbuf_check_bufsize(size_t size) { + if (size > BUFSIZE_MAX) { + cmark_strbuf_overflow_err(); + } + return (bufsize_t)size; } -static inline bufsize_t -cmark_strbuf_safe_strlen(const char *str) { - return cmark_strbuf_check_bufsize(strlen(str)); +static inline bufsize_t cmark_strbuf_safe_strlen(const char *str) { + return cmark_strbuf_check_bufsize(strlen(str)); } #ifdef __cplusplus diff --git a/src/chunk.h b/src/chunk.h index f23a02d..db1bf0d 100644 --- a/src/chunk.h +++ b/src/chunk.h @@ -7,115 +7,109 @@ #include "cmark_ctype.h" #include "buffer.h" -#define CMARK_CHUNK_EMPTY { NULL, 0, 0 } +#define CMARK_CHUNK_EMPTY \ + { NULL, 0, 0 } typedef struct { - unsigned char *data; - bufsize_t len; - bufsize_t alloc; // also implies a NULL-terminated string + unsigned char *data; + bufsize_t len; + bufsize_t alloc; // also implies a NULL-terminated string } cmark_chunk; -static inline void cmark_chunk_free(cmark_chunk *c) -{ - if (c->alloc) - free(c->data); +static inline void cmark_chunk_free(cmark_chunk *c) { + if (c->alloc) + free(c->data); - c->data = NULL; - c->alloc = 0; - c->len = 0; + c->data = NULL; + c->alloc = 0; + c->len = 0; } -static inline void cmark_chunk_ltrim(cmark_chunk *c) -{ - assert(!c->alloc); +static inline void cmark_chunk_ltrim(cmark_chunk *c) { + assert(!c->alloc); - while (c->len && cmark_isspace(c->data[0])) { - c->data++; - c->len--; - } + while (c->len && cmark_isspace(c->data[0])) { + c->data++; + c->len--; + } } -static inline void cmark_chunk_rtrim(cmark_chunk *c) -{ - while (c->len > 0) { - if (!cmark_isspace(c->data[c->len - 1])) - break; +static inline void cmark_chunk_rtrim(cmark_chunk *c) { + while (c->len > 0) { + if (!cmark_isspace(c->data[c->len - 1])) + break; - c->len--; - } + c->len--; + } } -static inline void cmark_chunk_trim(cmark_chunk *c) -{ - cmark_chunk_ltrim(c); - cmark_chunk_rtrim(c); +static inline void cmark_chunk_trim(cmark_chunk *c) { + cmark_chunk_ltrim(c); + cmark_chunk_rtrim(c); } -static inline bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset) -{ - const unsigned char *p = (unsigned char *)memchr(ch->data + offset, c, ch->len - offset); - return p ? (bufsize_t)(p - ch->data) : ch->len; +static inline bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c, + bufsize_t offset) { + const unsigned char *p = + (unsigned char *)memchr(ch->data + offset, c, ch->len - offset); + return p ? (bufsize_t)(p - ch->data) : ch->len; } -static inline const char *cmark_chunk_to_cstr(cmark_chunk *c) -{ - unsigned char *str; - - if (c->alloc) { - return (char *)c->data; - } - str = (unsigned char *)malloc(c->len + 1); - if(str != NULL) { - if(c->len > 0) { - memcpy(str, c->data, c->len); - } - str[c->len] = 0; - } - c->data = str; - c->alloc = 1; - - return (char *)str; +static inline const char *cmark_chunk_to_cstr(cmark_chunk *c) { + unsigned char *str; + + if (c->alloc) { + return (char *)c->data; + } + str = (unsigned char *)malloc(c->len + 1); + if (str != NULL) { + if (c->len > 0) { + memcpy(str, c->data, c->len); + } + str[c->len] = 0; + } + c->data = str; + c->alloc = 1; + + return (char *)str; } -static inline void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) -{ - if (c->alloc) { - free(c->data); - } - if (str == NULL) { - c->len = 0; - c->data = NULL; - c->alloc = 0; - } else { - c->len = cmark_strbuf_safe_strlen(str); - c->data = (unsigned char *)malloc(c->len + 1); - c->alloc = 1; - memcpy(c->data, str, c->len + 1); - } +static inline void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) { + if (c->alloc) { + free(c->data); + } + if (str == NULL) { + c->len = 0; + c->data = NULL; + c->alloc = 0; + } else { + c->len = cmark_strbuf_safe_strlen(str); + c->data = (unsigned char *)malloc(c->len + 1); + c->alloc = 1; + memcpy(c->data, str, c->len + 1); + } } -static inline cmark_chunk cmark_chunk_literal(const char *data) -{ - bufsize_t len = data ? cmark_strbuf_safe_strlen(data) : 0; - cmark_chunk c = {(unsigned char *)data, len, 0}; - return c; +static inline cmark_chunk cmark_chunk_literal(const char *data) { + bufsize_t len = data ? cmark_strbuf_safe_strlen(data) : 0; + cmark_chunk c = {(unsigned char *)data, len, 0}; + return c; } -static inline cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len) -{ - cmark_chunk c = {ch->data + pos, len, 0}; - return c; +static inline cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, + bufsize_t len) { + cmark_chunk c = {ch->data + pos, len, 0}; + return c; } -static inline cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) -{ - cmark_chunk c; +static inline cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) { + cmark_chunk c; - c.len = buf->size; - c.data = cmark_strbuf_detach(buf); - c.alloc = 1; + c.len = buf->size; + c.data = cmark_strbuf_detach(buf); + c.alloc = 1; - return c; + return c; } #endif diff --git a/src/cmark.c b/src/cmark.c index ca9807b..3491199 100644 --- a/src/cmark.c +++ b/src/cmark.c @@ -6,26 +6,18 @@ #include "cmark.h" #include "buffer.h" -int cmark_version() -{ - return CMARK_VERSION; -} +int cmark_version() { return CMARK_VERSION; } -const char *cmark_version_string() -{ - return CMARK_VERSION_STRING; -} +const char *cmark_version_string() { return CMARK_VERSION_STRING; } -char *cmark_markdown_to_html(const char *text, size_t len, int options) -{ - cmark_node *doc; - char *result; +char *cmark_markdown_to_html(const char *text, size_t len, int options) { + cmark_node *doc; + char *result; - doc = cmark_parse_document(text, len, options); + doc = cmark_parse_document(text, len, options); - result = cmark_render_html(doc, options); - cmark_node_free(doc); + result = cmark_render_html(doc, options); + cmark_node_free(doc); - return result; + return result; } - diff --git a/src/cmark.h b/src/cmark.h index 4a85f26..3ad4486 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -30,49 +30,48 @@ char *cmark_markdown_to_html(const char *text, size_t len, int options); */ typedef enum { - /* Error status */ - CMARK_NODE_NONE, - - /* Block */ - CMARK_NODE_DOCUMENT, - CMARK_NODE_BLOCK_QUOTE, - CMARK_NODE_LIST, - CMARK_NODE_ITEM, - CMARK_NODE_CODE_BLOCK, - CMARK_NODE_HTML, - CMARK_NODE_PARAGRAPH, - CMARK_NODE_HEADER, - CMARK_NODE_HRULE, - - CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, - CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE, - - /* Inline */ - CMARK_NODE_TEXT, - CMARK_NODE_SOFTBREAK, - CMARK_NODE_LINEBREAK, - CMARK_NODE_CODE, - CMARK_NODE_INLINE_HTML, - CMARK_NODE_EMPH, - CMARK_NODE_STRONG, - CMARK_NODE_LINK, - CMARK_NODE_IMAGE, - - CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT, - CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, + /* Error status */ + CMARK_NODE_NONE, + + /* Block */ + CMARK_NODE_DOCUMENT, + CMARK_NODE_BLOCK_QUOTE, + CMARK_NODE_LIST, + CMARK_NODE_ITEM, + CMARK_NODE_CODE_BLOCK, + CMARK_NODE_HTML, + CMARK_NODE_PARAGRAPH, + CMARK_NODE_HEADER, + CMARK_NODE_HRULE, + + CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, + CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE, + + /* Inline */ + CMARK_NODE_TEXT, + CMARK_NODE_SOFTBREAK, + CMARK_NODE_LINEBREAK, + CMARK_NODE_CODE, + CMARK_NODE_INLINE_HTML, + CMARK_NODE_EMPH, + CMARK_NODE_STRONG, + CMARK_NODE_LINK, + CMARK_NODE_IMAGE, + + CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT, + CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, } cmark_node_type; - typedef enum { - CMARK_NO_LIST, - CMARK_BULLET_LIST, - CMARK_ORDERED_LIST -} cmark_list_type; + CMARK_NO_LIST, + CMARK_BULLET_LIST, + CMARK_ORDERED_LIST +} cmark_list_type; typedef enum { - CMARK_NO_DELIM, - CMARK_PERIOD_DELIM, - CMARK_PAREN_DELIM + CMARK_NO_DELIM, + CMARK_PERIOD_DELIM, + CMARK_PAREN_DELIM } cmark_delim_type; typedef struct cmark_node cmark_node; @@ -80,10 +79,10 @@ typedef struct cmark_parser cmark_parser; typedef struct cmark_iter cmark_iter; typedef enum { - CMARK_EVENT_NONE, - CMARK_EVENT_DONE, - CMARK_EVENT_ENTER, - CMARK_EVENT_EXIT + CMARK_EVENT_NONE, + CMARK_EVENT_DONE, + CMARK_EVENT_ENTER, + CMARK_EVENT_EXIT } cmark_event_type; /** @@ -94,13 +93,11 @@ typedef enum { * other required properties, which it is the caller's responsibility * to assign. */ -CMARK_EXPORT cmark_node* -cmark_node_new(cmark_node_type type); +CMARK_EXPORT cmark_node *cmark_node_new(cmark_node_type type); /** Frees the memory allocated for a node. */ -CMARK_EXPORT void -cmark_node_free(cmark_node *node); +CMARK_EXPORT void cmark_node_free(cmark_node *node); /** * ## Tree Traversal @@ -109,29 +106,24 @@ cmark_node_free(cmark_node *node); /** Returns the next node in the sequence after 'node', or NULL if * there is none. */ -CMARK_EXPORT cmark_node* -cmark_node_next(cmark_node *node); +CMARK_EXPORT cmark_node *cmark_node_next(cmark_node *node); /** Returns the previous node in the sequence after 'node', or NULL if * there is none. */ -CMARK_EXPORT cmark_node* -cmark_node_previous(cmark_node *node); +CMARK_EXPORT cmark_node *cmark_node_previous(cmark_node *node); /** Returns the parent of 'node', or NULL if there is none. */ -CMARK_EXPORT cmark_node* -cmark_node_parent(cmark_node *node); +CMARK_EXPORT cmark_node *cmark_node_parent(cmark_node *node); /** Returns the first child of 'node', or NULL if 'node' has no children. */ -CMARK_EXPORT cmark_node* -cmark_node_first_child(cmark_node *node); +CMARK_EXPORT cmark_node *cmark_node_first_child(cmark_node *node); /** Returns the last child of 'node', or NULL if 'node' has no children. */ -CMARK_EXPORT cmark_node* -cmark_node_last_child(cmark_node *node); +CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); /** * ## Iterator @@ -182,48 +174,41 @@ cmark_node_last_child(cmark_node *node); * type are undefined until `cmark_iter_next` is called for the first time. */ CMARK_EXPORT -cmark_iter* -cmark_iter_new(cmark_node *root); +cmark_iter *cmark_iter_new(cmark_node *root); /** Frees the memory allocated for an iterator. */ CMARK_EXPORT -void -cmark_iter_free(cmark_iter *iter); +void cmark_iter_free(cmark_iter *iter); /** Advances to the next node and returns the event type (`CMARK_EVENT_ENTER`, * `CMARK_EVENT_EXIT` or `CMARK_EVENT_DONE`). */ CMARK_EXPORT -cmark_event_type -cmark_iter_next(cmark_iter *iter); +cmark_event_type cmark_iter_next(cmark_iter *iter); /** Returns the current node. */ CMARK_EXPORT -cmark_node* -cmark_iter_get_node(cmark_iter *iter); +cmark_node *cmark_iter_get_node(cmark_iter *iter); /** Returns the current event type. */ CMARK_EXPORT -cmark_event_type -cmark_iter_get_event_type(cmark_iter *iter); +cmark_event_type cmark_iter_get_event_type(cmark_iter *iter); /** Returns the root node. */ CMARK_EXPORT -cmark_node* -cmark_iter_get_root(cmark_iter *iter); +cmark_node *cmark_iter_get_root(cmark_iter *iter); /** Resets the iterator so that the current node is 'current' and * the event type is 'event_type'. The new current node must be a * descendant of the root node or the root node itself. */ CMARK_EXPORT -void -cmark_iter_reset(cmark_iter *iter, cmark_node *current, - cmark_event_type event_type); +void cmark_iter_reset(cmark_iter *iter, cmark_node *current, + cmark_event_type event_type); /** * ## Accessors @@ -231,144 +216,120 @@ cmark_iter_reset(cmark_iter *iter, cmark_node *current, /** Returns the user data of 'node'. */ -CMARK_EXPORT void* -cmark_node_get_user_data(cmark_node *node); +CMARK_EXPORT void *cmark_node_get_user_data(cmark_node *node); /** Sets arbitrary user data for 'node'. Returns 1 on success, * 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_user_data(cmark_node *node, void *user_data); +CMARK_EXPORT int cmark_node_set_user_data(cmark_node *node, void *user_data); /** Returns the type of 'node', or `CMARK_NODE_NONE` on error. */ -CMARK_EXPORT cmark_node_type -cmark_node_get_type(cmark_node *node); +CMARK_EXPORT cmark_node_type cmark_node_get_type(cmark_node *node); /** Like 'cmark_node_get_type', but returns a string representation of the type, or `"<unknown>"`. */ CMARK_EXPORT -const char* -cmark_node_get_type_string(cmark_node *node); +const char *cmark_node_get_type_string(cmark_node *node); /** Returns the string contents of 'node', or NULL if none. */ -CMARK_EXPORT const char* -cmark_node_get_literal(cmark_node *node); +CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node); /** Sets the string contents of 'node'. Returns 1 on success, * 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_literal(cmark_node *node, const char *content); +CMARK_EXPORT int cmark_node_set_literal(cmark_node *node, const char *content); /** Returns the header level of 'node', or 0 if 'node' is not a header. */ -CMARK_EXPORT int -cmark_node_get_header_level(cmark_node *node); +CMARK_EXPORT int cmark_node_get_header_level(cmark_node *node); /** Sets the header level of 'node', returning 1 on success and 0 on error. */ -CMARK_EXPORT int -cmark_node_set_header_level(cmark_node *node, int level); +CMARK_EXPORT int cmark_node_set_header_level(cmark_node *node, int level); /** Returns the list type of 'node', or `CMARK_NO_LIST` if 'node' * is not a list. */ -CMARK_EXPORT cmark_list_type -cmark_node_get_list_type(cmark_node *node); +CMARK_EXPORT cmark_list_type cmark_node_get_list_type(cmark_node *node); /** Sets the list type of 'node', returning 1 on success and 0 on error. */ -CMARK_EXPORT int -cmark_node_set_list_type(cmark_node *node, cmark_list_type type); +CMARK_EXPORT int cmark_node_set_list_type(cmark_node *node, + cmark_list_type type); /** Returns the list delimiter type of 'node', or `CMARK_NO_DELIM` if 'node' * is not a list. */ -CMARK_EXPORT cmark_delim_type -cmark_node_get_list_delim(cmark_node *node); +CMARK_EXPORT cmark_delim_type cmark_node_get_list_delim(cmark_node *node); /** Sets the list delimiter type of 'node', returning 1 on success and 0 * on error. */ -CMARK_EXPORT int -cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim); +CMARK_EXPORT int cmark_node_set_list_delim(cmark_node *node, + cmark_delim_type delim); /** Returns starting number of 'node', if it is an ordered list, otherwise 0. */ -CMARK_EXPORT int -cmark_node_get_list_start(cmark_node *node); +CMARK_EXPORT int cmark_node_get_list_start(cmark_node *node); /** Sets starting number of 'node', if it is an ordered list. Returns 1 * on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_list_start(cmark_node *node, int start); +CMARK_EXPORT int cmark_node_set_list_start(cmark_node *node, int start); /** Returns 1 if 'node' is a tight list, 0 otherwise. */ -CMARK_EXPORT int -cmark_node_get_list_tight(cmark_node *node); +CMARK_EXPORT int cmark_node_get_list_tight(cmark_node *node); /** Sets the "tightness" of a list. Returns 1 on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_list_tight(cmark_node *node, int tight); +CMARK_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight); /** Returns the info string from a fenced code block, or NULL if none. */ -CMARK_EXPORT const char* -cmark_node_get_fence_info(cmark_node *node); +CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node); /** Sets the info string in a fenced code block, returning 1 on * success and 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_fence_info(cmark_node *node, const char *info); +CMARK_EXPORT int cmark_node_set_fence_info(cmark_node *node, const char *info); /** Gets the URL of a link or image 'node', or NULL if none. */ -CMARK_EXPORT const char* -cmark_node_get_url(cmark_node *node); +CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node); /** Sets the URL of a link or image 'node'. Returns 1 on success, * 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_url(cmark_node *node, const char *url); +CMARK_EXPORT int cmark_node_set_url(cmark_node *node, const char *url); /** Gets the title of a link or image 'node', or NULL if none. */ -CMARK_EXPORT const char* -cmark_node_get_title(cmark_node *node); +CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node); /** Sets the title of a link or image 'node'. Returns 1 on success, * 0 on failure. */ -CMARK_EXPORT int -cmark_node_set_title(cmark_node *node, const char *title); +CMARK_EXPORT int cmark_node_set_title(cmark_node *node, const char *title); /** Returns the line on which 'node' begins. */ -CMARK_EXPORT int -cmark_node_get_start_line(cmark_node *node); +CMARK_EXPORT int cmark_node_get_start_line(cmark_node *node); /** Returns the column at which 'node' begins. */ -CMARK_EXPORT int -cmark_node_get_start_column(cmark_node *node); +CMARK_EXPORT int cmark_node_get_start_column(cmark_node *node); /** Returns the line on which 'node' ends. */ -CMARK_EXPORT int -cmark_node_get_end_line(cmark_node *node); +CMARK_EXPORT int cmark_node_get_end_line(cmark_node *node); /** Returns the column at which 'node' ends. */ -CMARK_EXPORT int -cmark_node_get_end_column(cmark_node *node); +CMARK_EXPORT int cmark_node_get_end_column(cmark_node *node); /** * ## Tree Manipulation @@ -377,35 +338,30 @@ cmark_node_get_end_column(cmark_node *node); /** Unlinks a 'node', removing it from the tree, but not freeing its * memory. (Use 'cmark_node_free' for that.) */ -CMARK_EXPORT void -cmark_node_unlink(cmark_node *node); +CMARK_EXPORT void cmark_node_unlink(cmark_node *node); /** Inserts 'sibling' before 'node'. Returns 1 on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_insert_before(cmark_node *node, cmark_node *sibling); +CMARK_EXPORT int cmark_node_insert_before(cmark_node *node, + cmark_node *sibling); /** Inserts 'sibling' after 'node'. Returns 1 on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_insert_after(cmark_node *node, cmark_node *sibling); +CMARK_EXPORT int cmark_node_insert_after(cmark_node *node, cmark_node *sibling); /** Adds 'child' to the beginning of the children of 'node'. * Returns 1 on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_prepend_child(cmark_node *node, cmark_node *child); +CMARK_EXPORT int cmark_node_prepend_child(cmark_node *node, cmark_node *child); /** Adds 'child' to the end of the children of 'node'. * Returns 1 on success, 0 on failure. */ -CMARK_EXPORT int -cmark_node_append_child(cmark_node *node, cmark_node *child); +CMARK_EXPORT int cmark_node_append_child(cmark_node *node, cmark_node *child); /** Consolidates adjacent text nodes. */ -CMARK_EXPORT void -cmark_consolidate_text_nodes(cmark_node *root); +CMARK_EXPORT void cmark_consolidate_text_nodes(cmark_node *root); /** * ## Parsing @@ -552,28 +508,28 @@ const char *cmark_version_string(); */ #ifndef CMARK_NO_SHORT_NAMES -#define NODE_DOCUMENT CMARK_NODE_DOCUMENT -#define NODE_BLOCK_QUOTE CMARK_NODE_BLOCK_QUOTE -#define NODE_LIST CMARK_NODE_LIST -#define NODE_ITEM CMARK_NODE_ITEM -#define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK -#define NODE_HTML CMARK_NODE_HTML -#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH -#define NODE_HEADER CMARK_NODE_HEADER -#define NODE_HRULE CMARK_NODE_HRULE -#define NODE_TEXT CMARK_NODE_TEXT -#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK -#define NODE_LINEBREAK CMARK_NODE_LINEBREAK -#define NODE_CODE CMARK_NODE_CODE -#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML -#define NODE_EMPH CMARK_NODE_EMPH -#define NODE_STRONG CMARK_NODE_STRONG -#define NODE_LINK CMARK_NODE_LINK -#define NODE_IMAGE CMARK_NODE_IMAGE -#define BULLET_LIST CMARK_BULLET_LIST -#define ORDERED_LIST CMARK_ORDERED_LIST -#define PERIOD_DELIM CMARK_PERIOD_DELIM -#define PAREN_DELIM CMARK_PAREN_DELIM +#define NODE_DOCUMENT CMARK_NODE_DOCUMENT +#define NODE_BLOCK_QUOTE CMARK_NODE_BLOCK_QUOTE +#define NODE_LIST CMARK_NODE_LIST +#define NODE_ITEM CMARK_NODE_ITEM +#define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK +#define NODE_HTML CMARK_NODE_HTML +#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH +#define NODE_HEADER CMARK_NODE_HEADER +#define NODE_HRULE CMARK_NODE_HRULE +#define NODE_TEXT CMARK_NODE_TEXT +#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK +#define NODE_LINEBREAK CMARK_NODE_LINEBREAK +#define NODE_CODE CMARK_NODE_CODE +#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML +#define NODE_EMPH CMARK_NODE_EMPH +#define NODE_STRONG CMARK_NODE_STRONG +#define NODE_LINK CMARK_NODE_LINK +#define NODE_IMAGE CMARK_NODE_IMAGE +#define BULLET_LIST CMARK_BULLET_LIST +#define ORDERED_LIST CMARK_ORDERED_LIST +#define PERIOD_DELIM CMARK_PERIOD_DELIM +#define PAREN_DELIM CMARK_PAREN_DELIM #endif #ifdef __cplusplus diff --git a/src/cmark_ctype.c b/src/cmark_ctype.c index 5de8199..863c35e 100644 --- a/src/cmark_ctype.c +++ b/src/cmark_ctype.c @@ -5,49 +5,38 @@ /** 1 = space, 2 = punct, 3 = digit, 4 = alpha, 0 = other */ static const int8_t cmark_ctype_class[256] = { - /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ - /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, - /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - /* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, - /* 4 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - /* 5 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, - /* 6 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - /* 7 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, - /* 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* a */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* b */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* c */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* d */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* e */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /* f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; + /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + /* 4 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 5 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, + /* 6 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 7 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, + /* 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* a */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* b */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* d */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* e */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; /** * Returns 1 if c is a "whitespace" character as defined by the spec. */ -int cmark_isspace(char c) -{ - return cmark_ctype_class[(int8_t)c] == 1; -} +int cmark_isspace(char c) { return cmark_ctype_class[(int8_t)c] == 1; } /** * Returns 1 if c is an ascii punctuation character. */ -int cmark_ispunct(char c) -{ - return cmark_ctype_class[(int8_t)c] == 2; -} +int cmark_ispunct(char c) { return cmark_ctype_class[(int8_t)c] == 2; } -int cmark_isalnum(char c) -{ - int8_t result; - result = cmark_ctype_class[(int8_t)c]; - return (result == 3 || result == 4); +int cmark_isalnum(char c) { + int8_t result; + result = cmark_ctype_class[(int8_t)c]; + return (result == 3 || result == 4); } -int cmark_isdigit(char c) -{ - return cmark_ctype_class[(int8_t)c] == 3; -} +int cmark_isdigit(char c) { return cmark_ctype_class[(int8_t)c] == 3; } diff --git a/src/commonmark.c b/src/commonmark.c index 5964c60..da81623 100644 --- a/src/commonmark.c +++ b/src/commonmark.c @@ -20,445 +20,408 @@ // Functions to convert cmark_nodes to commonmark strings. -static inline void outc(cmark_renderer *renderer, - cmark_escaping escape, - int32_t c, - unsigned char nextc) -{ - bool needs_escaping = false; - char encoded[20]; - - needs_escaping = - escape != LITERAL && - ((escape == NORMAL && - (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || - c == '<' || c == '>' || c == '\\' || c == '`' || c == '!' || - (c == '&' && isalpha(nextc)) || - (c == '!' && nextc == '[') || - (renderer->begin_line && - (c == '-' || c == '+' || c == '=')) || - ((c == '.' || c == ')') && - isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) || - (escape == URL && - (c == '`' || c == '<' || c == '>' || isspace(c) || - c == '\\' || c == ')' || c == '(')) || - (escape == TITLE && - (c == '`' || c == '<' || c == '>' || c == '"' || - c == '\\'))); - - if (needs_escaping) { - if (isspace(c)) { - // use percent encoding for spaces - sprintf(encoded, "%%%2x", c); - cmark_strbuf_puts(renderer->buffer, encoded); - renderer->column += 3; - } else { - cmark_render_ascii(renderer, "\\"); - cmark_render_code_point(renderer, c); - } - } else { - cmark_render_code_point(renderer, c); - } +static inline void outc(cmark_renderer *renderer, cmark_escaping escape, + int32_t c, unsigned char nextc) { + bool needs_escaping = false; + char encoded[20]; + + needs_escaping = + escape != LITERAL && + ((escape == NORMAL && + (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' || + c == '>' || c == '\\' || c == '`' || c == '!' || + (c == '&' && isalpha(nextc)) || (c == '!' && nextc == '[') || + (renderer->begin_line && (c == '-' || c == '+' || c == '=')) || + ((c == '.' || c == ')') && + isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) || + (escape == URL && (c == '`' || c == '<' || c == '>' || isspace(c) || + c == '\\' || c == ')' || c == '(')) || + (escape == TITLE && + (c == '`' || c == '<' || c == '>' || c == '"' || c == '\\'))); + + if (needs_escaping) { + if (isspace(c)) { + // use percent encoding for spaces + sprintf(encoded, "%%%2x", c); + cmark_strbuf_puts(renderer->buffer, encoded); + renderer->column += 3; + } else { + cmark_render_ascii(renderer, "\\"); + cmark_render_code_point(renderer, c); + } + } else { + cmark_render_code_point(renderer, c); + } } -static int -longest_backtick_sequence(const char *code) -{ - int longest = 0; - int current = 0; - size_t i = 0; - size_t code_len = safe_strlen(code); - while (i <= code_len) { - if (code[i] == '`') { - current++; - } else { - if (current > longest) { - longest = current; - } - current = 0; - } - i++; - } - return longest; +static int longest_backtick_sequence(const char *code) { + int longest = 0; + int current = 0; + size_t i = 0; + size_t code_len = safe_strlen(code); + while (i <= code_len) { + if (code[i] == '`') { + current++; + } else { + if (current > longest) { + longest = current; + } + current = 0; + } + i++; + } + return longest; } -static int -shortest_unused_backtick_sequence(const char *code) -{ - int32_t used = 1; - int current = 0; - size_t i = 0; - size_t code_len = safe_strlen(code); - while (i <= code_len) { - if (code[i] == '`') { - current++; - } else { - if (current) { - used |= (1 << current); - } - current = 0; - } - i++; - } - // return number of first bit that is 0: - i = 0; - while (used & 1) { - used = used >> 1; - i++; - } - return i; +static int shortest_unused_backtick_sequence(const char *code) { + int32_t used = 1; + int current = 0; + size_t i = 0; + size_t code_len = safe_strlen(code); + while (i <= code_len) { + if (code[i] == '`') { + current++; + } else { + if (current) { + used |= (1 << current); + } + current = 0; + } + i++; + } + // return number of first bit that is 0: + i = 0; + while (used & 1) { + used = used >> 1; + i++; + } + return i; } -static bool -is_autolink(cmark_node *node) -{ - cmark_chunk *title; - cmark_chunk *url; - cmark_node *link_text; - char *realurl; - int realurllen; - - if (node->type != CMARK_NODE_LINK) { - return false; - } - - url = &node->as.link.url; - if (url->len == 0 || scan_scheme(url, 0) == 0) { - return false; - } - - title = &node->as.link.title; - // if it has a title, we can't treat it as an autolink: - if (title->len > 0) { - return false; - } - - link_text = node->first_child; - cmark_consolidate_text_nodes(link_text); - realurl = (char*)url->data; - realurllen = url->len; - if (strncmp(realurl, "mailto:", 7) == 0) { - realurl += 7; - realurllen -= 7; - } - return (realurllen == link_text->as.literal.len && - strncmp(realurl, - (char*)link_text->as.literal.data, - link_text->as.literal.len) == 0); +static bool is_autolink(cmark_node *node) { + cmark_chunk *title; + cmark_chunk *url; + cmark_node *link_text; + char *realurl; + int realurllen; + + if (node->type != CMARK_NODE_LINK) { + return false; + } + + url = &node->as.link.url; + if (url->len == 0 || scan_scheme(url, 0) == 0) { + return false; + } + + title = &node->as.link.title; + // if it has a title, we can't treat it as an autolink: + if (title->len > 0) { + return false; + } + + link_text = node->first_child; + cmark_consolidate_text_nodes(link_text); + realurl = (char *)url->data; + realurllen = url->len; + if (strncmp(realurl, "mailto:", 7) == 0) { + realurl += 7; + realurllen -= 7; + } + return (realurllen == link_text->as.literal.len && + strncmp(realurl, (char *)link_text->as.literal.data, + 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. -static cmark_node* -get_containing_block(cmark_node *node) -{ - while (node && - (node->type < CMARK_NODE_FIRST_BLOCK || - node->type > CMARK_NODE_LAST_BLOCK)) { - node = node->parent; - } - return node; +static cmark_node *get_containing_block(cmark_node *node) { + while (node && (node->type < CMARK_NODE_FIRST_BLOCK || + node->type > CMARK_NODE_LAST_BLOCK)) { + node = node->parent; + } + return node; } -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; - int i; - bool entering = (ev_type == CMARK_EVENT_ENTER); - const char *info, *code, *title; - size_t info_len, code_len; - char listmarker[20]; - char *emph_delim; - bufsize_t marker_width; - - // 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->type == CMARK_NODE_ITEM && - cmark_node_get_list_tight(tmp->parent)) || - (tmp && - tmp->parent && - tmp->parent->type == CMARK_NODE_ITEM && - cmark_node_get_list_tight(tmp->parent->parent)); - } - - switch (node->type) { - case CMARK_NODE_DOCUMENT: - break; - - case CMARK_NODE_BLOCK_QUOTE: - if (entering) { - LIT("> "); - cmark_strbuf_puts(renderer->prefix, "> "); - } else { - cmark_strbuf_truncate(renderer->prefix, - renderer->prefix->size - 2); - BLANKLINE(); - } - break; - - case CMARK_NODE_LIST: - if (!entering && node->next && - (node->next->type == CMARK_NODE_CODE_BLOCK || - node->next->type == CMARK_NODE_LIST)) { - // this ensures 2 blank lines after list, - // if before code block or list: - LIT("\n"); - } - break; - - case CMARK_NODE_ITEM: - if (cmark_node_get_list_type(node->parent) == - CMARK_BULLET_LIST) { - marker_width = 2; - } else { - list_number = cmark_node_get_list_start(node->parent); - 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 - sprintf(listmarker, - "%d%s%s", list_number, - list_delim == CMARK_PAREN_DELIM ? - ")" : ".", - list_number < 10 ? " " : " "); - marker_width = safe_strlen(listmarker); - } - if (entering) { - if (cmark_node_get_list_type(node->parent) == - CMARK_BULLET_LIST) { - LIT("* "); - cmark_strbuf_puts(renderer->prefix, " "); - } else { - LIT(listmarker); - for (i = marker_width; i--;) { - cmark_strbuf_putc(renderer->prefix, ' '); - } - } - } else { - cmark_strbuf_truncate(renderer->prefix, - renderer->prefix->size - - marker_width); - CR(); - } - break; - - case CMARK_NODE_HEADER: - if (entering) { - for (int i = cmark_node_get_header_level(node); i > 0; i--) { - LIT("#"); - } - LIT(" "); - renderer->no_wrap = true; - } else { - renderer->no_wrap = false; - BLANKLINE(); - } - break; - - case CMARK_NODE_CODE_BLOCK: - BLANKLINE(); - info = cmark_node_get_fence_info(node); - info_len = safe_strlen(info); - code = cmark_node_get_literal(node); - code_len = safe_strlen(code); - // use indented form if no info, and code doesn't - // begin or end with a blank line, and code isn't - // first thing in a list item - if (info_len == 0 && - (code_len > 2 && - !isspace(code[0]) && - !(isspace(code[code_len - 1]) && - isspace(code[code_len - 2]))) && - !(node->prev == NULL && node->parent && - node->parent->type == CMARK_NODE_ITEM)) { - LIT(" "); - cmark_strbuf_puts(renderer->prefix, " "); - OUT(cmark_node_get_literal(node), false, LITERAL); - cmark_strbuf_truncate(renderer->prefix, - renderer->prefix->size - 4); - } else { - numticks = longest_backtick_sequence(code) + 1; - if (numticks < 3) { - numticks = 3; - } - for (i = 0; i < numticks; i++) { - LIT("`"); - } - LIT(" "); - OUT(info, false, LITERAL); - CR(); - OUT(cmark_node_get_literal(node), false, LITERAL); - CR(); - for (i = 0; i < numticks; i++) { - LIT("`"); - } - } - BLANKLINE(); - break; - - case CMARK_NODE_HTML: - BLANKLINE(); - OUT(cmark_node_get_literal(node), false, LITERAL); - BLANKLINE(); - break; - - case CMARK_NODE_HRULE: - BLANKLINE(); - LIT("-----"); - BLANKLINE(); - break; - - case CMARK_NODE_PARAGRAPH: - if (!entering) { - BLANKLINE(); - } - break; - - case CMARK_NODE_TEXT: - OUT(cmark_node_get_literal(node), true, NORMAL); - break; - - case CMARK_NODE_LINEBREAK: - if (!(CMARK_OPT_HARDBREAKS & options)) { - LIT("\\"); - } - CR(); - break; - - case CMARK_NODE_SOFTBREAK: - if (renderer->width == 0 && - !(CMARK_OPT_HARDBREAKS & options)) { - CR(); - } else { - OUT(" ", true, LITERAL); - } - break; - - case CMARK_NODE_CODE: - code = cmark_node_get_literal(node); - code_len = safe_strlen(code); - numticks = shortest_unused_backtick_sequence(code); - for (i = 0; i < numticks; i++) { - LIT("`"); - } - if (code_len == 0 || code[0] == '`') { - LIT(" "); - } - OUT(cmark_node_get_literal(node), true, LITERAL); - if (code_len == 0 || code[code_len - 1] == '`') { - LIT(" "); - } - for (i = 0; i < numticks; i++) { - LIT("`"); - } - break; - - case CMARK_NODE_INLINE_HTML: - OUT(cmark_node_get_literal(node), false, LITERAL); - break; - - case CMARK_NODE_STRONG: - if (entering) { - LIT("**"); - } else { - LIT("**"); - } - break; - - case CMARK_NODE_EMPH: - // If we have EMPH(EMPH(x)), we need to use *_x_* - // because **x** is STRONG(x): - if (node->parent && node->parent->type == CMARK_NODE_EMPH && - node->next == NULL && node->prev == NULL) { - emph_delim = "_"; - } else { - emph_delim = "*"; - } - if (entering) { - LIT(emph_delim); - } else { - LIT(emph_delim); - } - break; - - case CMARK_NODE_LINK: - if (is_autolink(node)) { - if (entering) { - LIT("<"); - if (strncmp(cmark_node_get_url(node), - "mailto:", 7) == 0) { - LIT((char *)cmark_node_get_url(node) + 7); - } else { - LIT((char *)cmark_node_get_url(node)); - } - LIT(">"); - // return signal to skip contents of node... - return 0; - } - } else { - if (entering) { - LIT("["); - } else { - LIT("]("); - OUT(cmark_node_get_url(node), false, URL); - title = cmark_node_get_title(node); - if (safe_strlen(title) > 0) { - LIT(" \""); - OUT(title, false, TITLE); - LIT("\""); - } - LIT(")"); - } - } - break; - - case CMARK_NODE_IMAGE: - if (entering) { - LIT("!["); - } else { - LIT("]("); - OUT(cmark_node_get_url(node), false, URL); - title = cmark_node_get_title(node); - if (safe_strlen(title) > 0) { - OUT(" \"", true, LITERAL); - OUT(title, false, TITLE); - LIT("\""); - } - LIT(")"); - } - break; - - default: - assert(false); - break; - } - - return 1; +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; + int i; + bool entering = (ev_type == CMARK_EVENT_ENTER); + const char *info, *code, *title; + size_t info_len, code_len; + char listmarker[20]; + char *emph_delim; + bufsize_t marker_width; + + // 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->type == CMARK_NODE_ITEM && + cmark_node_get_list_tight(tmp->parent)) || + (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM && + cmark_node_get_list_tight(tmp->parent->parent)); + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + LIT("> "); + cmark_strbuf_puts(renderer->prefix, "> "); + } else { + cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2); + BLANKLINE(); + } + break; + + case CMARK_NODE_LIST: + if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK || + node->next->type == CMARK_NODE_LIST)) { + // this ensures 2 blank lines after list, + // if before code block or list: + LIT("\n"); + } + break; + + case CMARK_NODE_ITEM: + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + marker_width = 2; + } else { + list_number = cmark_node_get_list_start(node->parent); + 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 + sprintf(listmarker, "%d%s%s", list_number, + list_delim == CMARK_PAREN_DELIM ? ")" : ".", + list_number < 10 ? " " : " "); + marker_width = safe_strlen(listmarker); + } + if (entering) { + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + LIT("* "); + cmark_strbuf_puts(renderer->prefix, " "); + } else { + LIT(listmarker); + for (i = marker_width; i--;) { + cmark_strbuf_putc(renderer->prefix, ' '); + } + } + } else { + cmark_strbuf_truncate(renderer->prefix, + renderer->prefix->size - marker_width); + CR(); + } + break; + + case CMARK_NODE_HEADER: + if (entering) { + for (int i = cmark_node_get_header_level(node); i > 0; i--) { + LIT("#"); + } + LIT(" "); + renderer->no_wrap = true; + } else { + renderer->no_wrap = false; + BLANKLINE(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + BLANKLINE(); + info = cmark_node_get_fence_info(node); + info_len = safe_strlen(info); + code = cmark_node_get_literal(node); + code_len = safe_strlen(code); + // use indented form if no info, and code doesn't + // begin or end with a blank line, and code isn't + // first thing in a list item + if (info_len == 0 && + (code_len > 2 && !isspace(code[0]) && + !(isspace(code[code_len - 1]) && isspace(code[code_len - 2]))) && + !(node->prev == NULL && node->parent && + node->parent->type == CMARK_NODE_ITEM)) { + LIT(" "); + cmark_strbuf_puts(renderer->prefix, " "); + OUT(cmark_node_get_literal(node), false, LITERAL); + cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4); + } else { + numticks = longest_backtick_sequence(code) + 1; + if (numticks < 3) { + numticks = 3; + } + for (i = 0; i < numticks; i++) { + LIT("`"); + } + LIT(" "); + OUT(info, false, LITERAL); + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + for (i = 0; i < numticks; i++) { + LIT("`"); + } + } + BLANKLINE(); + break; + + case CMARK_NODE_HTML: + BLANKLINE(); + OUT(cmark_node_get_literal(node), false, LITERAL); + BLANKLINE(); + break; + + case CMARK_NODE_HRULE: + BLANKLINE(); + LIT("-----"); + BLANKLINE(); + break; + + case CMARK_NODE_PARAGRAPH: + if (!entering) { + BLANKLINE(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), true, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + if (!(CMARK_OPT_HARDBREAKS & options)) { + LIT("\\"); + } + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (renderer->width == 0 && !(CMARK_OPT_HARDBREAKS & options)) { + CR(); + } else { + OUT(" ", true, LITERAL); + } + break; + + case CMARK_NODE_CODE: + code = cmark_node_get_literal(node); + code_len = safe_strlen(code); + numticks = shortest_unused_backtick_sequence(code); + for (i = 0; i < numticks; i++) { + LIT("`"); + } + if (code_len == 0 || code[0] == '`') { + LIT(" "); + } + OUT(cmark_node_get_literal(node), true, LITERAL); + if (code_len == 0 || code[code_len - 1] == '`') { + LIT(" "); + } + for (i = 0; i < numticks; i++) { + LIT("`"); + } + break; + + case CMARK_NODE_INLINE_HTML: + OUT(cmark_node_get_literal(node), false, LITERAL); + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("**"); + } else { + LIT("**"); + } + break; + + case CMARK_NODE_EMPH: + // If we have EMPH(EMPH(x)), we need to use *_x_* + // because **x** is STRONG(x): + if (node->parent && node->parent->type == CMARK_NODE_EMPH && + node->next == NULL && node->prev == NULL) { + emph_delim = "_"; + } else { + emph_delim = "*"; + } + if (entering) { + LIT(emph_delim); + } else { + LIT(emph_delim); + } + break; + + case CMARK_NODE_LINK: + if (is_autolink(node)) { + if (entering) { + LIT("<"); + if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) { + LIT((char *)cmark_node_get_url(node) + 7); + } else { + LIT((char *)cmark_node_get_url(node)); + } + LIT(">"); + // return signal to skip contents of node... + return 0; + } + } else { + if (entering) { + LIT("["); + } else { + LIT("]("); + OUT(cmark_node_get_url(node), false, URL); + title = cmark_node_get_title(node); + if (safe_strlen(title) > 0) { + LIT(" \""); + OUT(title, false, TITLE); + LIT("\""); + } + LIT(")"); + } + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("!["); + } else { + LIT("]("); + OUT(cmark_node_get_url(node), false, URL); + title = cmark_node_get_title(node); + if (safe_strlen(title) > 0) { + OUT(" \"", true, LITERAL); + OUT(title, false, TITLE); + LIT("\""); + } + LIT(")"); + } + break; + + default: + assert(false); + break; + } + + return 1; } -char *cmark_render_commonmark(cmark_node *root, int options, int width) -{ - if (options & CMARK_OPT_HARDBREAKS) { - // disable breaking on width, since it has - // a different meaning with OPT_HARDBREAKS - width = 0; - } - return cmark_render(root, options, width, outc, S_render_node); +char *cmark_render_commonmark(cmark_node *root, int options, int width) { + if (options & CMARK_OPT_HARDBREAKS) { + // disable breaking on width, since it has + // a different meaning with OPT_HARDBREAKS + width = 0; + } + return cmark_render(root, options, width, outc, S_render_node); } diff --git a/src/houdini.h b/src/houdini.h index b926cf3..f738e82 100644 --- a/src/houdini.h +++ b/src/houdini.h @@ -10,33 +10,39 @@ extern "C" { #include "buffer.h" #ifdef HAVE___BUILTIN_EXPECT -# define likely(x) __builtin_expect((x),1) -# define unlikely(x) __builtin_expect((x),0) +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) #else -# define likely(x) (x) -# define unlikely(x) (x) +#define likely(x) (x) +#define unlikely(x) (x) #endif #ifdef HOUDINI_USE_LOCALE -# define _isxdigit(c) isxdigit(c) -# define _isdigit(c) isdigit(c) +#define _isxdigit(c) isxdigit(c) +#define _isdigit(c) isdigit(c) #else /* * Helper _isdigit methods -- do not trust the current locale * */ -# define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL) -# define _isdigit(c) ((c) >= '0' && (c) <= '9') +#define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL) +#define _isdigit(c) ((c) >= '0' && (c) <= '9') #endif -#define HOUDINI_ESCAPED_SIZE(x) (((x) * 12) / 10) +#define HOUDINI_ESCAPED_SIZE(x) (((x)*12) / 10) #define HOUDINI_UNESCAPED_SIZE(x) (x) -extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, bufsize_t size); -extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size); -extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, int secure); -extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size); -extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, bufsize_t size); -extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size); +extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size, int secure); +extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); #ifdef __cplusplus } diff --git a/src/houdini_href_e.c b/src/houdini_href_e.c index 7fb958a..9152803 100644 --- a/src/houdini_href_e.c +++ b/src/houdini_href_e.c @@ -30,78 +30,71 @@ * */ static const char HREF_SAFE[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -int -houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) -{ - static const uint8_t hex_chars[] = "0123456789ABCDEF"; - bufsize_t i = 0, org; - uint8_t hex_str[3]; +int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) { + static const uint8_t hex_chars[] = "0123456789ABCDEF"; + bufsize_t i = 0, org; + uint8_t hex_str[3]; - hex_str[0] = '%'; + hex_str[0] = '%'; - while (i < size) { - org = i; - while (i < size && HREF_SAFE[src[i]] != 0) - i++; + while (i < size) { + org = i; + while (i < size && HREF_SAFE[src[i]] != 0) + i++; - if (likely(i > org)) - cmark_strbuf_put(ob, src + org, i - org); + if (likely(i > org)) + cmark_strbuf_put(ob, src + org, i - org); - /* escaping */ - if (i >= size) - break; + /* escaping */ + if (i >= size) + break; - switch (src[i]) { - /* amp appears all the time in URLs, but needs - * HTML-entity escaping to be inside an href */ - case '&': - cmark_strbuf_puts(ob, "&"); - break; + switch (src[i]) { + /* amp appears all the time in URLs, but needs + * HTML-entity escaping to be inside an href */ + case '&': + cmark_strbuf_puts(ob, "&"); + break; - /* the single quote is a valid URL character - * according to the standard; it needs HTML - * entity escaping too */ - case '\'': - cmark_strbuf_puts(ob, "'"); - break; + /* the single quote is a valid URL character + * according to the standard; it needs HTML + * entity escaping too */ + case '\'': + cmark_strbuf_puts(ob, "'"); + break; - /* the space can be escaped to %20 or a plus - * sign. we're going with the generic escape - * for now. the plus thing is more commonly seen - * when building GET strings */ +/* the space can be escaped to %20 or a plus + * sign. we're going with the generic escape + * for now. the plus thing is more commonly seen + * when building GET strings */ #if 0 case ' ': cmark_strbuf_putc(ob, '+'); break; #endif - /* every other character goes with a %XX escaping */ - default: - hex_str[1] = hex_chars[(src[i] >> 4) & 0xF]; - hex_str[2] = hex_chars[src[i] & 0xF]; - cmark_strbuf_put(ob, hex_str, 3); - } + /* every other character goes with a %XX escaping */ + default: + hex_str[1] = hex_chars[(src[i] >> 4) & 0xF]; + hex_str[2] = hex_chars[src[i] & 0xF]; + cmark_strbuf_put(ob, hex_str, 3); + } - i++; - } + i++; + } - return 1; + return 1; } diff --git a/src/houdini_html_e.c b/src/houdini_html_e.c index 7f4b91f..0e539f0 100644 --- a/src/houdini_html_e.c +++ b/src/houdini_html_e.c @@ -16,66 +16,51 @@ * */ static const char HTML_ESCAPE_TABLE[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -static const char *HTML_ESCAPES[] = { - "", - """, - "&", - "'", - "/", - "<", - ">" -}; +static const char *HTML_ESCAPES[] = {"", """, "&", "'", + "/", "<", ">"}; -int -houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, int secure) -{ - bufsize_t i = 0, org, esc = 0; +int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, + int secure) { + bufsize_t i = 0, org, esc = 0; - while (i < size) { - org = i; - while (i < size && (esc = HTML_ESCAPE_TABLE[src[i]]) == 0) - i++; + while (i < size) { + org = i; + while (i < size && (esc = HTML_ESCAPE_TABLE[src[i]]) == 0) + i++; - if (i > org) - cmark_strbuf_put(ob, src + org, i - org); + if (i > org) + cmark_strbuf_put(ob, src + org, i - org); - /* escaping */ - if (unlikely(i >= size)) - break; + /* escaping */ + if (unlikely(i >= size)) + break; - /* The forward slash is only escaped in secure mode */ - if ((src[i] == '/' || src[i] == '\'') && !secure) { - cmark_strbuf_putc(ob, src[i]); - } else { - cmark_strbuf_puts(ob, HTML_ESCAPES[esc]); - } + /* The forward slash is only escaped in secure mode */ + if ((src[i] == '/' || src[i] == '\'') && !secure) { + cmark_strbuf_putc(ob, src[i]); + } else { + cmark_strbuf_puts(ob, HTML_ESCAPES[esc]); + } - i++; - } + i++; + } - return 1; + return 1; } -int -houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) -{ - return houdini_escape_html0(ob, src, size, 1); +int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) { + return houdini_escape_html0(ob, src, size, 1); } diff --git a/src/houdini_html_u.c b/src/houdini_html_u.c index 002357d..7bb1f50 100644 --- a/src/houdini_html_u.c +++ b/src/houdini_html_u.c @@ -9,145 +9,140 @@ /* Binary tree lookup code for entities added by JGM */ -static unsigned char * -S_lookup(int i, int low, int hi, const unsigned char *s, int len) -{ - int j; - int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len); - if (cmp == 0 && cmark_entities[i].entity[len] == 0) { - return (unsigned char *)cmark_entities[i].bytes; - } else if (cmp < 0 && i > low) { - j = i - ((i - low) / 2); - if (j == i) j -= 1; - return S_lookup(j, low, i - 1, s, len); - } else if (cmp > 0 && i < hi) { - j = i + ((hi - i) / 2); - if (j == i) j += 1; - return S_lookup(j, i + 1, hi, s, len); - } else { - return NULL; - } +static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s, + int len) { + int j; + int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len); + if (cmp == 0 && cmark_entities[i].entity[len] == 0) { + return (unsigned char *)cmark_entities[i].bytes; + } else if (cmp < 0 && i > low) { + j = i - ((i - low) / 2); + if (j == i) + j -= 1; + return S_lookup(j, low, i - 1, s, len); + } else if (cmp > 0 && i < hi) { + j = i + ((hi - i) / 2); + if (j == i) + j += 1; + return S_lookup(j, i + 1, hi, s, len); + } else { + return NULL; + } } -static unsigned char * -S_lookup_entity(const unsigned char *s, int len) -{ - return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len); +static unsigned char *S_lookup_entity(const unsigned char *s, int len) { + return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len); } -bufsize_t -houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) -{ - bufsize_t i = 0; - - if (size >= 3 && src[0] == '#') { - int codepoint = 0; - int num_digits = 0; - - if (_isdigit(src[1])) { - for (i = 1; i < size && _isdigit(src[i]); ++i) { - codepoint = (codepoint * 10) + (src[i] - '0'); - - if (codepoint >= 0x110000) { - // Keep counting digits but - // avoid integer overflow. - codepoint = 0x110000; - } - } - - num_digits = i - 1; - } - - else if (src[1] == 'x' || src[1] == 'X') { - for (i = 2; i < size && _isxdigit(src[i]); ++i) { - codepoint = (codepoint * 16) + ((src[i] | 32) % 39 - 9); - - if (codepoint >= 0x110000) { - // Keep counting digits but - // avoid integer overflow. - codepoint = 0x110000; - } - } - - num_digits = i - 2; - } - - if (num_digits >= 1 && num_digits <= 8 && - i < size && src[i] == ';') { - if (codepoint == 0 || - (codepoint >= 0xD800 && codepoint < 0xE000) || - codepoint >= 0x110000) { - codepoint = 0xFFFD; - } - utf8proc_encode_char(codepoint, ob); - return i + 1; - } - } - - else { - if (size > CMARK_ENTITY_MAX_LENGTH) - size = CMARK_ENTITY_MAX_LENGTH; - - for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) { - if (src[i] == ' ') - break; - - if (src[i] == ';') { - const unsigned char *entity = S_lookup_entity(src, i); - - if (entity != NULL) { - cmark_strbuf_puts(ob, (const char *)entity); - return i + 1; - } - - break; - } - } - } - - return 0; +bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + bufsize_t i = 0; + + if (size >= 3 && src[0] == '#') { + int codepoint = 0; + int num_digits = 0; + + if (_isdigit(src[1])) { + for (i = 1; i < size && _isdigit(src[i]); ++i) { + codepoint = (codepoint * 10) + (src[i] - '0'); + + if (codepoint >= 0x110000) { + // Keep counting digits but + // avoid integer overflow. + codepoint = 0x110000; + } + } + + num_digits = i - 1; + } + + else if (src[1] == 'x' || src[1] == 'X') { + for (i = 2; i < size && _isxdigit(src[i]); ++i) { + codepoint = (codepoint * 16) + ((src[i] | 32) % 39 - 9); + + if (codepoint >= 0x110000) { + // Keep counting digits but + // avoid integer overflow. + codepoint = 0x110000; + } + } + + num_digits = i - 2; + } + + if (num_digits >= 1 && num_digits <= 8 && i < size && src[i] == ';') { + if (codepoint == 0 || (codepoint >= 0xD800 && codepoint < 0xE000) || + codepoint >= 0x110000) { + codepoint = 0xFFFD; + } + utf8proc_encode_char(codepoint, ob); + return i + 1; + } + } + + else { + if (size > CMARK_ENTITY_MAX_LENGTH) + size = CMARK_ENTITY_MAX_LENGTH; + + for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) { + if (src[i] == ' ') + break; + + if (src[i] == ';') { + const unsigned char *entity = S_lookup_entity(src, i); + + if (entity != NULL) { + cmark_strbuf_puts(ob, (const char *)entity); + return i + 1; + } + + break; + } + } + } + + return 0; } -int -houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) -{ - bufsize_t i = 0, org, ent; +int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + bufsize_t i = 0, org, ent; - while (i < size) { - org = i; - while (i < size && src[i] != '&') - i++; + while (i < size) { + org = i; + while (i < size && src[i] != '&') + i++; - if (likely(i > org)) { - if (unlikely(org == 0)) { - if (i >= size) - return 0; + if (likely(i > org)) { + if (unlikely(org == 0)) { + if (i >= size) + return 0; - cmark_strbuf_grow(ob, HOUDINI_UNESCAPED_SIZE(size)); - } + cmark_strbuf_grow(ob, HOUDINI_UNESCAPED_SIZE(size)); + } - cmark_strbuf_put(ob, src + org, i - org); - } + cmark_strbuf_put(ob, src + org, i - org); + } - /* escaping */ - if (i >= size) - break; + /* escaping */ + if (i >= size) + break; - i++; + i++; - ent = houdini_unescape_ent(ob, src + i, size - i); - i += ent; + ent = houdini_unescape_ent(ob, src + i, size - i); + i += ent; - /* not really an entity */ - if (ent == 0) - cmark_strbuf_putc(ob, '&'); - } + /* not really an entity */ + if (ent == 0) + cmark_strbuf_putc(ob, '&'); + } - return 1; + return 1; } -void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) -{ - if (!houdini_unescape_html(ob, src, size)) - cmark_strbuf_put(ob, src, size); +void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + if (!houdini_unescape_html(ob, src, size)) + cmark_strbuf_put(ob, src, size); } @@ -12,324 +12,304 @@ // Functions to convert cmark_nodes to HTML strings. -static void escape_html(cmark_strbuf *dest, const unsigned char *source, bufsize_t length) -{ - houdini_escape_html0(dest, source, length, 0); +static void escape_html(cmark_strbuf *dest, const unsigned char *source, + bufsize_t length) { + houdini_escape_html0(dest, source, length, 0); } -static inline void cr(cmark_strbuf *html) -{ - if (html->size && html->ptr[html->size - 1] != '\n') - cmark_strbuf_putc(html, '\n'); +static inline void cr(cmark_strbuf *html) { + if (html->size && html->ptr[html->size - 1] != '\n') + cmark_strbuf_putc(html, '\n'); } struct render_state { - cmark_strbuf* html; - cmark_node *plain; + cmark_strbuf *html; + cmark_node *plain; }; -static void -S_render_sourcepos(cmark_node *node, cmark_strbuf *html, int options) -{ - char buffer[100]; - if (CMARK_OPT_SOURCEPOS & options) { - sprintf(buffer, " data-sourcepos=\"%d:%d-%d:%d\"", - cmark_node_get_start_line(node), - cmark_node_get_start_column(node), - cmark_node_get_end_line(node), - cmark_node_get_end_column(node)); - cmark_strbuf_puts(html, buffer); - } +static void S_render_sourcepos(cmark_node *node, cmark_strbuf *html, + int options) { + char buffer[100]; + if (CMARK_OPT_SOURCEPOS & options) { + sprintf(buffer, " data-sourcepos=\"%d:%d-%d:%d\"", + cmark_node_get_start_line(node), cmark_node_get_start_column(node), + cmark_node_get_end_line(node), cmark_node_get_end_column(node)); + cmark_strbuf_puts(html, buffer); + } } -static int -S_render_node(cmark_node *node, cmark_event_type ev_type, - struct render_state *state, int options) -{ - cmark_node *parent; - cmark_node *grandparent; - cmark_strbuf *html = state->html; - char start_header[] = "<h0"; - char end_header[] = "</h0"; - bool tight; - char buffer[100]; - - bool entering = (ev_type == CMARK_EVENT_ENTER); - - if (state->plain == node) { // back at original node - state->plain = NULL; - } - - if (state->plain != NULL) { - switch(node->type) { - case CMARK_NODE_TEXT: - case CMARK_NODE_CODE: - case CMARK_NODE_INLINE_HTML: - escape_html(html, node->as.literal.data, - node->as.literal.len); - break; - - case CMARK_NODE_LINEBREAK: - case CMARK_NODE_SOFTBREAK: - cmark_strbuf_putc(html, ' '); - break; - - default: - break; - } - return 1; - } - - switch (node->type) { - case CMARK_NODE_DOCUMENT: - break; - - case CMARK_NODE_BLOCK_QUOTE: - if (entering) { - cr(html); - cmark_strbuf_puts(html, "<blockquote"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, ">\n"); - } else { - cr(html); - cmark_strbuf_puts(html, "</blockquote>\n"); - } - break; - - case CMARK_NODE_LIST: { - cmark_list_type list_type = node->as.list.list_type; - int start = node->as.list.start; - - if (entering) { - cr(html); - if (list_type == CMARK_BULLET_LIST) { - cmark_strbuf_puts(html, "<ul"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, ">\n"); - } else if (start == 1) { - cmark_strbuf_puts(html, "<ol"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, ">\n"); - } else { - sprintf(buffer, "<ol start=\"%d\"", start); - cmark_strbuf_puts(html, buffer); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, ">\n"); - } - } else { - cmark_strbuf_puts(html, - list_type == CMARK_BULLET_LIST ? - "</ul>\n" : "</ol>\n"); - } - break; - } - - case CMARK_NODE_ITEM: - if (entering) { - cr(html); - cmark_strbuf_puts(html, "<li"); - S_render_sourcepos(node, html, options); - cmark_strbuf_putc(html, '>'); - } else { - cmark_strbuf_puts(html, "</li>\n"); - } - break; - - case CMARK_NODE_HEADER: - if (entering) { - cr(html); - start_header[2] = '0' + node->as.header.level; - cmark_strbuf_puts(html, start_header); - S_render_sourcepos(node, html, options); - cmark_strbuf_putc(html, '>'); - } else { - end_header[3] = '0' + node->as.header.level; - cmark_strbuf_puts(html, end_header); - cmark_strbuf_puts(html, ">\n"); - } - break; - - case CMARK_NODE_CODE_BLOCK: - cr(html); - - if (!node->as.code.fenced || node->as.code.info.len == 0) { - cmark_strbuf_puts(html, "<pre"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, "><code>"); - } else { - bufsize_t first_tag = 0; - while (first_tag < node->as.code.info.len && - !cmark_isspace(node->as.code.info.data[first_tag])) { - first_tag += 1; - } - - cmark_strbuf_puts(html, "<pre"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, "><code class=\"language-"); - escape_html(html, node->as.code.info.data, first_tag); - cmark_strbuf_puts(html, "\">"); - } - - escape_html(html, node->as.code.literal.data, - node->as.code.literal.len); - cmark_strbuf_puts(html, "</code></pre>\n"); - break; - - case CMARK_NODE_HTML: - cr(html); - if (options & CMARK_OPT_SAFE) { - cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); - } else { - cmark_strbuf_put(html, node->as.literal.data, - node->as.literal.len); - } - cr(html); - break; - - case CMARK_NODE_HRULE: - cr(html); - cmark_strbuf_puts(html, "<hr"); - S_render_sourcepos(node, html, options); - cmark_strbuf_puts(html, " />\n"); - break; - - case CMARK_NODE_PARAGRAPH: - parent = cmark_node_parent(node); - grandparent = cmark_node_parent(parent); - if (grandparent != NULL && - grandparent->type == CMARK_NODE_LIST) { - tight = grandparent->as.list.tight; - } else { - tight = false; - } - if (!tight) { - if (entering) { - cr(html); - cmark_strbuf_puts(html, "<p"); - S_render_sourcepos(node, html, options); - cmark_strbuf_putc(html, '>'); - } else { - cmark_strbuf_puts(html, "</p>\n"); - } - } - break; - - case CMARK_NODE_TEXT: - escape_html(html, node->as.literal.data, node->as.literal.len); - break; - - case CMARK_NODE_LINEBREAK: - cmark_strbuf_puts(html, "<br />\n"); - break; - - case CMARK_NODE_SOFTBREAK: - if (options & CMARK_OPT_HARDBREAKS) { - cmark_strbuf_puts(html, "<br />\n"); - } else { - cmark_strbuf_putc(html, '\n'); - } - break; - - case CMARK_NODE_CODE: - cmark_strbuf_puts(html, "<code>"); - escape_html(html, node->as.literal.data, node->as.literal.len); - cmark_strbuf_puts(html, "</code>"); - break; - - case CMARK_NODE_INLINE_HTML: - if (options & CMARK_OPT_SAFE) { - cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); - } else { - cmark_strbuf_put(html, node->as.literal.data, - node->as.literal.len); - } - break; - - case CMARK_NODE_STRONG: - if (entering) { - cmark_strbuf_puts(html, "<strong>"); - } else { - cmark_strbuf_puts(html, "</strong>"); - } - break; - - case CMARK_NODE_EMPH: - if (entering) { - cmark_strbuf_puts(html, "<em>"); - } else { - cmark_strbuf_puts(html, "</em>"); - } - break; - - case CMARK_NODE_LINK: - if (entering) { - cmark_strbuf_puts(html, "<a href=\""); - if (!((options & CMARK_OPT_SAFE) && - scan_dangerous_url(&node->as.link.url, 0))) { - houdini_escape_href(html, - node->as.link.url.data, - node->as.link.url.len); - - } - if (node->as.link.title.len) { - cmark_strbuf_puts(html, "\" title=\""); - escape_html(html, - node->as.link.title.data, - node->as.link.title.len); - } - cmark_strbuf_puts(html, "\">"); - } else { - cmark_strbuf_puts(html, "</a>"); - } - break; - - case CMARK_NODE_IMAGE: - if (entering) { - cmark_strbuf_puts(html, "<img src=\""); - if (!((options & CMARK_OPT_SAFE) && - scan_dangerous_url(&node->as.link.url, 0))) { - houdini_escape_href(html, - node->as.link.url.data, - node->as.link.url.len); - - } - cmark_strbuf_puts(html, "\" alt=\""); - state->plain = node; - } else { - if (node->as.link.title.len) { - cmark_strbuf_puts(html, "\" title=\""); - escape_html(html, node->as.link.title.data, - node->as.link.title.len); - } - - cmark_strbuf_puts(html, "\" />"); - } - break; - - default: - assert(false); - break; - } - - // cmark_strbuf_putc(html, 'x'); - return 1; +static int S_render_node(cmark_node *node, cmark_event_type ev_type, + struct render_state *state, int options) { + cmark_node *parent; + cmark_node *grandparent; + cmark_strbuf *html = state->html; + char start_header[] = "<h0"; + char end_header[] = "</h0"; + bool tight; + char buffer[100]; + + bool entering = (ev_type == CMARK_EVENT_ENTER); + + if (state->plain == node) { // back at original node + state->plain = NULL; + } + + if (state->plain != NULL) { + switch (node->type) { + case CMARK_NODE_TEXT: + case CMARK_NODE_CODE: + case CMARK_NODE_INLINE_HTML: + escape_html(html, node->as.literal.data, node->as.literal.len); + break; + + case CMARK_NODE_LINEBREAK: + case CMARK_NODE_SOFTBREAK: + cmark_strbuf_putc(html, ' '); + break; + + default: + break; + } + return 1; + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<blockquote"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else { + cr(html); + cmark_strbuf_puts(html, "</blockquote>\n"); + } + break; + + case CMARK_NODE_LIST: { + cmark_list_type list_type = node->as.list.list_type; + int start = node->as.list.start; + + if (entering) { + cr(html); + if (list_type == CMARK_BULLET_LIST) { + cmark_strbuf_puts(html, "<ul"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else if (start == 1) { + cmark_strbuf_puts(html, "<ol"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else { + sprintf(buffer, "<ol start=\"%d\"", start); + cmark_strbuf_puts(html, buffer); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } + } else { + cmark_strbuf_puts(html, + list_type == CMARK_BULLET_LIST ? "</ul>\n" : "</ol>\n"); + } + break; + } + + case CMARK_NODE_ITEM: + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<li"); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + cmark_strbuf_puts(html, "</li>\n"); + } + break; + + case CMARK_NODE_HEADER: + if (entering) { + cr(html); + start_header[2] = '0' + node->as.header.level; + cmark_strbuf_puts(html, start_header); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + end_header[3] = '0' + node->as.header.level; + cmark_strbuf_puts(html, end_header); + cmark_strbuf_puts(html, ">\n"); + } + break; + + case CMARK_NODE_CODE_BLOCK: + cr(html); + + if (!node->as.code.fenced || node->as.code.info.len == 0) { + cmark_strbuf_puts(html, "<pre"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, "><code>"); + } else { + bufsize_t first_tag = 0; + while (first_tag < node->as.code.info.len && + !cmark_isspace(node->as.code.info.data[first_tag])) { + first_tag += 1; + } + + cmark_strbuf_puts(html, "<pre"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, "><code class=\"language-"); + escape_html(html, node->as.code.info.data, first_tag); + cmark_strbuf_puts(html, "\">"); + } + + escape_html(html, node->as.code.literal.data, node->as.code.literal.len); + cmark_strbuf_puts(html, "</code></pre>\n"); + break; + + case CMARK_NODE_HTML: + cr(html); + if (options & CMARK_OPT_SAFE) { + cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); + } else { + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + } + cr(html); + break; + + case CMARK_NODE_HRULE: + cr(html); + cmark_strbuf_puts(html, "<hr"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, " />\n"); + break; + + case CMARK_NODE_PARAGRAPH: + parent = cmark_node_parent(node); + grandparent = cmark_node_parent(parent); + if (grandparent != NULL && grandparent->type == CMARK_NODE_LIST) { + tight = grandparent->as.list.tight; + } else { + tight = false; + } + if (!tight) { + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<p"); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + cmark_strbuf_puts(html, "</p>\n"); + } + } + break; + + case CMARK_NODE_TEXT: + escape_html(html, node->as.literal.data, node->as.literal.len); + break; + + case CMARK_NODE_LINEBREAK: + cmark_strbuf_puts(html, "<br />\n"); + break; + + case CMARK_NODE_SOFTBREAK: + if (options & CMARK_OPT_HARDBREAKS) { + cmark_strbuf_puts(html, "<br />\n"); + } else { + cmark_strbuf_putc(html, '\n'); + } + break; + + case CMARK_NODE_CODE: + cmark_strbuf_puts(html, "<code>"); + escape_html(html, node->as.literal.data, node->as.literal.len); + cmark_strbuf_puts(html, "</code>"); + break; + + case CMARK_NODE_INLINE_HTML: + if (options & CMARK_OPT_SAFE) { + cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); + } else { + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + } + break; + + case CMARK_NODE_STRONG: + if (entering) { + cmark_strbuf_puts(html, "<strong>"); + } else { + cmark_strbuf_puts(html, "</strong>"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + cmark_strbuf_puts(html, "<em>"); + } else { + cmark_strbuf_puts(html, "</em>"); + } + break; + + case CMARK_NODE_LINK: + if (entering) { + cmark_strbuf_puts(html, "<a href=\""); + if (!((options & CMARK_OPT_SAFE) && + scan_dangerous_url(&node->as.link.url, 0))) { + houdini_escape_href(html, node->as.link.url.data, + node->as.link.url.len); + } + if (node->as.link.title.len) { + cmark_strbuf_puts(html, "\" title=\""); + escape_html(html, node->as.link.title.data, node->as.link.title.len); + } + cmark_strbuf_puts(html, "\">"); + } else { + cmark_strbuf_puts(html, "</a>"); + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + cmark_strbuf_puts(html, "<img src=\""); + if (!((options & CMARK_OPT_SAFE) && + scan_dangerous_url(&node->as.link.url, 0))) { + houdini_escape_href(html, node->as.link.url.data, + node->as.link.url.len); + } + cmark_strbuf_puts(html, "\" alt=\""); + state->plain = node; + } else { + if (node->as.link.title.len) { + cmark_strbuf_puts(html, "\" title=\""); + escape_html(html, node->as.link.title.data, node->as.link.title.len); + } + + cmark_strbuf_puts(html, "\" />"); + } + break; + + default: + assert(false); + break; + } + + // cmark_strbuf_putc(html, 'x'); + return 1; } -char *cmark_render_html(cmark_node *root, int options) -{ - char *result; - cmark_strbuf html = GH_BUF_INIT; - cmark_event_type ev_type; - cmark_node *cur; - struct render_state state = { &html, NULL }; - cmark_iter *iter = cmark_iter_new(root); - - while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { - cur = cmark_iter_get_node(iter); - S_render_node(cur, ev_type, &state, options); - } - result = (char *)cmark_strbuf_detach(&html); - - cmark_iter_free(iter); - return result; +char *cmark_render_html(cmark_node *root, int options) { + char *result; + cmark_strbuf html = GH_BUF_INIT; + cmark_event_type ev_type; + cmark_node *cur; + struct render_state state = {&html, NULL}; + cmark_iter *iter = cmark_iter_new(root); + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + S_render_node(cur, ev_type, &state, options); + } + result = (char *)cmark_strbuf_detach(&html); + + cmark_iter_free(iter); + return result; } diff --git a/src/inlines.c b/src/inlines.c index c3d860a..ba78278 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -13,7 +13,6 @@ #include "scanners.h" #include "inlines.h" - static const char *EMDASH = "\xE2\x80\x94"; static const char *ENDASH = "\xE2\x80\x93"; static const char *ELLIPSES = "\xE2\x80\xA6"; @@ -22,7 +21,6 @@ static const char *RIGHTDOUBLEQUOTE = "\xE2\x80\x9D"; static const char *LEFTSINGLEQUOTE = "\xE2\x80\x98"; static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99"; - // Macros for creating various kinds of simple. #define make_str(s) make_literal(CMARK_NODE_TEXT, s) #define make_code(s) make_literal(CMARK_NODE_CODE, s) @@ -33,209 +31,189 @@ static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99"; #define make_strong() make_simple(CMARK_NODE_STRONG) typedef struct delimiter { - struct delimiter *previous; - struct delimiter *next; - cmark_node *inl_text; - bufsize_t position; - unsigned char delim_char; - bool can_open; - bool can_close; - bool active; + struct delimiter *previous; + struct delimiter *next; + cmark_node *inl_text; + bufsize_t position; + unsigned char delim_char; + bool can_open; + bool can_close; + bool active; } delimiter; typedef struct { - cmark_chunk input; - bufsize_t pos; - cmark_reference_map *refmap; - delimiter *last_delim; + cmark_chunk input; + bufsize_t pos; + cmark_reference_map *refmap; + delimiter *last_delim; } subject; -static inline bool -S_is_line_end_char(char c) -{ - return (c == '\n' || c == '\r'); +static inline bool S_is_line_end_char(char c) { + return (c == '\n' || c == '\r'); } -static delimiter* -S_insert_emph(subject *subj, delimiter *opener, delimiter *closer); +static delimiter *S_insert_emph(subject *subj, delimiter *opener, + delimiter *closer); -static int parse_inline(subject* subj, cmark_node * parent, int options); +static int parse_inline(subject *subj, cmark_node *parent, int options); static void subject_from_buf(subject *e, cmark_strbuf *buffer, cmark_reference_map *refmap); static bufsize_t subject_find_special_char(subject *subj, int options); // Create an inline with a literal string value. -static inline cmark_node* make_literal(cmark_node_type t, cmark_chunk s) -{ - cmark_node * e = (cmark_node *)calloc(1, sizeof(*e)); - if(e != NULL) { - e->type = t; - e->as.literal = s; - e->next = NULL; - e->prev = NULL; - e->parent = NULL; - e->first_child = NULL; - e->last_child = NULL; - // These fields aren't used for inlines: - e->start_line = 0; - e->start_column = 0; - e->end_line = 0; - } - return e; +static inline cmark_node *make_literal(cmark_node_type t, cmark_chunk s) { + cmark_node *e = (cmark_node *)calloc(1, sizeof(*e)); + if (e != NULL) { + e->type = t; + e->as.literal = s; + e->next = NULL; + e->prev = NULL; + e->parent = NULL; + e->first_child = NULL; + e->last_child = NULL; + // These fields aren't used for inlines: + e->start_line = 0; + e->start_column = 0; + e->end_line = 0; + } + return e; } // Create an inline with no value. -static inline cmark_node* make_simple(cmark_node_type t) -{ - cmark_node* e = (cmark_node *)calloc(1, sizeof(*e)); - if(e != NULL) { - e->type = t; - e->next = NULL; - e->prev = NULL; - e->parent = NULL; - e->first_child = NULL; - e->last_child = NULL; - // These fields aren't used for inlines: - e->start_line = 0; - e->start_column = 0; - e->end_line = 0; - } - return e; +static inline cmark_node *make_simple(cmark_node_type t) { + cmark_node *e = (cmark_node *)calloc(1, sizeof(*e)); + if (e != NULL) { + e->type = t; + e->next = NULL; + e->prev = NULL; + e->parent = NULL; + e->first_child = NULL; + e->last_child = NULL; + // These fields aren't used for inlines: + e->start_line = 0; + e->start_column = 0; + e->end_line = 0; + } + return e; } // Like make_str, but parses entities. -static cmark_node *make_str_with_entities(cmark_chunk *content) -{ - cmark_strbuf unescaped = GH_BUF_INIT; - - if (houdini_unescape_html(&unescaped, content->data, content->len)) { - return make_str(cmark_chunk_buf_detach(&unescaped)); - } else { - return make_str(*content); - } +static cmark_node *make_str_with_entities(cmark_chunk *content) { + cmark_strbuf unescaped = GH_BUF_INIT; + + if (houdini_unescape_html(&unescaped, content->data, content->len)) { + return make_str(cmark_chunk_buf_detach(&unescaped)); + } else { + return make_str(*content); + } } // 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_chunk *src) -{ - cmark_chunk c; - bufsize_t len = src->len; +static cmark_chunk chunk_clone(cmark_chunk *src) { + cmark_chunk c; + bufsize_t len = src->len; - c.len = len; - c.data = (unsigned char *)malloc(len + 1); - c.alloc = 1; - memcpy(c.data, src->data, len); - c.data[len] = '\0'; + c.len = len; + c.data = (unsigned char *)malloc(len + 1); + c.alloc = 1; + memcpy(c.data, src->data, len); + c.data[len] = '\0'; - return c; + return c; } -static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email) -{ - cmark_strbuf buf = GH_BUF_INIT; +static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email) { + cmark_strbuf buf = GH_BUF_INIT; - cmark_chunk_trim(url); + cmark_chunk_trim(url); - if (url->len == 0) { - cmark_chunk result = CMARK_CHUNK_EMPTY; - return result; - } + if (url->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } - if (is_email) - cmark_strbuf_puts(&buf, "mailto:"); + if (is_email) + cmark_strbuf_puts(&buf, "mailto:"); - houdini_unescape_html_f(&buf, url->data, url->len); - return cmark_chunk_buf_detach(&buf); + houdini_unescape_html_f(&buf, url->data, url->len); + return cmark_chunk_buf_detach(&buf); } -static inline cmark_node* make_autolink(cmark_chunk url, int is_email) -{ - cmark_node *link = make_simple(CMARK_NODE_LINK); - link->as.link.url = cmark_clean_autolink(&url, is_email); - link->as.link.title = cmark_chunk_literal(""); - cmark_node_append_child(link, make_str_with_entities(&url)); - return link; +static inline cmark_node *make_autolink(cmark_chunk url, int is_email) { + cmark_node *link = make_simple(CMARK_NODE_LINK); + link->as.link.url = cmark_clean_autolink(&url, is_email); + link->as.link.title = cmark_chunk_literal(""); + cmark_node_append_child(link, make_str_with_entities(&url)); + return link; } static void subject_from_buf(subject *e, cmark_strbuf *buffer, - cmark_reference_map *refmap) -{ - e->input.data = buffer->ptr; - e->input.len = buffer->size; - e->input.alloc = 0; - e->pos = 0; - e->refmap = refmap; - e->last_delim = NULL; + cmark_reference_map *refmap) { + e->input.data = buffer->ptr; + e->input.len = buffer->size; + e->input.alloc = 0; + e->pos = 0; + e->refmap = refmap; + e->last_delim = NULL; } -static inline int isbacktick(int c) -{ - return (c == '`'); -} +static inline int isbacktick(int c) { return (c == '`'); } -static inline unsigned char peek_char(subject *subj) -{ - // NULL bytes should have been stripped out by now. If they're - // present, it's a programming error: - assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0)); - return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0; +static inline unsigned char peek_char(subject *subj) { + // NULL bytes should have been stripped out by now. If they're + // present, it's a programming error: + assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0)); + return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0; } -static inline unsigned char peek_at(subject *subj, bufsize_t pos) -{ - return subj->input.data[pos]; +static inline unsigned char peek_at(subject *subj, bufsize_t pos) { + return subj->input.data[pos]; } // Return true if there are more characters in the subject. -static inline int is_eof(subject* subj) -{ - return (subj->pos >= subj->input.len); +static inline int is_eof(subject *subj) { + return (subj->pos >= subj->input.len); } // Advance the subject. Doesn't check for eof. #define advance(subj) (subj)->pos += 1 -static inline bool -skip_spaces(subject *subj) -{ - bool skipped = false; - while (peek_char(subj) == ' ' || peek_char(subj) == '\t') { - advance(subj); - skipped = true; - } - return skipped; +static inline bool skip_spaces(subject *subj) { + bool skipped = false; + while (peek_char(subj) == ' ' || peek_char(subj) == '\t') { + advance(subj); + skipped = true; + } + return skipped; } -static inline bool -skip_line_end(subject *subj) -{ - bool seen_line_end_char = false; - if (peek_char(subj) == '\r') { - advance(subj); - seen_line_end_char = true; - } - if (peek_char(subj) == '\n') { - advance(subj); - seen_line_end_char = true; - } - return seen_line_end_char || is_eof(subj); +static inline bool skip_line_end(subject *subj) { + bool seen_line_end_char = false; + if (peek_char(subj) == '\r') { + advance(subj); + seen_line_end_char = true; + } + if (peek_char(subj) == '\n') { + advance(subj); + seen_line_end_char = true; + } + return seen_line_end_char || is_eof(subj); } // Take characters while a predicate holds, and return a string. -static inline cmark_chunk take_while(subject* subj, int (*f)(int)) -{ - unsigned char c; - bufsize_t startpos = subj->pos; - bufsize_t len = 0; +static inline cmark_chunk take_while(subject *subj, int (*f)(int)) { + unsigned char c; + bufsize_t startpos = subj->pos; + bufsize_t len = 0; - while ((c = peek_char(subj)) && (*f)(c)) { - advance(subj); - len++; - } + while ((c = peek_char(subj)) && (*f)(c)) { + advance(subj); + len++; + } - return cmark_chunk_dup(&subj->input, startpos, len); + return cmark_chunk_dup(&subj->input, startpos, len); } // Try to process a backtick code span that began with a @@ -243,981 +221,944 @@ static inline cmark_chunk take_while(subject* subj, int (*f)(int)) // parsed). Return 0 if you don't find matching closing // backticks, otherwise return the position in the subject // after the closing backticks. -static bufsize_t scan_to_closing_backticks(subject* subj, bufsize_t openticklength) -{ - // read non backticks - unsigned char c; - while ((c = peek_char(subj)) && c != '`') { - advance(subj); - } - if (is_eof(subj)) { - return 0; // did not find closing ticks, return 0 - } - bufsize_t numticks = 0; - while (peek_char(subj) == '`') { - advance(subj); - numticks++; - } - if (numticks != openticklength) { - return(scan_to_closing_backticks(subj, openticklength)); - } - return (subj->pos); +static bufsize_t scan_to_closing_backticks(subject *subj, + bufsize_t openticklength) { + // read non backticks + unsigned char c; + while ((c = peek_char(subj)) && c != '`') { + advance(subj); + } + if (is_eof(subj)) { + return 0; // did not find closing ticks, return 0 + } + bufsize_t numticks = 0; + while (peek_char(subj) == '`') { + advance(subj); + numticks++; + } + if (numticks != openticklength) { + return (scan_to_closing_backticks(subj, openticklength)); + } + return (subj->pos); } // Parse backtick code section or raw backticks, return an inline. // Assumes that the subject has a backtick at the current position. -static cmark_node* handle_backticks(subject *subj) -{ - cmark_chunk openticks = take_while(subj, isbacktick); - bufsize_t startpos = subj->pos; - bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len); - - if (endpos == 0) { // not found - subj->pos = startpos; // rewind - return make_str(openticks); - } else { - cmark_strbuf buf = GH_BUF_INIT; - - cmark_strbuf_set(&buf, subj->input.data + startpos, endpos - startpos - openticks.len); - cmark_strbuf_trim(&buf); - cmark_strbuf_normalize_whitespace(&buf); - - return make_code(cmark_chunk_buf_detach(&buf)); - } +static cmark_node *handle_backticks(subject *subj) { + cmark_chunk openticks = take_while(subj, isbacktick); + bufsize_t startpos = subj->pos; + bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len); + + if (endpos == 0) { // not found + subj->pos = startpos; // rewind + return make_str(openticks); + } else { + cmark_strbuf buf = GH_BUF_INIT; + + cmark_strbuf_set(&buf, subj->input.data + startpos, + endpos - startpos - openticks.len); + cmark_strbuf_trim(&buf); + cmark_strbuf_normalize_whitespace(&buf); + + return make_code(cmark_chunk_buf_detach(&buf)); + } } // Scan ***, **, or * and return number scanned, or 0. // Advances position. -static int -scan_delims(subject* subj, unsigned char c, bool * can_open, bool * can_close) -{ - int numdelims = 0; - bufsize_t before_char_pos; - int32_t after_char = 0; - int32_t before_char = 0; - int len; - bool left_flanking, right_flanking; - - if (subj->pos == 0) { - before_char = 10; - } else { - before_char_pos = subj->pos - 1; - // walk back to the beginning of the UTF_8 sequence: - while (peek_at(subj, before_char_pos) >> 6 == 2 && - before_char_pos > 0) { - before_char_pos -= 1; - } - len = utf8proc_iterate(subj->input.data + before_char_pos, - subj->pos - before_char_pos, &before_char); - if (len == -1) { - before_char = 10; - } - } - - if (c == '\'' || c == '"') { - numdelims++; - advance(subj); // limit to 1 delim for quotes - } else { - while (peek_char(subj) == c) { - numdelims++; - advance(subj); - } - } - - len = utf8proc_iterate(subj->input.data + subj->pos, - subj->input.len - subj->pos, &after_char); - if (len == -1) { - after_char = 10; - } - left_flanking = numdelims > 0 && !utf8proc_is_space(after_char) && - !(utf8proc_is_punctuation(after_char) && - !utf8proc_is_space(before_char) && - !utf8proc_is_punctuation(before_char)); - right_flanking = numdelims > 0 && !utf8proc_is_space(before_char) && - !(utf8proc_is_punctuation(before_char) && - !utf8proc_is_space(after_char) && - !utf8proc_is_punctuation(after_char)); - if (c == '_') { - *can_open = left_flanking && - (!right_flanking || utf8proc_is_punctuation(before_char)); - *can_close = right_flanking && - (!left_flanking || utf8proc_is_punctuation(after_char)); - } else if (c == '\'' || c == '"') { - *can_open = left_flanking && !right_flanking; - *can_close = right_flanking; - } else { - *can_open = left_flanking; - *can_close = right_flanking; - } - return numdelims; +static int scan_delims(subject *subj, unsigned char c, bool *can_open, + bool *can_close) { + int numdelims = 0; + bufsize_t before_char_pos; + int32_t after_char = 0; + int32_t before_char = 0; + int len; + bool left_flanking, right_flanking; + + if (subj->pos == 0) { + before_char = 10; + } else { + before_char_pos = subj->pos - 1; + // walk back to the beginning of the UTF_8 sequence: + while (peek_at(subj, before_char_pos) >> 6 == 2 && before_char_pos > 0) { + before_char_pos -= 1; + } + len = utf8proc_iterate(subj->input.data + before_char_pos, + subj->pos - before_char_pos, &before_char); + if (len == -1) { + before_char = 10; + } + } + + if (c == '\'' || c == '"') { + numdelims++; + advance(subj); // limit to 1 delim for quotes + } else { + while (peek_char(subj) == c) { + numdelims++; + advance(subj); + } + } + + len = utf8proc_iterate(subj->input.data + subj->pos, + subj->input.len - subj->pos, &after_char); + if (len == -1) { + after_char = 10; + } + left_flanking = numdelims > 0 && !utf8proc_is_space(after_char) && + !(utf8proc_is_punctuation(after_char) && + !utf8proc_is_space(before_char) && + !utf8proc_is_punctuation(before_char)); + right_flanking = + numdelims > 0 && !utf8proc_is_space(before_char) && + !(utf8proc_is_punctuation(before_char) && + !utf8proc_is_space(after_char) && !utf8proc_is_punctuation(after_char)); + if (c == '_') { + *can_open = left_flanking && + (!right_flanking || utf8proc_is_punctuation(before_char)); + *can_close = right_flanking && + (!left_flanking || utf8proc_is_punctuation(after_char)); + } else if (c == '\'' || c == '"') { + *can_open = left_flanking && !right_flanking; + *can_close = right_flanking; + } else { + *can_open = left_flanking; + *can_close = right_flanking; + } + return numdelims; } /* static void print_delimiters(subject *subj) { - delimiter *delim; - delim = subj->last_delim; - while (delim != NULL) { - printf("Item at stack pos %p, text pos %d: %d %d %d next(%p) prev(%p)\n", - (void*)delim, delim->position, delim->delim_char, - delim->can_open, delim->can_close, - (void*)delim->next, (void*)delim->previous); - delim = delim->previous; - } + delimiter *delim; + delim = subj->last_delim; + while (delim != NULL) { + printf("Item at stack pos %p, text pos %d: %d %d %d next(%p) +prev(%p)\n", + (void*)delim, delim->position, delim->delim_char, + delim->can_open, delim->can_close, + (void*)delim->next, (void*)delim->previous); + delim = delim->previous; + } } */ -static void remove_delimiter(subject *subj, delimiter *delim) -{ - if (delim == NULL) return; - if (delim->next == NULL) { - // end of list: - assert(delim == subj->last_delim); - subj->last_delim = delim->previous; - } else { - delim->next->previous = delim->previous; - } - if (delim->previous != NULL) { - delim->previous->next = delim->next; - } - free(delim); +static void remove_delimiter(subject *subj, delimiter *delim) { + if (delim == NULL) + return; + if (delim->next == NULL) { + // end of list: + assert(delim == subj->last_delim); + subj->last_delim = delim->previous; + } else { + delim->next->previous = delim->previous; + } + if (delim->previous != NULL) { + delim->previous->next = delim->next; + } + free(delim); } static void push_delimiter(subject *subj, unsigned char c, bool can_open, - bool can_close, cmark_node *inl_text) -{ - delimiter *delim = - (delimiter*)malloc(sizeof(delimiter)); - if (delim == NULL) { - return; - } - delim->delim_char = c; - delim->can_open = can_open; - delim->can_close = can_close; - delim->inl_text = inl_text; - delim->previous = subj->last_delim; - delim->next = NULL; - if (delim->previous != NULL) { - delim->previous->next = delim; - } - delim->position = subj->pos; - delim->active = true; - subj->last_delim = delim; + bool can_close, cmark_node *inl_text) { + delimiter *delim = (delimiter *)malloc(sizeof(delimiter)); + if (delim == NULL) { + return; + } + delim->delim_char = c; + delim->can_open = can_open; + delim->can_close = can_close; + delim->inl_text = inl_text; + delim->previous = subj->last_delim; + delim->next = NULL; + if (delim->previous != NULL) { + delim->previous->next = delim; + } + delim->position = subj->pos; + delim->active = true; + subj->last_delim = delim; } // Assumes the subject has a c at the current position. -static cmark_node* handle_delim(subject* subj, unsigned char c, bool smart) -{ - bufsize_t numdelims; - cmark_node * inl_text; - bool can_open, can_close; - cmark_chunk contents; - - numdelims = scan_delims(subj, c, &can_open, &can_close); - - if (c == '\'' && smart) { - contents = cmark_chunk_literal(RIGHTSINGLEQUOTE); - } else if (c == '"' && smart) { - contents = cmark_chunk_literal(can_close ? RIGHTDOUBLEQUOTE : LEFTDOUBLEQUOTE); - } else { - contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims); - } - - inl_text = make_str(contents); - - if ((can_open || can_close) && - (!(c == '\'' || c == '"') || smart)) { - push_delimiter(subj, c, can_open, can_close, inl_text); - } - - return inl_text; +static cmark_node *handle_delim(subject *subj, unsigned char c, bool smart) { + bufsize_t numdelims; + cmark_node *inl_text; + bool can_open, can_close; + cmark_chunk contents; + + numdelims = scan_delims(subj, c, &can_open, &can_close); + + if (c == '\'' && smart) { + contents = cmark_chunk_literal(RIGHTSINGLEQUOTE); + } else if (c == '"' && smart) { + contents = + cmark_chunk_literal(can_close ? RIGHTDOUBLEQUOTE : LEFTDOUBLEQUOTE); + } else { + contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims); + } + + inl_text = make_str(contents); + + if ((can_open || can_close) && (!(c == '\'' || c == '"') || smart)) { + push_delimiter(subj, c, can_open, can_close, inl_text); + } + + return inl_text; } // Assumes we have a hyphen at the current position. -static cmark_node* handle_hyphen(subject* subj, bool smart) -{ - int startpos = subj->pos; - - advance(subj); - - if (!smart || peek_char(subj) != '-') { - return make_str(cmark_chunk_literal("-")); - } - - while (smart && peek_char(subj) == '-') { - advance(subj); - } - - int numhyphens = subj->pos - startpos; - int en_count = 0; - int em_count = 0; - int i; - cmark_strbuf buf = GH_BUF_INIT; - - if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes - em_count = numhyphens / 3; - } else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes - en_count = numhyphens / 2; - } else if (numhyphens % 3 == 2) { // use one en dash at end - en_count = 1; - em_count = (numhyphens - 2) / 3; - } else { // use two en dashes at the end - en_count = 2; - em_count = (numhyphens - 4) / 3; - } - - for (i = em_count; i > 0; i--) { - cmark_strbuf_puts(&buf, EMDASH); - } - - for (i = en_count; i > 0; i--) { - cmark_strbuf_puts(&buf, ENDASH); - } - - return make_str(cmark_chunk_buf_detach(&buf)); +static cmark_node *handle_hyphen(subject *subj, bool smart) { + int startpos = subj->pos; + + advance(subj); + + if (!smart || peek_char(subj) != '-') { + return make_str(cmark_chunk_literal("-")); + } + + while (smart && peek_char(subj) == '-') { + advance(subj); + } + + int numhyphens = subj->pos - startpos; + int en_count = 0; + int em_count = 0; + int i; + cmark_strbuf buf = GH_BUF_INIT; + + if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes + em_count = numhyphens / 3; + } else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes + en_count = numhyphens / 2; + } else if (numhyphens % 3 == 2) { // use one en dash at end + en_count = 1; + em_count = (numhyphens - 2) / 3; + } else { // use two en dashes at the end + en_count = 2; + em_count = (numhyphens - 4) / 3; + } + + for (i = em_count; i > 0; i--) { + cmark_strbuf_puts(&buf, EMDASH); + } + + for (i = en_count; i > 0; i--) { + cmark_strbuf_puts(&buf, ENDASH); + } + + return make_str(cmark_chunk_buf_detach(&buf)); } // Assumes we have a period at the current position. -static cmark_node* handle_period(subject* subj, bool smart) -{ - advance(subj); - if (smart && peek_char(subj) == '.') { - advance(subj); - if (peek_char(subj) == '.') { - advance(subj); - return make_str(cmark_chunk_literal(ELLIPSES)); - } else { - return make_str(cmark_chunk_literal("..")); - } - } else { - return make_str(cmark_chunk_literal(".")); - } +static cmark_node *handle_period(subject *subj, bool smart) { + advance(subj); + if (smart && peek_char(subj) == '.') { + advance(subj); + if (peek_char(subj) == '.') { + advance(subj); + return make_str(cmark_chunk_literal(ELLIPSES)); + } else { + return make_str(cmark_chunk_literal("..")); + } + } else { + return make_str(cmark_chunk_literal(".")); + } } -static void process_emphasis(subject *subj, delimiter *stack_bottom) -{ - delimiter *closer = subj->last_delim; - delimiter *opener; - delimiter *old_closer; - bool opener_found; - delimiter *openers_bottom[128]; - - // initialize openers_bottom: - openers_bottom['*'] = stack_bottom; - openers_bottom['_'] = stack_bottom; - openers_bottom['\''] = stack_bottom; - openers_bottom['"'] = stack_bottom; - - // move back to first relevant delim. - while (closer != NULL && closer->previous != stack_bottom) { - closer = closer->previous; - } - - // now move forward, looking for closers, and handling each - while (closer != NULL) { - if (closer->can_close && - (closer->delim_char == '*' || closer->delim_char == '_' || - closer->delim_char == '"' || closer->delim_char == '\'')) { - // Now look backwards for first matching opener: - opener = closer->previous; - opener_found = false; - while (opener != NULL && opener != stack_bottom && - opener != openers_bottom[closer->delim_char]) { - if (opener->delim_char == closer->delim_char && - opener->can_open) { - opener_found = true; - break; - } - opener = opener->previous; - } - old_closer = closer; - if (closer->delim_char == '*' || closer->delim_char == '_') { - if (opener_found) { - closer = S_insert_emph(subj, opener, closer); - } else { - closer = closer->next; - } - } else if (closer->delim_char == '\'') { - cmark_chunk_free(&closer->inl_text->as.literal); - closer->inl_text->as.literal = - cmark_chunk_literal(RIGHTSINGLEQUOTE); - if (opener_found) { - cmark_chunk_free(&opener->inl_text->as.literal); - opener->inl_text->as.literal = - cmark_chunk_literal(LEFTSINGLEQUOTE); - } - closer = closer->next; - } else if (closer->delim_char == '"') { - cmark_chunk_free(&closer->inl_text->as.literal); - closer->inl_text->as.literal = - cmark_chunk_literal(RIGHTDOUBLEQUOTE); - if (opener_found) { - cmark_chunk_free(&opener->inl_text->as.literal); - opener->inl_text->as.literal = - cmark_chunk_literal(LEFTDOUBLEQUOTE); - } - closer = closer->next; - } - if (!opener_found) { - // set lower bound for future searches for openers: - openers_bottom[old_closer->delim_char] = old_closer->previous; - if (!old_closer->can_open) { - // we can remove a closer that can't be an - // opener, once we've seen there's no - // matching opener: - remove_delimiter(subj, old_closer); - } - } - } else { - closer = closer->next; - } - } - // free all delimiters in list until stack_bottom: - while (subj->last_delim != stack_bottom) { - remove_delimiter(subj, subj->last_delim); - } +static void process_emphasis(subject *subj, delimiter *stack_bottom) { + delimiter *closer = subj->last_delim; + delimiter *opener; + delimiter *old_closer; + bool opener_found; + delimiter *openers_bottom[128]; + + // initialize openers_bottom: + openers_bottom['*'] = stack_bottom; + openers_bottom['_'] = stack_bottom; + openers_bottom['\''] = stack_bottom; + openers_bottom['"'] = stack_bottom; + + // move back to first relevant delim. + while (closer != NULL && closer->previous != stack_bottom) { + closer = closer->previous; + } + + // now move forward, looking for closers, and handling each + while (closer != NULL) { + if (closer->can_close && + (closer->delim_char == '*' || closer->delim_char == '_' || + closer->delim_char == '"' || closer->delim_char == '\'')) { + // Now look backwards for first matching opener: + opener = closer->previous; + opener_found = false; + while (opener != NULL && opener != stack_bottom && + opener != openers_bottom[closer->delim_char]) { + if (opener->delim_char == closer->delim_char && opener->can_open) { + opener_found = true; + break; + } + opener = opener->previous; + } + old_closer = closer; + if (closer->delim_char == '*' || closer->delim_char == '_') { + if (opener_found) { + closer = S_insert_emph(subj, opener, closer); + } else { + closer = closer->next; + } + } else if (closer->delim_char == '\'') { + cmark_chunk_free(&closer->inl_text->as.literal); + closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE); + if (opener_found) { + cmark_chunk_free(&opener->inl_text->as.literal); + opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE); + } + closer = closer->next; + } else if (closer->delim_char == '"') { + cmark_chunk_free(&closer->inl_text->as.literal); + closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE); + if (opener_found) { + cmark_chunk_free(&opener->inl_text->as.literal); + opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE); + } + closer = closer->next; + } + if (!opener_found) { + // set lower bound for future searches for openers: + openers_bottom[old_closer->delim_char] = old_closer->previous; + if (!old_closer->can_open) { + // we can remove a closer that can't be an + // opener, once we've seen there's no + // matching opener: + remove_delimiter(subj, old_closer); + } + } + } else { + closer = closer->next; + } + } + // free all delimiters in list until stack_bottom: + while (subj->last_delim != stack_bottom) { + remove_delimiter(subj, subj->last_delim); + } } -static delimiter* -S_insert_emph(subject *subj, delimiter *opener, delimiter *closer) -{ - delimiter *delim, *tmp_delim; - bufsize_t use_delims; - cmark_node *opener_inl = opener->inl_text; - cmark_node *closer_inl = closer->inl_text; - bufsize_t opener_num_chars = opener_inl->as.literal.len; - bufsize_t closer_num_chars = closer_inl->as.literal.len; - cmark_node *tmp, *emph, *first_child, *last_child; - - // calculate the actual number of characters used from this closer - if (closer_num_chars < 3 || opener_num_chars < 3) { - use_delims = closer_num_chars <= opener_num_chars ? - closer_num_chars : opener_num_chars; - } else { // closer and opener both have >= 3 characters - use_delims = closer_num_chars % 2 == 0 ? 2 : 1; - } - - // remove used characters from associated inlines. - opener_num_chars -= use_delims; - closer_num_chars -= use_delims; - opener_inl->as.literal.len = opener_num_chars; - closer_inl->as.literal.len = closer_num_chars; - - // free delimiters between opener and closer - delim = closer->previous; - while (delim != NULL && delim != opener) { - tmp_delim = delim->previous; - remove_delimiter(subj, delim); - delim = tmp_delim; - } - - first_child = opener_inl->next; - last_child = closer_inl->prev; - - // if opener has 0 characters, remove it and its associated inline - if (opener_num_chars == 0) { - // replace empty opener inline with emph - cmark_chunk_free(&(opener_inl->as.literal)); - emph = opener_inl; - emph->type = use_delims == 1 ? - CMARK_NODE_EMPH : CMARK_NODE_STRONG; - // remove opener from list - remove_delimiter(subj, opener); - } else { - // create new emph or strong, and splice it in to our inlines - // between the opener and closer - emph = use_delims == 1 ? make_emph() : make_strong(); - emph->parent = opener_inl->parent; - emph->prev = opener_inl; - opener_inl->next = emph; - } - - // push children below emph - emph->next = closer_inl; - closer_inl->prev = emph; - emph->first_child = first_child; - emph->last_child = last_child; - - // fix children pointers - first_child->prev = NULL; - last_child->next = NULL; - for (tmp = first_child; tmp != NULL; tmp = tmp->next) { - tmp->parent = emph; - } - - // if closer has 0 characters, remove it and its associated inline - if (closer_num_chars == 0) { - // remove empty closer inline - cmark_node_free(closer_inl); - // remove closer from list - tmp_delim = closer->next; - remove_delimiter(subj, closer); - closer = tmp_delim; - } - - return closer; +static delimiter *S_insert_emph(subject *subj, delimiter *opener, + delimiter *closer) { + delimiter *delim, *tmp_delim; + bufsize_t use_delims; + cmark_node *opener_inl = opener->inl_text; + cmark_node *closer_inl = closer->inl_text; + bufsize_t opener_num_chars = opener_inl->as.literal.len; + bufsize_t closer_num_chars = closer_inl->as.literal.len; + cmark_node *tmp, *emph, *first_child, *last_child; + + // calculate the actual number of characters used from this closer + if (closer_num_chars < 3 || opener_num_chars < 3) { + use_delims = closer_num_chars <= opener_num_chars ? closer_num_chars + : opener_num_chars; + } else { // closer and opener both have >= 3 characters + use_delims = closer_num_chars % 2 == 0 ? 2 : 1; + } + + // remove used characters from associated inlines. + opener_num_chars -= use_delims; + closer_num_chars -= use_delims; + opener_inl->as.literal.len = opener_num_chars; + closer_inl->as.literal.len = closer_num_chars; + + // free delimiters between opener and closer + delim = closer->previous; + while (delim != NULL && delim != opener) { + tmp_delim = delim->previous; + remove_delimiter(subj, delim); + delim = tmp_delim; + } + + first_child = opener_inl->next; + last_child = closer_inl->prev; + + // if opener has 0 characters, remove it and its associated inline + if (opener_num_chars == 0) { + // replace empty opener inline with emph + cmark_chunk_free(&(opener_inl->as.literal)); + emph = opener_inl; + emph->type = use_delims == 1 ? CMARK_NODE_EMPH : CMARK_NODE_STRONG; + // remove opener from list + remove_delimiter(subj, opener); + } else { + // create new emph or strong, and splice it in to our inlines + // between the opener and closer + emph = use_delims == 1 ? make_emph() : make_strong(); + emph->parent = opener_inl->parent; + emph->prev = opener_inl; + opener_inl->next = emph; + } + + // push children below emph + emph->next = closer_inl; + closer_inl->prev = emph; + emph->first_child = first_child; + emph->last_child = last_child; + + // fix children pointers + first_child->prev = NULL; + last_child->next = NULL; + for (tmp = first_child; tmp != NULL; tmp = tmp->next) { + tmp->parent = emph; + } + + // if closer has 0 characters, remove it and its associated inline + if (closer_num_chars == 0) { + // remove empty closer inline + cmark_node_free(closer_inl); + // remove closer from list + tmp_delim = closer->next; + remove_delimiter(subj, closer); + closer = tmp_delim; + } + + return closer; } // Parse backslash-escape or just a backslash, returning an inline. -static cmark_node* handle_backslash(subject *subj) -{ - advance(subj); - unsigned char nextchar = peek_char(subj); - if (cmark_ispunct(nextchar)) { // only ascii symbols and newline can be escaped - advance(subj); - return make_str(cmark_chunk_dup(&subj->input, subj->pos - 1, 1)); - } else if (!is_eof(subj) && skip_line_end(subj)) { - return make_linebreak(); - } else { - return make_str(cmark_chunk_literal("\\")); - } +static cmark_node *handle_backslash(subject *subj) { + advance(subj); + unsigned char nextchar = peek_char(subj); + if (cmark_ispunct( + nextchar)) { // only ascii symbols and newline can be escaped + advance(subj); + return make_str(cmark_chunk_dup(&subj->input, subj->pos - 1, 1)); + } else if (!is_eof(subj) && skip_line_end(subj)) { + return make_linebreak(); + } else { + return make_str(cmark_chunk_literal("\\")); + } } // Parse an entity or a regular "&" string. // Assumes the subject has an '&' character at the current position. -static cmark_node* handle_entity(subject* subj) -{ - cmark_strbuf ent = GH_BUF_INIT; - bufsize_t len; +static cmark_node *handle_entity(subject *subj) { + cmark_strbuf ent = GH_BUF_INIT; + bufsize_t len; - advance(subj); + advance(subj); - len = houdini_unescape_ent(&ent, - subj->input.data + subj->pos, - subj->input.len - subj->pos - ); + len = houdini_unescape_ent(&ent, subj->input.data + subj->pos, + subj->input.len - subj->pos); - if (len == 0) - return make_str(cmark_chunk_literal("&")); + if (len == 0) + return make_str(cmark_chunk_literal("&")); - subj->pos += len; - return make_str(cmark_chunk_buf_detach(&ent)); + subj->pos += len; + return make_str(cmark_chunk_buf_detach(&ent)); } // Clean a URL: remove surrounding whitespace and surrounding <>, // and remove \ that escape punctuation. -cmark_chunk cmark_clean_url(cmark_chunk *url) -{ - cmark_strbuf buf = GH_BUF_INIT; +cmark_chunk cmark_clean_url(cmark_chunk *url) { + cmark_strbuf buf = GH_BUF_INIT; - cmark_chunk_trim(url); + cmark_chunk_trim(url); - if (url->len == 0) { - cmark_chunk result = CMARK_CHUNK_EMPTY; - return result; - } + if (url->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } - if (url->data[0] == '<' && url->data[url->len - 1] == '>') { - houdini_unescape_html_f(&buf, url->data + 1, url->len - 2); - } else { - houdini_unescape_html_f(&buf, url->data, url->len); - } + if (url->data[0] == '<' && url->data[url->len - 1] == '>') { + houdini_unescape_html_f(&buf, url->data + 1, url->len - 2); + } else { + houdini_unescape_html_f(&buf, url->data, url->len); + } - cmark_strbuf_unescape(&buf); - return cmark_chunk_buf_detach(&buf); + cmark_strbuf_unescape(&buf); + return cmark_chunk_buf_detach(&buf); } -cmark_chunk cmark_clean_title(cmark_chunk *title) -{ - cmark_strbuf buf = GH_BUF_INIT; - unsigned char first, last; - - if (title->len == 0) { - cmark_chunk result = CMARK_CHUNK_EMPTY; - return result; - } - - first = title->data[0]; - last = title->data[title->len - 1]; - - // remove surrounding quotes if any: - if ((first == '\'' && last == '\'') || - (first == '(' && last == ')') || - (first == '"' && last == '"')) { - houdini_unescape_html_f(&buf, title->data + 1, title->len - 2); - } else { - houdini_unescape_html_f(&buf, title->data, title->len); - } - - cmark_strbuf_unescape(&buf); - return cmark_chunk_buf_detach(&buf); +cmark_chunk cmark_clean_title(cmark_chunk *title) { + cmark_strbuf buf = GH_BUF_INIT; + unsigned char first, last; + + if (title->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } + + first = title->data[0]; + last = title->data[title->len - 1]; + + // remove surrounding quotes if any: + if ((first == '\'' && last == '\'') || (first == '(' && last == ')') || + (first == '"' && last == '"')) { + houdini_unescape_html_f(&buf, title->data + 1, title->len - 2); + } else { + houdini_unescape_html_f(&buf, title->data, title->len); + } + + cmark_strbuf_unescape(&buf); + return cmark_chunk_buf_detach(&buf); } // Parse an autolink or HTML tag. // Assumes the subject has a '<' character at the current position. -static cmark_node* handle_pointy_brace(subject* subj) -{ - bufsize_t matchlen = 0; - cmark_chunk contents; - - advance(subj); // advance past first < - - // first try to match a URL autolink - matchlen = scan_autolink_uri(&subj->input, subj->pos); - if (matchlen > 0) { - contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); - subj->pos += matchlen; - - return make_autolink(contents, 0); - } - - // next try to match an email autolink - matchlen = scan_autolink_email(&subj->input, subj->pos); - if (matchlen > 0) { - contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); - subj->pos += matchlen; - - return make_autolink(contents, 1); - } - - // finally, try to match an html tag - 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; - return make_raw_html(contents); - } - - // if nothing matches, just return the opening <: - return make_str(cmark_chunk_literal("<")); +static cmark_node *handle_pointy_brace(subject *subj) { + bufsize_t matchlen = 0; + cmark_chunk contents; + + advance(subj); // advance past first < + + // first try to match a URL autolink + matchlen = scan_autolink_uri(&subj->input, subj->pos); + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); + subj->pos += matchlen; + + return make_autolink(contents, 0); + } + + // next try to match an email autolink + matchlen = scan_autolink_email(&subj->input, subj->pos); + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); + subj->pos += matchlen; + + return make_autolink(contents, 1); + } + + // finally, try to match an html tag + 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; + return make_raw_html(contents); + } + + // if nothing matches, just return the opening <: + return make_str(cmark_chunk_literal("<")); } // Parse a link label. Returns 1 if successful. // Note: unescaped brackets are not allowed in labels. // The label begins with `[` and ends with the first `]` character // encountered. Backticks in labels do not start code spans. -static int link_label(subject* subj, cmark_chunk *raw_label) -{ - bufsize_t startpos = subj->pos; - int length = 0; - unsigned char c; - - // advance past [ - if (peek_char(subj) == '[') { - advance(subj); - } else { - return 0; - } - - while ((c = peek_char(subj)) && c != '[' && c != ']') { - if (c == '\\') { - advance(subj); - length++; - if (cmark_ispunct(peek_char(subj))) { - advance(subj); - length++; - } - } else { - advance(subj); - length++; - } - if (length > MAX_LINK_LABEL_LENGTH) { - goto noMatch; - } - } - - if (c == ']') { // match found - *raw_label = cmark_chunk_dup(&subj->input, startpos + 1, subj->pos - (startpos + 1)); - cmark_chunk_trim(raw_label); - advance(subj); // advance past ] - return 1; - } +static int link_label(subject *subj, cmark_chunk *raw_label) { + bufsize_t startpos = subj->pos; + int length = 0; + unsigned char c; + + // advance past [ + if (peek_char(subj) == '[') { + advance(subj); + } else { + return 0; + } + + while ((c = peek_char(subj)) && c != '[' && c != ']') { + if (c == '\\') { + advance(subj); + length++; + if (cmark_ispunct(peek_char(subj))) { + advance(subj); + length++; + } + } else { + advance(subj); + length++; + } + if (length > MAX_LINK_LABEL_LENGTH) { + goto noMatch; + } + } + + if (c == ']') { // match found + *raw_label = + cmark_chunk_dup(&subj->input, startpos + 1, subj->pos - (startpos + 1)); + cmark_chunk_trim(raw_label); + advance(subj); // advance past ] + return 1; + } noMatch: - subj->pos = startpos; // rewind - return 0; - + subj->pos = startpos; // rewind + return 0; } // Return a link, an image, or a literal close bracket. -static cmark_node* handle_close_bracket(subject* subj, cmark_node *parent) -{ - bufsize_t initial_pos; - bufsize_t starturl, endurl, starttitle, endtitle, endall; - bufsize_t n; - bufsize_t sps; - cmark_reference *ref; - bool is_image = false; - cmark_chunk url_chunk, title_chunk; - cmark_chunk url, title; - delimiter *opener; - cmark_node *link_text; - cmark_node *inl; - cmark_chunk raw_label; - int found_label; - - advance(subj); // advance past ] - initial_pos = subj->pos; - - // look through list of delimiters for a [ or ! - opener = subj->last_delim; - while (opener) { - if (opener->delim_char == '[' || opener->delim_char == '!') { - break; - } - opener = opener->previous; - } - - if (opener == NULL) { - return make_str(cmark_chunk_literal("]")); - } - - if (!opener->active) { - // take delimiter off stack - remove_delimiter(subj, opener); - return make_str(cmark_chunk_literal("]")); - } - - // If we got here, we matched a potential link/image text. - is_image = opener->delim_char == '!'; - link_text = opener->inl_text->next; - - // Now we check to see if it's a link/image. - - // First, look for an inline link. - if (peek_char(subj) == '(' && - ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) && - ((n = scan_link_url(&subj->input, subj->pos + 1 + sps)) > -1)) { - - // try to parse an explicit link: - starturl = subj->pos + 1 + sps; // after ( - endurl = starturl + n; - starttitle = endurl + scan_spacechars(&subj->input, endurl); - - // ensure there are spaces btw url and title - endtitle = (starttitle == endurl) ? starttitle : - starttitle + scan_link_title(&subj->input, starttitle); - - endall = endtitle + scan_spacechars(&subj->input, endtitle); - - if (peek_at(subj, endall) == ')') { - subj->pos = endall + 1; - - url_chunk = cmark_chunk_dup(&subj->input, starturl, endurl - starturl); - title_chunk = cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle); - url = cmark_clean_url(&url_chunk); - title = cmark_clean_title(&title_chunk); - cmark_chunk_free(&url_chunk); - cmark_chunk_free(&title_chunk); - goto match; - - } else { - goto noMatch; - } - } - - // Next, look for a following [link label] that matches in refmap. - // skip spaces - subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos); - raw_label = cmark_chunk_literal(""); - found_label = link_label(subj, &raw_label); - if (!found_label || raw_label.len == 0) { - cmark_chunk_free(&raw_label); - raw_label = cmark_chunk_dup(&subj->input, opener->position, - initial_pos - opener->position - 1); - } - - if (!found_label) { - // If we have a shortcut reference link, back up - // to before the spacse we skipped. - subj->pos = initial_pos; - } - - ref = cmark_reference_lookup(subj->refmap, &raw_label); - cmark_chunk_free(&raw_label); - - if (ref != NULL) { // found - url = chunk_clone(&ref->url); - title = chunk_clone(&ref->title); - goto match; - } else { - goto noMatch; - } +static cmark_node *handle_close_bracket(subject *subj, cmark_node *parent) { + bufsize_t initial_pos; + bufsize_t starturl, endurl, starttitle, endtitle, endall; + bufsize_t n; + bufsize_t sps; + cmark_reference *ref; + bool is_image = false; + cmark_chunk url_chunk, title_chunk; + cmark_chunk url, title; + delimiter *opener; + cmark_node *link_text; + cmark_node *inl; + cmark_chunk raw_label; + int found_label; + + advance(subj); // advance past ] + initial_pos = subj->pos; + + // look through list of delimiters for a [ or ! + opener = subj->last_delim; + while (opener) { + if (opener->delim_char == '[' || opener->delim_char == '!') { + break; + } + opener = opener->previous; + } + + if (opener == NULL) { + return make_str(cmark_chunk_literal("]")); + } + + if (!opener->active) { + // take delimiter off stack + remove_delimiter(subj, opener); + return make_str(cmark_chunk_literal("]")); + } + + // If we got here, we matched a potential link/image text. + is_image = opener->delim_char == '!'; + link_text = opener->inl_text->next; + + // Now we check to see if it's a link/image. + + // First, look for an inline link. + if (peek_char(subj) == '(' && + ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) && + ((n = scan_link_url(&subj->input, subj->pos + 1 + sps)) > -1)) { + + // try to parse an explicit link: + starturl = subj->pos + 1 + sps; // after ( + endurl = starturl + n; + starttitle = endurl + scan_spacechars(&subj->input, endurl); + + // ensure there are spaces btw url and title + endtitle = (starttitle == endurl) + ? starttitle + : starttitle + scan_link_title(&subj->input, starttitle); + + endall = endtitle + scan_spacechars(&subj->input, endtitle); + + if (peek_at(subj, endall) == ')') { + subj->pos = endall + 1; + + url_chunk = cmark_chunk_dup(&subj->input, starturl, endurl - starturl); + title_chunk = + cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle); + url = cmark_clean_url(&url_chunk); + title = cmark_clean_title(&title_chunk); + cmark_chunk_free(&url_chunk); + cmark_chunk_free(&title_chunk); + goto match; + + } else { + goto noMatch; + } + } + + // Next, look for a following [link label] that matches in refmap. + // skip spaces + subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos); + raw_label = cmark_chunk_literal(""); + found_label = link_label(subj, &raw_label); + if (!found_label || raw_label.len == 0) { + cmark_chunk_free(&raw_label); + raw_label = cmark_chunk_dup(&subj->input, opener->position, + initial_pos - opener->position - 1); + } + + if (!found_label) { + // If we have a shortcut reference link, back up + // to before the spacse we skipped. + subj->pos = initial_pos; + } + + ref = cmark_reference_lookup(subj->refmap, &raw_label); + cmark_chunk_free(&raw_label); + + if (ref != NULL) { // found + url = chunk_clone(&ref->url); + title = chunk_clone(&ref->title); + goto match; + } else { + goto noMatch; + } noMatch: - // If we fall through to here, it means we didn't match a link: - remove_delimiter(subj, opener); // remove this opener from delimiter list - subj->pos = initial_pos; - return make_str(cmark_chunk_literal("]")); + // If we fall through to here, it means we didn't match a link: + remove_delimiter(subj, opener); // remove this opener from delimiter list + subj->pos = initial_pos; + return make_str(cmark_chunk_literal("]")); match: - inl = opener->inl_text; - inl->type = is_image ? CMARK_NODE_IMAGE : CMARK_NODE_LINK; - cmark_chunk_free(&inl->as.literal); - inl->first_child = link_text; - process_emphasis(subj, opener); - inl->as.link.url = url; - inl->as.link.title = title; - inl->next = NULL; - if (link_text) { - cmark_node *tmp; - link_text->prev = NULL; - for (tmp = link_text; tmp->next != NULL; tmp = tmp->next) { - tmp->parent = inl; - } - tmp->parent = inl; - inl->last_child = tmp; - } - parent->last_child = inl; - - // 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 - // inside links.) - remove_delimiter(subj, opener); - if (!is_image) { - opener = subj->last_delim; - while (opener != NULL) { - if (opener->delim_char == '[') { - if (!opener->active) { - break; - } else { - opener->active = false; - } - } - opener = opener->previous; - } - } - - return NULL; + inl = opener->inl_text; + inl->type = is_image ? CMARK_NODE_IMAGE : CMARK_NODE_LINK; + cmark_chunk_free(&inl->as.literal); + inl->first_child = link_text; + process_emphasis(subj, opener); + inl->as.link.url = url; + inl->as.link.title = title; + inl->next = NULL; + if (link_text) { + cmark_node *tmp; + link_text->prev = NULL; + for (tmp = link_text; tmp->next != NULL; tmp = tmp->next) { + tmp->parent = inl; + } + tmp->parent = inl; + inl->last_child = tmp; + } + parent->last_child = inl; + + // 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 + // inside links.) + remove_delimiter(subj, opener); + if (!is_image) { + opener = subj->last_delim; + while (opener != NULL) { + if (opener->delim_char == '[') { + if (!opener->active) { + break; + } else { + opener->active = false; + } + } + opener = opener->previous; + } + } + + return NULL; } // Parse a hard or soft linebreak, returning an inline. // Assumes the subject has a newline at the current position. -static cmark_node* handle_newline(subject *subj) -{ - bufsize_t nlpos = subj->pos; - // skip over newline - advance(subj); - // skip spaces at beginning of line - skip_spaces(subj); - if (nlpos > 1 && - peek_at(subj, nlpos - 1) == ' ' && - peek_at(subj, nlpos - 2) == ' ') { - return make_linebreak(); - } else { - return make_softbreak(); - } +static cmark_node *handle_newline(subject *subj) { + bufsize_t nlpos = subj->pos; + // skip over newline + advance(subj); + // skip spaces at beginning of line + skip_spaces(subj); + if (nlpos > 1 && peek_at(subj, nlpos - 1) == ' ' && + peek_at(subj, nlpos - 2) == ' ') { + return make_linebreak(); + } else { + return make_softbreak(); + } } -static bufsize_t subject_find_special_char(subject *subj, int options) -{ - // "\r\n\\`&_*[]<!" - static const int8_t SPECIAL_CHARS[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - - // " ' . - - static const char SMART_PUNCT_CHARS[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - - bufsize_t n = subj->pos + 1; - - while (n < subj->input.len) { - if (SPECIAL_CHARS[subj->input.data[n]]) - return n; - if (options & CMARK_OPT_SMART && - SMART_PUNCT_CHARS[subj->input.data[n]]) - return n; - n++; - } - - return subj->input.len; +static bufsize_t subject_find_special_char(subject *subj, int options) { + // "\r\n\\`&_*[]<!" + static const int8_t SPECIAL_CHARS[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + // " ' . - + static const char SMART_PUNCT_CHARS[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + + bufsize_t n = subj->pos + 1; + + while (n < subj->input.len) { + if (SPECIAL_CHARS[subj->input.data[n]]) + return n; + if (options & CMARK_OPT_SMART && SMART_PUNCT_CHARS[subj->input.data[n]]) + return n; + n++; + } + + return subj->input.len; } // Parse an inline, advancing subject, and add it as a child of parent. // Return 0 if no inline can be parsed, 1 otherwise. -static int parse_inline(subject* subj, cmark_node * parent, int options) -{ - cmark_node* new_inl = NULL; - cmark_chunk contents; - unsigned char c; - bufsize_t endpos; - c = peek_char(subj); - if (c == 0) { - return 0; - } - switch(c) { - case '\r': - case '\n': - new_inl = handle_newline(subj); - break; - case '`': - new_inl = handle_backticks(subj); - break; - case '\\': - new_inl = handle_backslash(subj); - break; - case '&': - new_inl = handle_entity(subj); - break; - case '<': - new_inl = handle_pointy_brace(subj); - break; - case '*': - case '_': - case '\'': - case '"': - new_inl = handle_delim(subj, c, options & CMARK_OPT_SMART); - break; - case '-': - new_inl = handle_hyphen(subj, options & CMARK_OPT_SMART); - break; - case '.': - new_inl = handle_period(subj, options & CMARK_OPT_SMART); - break; - case '[': - advance(subj); - new_inl = make_str(cmark_chunk_literal("[")); - push_delimiter(subj, '[', true, false, new_inl); - break; - case ']': - new_inl = handle_close_bracket(subj, parent); - break; - case '!': - advance(subj); - if (peek_char(subj) == '[') { - advance(subj); - new_inl = make_str(cmark_chunk_literal("![")); - push_delimiter(subj, '!', false, true, new_inl); - } else { - new_inl = make_str(cmark_chunk_literal("!")); - } - break; - default: - endpos = subject_find_special_char(subj, options); - contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos); - subj->pos = endpos; - - // if we're at a newline, strip trailing spaces. - if (S_is_line_end_char(peek_char(subj))) { - cmark_chunk_rtrim(&contents); - } - - new_inl = make_str(contents); - } - if (new_inl != NULL) { - cmark_node_append_child(parent, new_inl); - } - - return 1; +static int parse_inline(subject *subj, cmark_node *parent, int options) { + cmark_node *new_inl = NULL; + cmark_chunk contents; + unsigned char c; + bufsize_t endpos; + c = peek_char(subj); + if (c == 0) { + return 0; + } + switch (c) { + case '\r': + case '\n': + new_inl = handle_newline(subj); + break; + case '`': + new_inl = handle_backticks(subj); + break; + case '\\': + new_inl = handle_backslash(subj); + break; + case '&': + new_inl = handle_entity(subj); + break; + case '<': + new_inl = handle_pointy_brace(subj); + break; + case '*': + case '_': + case '\'': + case '"': + new_inl = handle_delim(subj, c, options & CMARK_OPT_SMART); + break; + case '-': + new_inl = handle_hyphen(subj, options & CMARK_OPT_SMART); + break; + case '.': + new_inl = handle_period(subj, options & CMARK_OPT_SMART); + break; + case '[': + advance(subj); + new_inl = make_str(cmark_chunk_literal("[")); + push_delimiter(subj, '[', true, false, new_inl); + break; + case ']': + new_inl = handle_close_bracket(subj, parent); + break; + case '!': + advance(subj); + if (peek_char(subj) == '[') { + advance(subj); + new_inl = make_str(cmark_chunk_literal("![")); + push_delimiter(subj, '!', false, true, new_inl); + } else { + new_inl = make_str(cmark_chunk_literal("!")); + } + break; + default: + endpos = subject_find_special_char(subj, options); + contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos); + subj->pos = endpos; + + // if we're at a newline, strip trailing spaces. + if (S_is_line_end_char(peek_char(subj))) { + cmark_chunk_rtrim(&contents); + } + + new_inl = make_str(contents); + } + if (new_inl != NULL) { + cmark_node_append_child(parent, new_inl); + } + + return 1; } // Parse inlines from parent's string_content, adding as children of parent. -extern void cmark_parse_inlines(cmark_node* parent, cmark_reference_map *refmap, int options) -{ - subject subj; - subject_from_buf(&subj, &parent->string_content, refmap); - cmark_chunk_rtrim(&subj.input); +extern void cmark_parse_inlines(cmark_node *parent, cmark_reference_map *refmap, + int options) { + subject subj; + subject_from_buf(&subj, &parent->string_content, refmap); + cmark_chunk_rtrim(&subj.input); - while (!is_eof(&subj) && parse_inline(&subj, parent, options)) ; + while (!is_eof(&subj) && parse_inline(&subj, parent, options)) + ; - process_emphasis(&subj, NULL); + process_emphasis(&subj, NULL); } // Parse zero or more space characters, including at most one newline. -static void spnl(subject* subj) -{ - skip_spaces(subj); - if (skip_line_end(subj)) { - skip_spaces(subj); - } +static void spnl(subject *subj) { + skip_spaces(subj); + if (skip_line_end(subj)) { + skip_spaces(subj); + } } // Parse reference. Assumes string begins with '[' character. // Modify refmap if a reference is encountered. // Return 0 if no reference found, otherwise position of subject // after reference is parsed. -bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, cmark_reference_map *refmap) -{ - subject subj; - - cmark_chunk lab; - cmark_chunk url; - cmark_chunk title; - - bufsize_t matchlen = 0; - bufsize_t beforetitle; - - subject_from_buf(&subj, input, NULL); - - // parse label: - if (!link_label(&subj, &lab) || lab.len == 0) - return 0; - - // colon: - if (peek_char(&subj) == ':') { - advance(&subj); - } else { - return 0; - } - - // parse link url: - spnl(&subj); - matchlen = scan_link_url(&subj.input, subj.pos); - if (matchlen) { - url = cmark_chunk_dup(&subj.input, subj.pos, matchlen); - subj.pos += matchlen; - } else { - return 0; - } - - // parse optional link_title - beforetitle = subj.pos; - spnl(&subj); - matchlen = scan_link_title(&subj.input, subj.pos); - if (matchlen) { - title = cmark_chunk_dup(&subj.input, subj.pos, matchlen); - subj.pos += matchlen; - } else { - subj.pos = beforetitle; - title = cmark_chunk_literal(""); - } - - // parse final spaces and newline: - skip_spaces(&subj); - if (!skip_line_end(&subj)) { - if (matchlen) { // try rewinding before title - subj.pos = beforetitle; - skip_spaces(&subj); - if (!skip_line_end(&subj)) { - return 0; - } - } else { - return 0; - } - } - // insert reference into refmap - cmark_reference_create(refmap, &lab, &url, &title); - return subj.pos; +bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, + cmark_reference_map *refmap) { + subject subj; + + cmark_chunk lab; + cmark_chunk url; + cmark_chunk title; + + bufsize_t matchlen = 0; + bufsize_t beforetitle; + + subject_from_buf(&subj, input, NULL); + + // parse label: + if (!link_label(&subj, &lab) || lab.len == 0) + return 0; + + // colon: + if (peek_char(&subj) == ':') { + advance(&subj); + } else { + return 0; + } + + // parse link url: + spnl(&subj); + matchlen = scan_link_url(&subj.input, subj.pos); + if (matchlen) { + url = cmark_chunk_dup(&subj.input, subj.pos, matchlen); + subj.pos += matchlen; + } else { + return 0; + } + + // parse optional link_title + beforetitle = subj.pos; + spnl(&subj); + matchlen = scan_link_title(&subj.input, subj.pos); + if (matchlen) { + title = cmark_chunk_dup(&subj.input, subj.pos, matchlen); + subj.pos += matchlen; + } else { + subj.pos = beforetitle; + title = cmark_chunk_literal(""); + } + + // parse final spaces and newline: + skip_spaces(&subj); + if (!skip_line_end(&subj)) { + if (matchlen) { // try rewinding before title + subj.pos = beforetitle; + skip_spaces(&subj); + if (!skip_line_end(&subj)) { + return 0; + } + } else { + return 0; + } + } + // insert reference into refmap + cmark_reference_create(refmap, &lab, &url, &title); + return subj.pos; } diff --git a/src/inlines.h b/src/inlines.h index f8847fc..7e7ee45 100644 --- a/src/inlines.h +++ b/src/inlines.h @@ -8,9 +8,11 @@ extern "C" { cmark_chunk cmark_clean_url(cmark_chunk *url); cmark_chunk cmark_clean_title(cmark_chunk *title); -void cmark_parse_inlines(cmark_node* parent, cmark_reference_map *refmap, int options); +void cmark_parse_inlines(cmark_node *parent, cmark_reference_map *refmap, + int options); -bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, cmark_reference_map *refmap); +bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, + cmark_reference_map *refmap); #ifdef __cplusplus } diff --git a/src/iterator.c b/src/iterator.c index f18e3bf..81b6f48 100644 --- a/src/iterator.c +++ b/src/iterator.c @@ -7,142 +7,112 @@ #include "iterator.h" static const int S_leaf_mask = - (1 << CMARK_NODE_HTML) | - (1 << CMARK_NODE_HRULE) | - (1 << CMARK_NODE_CODE_BLOCK) | - (1 << CMARK_NODE_TEXT) | - (1 << CMARK_NODE_SOFTBREAK) | - (1 << CMARK_NODE_LINEBREAK) | - (1 << CMARK_NODE_CODE) | - (1 << CMARK_NODE_INLINE_HTML); - -cmark_iter* -cmark_iter_new(cmark_node *root) -{ - if (root == NULL) { - return NULL; - } - cmark_iter *iter = (cmark_iter*)malloc(sizeof(cmark_iter)); - if (iter == NULL) { - return NULL; - } - iter->root = root; - iter->cur.ev_type = CMARK_EVENT_NONE; - iter->cur.node = NULL; - iter->next.ev_type = CMARK_EVENT_ENTER; - iter->next.node = root; - return iter; + (1 << CMARK_NODE_HTML) | (1 << CMARK_NODE_HRULE) | + (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) | + (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) | + (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_INLINE_HTML); + +cmark_iter *cmark_iter_new(cmark_node *root) { + if (root == NULL) { + return NULL; + } + cmark_iter *iter = (cmark_iter *)malloc(sizeof(cmark_iter)); + if (iter == NULL) { + return NULL; + } + iter->root = root; + iter->cur.ev_type = CMARK_EVENT_NONE; + iter->cur.node = NULL; + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = root; + return iter; } -void -cmark_iter_free(cmark_iter *iter) -{ - free(iter); -} +void cmark_iter_free(cmark_iter *iter) { free(iter); } -static bool -S_is_leaf(cmark_node *node) -{ - return (1 << node->type) & S_leaf_mask; +static bool S_is_leaf(cmark_node *node) { + return (1 << node->type) & S_leaf_mask; } -cmark_event_type -cmark_iter_next(cmark_iter *iter) -{ - cmark_event_type ev_type = iter->next.ev_type; - cmark_node *node = iter->next.node; - - iter->cur.ev_type = ev_type; - iter->cur.node = node; - - if (ev_type == CMARK_EVENT_DONE) { - return ev_type; - } - - /* roll forward to next item, setting both fields */ - if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) { - if (node->first_child == NULL) { - /* stay on this node but exit */ - iter->next.ev_type = CMARK_EVENT_EXIT; - } else { - iter->next.ev_type = CMARK_EVENT_ENTER; - iter->next.node = node->first_child; - } - } else if (node == iter->root) { - /* don't move past root */ - iter->next.ev_type = CMARK_EVENT_DONE; - iter->next.node = NULL; - } else if (node->next) { - iter->next.ev_type = CMARK_EVENT_ENTER; - iter->next.node = node->next; - } else if (node->parent) { - iter->next.ev_type = CMARK_EVENT_EXIT; - iter->next.node = node->parent; - } else { - assert(false); - iter->next.ev_type = CMARK_EVENT_DONE; - iter->next.node = NULL; - } - - return ev_type; +cmark_event_type cmark_iter_next(cmark_iter *iter) { + cmark_event_type ev_type = iter->next.ev_type; + cmark_node *node = iter->next.node; + + iter->cur.ev_type = ev_type; + iter->cur.node = node; + + if (ev_type == CMARK_EVENT_DONE) { + return ev_type; + } + + /* roll forward to next item, setting both fields */ + if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) { + if (node->first_child == NULL) { + /* stay on this node but exit */ + iter->next.ev_type = CMARK_EVENT_EXIT; + } else { + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = node->first_child; + } + } else if (node == iter->root) { + /* don't move past root */ + iter->next.ev_type = CMARK_EVENT_DONE; + iter->next.node = NULL; + } else if (node->next) { + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = node->next; + } else if (node->parent) { + iter->next.ev_type = CMARK_EVENT_EXIT; + iter->next.node = node->parent; + } else { + assert(false); + iter->next.ev_type = CMARK_EVENT_DONE; + iter->next.node = NULL; + } + + return ev_type; } -void -cmark_iter_reset(cmark_iter *iter, cmark_node *current, - cmark_event_type event_type) -{ - iter->next.ev_type = event_type; - iter->next.node = current; - cmark_iter_next(iter); +void cmark_iter_reset(cmark_iter *iter, cmark_node *current, + cmark_event_type event_type) { + iter->next.ev_type = event_type; + iter->next.node = current; + cmark_iter_next(iter); } -cmark_node* -cmark_iter_get_node(cmark_iter *iter) -{ - return iter->cur.node; -} +cmark_node *cmark_iter_get_node(cmark_iter *iter) { return iter->cur.node; } -cmark_event_type -cmark_iter_get_event_type(cmark_iter *iter) -{ - return iter->cur.ev_type; +cmark_event_type cmark_iter_get_event_type(cmark_iter *iter) { + return iter->cur.ev_type; } -cmark_node* -cmark_iter_get_root(cmark_iter *iter) -{ - return iter->root; -} - - -void cmark_consolidate_text_nodes(cmark_node *root) -{ - cmark_iter *iter = cmark_iter_new(root); - cmark_strbuf buf = GH_BUF_INIT; - cmark_event_type ev_type; - cmark_node *cur, *tmp, *next; - - while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { - cur = cmark_iter_get_node(iter); - if (ev_type == CMARK_EVENT_ENTER && - cur->type == CMARK_NODE_TEXT && - cur->next && - cur->next->type == CMARK_NODE_TEXT) { - cmark_strbuf_clear(&buf); - cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len); - tmp = cur->next; - while (tmp && tmp->type == CMARK_NODE_TEXT) { - cmark_iter_next(iter); // advance pointer - cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len); - next = tmp->next; - cmark_node_free(tmp); - tmp = next; - } - cmark_chunk_free(&cur->as.literal); - cur->as.literal = cmark_chunk_buf_detach(&buf); - } - } - - cmark_strbuf_free(&buf); - cmark_iter_free(iter); +cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; } + +void cmark_consolidate_text_nodes(cmark_node *root) { + cmark_iter *iter = cmark_iter_new(root); + cmark_strbuf buf = GH_BUF_INIT; + cmark_event_type ev_type; + cmark_node *cur, *tmp, *next; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (ev_type == CMARK_EVENT_ENTER && cur->type == CMARK_NODE_TEXT && + cur->next && cur->next->type == CMARK_NODE_TEXT) { + cmark_strbuf_clear(&buf); + cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len); + tmp = cur->next; + while (tmp && tmp->type == CMARK_NODE_TEXT) { + cmark_iter_next(iter); // advance pointer + cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len); + next = tmp->next; + cmark_node_free(tmp); + tmp = next; + } + cmark_chunk_free(&cur->as.literal); + cur->as.literal = cmark_chunk_buf_detach(&buf); + } + } + + cmark_strbuf_free(&buf); + cmark_iter_free(iter); } diff --git a/src/iterator.h b/src/iterator.h index 027b10b..9c6bca6 100644 --- a/src/iterator.h +++ b/src/iterator.h @@ -8,14 +8,14 @@ extern "C" { #include "cmark.h" typedef struct { - cmark_event_type ev_type; - cmark_node *node; + cmark_event_type ev_type; + cmark_node *node; } cmark_iter_state; struct cmark_iter { - cmark_node *root; - cmark_iter_state cur; - cmark_iter_state next; + cmark_node *root; + cmark_iter_state cur; + cmark_iter_state next; }; #ifdef __cplusplus diff --git a/src/latex.c b/src/latex.c index 782b0c0..146062e 100644 --- a/src/latex.c +++ b/src/latex.c @@ -18,413 +18,391 @@ #define CR() renderer->cr(renderer) #define BLANKLINE() renderer->blankline(renderer) -static inline void outc(cmark_renderer *renderer, - cmark_escaping escape, - int32_t c, - unsigned char nextc) -{ - if (escape == LITERAL) { - cmark_render_code_point(renderer, c); - return; - } - - switch(c) { - case 123: // '{' - case 125: // '}' - case 35: // '#' - case 37: // '%' - case 38: // '&' - cmark_render_ascii(renderer, "\\"); - cmark_render_code_point(renderer, c); - break; - case 36: // '$' - case 95: // '_' - if (escape == NORMAL) { - cmark_render_ascii(renderer, "\\"); - } - cmark_render_code_point(renderer, c); - break; - case 45 : // '-' - if (nextc == 45) { // prevent ligature - cmark_render_ascii(renderer, "\\-"); - } else { - cmark_render_ascii(renderer, "-"); - } - break; - case 126: // '~' - if (escape == NORMAL) { - cmark_render_ascii(renderer, "\\textasciitilde{}"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 94: // '^' - cmark_render_ascii(renderer, "\\^{}"); - break; - case 92: // '\\' - if (escape == URL) { - // / acts as path sep even on windows: - cmark_render_ascii(renderer, "/"); - } else { - cmark_render_ascii(renderer, "\\textbackslash{}"); - } - break; - case 124: // '|' - cmark_render_ascii(renderer, "\\textbar{}"); - break; - case 60: // '<' - cmark_render_ascii(renderer, "\\textless{}"); - break; - case 62: // '>' - cmark_render_ascii(renderer, "\\textgreater{}"); - break; - case 91: // '[' - case 93: // ']' - cmark_render_ascii(renderer, "{"); - cmark_render_code_point(renderer, c); - cmark_render_ascii(renderer, "}"); - break; - case 34: // '"' - cmark_render_ascii(renderer, "\\textquotedbl{}"); - // requires \usepackage[T1]{fontenc} - break; - case 39: // '\'' - cmark_render_ascii(renderer, "\\textquotesingle{}"); - // requires \usepackage{textcomp} - break; - case 160: // nbsp - cmark_render_ascii(renderer, "~"); - break; - case 8230: // hellip - cmark_render_ascii(renderer, "\\ldots{}"); - break; - case 8216: // lsquo - if (escape == NORMAL) { - cmark_render_ascii(renderer, "`"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 8217: // rsquo - if (escape == NORMAL) { - cmark_render_ascii(renderer, "\'"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 8220: // ldquo - if (escape == NORMAL) { - cmark_render_ascii(renderer, "``"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 8221: // rdquo - if (escape == NORMAL) { - cmark_render_ascii(renderer, "''"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 8212: // emdash - if (escape == NORMAL) { - cmark_render_ascii(renderer, "---"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 8211: // endash - if (escape == NORMAL) { - cmark_render_ascii(renderer, "--"); - } else { - cmark_render_code_point(renderer, c); - } - break; - default: - cmark_render_code_point(renderer, c); - } +static inline void outc(cmark_renderer *renderer, cmark_escaping escape, + int32_t c, unsigned char nextc) { + if (escape == LITERAL) { + cmark_render_code_point(renderer, c); + return; + } + + switch (c) { + case 123: // '{' + case 125: // '}' + case 35: // '#' + case 37: // '%' + case 38: // '&' + cmark_render_ascii(renderer, "\\"); + cmark_render_code_point(renderer, c); + break; + case 36: // '$' + case 95: // '_' + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\\"); + } + cmark_render_code_point(renderer, c); + break; + case 45: // '-' + if (nextc == 45) { // prevent ligature + cmark_render_ascii(renderer, "\\-"); + } else { + cmark_render_ascii(renderer, "-"); + } + break; + case 126: // '~' + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\\textasciitilde{}"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 94: // '^' + cmark_render_ascii(renderer, "\\^{}"); + break; + case 92: // '\\' + if (escape == URL) { + // / acts as path sep even on windows: + cmark_render_ascii(renderer, "/"); + } else { + cmark_render_ascii(renderer, "\\textbackslash{}"); + } + break; + case 124: // '|' + cmark_render_ascii(renderer, "\\textbar{}"); + break; + case 60: // '<' + cmark_render_ascii(renderer, "\\textless{}"); + break; + case 62: // '>' + cmark_render_ascii(renderer, "\\textgreater{}"); + break; + case 91: // '[' + case 93: // ']' + cmark_render_ascii(renderer, "{"); + cmark_render_code_point(renderer, c); + cmark_render_ascii(renderer, "}"); + break; + case 34: // '"' + cmark_render_ascii(renderer, "\\textquotedbl{}"); + // requires \usepackage[T1]{fontenc} + break; + case 39: // '\'' + cmark_render_ascii(renderer, "\\textquotesingle{}"); + // requires \usepackage{textcomp} + break; + case 160: // nbsp + cmark_render_ascii(renderer, "~"); + break; + case 8230: // hellip + cmark_render_ascii(renderer, "\\ldots{}"); + break; + case 8216: // lsquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "`"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8217: // rsquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\'"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8220: // ldquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "``"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8221: // rdquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "''"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8212: // emdash + if (escape == NORMAL) { + cmark_render_ascii(renderer, "---"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8211: // endash + if (escape == NORMAL) { + cmark_render_ascii(renderer, "--"); + } else { + cmark_render_code_point(renderer, c); + } + break; + default: + cmark_render_code_point(renderer, c); + } } -typedef enum { - NO_LINK, - URL_AUTOLINK, - EMAIL_AUTOLINK, - NORMAL_LINK -} link_type; - -static link_type -get_link_type(cmark_node *node) -{ - size_t title_len, url_len; - cmark_node *link_text; - char *realurl; - int realurllen; - bool isemail = false; - - if (node->type != CMARK_NODE_LINK) { - return NO_LINK; - } - - const char* url = cmark_node_get_url(node); - cmark_chunk url_chunk = cmark_chunk_literal(url); - - url_len = safe_strlen(url); - if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) { - return NO_LINK; - } - - const char* title = cmark_node_get_title(node); - title_len = safe_strlen(title); - // if it has a title, we can't treat it as an autolink: - if (title_len > 0) { - return NORMAL_LINK; - } - - link_text = node->first_child; - cmark_consolidate_text_nodes(link_text); - realurl = (char*)url; - realurllen = url_len; - if (strncmp(realurl, "mailto:", 7) == 0) { - realurl += 7; - realurllen -= 7; - isemail = true; - } - if (realurllen == link_text->as.literal.len && - strncmp(realurl, - (char*)link_text->as.literal.data, - link_text->as.literal.len) == 0) { - if (isemail) { - return EMAIL_AUTOLINK; - } else { - return URL_AUTOLINK; - } - } else { - return NORMAL_LINK; - } +typedef enum { NO_LINK, URL_AUTOLINK, EMAIL_AUTOLINK, NORMAL_LINK } link_type; + +static link_type get_link_type(cmark_node *node) { + size_t title_len, url_len; + cmark_node *link_text; + char *realurl; + int realurllen; + bool isemail = false; + + if (node->type != CMARK_NODE_LINK) { + return NO_LINK; + } + + const char *url = cmark_node_get_url(node); + cmark_chunk url_chunk = cmark_chunk_literal(url); + + url_len = safe_strlen(url); + if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) { + return NO_LINK; + } + + const char *title = cmark_node_get_title(node); + title_len = safe_strlen(title); + // if it has a title, we can't treat it as an autolink: + if (title_len > 0) { + return NORMAL_LINK; + } + + link_text = node->first_child; + cmark_consolidate_text_nodes(link_text); + realurl = (char *)url; + realurllen = url_len; + if (strncmp(realurl, "mailto:", 7) == 0) { + realurl += 7; + realurllen -= 7; + isemail = true; + } + if (realurllen == link_text->as.literal.len && + strncmp(realurl, (char *)link_text->as.literal.data, + link_text->as.literal.len) == 0) { + if (isemail) { + return EMAIL_AUTOLINK; + } else { + return URL_AUTOLINK; + } + } else { + return NORMAL_LINK; + } } -static int -S_get_enumlevel(cmark_node *node) -{ - int enumlevel = 0; - cmark_node *tmp = node; - while (tmp) { - if (tmp->type == CMARK_NODE_LIST && - cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) { - enumlevel++; - } - tmp = tmp->parent; - } - return enumlevel; +static int S_get_enumlevel(cmark_node *node) { + int enumlevel = 0; + cmark_node *tmp = node; + while (tmp) { + if (tmp->type == CMARK_NODE_LIST && + cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) { + enumlevel++; + } + tmp = tmp->parent; + } + return enumlevel; } -static int -S_render_node(cmark_renderer *renderer, - cmark_node *node, - cmark_event_type ev_type, - int options) -{ - int list_number; - char list_number_string[20]; - bool entering = (ev_type == CMARK_EVENT_ENTER); - cmark_list_type list_type; - const char* roman_numerals[] = { "", "i", "ii", "iii", "iv", "v", - "vi", "vii", "viii", "ix", "x" - }; - - // avoid warning about unused parameter: - (void)(options); - - switch (node->type) { - case CMARK_NODE_DOCUMENT: - break; - - case CMARK_NODE_BLOCK_QUOTE: - if (entering) { - LIT("\\begin{quote}"); - CR(); - } else { - LIT("\\end{quote}"); - BLANKLINE(); - } - break; - - case CMARK_NODE_LIST: - list_type = cmark_node_get_list_type(node); - if (entering) { - LIT("\\begin{"); - LIT(list_type == CMARK_ORDERED_LIST ? - "enumerate" : "itemize"); - LIT("}"); - CR(); - list_number = cmark_node_get_list_start(node); - if (list_number > 1) { - sprintf(list_number_string, - "%d", list_number); - LIT("\\setcounter{enum"); - LIT((char *)roman_numerals[S_get_enumlevel(node)]); - LIT("}{"); - OUT(list_number_string, false, NORMAL); - LIT("}"); - CR(); - } - } else { - LIT("\\end{"); - LIT(list_type == CMARK_ORDERED_LIST ? - "enumerate" : "itemize"); - LIT("}"); - BLANKLINE(); - } - break; - - case CMARK_NODE_ITEM: - if (entering) { - LIT("\\item "); - } else { - CR(); - } - break; - - case CMARK_NODE_HEADER: - if (entering) { - switch (cmark_node_get_header_level(node)) { - case 1: - LIT("\\section"); - break; - case 2: - LIT("\\subsection"); - break; - case 3: - LIT("\\subsubsection"); - break; - case 4: - LIT("\\paragraph"); - break; - case 5: - LIT("\\subparagraph"); - break; - } - LIT("{"); - } else { - LIT("}"); - BLANKLINE(); - } - break; - - case CMARK_NODE_CODE_BLOCK: - CR(); - LIT("\\begin{verbatim}"); - CR(); - OUT(cmark_node_get_literal(node), false, LITERAL); - CR(); - LIT("\\end{verbatim}"); - BLANKLINE(); - break; - - case CMARK_NODE_HTML: - break; - - case CMARK_NODE_HRULE: - BLANKLINE(); - LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}"); - BLANKLINE(); - break; - - case CMARK_NODE_PARAGRAPH: - if (!entering) { - BLANKLINE(); - } - break; - - case CMARK_NODE_TEXT: - OUT(cmark_node_get_literal(node), true, NORMAL); - break; - - case CMARK_NODE_LINEBREAK: - LIT("\\\\"); - CR(); - break; - - case CMARK_NODE_SOFTBREAK: - if (renderer->width == 0) { - CR(); - } else { - OUT(" ", true, NORMAL); - } - break; - - case CMARK_NODE_CODE: - LIT("\\texttt{"); - OUT(cmark_node_get_literal(node), false, NORMAL); - LIT("}"); - break; - - case CMARK_NODE_INLINE_HTML: - break; - - case CMARK_NODE_STRONG: - if (entering) { - LIT("\\textbf{"); - } else { - LIT("}"); - } - break; - - case CMARK_NODE_EMPH: - if (entering) { - LIT("\\emph{"); - } else { - LIT("}"); - } - break; - - case CMARK_NODE_LINK: - if (entering) { - const char* url = cmark_node_get_url(node); - // requires \usepackage{hyperref} - switch(get_link_type(node)) { - case URL_AUTOLINK: - LIT("\\url{"); - OUT(url, false, URL); - break; - case EMAIL_AUTOLINK: - LIT("\\href{"); - OUT(url, false, URL); - LIT("}\\nolinkurl{"); - break; - case NORMAL_LINK: - LIT("\\href{"); - OUT(url, false, URL); - LIT("}{"); - break; - case NO_LINK: - LIT("{"); // error? - } - } else { - LIT("}"); - } - - break; - - case CMARK_NODE_IMAGE: - if (entering) { - LIT("\\protect\\includegraphics{"); - // requires \include{graphicx} - OUT(cmark_node_get_url(node), false, URL); - LIT("}"); - return 0; - } - break; - - default: - assert(false); - break; - } - - return 1; +static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { + int list_number; + char list_number_string[20]; + bool entering = (ev_type == CMARK_EVENT_ENTER); + cmark_list_type list_type; + const char *roman_numerals[] = {"", "i", "ii", "iii", "iv", "v", + "vi", "vii", "viii", "ix", "x"}; + + // avoid warning about unused parameter: + (void)(options); + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + LIT("\\begin{quote}"); + CR(); + } else { + LIT("\\end{quote}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_LIST: + list_type = cmark_node_get_list_type(node); + if (entering) { + LIT("\\begin{"); + LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize"); + LIT("}"); + CR(); + list_number = cmark_node_get_list_start(node); + if (list_number > 1) { + sprintf(list_number_string, "%d", list_number); + LIT("\\setcounter{enum"); + LIT((char *)roman_numerals[S_get_enumlevel(node)]); + LIT("}{"); + OUT(list_number_string, false, NORMAL); + LIT("}"); + CR(); + } + } else { + LIT("\\end{"); + LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize"); + LIT("}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_ITEM: + if (entering) { + LIT("\\item "); + } else { + CR(); + } + break; + + case CMARK_NODE_HEADER: + if (entering) { + switch (cmark_node_get_header_level(node)) { + case 1: + LIT("\\section"); + break; + case 2: + LIT("\\subsection"); + break; + case 3: + LIT("\\subsubsection"); + break; + case 4: + LIT("\\paragraph"); + break; + case 5: + LIT("\\subparagraph"); + break; + } + LIT("{"); + } else { + LIT("}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + CR(); + LIT("\\begin{verbatim}"); + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + LIT("\\end{verbatim}"); + BLANKLINE(); + break; + + case CMARK_NODE_HTML: + break; + + case CMARK_NODE_HRULE: + BLANKLINE(); + LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}"); + BLANKLINE(); + break; + + case CMARK_NODE_PARAGRAPH: + if (!entering) { + BLANKLINE(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), true, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + LIT("\\\\"); + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (renderer->width == 0) { + CR(); + } else { + OUT(" ", true, NORMAL); + } + break; + + case CMARK_NODE_CODE: + LIT("\\texttt{"); + OUT(cmark_node_get_literal(node), false, NORMAL); + LIT("}"); + break; + + case CMARK_NODE_INLINE_HTML: + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("\\textbf{"); + } else { + LIT("}"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + LIT("\\emph{"); + } else { + LIT("}"); + } + break; + + case CMARK_NODE_LINK: + if (entering) { + const char *url = cmark_node_get_url(node); + // requires \usepackage{hyperref} + switch (get_link_type(node)) { + case URL_AUTOLINK: + LIT("\\url{"); + OUT(url, false, URL); + break; + case EMAIL_AUTOLINK: + LIT("\\href{"); + OUT(url, false, URL); + LIT("}\\nolinkurl{"); + break; + case NORMAL_LINK: + LIT("\\href{"); + OUT(url, false, URL); + LIT("}{"); + break; + case NO_LINK: + LIT("{"); // error? + } + } else { + LIT("}"); + } + + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("\\protect\\includegraphics{"); + // requires \include{graphicx} + OUT(cmark_node_get_url(node), false, URL); + LIT("}"); + return 0; + } + break; + + default: + assert(false); + break; + } + + return 1; } -char *cmark_render_latex(cmark_node *root, int options, int width) -{ - return cmark_render(root, options, width, outc, S_render_node); +char *cmark_render_latex(cmark_node *root, int options, int width) { + return cmark_render(root, options, width, outc, S_render_node); } @@ -12,190 +12,183 @@ #endif typedef enum { - FORMAT_NONE, - FORMAT_HTML, - FORMAT_XML, - FORMAT_MAN, - FORMAT_COMMONMARK, - FORMAT_LATEX + FORMAT_NONE, + FORMAT_HTML, + FORMAT_XML, + FORMAT_MAN, + FORMAT_COMMONMARK, + FORMAT_LATEX } writer_format; -void print_usage() -{ - printf("Usage: cmark [FILE*]\n"); - printf("Options:\n"); - printf(" --to, -t FORMAT Specify output format (html, xml, man, commonmark, latex)\n"); - printf(" --width WIDTH Specify wrap width (default 0 = nowrap)\n"); - printf(" --sourcepos Include source position attribute\n"); - printf(" --hardbreaks Treat newlines as hard line breaks\n"); - printf(" --safe Suppress raw HTML and dangerous URLs\n"); - printf(" --smart Use smart punctuation\n"); - printf(" --normalize Consolidate adjacent text nodes\n"); - printf(" --help, -h Print usage information\n"); - printf(" --version Print version\n"); +void print_usage() { + printf("Usage: cmark [FILE*]\n"); + printf("Options:\n"); + printf(" --to, -t FORMAT Specify output format (html, xml, man, " + "commonmark, latex)\n"); + printf(" --width WIDTH Specify wrap width (default 0 = nowrap)\n"); + printf(" --sourcepos Include source position attribute\n"); + printf(" --hardbreaks Treat newlines as hard line breaks\n"); + printf(" --safe Suppress raw HTML and dangerous URLs\n"); + printf(" --smart Use smart punctuation\n"); + printf(" --normalize Consolidate adjacent text nodes\n"); + printf(" --help, -h Print usage information\n"); + printf(" --version Print version\n"); } static void print_document(cmark_node *document, writer_format writer, - int options, int width) -{ - char *result; - - switch (writer) { - case FORMAT_HTML: - result = cmark_render_html(document, options); - break; - case FORMAT_XML: - result = cmark_render_xml(document, options); - break; - case FORMAT_MAN: - result = cmark_render_man(document, options, width); - break; - case FORMAT_COMMONMARK: - result = cmark_render_commonmark(document, options, width); - break; - case FORMAT_LATEX: - result = cmark_render_latex(document, options, width); - break; - default: - fprintf(stderr, "Unknown format %d\n", writer); - exit(1); - } - printf("%s", result); - free(result); + int options, int width) { + char *result; + + switch (writer) { + case FORMAT_HTML: + result = cmark_render_html(document, options); + break; + case FORMAT_XML: + result = cmark_render_xml(document, options); + break; + case FORMAT_MAN: + result = cmark_render_man(document, options, width); + break; + case FORMAT_COMMONMARK: + result = cmark_render_commonmark(document, options, width); + break; + case FORMAT_LATEX: + result = cmark_render_latex(document, options, width); + break; + default: + fprintf(stderr, "Unknown format %d\n", writer); + exit(1); + } + printf("%s", result); + free(result); } -int main(int argc, char *argv[]) -{ - int i, numfps = 0; - int *files; - char buffer[4096]; - cmark_parser *parser; - size_t bytes; - cmark_node *document; - int width = 0; - char *unparsed; - writer_format writer = FORMAT_HTML; - int options = CMARK_OPT_DEFAULT; +int main(int argc, char *argv[]) { + int i, numfps = 0; + int *files; + char buffer[4096]; + cmark_parser *parser; + size_t bytes; + cmark_node *document; + int width = 0; + char *unparsed; + writer_format writer = FORMAT_HTML; + int options = CMARK_OPT_DEFAULT; #if defined(_WIN32) && !defined(__CYGWIN__) - _setmode(_fileno(stdout), _O_BINARY); + _setmode(_fileno(stdout), _O_BINARY); #endif - files = (int *)malloc(argc * sizeof(*files)); - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "--version") == 0) { - printf("cmark %s", CMARK_VERSION_STRING); - printf(" - CommonMark converter\n(C) 2014, 2015 John MacFarlane\n"); - exit(0); - } else if (strcmp(argv[i], "--sourcepos") == 0) { - options |= CMARK_OPT_SOURCEPOS; - } else if (strcmp(argv[i], "--hardbreaks") == 0) { - options |= CMARK_OPT_HARDBREAKS; - } else if (strcmp(argv[i], "--smart") == 0) { - options |= CMARK_OPT_SMART; - } else if (strcmp(argv[i], "--safe") == 0) { - options |= CMARK_OPT_SAFE; - } else if (strcmp(argv[i], "--normalize") == 0) { - options |= CMARK_OPT_NORMALIZE; - } else if (strcmp(argv[i], "--validate-utf8") == 0) { - options |= CMARK_OPT_VALIDATE_UTF8; - } else if ((strcmp(argv[i], "--help") == 0) || - (strcmp(argv[i], "-h") == 0)) { - print_usage(); - exit(0); - } else if (strcmp(argv[i], "--width") == 0) { - i += 1; - if (i < argc) { - width = (int)strtol(argv[i], &unparsed, 10); - if (unparsed && strlen(unparsed) > 0) { - fprintf(stderr, - "failed parsing width '%s' at '%s'\n", - argv[i], unparsed); - exit(1); - } - } else { - fprintf(stderr, - "--width requires an argument\n"); - exit(1); - } - } else if ((strcmp(argv[i], "-t") == 0) || - (strcmp(argv[i], "--to") == 0)) { - i += 1; - if (i < argc) { - if (strcmp(argv[i], "man") == 0) { - writer = FORMAT_MAN; - } else if (strcmp(argv[i], "html") == 0) { - writer = FORMAT_HTML; - } else if (strcmp(argv[i], "xml") == 0) { - writer = FORMAT_XML; - } else if (strcmp(argv[i], "commonmark") == 0) { - writer = FORMAT_COMMONMARK; - } else if (strcmp(argv[i], "latex") == 0) { - writer = FORMAT_LATEX; - } else { - fprintf(stderr, - "Unknown format %s\n", argv[i]); - exit(1); - } - } else { - fprintf(stderr, "No argument provided for %s\n", - argv[i - 1]); - exit(1); - } - } else if (*argv[i] == '-') { - print_usage(); - exit(1); - } else { // treat as file argument - files[numfps++] = i; - } - } - - parser = cmark_parser_new(options); - for (i = 0; i < numfps; i++) { - FILE *fp = fopen(argv[files[i]], "r"); - if (fp == NULL) { - fprintf(stderr, "Error opening file %s: %s\n", - argv[files[i]], strerror(errno)); - exit(1); - } - - start_timer(); - while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) { - cmark_parser_feed(parser, buffer, bytes); - if (bytes < sizeof(buffer)) { - break; - } - } - end_timer("processing lines"); - - fclose(fp); - } - - if (numfps == 0) { - - while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0) { - cmark_parser_feed(parser, buffer, bytes); - if (bytes < sizeof(buffer)) { - break; - } - } - } - - start_timer(); - document = cmark_parser_finish(parser); - end_timer("finishing document"); - cmark_parser_free(parser); - - start_timer(); - print_document(document, writer, options, width); - end_timer("print_document"); - - start_timer(); - cmark_node_free(document); - end_timer("free_blocks"); - - free(files); - - return 0; + files = (int *)malloc(argc * sizeof(*files)); + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "--version") == 0) { + printf("cmark %s", CMARK_VERSION_STRING); + printf(" - CommonMark converter\n(C) 2014, 2015 John MacFarlane\n"); + exit(0); + } else if (strcmp(argv[i], "--sourcepos") == 0) { + options |= CMARK_OPT_SOURCEPOS; + } else if (strcmp(argv[i], "--hardbreaks") == 0) { + options |= CMARK_OPT_HARDBREAKS; + } else if (strcmp(argv[i], "--smart") == 0) { + options |= CMARK_OPT_SMART; + } else if (strcmp(argv[i], "--safe") == 0) { + options |= CMARK_OPT_SAFE; + } else if (strcmp(argv[i], "--normalize") == 0) { + options |= CMARK_OPT_NORMALIZE; + } else if (strcmp(argv[i], "--validate-utf8") == 0) { + options |= CMARK_OPT_VALIDATE_UTF8; + } else if ((strcmp(argv[i], "--help") == 0) || + (strcmp(argv[i], "-h") == 0)) { + print_usage(); + exit(0); + } else if (strcmp(argv[i], "--width") == 0) { + i += 1; + if (i < argc) { + width = (int)strtol(argv[i], &unparsed, 10); + if (unparsed && strlen(unparsed) > 0) { + fprintf(stderr, "failed parsing width '%s' at '%s'\n", argv[i], + unparsed); + exit(1); + } + } else { + fprintf(stderr, "--width requires an argument\n"); + exit(1); + } + } else if ((strcmp(argv[i], "-t") == 0) || (strcmp(argv[i], "--to") == 0)) { + i += 1; + if (i < argc) { + if (strcmp(argv[i], "man") == 0) { + writer = FORMAT_MAN; + } else if (strcmp(argv[i], "html") == 0) { + writer = FORMAT_HTML; + } else if (strcmp(argv[i], "xml") == 0) { + writer = FORMAT_XML; + } else if (strcmp(argv[i], "commonmark") == 0) { + writer = FORMAT_COMMONMARK; + } else if (strcmp(argv[i], "latex") == 0) { + writer = FORMAT_LATEX; + } else { + fprintf(stderr, "Unknown format %s\n", argv[i]); + exit(1); + } + } else { + fprintf(stderr, "No argument provided for %s\n", argv[i - 1]); + exit(1); + } + } else if (*argv[i] == '-') { + print_usage(); + exit(1); + } else { // treat as file argument + files[numfps++] = i; + } + } + + parser = cmark_parser_new(options); + for (i = 0; i < numfps; i++) { + FILE *fp = fopen(argv[files[i]], "r"); + if (fp == NULL) { + fprintf(stderr, "Error opening file %s: %s\n", argv[files[i]], + strerror(errno)); + exit(1); + } + + start_timer(); + while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) { + cmark_parser_feed(parser, buffer, bytes); + if (bytes < sizeof(buffer)) { + break; + } + } + end_timer("processing lines"); + + fclose(fp); + } + + if (numfps == 0) { + + while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0) { + cmark_parser_feed(parser, buffer, bytes); + if (bytes < sizeof(buffer)) { + break; + } + } + } + + start_timer(); + document = cmark_parser_finish(parser); + end_timer("finishing document"); + cmark_parser_free(parser); + + start_timer(); + print_document(document, writer, options, width); + end_timer("print_document"); + + start_timer(); + cmark_node_free(document); + end_timer("free_blocks"); + + free(files); + + return 0; } @@ -16,234 +16,220 @@ #define BLANKLINE() renderer->blankline(renderer) // Functions to convert cmark_nodes to groff man strings. -static -void S_outc(cmark_renderer *renderer, - cmark_escaping escape, - int32_t c, - unsigned char nextc) -{ - (void)(nextc); - - if (escape == LITERAL) { - cmark_render_code_point(renderer, c); - return; - } - - switch(c) { - case 46: - if (renderer->begin_line) { - cmark_render_ascii(renderer, "\\&."); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 39: - if (renderer->begin_line) { - cmark_render_ascii(renderer, "\\&'"); - } else { - cmark_render_code_point(renderer, c); - } - break; - case 45: - cmark_render_ascii(renderer, "\\-"); - break; - case 92: - cmark_render_ascii(renderer, "\\e"); - break; - case 8216: // left single quote - cmark_render_ascii(renderer, "\\[oq]"); - break; - case 8217: // right single quote - cmark_render_ascii(renderer, "\\[cq]"); - break; - case 8220: // left double quote - cmark_render_ascii(renderer, "\\[lq]"); - break; - case 8221: // right double quote - cmark_render_ascii(renderer, "\\[rq]"); - break; - case 8212: // em dash - cmark_render_ascii(renderer, "\\[em]"); - break; - case 8211: // en dash - cmark_render_ascii(renderer, "\\[en]"); - break; - default: - cmark_render_code_point(renderer, c); - } +static void S_outc(cmark_renderer *renderer, cmark_escaping escape, int32_t c, + unsigned char nextc) { + (void)(nextc); + + if (escape == LITERAL) { + cmark_render_code_point(renderer, c); + return; + } + + switch (c) { + case 46: + if (renderer->begin_line) { + cmark_render_ascii(renderer, "\\&."); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 39: + if (renderer->begin_line) { + cmark_render_ascii(renderer, "\\&'"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 45: + cmark_render_ascii(renderer, "\\-"); + break; + case 92: + cmark_render_ascii(renderer, "\\e"); + break; + case 8216: // left single quote + cmark_render_ascii(renderer, "\\[oq]"); + break; + case 8217: // right single quote + cmark_render_ascii(renderer, "\\[cq]"); + break; + case 8220: // left double quote + cmark_render_ascii(renderer, "\\[lq]"); + break; + case 8221: // right double quote + cmark_render_ascii(renderer, "\\[rq]"); + break; + case 8212: // em dash + cmark_render_ascii(renderer, "\\[em]"); + break; + case 8211: // en dash + cmark_render_ascii(renderer, "\\[en]"); + break; + default: + cmark_render_code_point(renderer, c); + } } -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); - - // avoid unused parameter error: - (void)(options); - - switch (node->type) { - case CMARK_NODE_DOCUMENT: - break; - - case CMARK_NODE_BLOCK_QUOTE: - if (entering) { - CR(); - LIT(".RS"); - CR(); - } else { - CR(); - LIT(".RE"); - CR(); - } - break; - - case CMARK_NODE_LIST: - break; - - case CMARK_NODE_ITEM: - if (entering) { - CR(); - LIT(".IP "); - 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; - } - char list_number_s[20]; - sprintf(list_number_s, "\"%d.\" 4", list_number); - LIT(list_number_s); - } - CR(); - } else { - CR(); - } - break; - - case CMARK_NODE_HEADER: - if (entering) { - CR(); - LIT(cmark_node_get_header_level(node) == 1 ? - ".SH" : ".SS"); - CR(); - } else { - CR(); - } - break; - - case CMARK_NODE_CODE_BLOCK: - CR(); - LIT(".IP\n.nf\n\\f[C]\n"); - OUT(cmark_node_get_literal(node), - false, - NORMAL); - CR(); - LIT("\\f[]\n.fi"); - CR(); - break; - - case CMARK_NODE_HTML: - break; - - case CMARK_NODE_HRULE: - CR(); - LIT(".PP\n * * * * *"); - CR(); - break; - - case CMARK_NODE_PARAGRAPH: - if (entering) { - // no blank line if first paragraph in list: - if (node->parent && - node->parent->type == CMARK_NODE_ITEM && - node->prev == NULL) { - // no blank line or .PP - } else { - CR(); - LIT(".PP"); - CR(); - } - } else { - CR(); - } - break; - - case CMARK_NODE_TEXT: - OUT(cmark_node_get_literal(node), true, NORMAL); - break; - - case CMARK_NODE_LINEBREAK: - LIT(".PD 0\n.P\n.PD"); - CR(); - break; - - case CMARK_NODE_SOFTBREAK: - if (renderer->width == 0) { - CR(); - } else { - OUT(" ", true, LITERAL); - } - break; - - case CMARK_NODE_CODE: - LIT("\\f[C]"); - OUT(cmark_node_get_literal(node), true, NORMAL); - LIT("\\f[]"); - break; - - case CMARK_NODE_INLINE_HTML: - break; - - case CMARK_NODE_STRONG: - if (entering) { - LIT("\\f[B]"); - } else { - LIT("\\f[]"); - } - break; - - case CMARK_NODE_EMPH: - if (entering) { - LIT("\\f[I]"); - } else { - LIT("\\f[]"); - } - break; - - case CMARK_NODE_LINK: - if (!entering) { - LIT(" ("); - OUT(cmark_node_get_url(node), true, URL); - LIT(")"); - } - break; - - case CMARK_NODE_IMAGE: - if (entering) { - LIT("[IMAGE: "); - } else { - LIT("]"); - } - break; - - default: - assert(false); - break; - } - - return 1; +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); + + // avoid unused parameter error: + (void)(options); + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + CR(); + LIT(".RS"); + CR(); + } else { + CR(); + LIT(".RE"); + CR(); + } + break; + + case CMARK_NODE_LIST: + break; + + case CMARK_NODE_ITEM: + if (entering) { + CR(); + LIT(".IP "); + 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; + } + char list_number_s[20]; + sprintf(list_number_s, "\"%d.\" 4", list_number); + LIT(list_number_s); + } + CR(); + } else { + CR(); + } + break; + + case CMARK_NODE_HEADER: + if (entering) { + CR(); + LIT(cmark_node_get_header_level(node) == 1 ? ".SH" : ".SS"); + CR(); + } else { + CR(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + CR(); + LIT(".IP\n.nf\n\\f[C]\n"); + OUT(cmark_node_get_literal(node), false, NORMAL); + CR(); + LIT("\\f[]\n.fi"); + CR(); + break; + + case CMARK_NODE_HTML: + break; + + case CMARK_NODE_HRULE: + CR(); + LIT(".PP\n * * * * *"); + CR(); + break; + + case CMARK_NODE_PARAGRAPH: + if (entering) { + // no blank line if first paragraph in list: + if (node->parent && node->parent->type == CMARK_NODE_ITEM && + node->prev == NULL) { + // no blank line or .PP + } else { + CR(); + LIT(".PP"); + CR(); + } + } else { + CR(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), true, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + LIT(".PD 0\n.P\n.PD"); + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (renderer->width == 0) { + CR(); + } else { + OUT(" ", true, LITERAL); + } + break; + + case CMARK_NODE_CODE: + LIT("\\f[C]"); + OUT(cmark_node_get_literal(node), true, NORMAL); + LIT("\\f[]"); + break; + + case CMARK_NODE_INLINE_HTML: + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("\\f[B]"); + } else { + LIT("\\f[]"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + LIT("\\f[I]"); + } else { + LIT("\\f[]"); + } + break; + + case CMARK_NODE_LINK: + if (!entering) { + LIT(" ("); + OUT(cmark_node_get_url(node), true, URL); + LIT(")"); + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("[IMAGE: "); + } else { + LIT("]"); + } + break; + + default: + assert(false); + break; + } + + return 1; } -char *cmark_render_man(cmark_node *root, int options, int width) -{ - return cmark_render(root, options, width, S_outc, S_render_node); +char *cmark_render_man(cmark_node *root, int options, int width) { + return cmark_render(root, options, width, S_outc, S_render_node); } @@ -4,855 +4,762 @@ #include "config.h" #include "node.h" -static void -S_node_unlink(cmark_node *node); - -static inline bool -S_is_block(cmark_node *node) -{ - if (node == NULL) { - return false; - } - return node->type >= CMARK_NODE_FIRST_BLOCK - && node->type <= CMARK_NODE_LAST_BLOCK; -} - -static inline bool -S_is_inline(cmark_node *node) -{ - if (node == NULL) { - return false; - } - return node->type >= CMARK_NODE_FIRST_INLINE - && node->type <= CMARK_NODE_LAST_INLINE; -} - -static bool -S_can_contain(cmark_node *node, cmark_node *child) -{ - cmark_node *cur; - - if (node == NULL || child == NULL) { - return false; - } - - // 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 (child->type == CMARK_NODE_DOCUMENT) { - return false; - } - - switch (node->type) { - case CMARK_NODE_DOCUMENT: - case CMARK_NODE_BLOCK_QUOTE: - case CMARK_NODE_ITEM: - return S_is_block(child) - && child->type != CMARK_NODE_ITEM; - - case CMARK_NODE_LIST: - return child->type == CMARK_NODE_ITEM; - - case CMARK_NODE_PARAGRAPH: - case CMARK_NODE_HEADER: - case CMARK_NODE_EMPH: - case CMARK_NODE_STRONG: - case CMARK_NODE_LINK: - case CMARK_NODE_IMAGE: - return S_is_inline(child); - - default: - break; - } - - return false; -} - -cmark_node* -cmark_node_new(cmark_node_type type) -{ - cmark_node *node = (cmark_node *)calloc(1, sizeof(*node)); - node->type = type; - - switch (node->type) { - case CMARK_NODE_HEADER: - node->as.header.level = 1; - break; - - case CMARK_NODE_LIST: { - cmark_list *list = &node->as.list; - list->list_type = CMARK_BULLET_LIST; - list->start = 1; - list->tight = false; - break; - } - - default: - break; - } - - return node; +static void S_node_unlink(cmark_node *node); + +static inline bool S_is_block(cmark_node *node) { + if (node == NULL) { + return false; + } + return node->type >= CMARK_NODE_FIRST_BLOCK && + node->type <= CMARK_NODE_LAST_BLOCK; +} + +static inline bool S_is_inline(cmark_node *node) { + if (node == NULL) { + return false; + } + return node->type >= CMARK_NODE_FIRST_INLINE && + node->type <= CMARK_NODE_LAST_INLINE; +} + +static bool S_can_contain(cmark_node *node, cmark_node *child) { + cmark_node *cur; + + if (node == NULL || child == NULL) { + return false; + } + + // 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 (child->type == CMARK_NODE_DOCUMENT) { + return false; + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + case CMARK_NODE_BLOCK_QUOTE: + case CMARK_NODE_ITEM: + return S_is_block(child) && child->type != CMARK_NODE_ITEM; + + case CMARK_NODE_LIST: + return child->type == CMARK_NODE_ITEM; + + case CMARK_NODE_PARAGRAPH: + case CMARK_NODE_HEADER: + case CMARK_NODE_EMPH: + case CMARK_NODE_STRONG: + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + return S_is_inline(child); + + default: + break; + } + + return false; +} + +cmark_node *cmark_node_new(cmark_node_type type) { + cmark_node *node = (cmark_node *)calloc(1, sizeof(*node)); + node->type = type; + + switch (node->type) { + case CMARK_NODE_HEADER: + node->as.header.level = 1; + break; + + case CMARK_NODE_LIST: { + cmark_list *list = &node->as.list; + list->list_type = CMARK_BULLET_LIST; + list->start = 1; + list->tight = false; + break; + } + + default: + break; + } + + return node; } // Free a cmark_node list and any children. -static -void S_free_nodes(cmark_node *e) -{ - cmark_node *next; - while (e != NULL) { - if (S_is_block(e)) { - cmark_strbuf_free(&e->string_content); - } - switch (e->type) { - case NODE_CODE_BLOCK: - cmark_chunk_free(&e->as.code.info); - cmark_chunk_free(&e->as.code.literal); - break; - case NODE_TEXT: - case NODE_INLINE_HTML: - case NODE_CODE: - case NODE_HTML: - cmark_chunk_free(&e->as.literal); - break; - case NODE_LINK: - case NODE_IMAGE: - cmark_chunk_free(&e->as.link.url); - cmark_chunk_free(&e->as.link.title); - break; - default: - break; - } - if (e->last_child) { - // Splice children into list - e->last_child->next = e->next; - e->next = e->first_child; - } - next = e->next; - free(e); - e = next; - } -} - -void -cmark_node_free(cmark_node *node) -{ - S_node_unlink(node); - node->next = NULL; - S_free_nodes(node); -} - -cmark_node_type -cmark_node_get_type(cmark_node *node) -{ - if (node == NULL) { - return CMARK_NODE_NONE; - } else { - return node->type; - } -} - -const char* -cmark_node_get_type_string(cmark_node *node) -{ - if (node == NULL) { - return "NONE"; - } - - switch (node->type) { - case CMARK_NODE_NONE: - return "none"; - case CMARK_NODE_DOCUMENT: - return "document"; - case CMARK_NODE_BLOCK_QUOTE: - return "block_quote"; - case CMARK_NODE_LIST: - return "list"; - case CMARK_NODE_ITEM: - return "item"; - case CMARK_NODE_CODE_BLOCK: - return "code_block"; - case CMARK_NODE_HTML: - return "html"; - case CMARK_NODE_PARAGRAPH: - return "paragraph"; - case CMARK_NODE_HEADER: - return "header"; - case CMARK_NODE_HRULE: - return "hrule"; - case CMARK_NODE_TEXT: - return "text"; - case CMARK_NODE_SOFTBREAK: - return "softbreak"; - case CMARK_NODE_LINEBREAK: - return "linebreak"; - case CMARK_NODE_CODE: - return "code"; - case CMARK_NODE_INLINE_HTML: - return "inline_html"; - case CMARK_NODE_EMPH: - return "emph"; - case CMARK_NODE_STRONG: - return "strong"; - case CMARK_NODE_LINK: - return "link"; - case CMARK_NODE_IMAGE: - return "image"; - } - - return "<unknown>"; -} - -cmark_node* -cmark_node_next(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->next; - } -} - -cmark_node* -cmark_node_previous(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->prev; - } -} - -cmark_node* -cmark_node_parent(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->parent; - } -} - -cmark_node* -cmark_node_first_child(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->first_child; - } -} - -cmark_node* -cmark_node_last_child(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->last_child; - } -} - -void* -cmark_node_get_user_data(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } else { - return node->user_data; - } -} - -int -cmark_node_set_user_data(cmark_node *node, void *user_data) -{ - if (node == NULL) { - return 0; - } - node->user_data = user_data; - return 1; -} - -const char* -cmark_node_get_literal(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } - - switch (node->type) { - case NODE_HTML: - case NODE_TEXT: - case NODE_INLINE_HTML: - case NODE_CODE: - return cmark_chunk_to_cstr(&node->as.literal); - - case NODE_CODE_BLOCK: - return cmark_chunk_to_cstr(&node->as.code.literal); - - default: - break; - } - - return NULL; -} - -int -cmark_node_set_literal(cmark_node *node, const char *content) -{ - if (node == NULL) { - return 0; - } - - switch (node->type) { - case NODE_HTML: - case NODE_TEXT: - case NODE_INLINE_HTML: - case NODE_CODE: - cmark_chunk_set_cstr(&node->as.literal, content); - return 1; - - case NODE_CODE_BLOCK: - cmark_chunk_set_cstr(&node->as.code.literal, content); - return 1; - - default: - break; - } - - return 0; -} - -int -cmark_node_get_header_level(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - - switch (node->type) { - case CMARK_NODE_HEADER: - return node->as.header.level; - - default: - break; - } - - return 0; -} - -int -cmark_node_set_header_level(cmark_node *node, int level) -{ - if (node == NULL || level < 1 || level > 6) { - return 0; - } - - switch (node->type) { - case CMARK_NODE_HEADER: - node->as.header.level = level; - return 1; - - default: - break; - } - - return 0; -} - -cmark_list_type -cmark_node_get_list_type(cmark_node *node) -{ - if (node == NULL) { - return CMARK_NO_LIST; - } - - if (node->type == CMARK_NODE_LIST) { - return node->as.list.list_type; - } else { - return CMARK_NO_LIST; - } -} - -int -cmark_node_set_list_type(cmark_node *node, cmark_list_type type) -{ - if (!(type == CMARK_BULLET_LIST || type == CMARK_ORDERED_LIST)) { - return 0; - } - - if (node == NULL) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - node->as.list.list_type = type; - return 1; - } else { - return 0; - } -} - -cmark_delim_type -cmark_node_get_list_delim(cmark_node *node) -{ - if (node == NULL) { - return CMARK_NO_DELIM; - } - - if (node->type == CMARK_NODE_LIST) { - return node->as.list.delimiter; - } else { - return CMARK_NO_DELIM; - } -} - -int -cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim) -{ - if (!(delim == CMARK_PERIOD_DELIM || delim == CMARK_PAREN_DELIM)) { - return 0; - } - - if (node == NULL) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - node->as.list.delimiter = delim; - return 1; - } else { - return 0; - } -} - -int -cmark_node_get_list_start(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - return node->as.list.start; - } else { - return 0; - } -} - -int -cmark_node_set_list_start(cmark_node *node, int start) -{ - if (node == NULL || start < 0) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - node->as.list.start = start; - return 1; - } else { - return 0; - } -} - -int -cmark_node_get_list_tight(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - return node->as.list.tight; - } else { - return 0; - } -} - -int -cmark_node_set_list_tight(cmark_node *node, int tight) -{ - if (node == NULL) { - return 0; - } - - if (node->type == CMARK_NODE_LIST) { - node->as.list.tight = tight; - return 1; - } else { - return 0; - } -} - -const char* -cmark_node_get_fence_info(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } - - if (node->type == NODE_CODE_BLOCK) { - return cmark_chunk_to_cstr(&node->as.code.info); - } else { - return NULL; - } -} - -int -cmark_node_set_fence_info(cmark_node *node, const char *info) -{ - if (node == NULL) { - return 0; - } - - if (node->type == NODE_CODE_BLOCK) { - cmark_chunk_set_cstr(&node->as.code.info, info); - return 1; - } else { - return 0; - } -} - -const char* -cmark_node_get_url(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } - - switch (node->type) { - case NODE_LINK: - case NODE_IMAGE: - return cmark_chunk_to_cstr(&node->as.link.url); - default: - break; - } - - return NULL; -} - -int -cmark_node_set_url(cmark_node *node, const char *url) -{ - if (node == NULL) { - return 0; - } - - switch (node->type) { - case NODE_LINK: - case NODE_IMAGE: - cmark_chunk_set_cstr(&node->as.link.url, url); - return 1; - default: - break; - } - - return 0; -} - -const char* -cmark_node_get_title(cmark_node *node) -{ - if (node == NULL) { - return NULL; - } - - switch (node->type) { - case NODE_LINK: - case NODE_IMAGE: - return cmark_chunk_to_cstr(&node->as.link.title); - default: - break; - } - - return NULL; -} - -int -cmark_node_set_title(cmark_node *node, const char *title) -{ - if (node == NULL) { - return 0; - } - - switch (node->type) { - case NODE_LINK: - case NODE_IMAGE: - cmark_chunk_set_cstr(&node->as.link.title, title); - return 1; - default: - break; - } - - return 0; -} - -int -cmark_node_get_start_line(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - return node->start_line; -} - -int -cmark_node_get_start_column(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - return node->start_column; -} - -int -cmark_node_get_end_line(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - return node->end_line; -} - -int -cmark_node_get_end_column(cmark_node *node) -{ - if (node == NULL) { - return 0; - } - return node->end_column; +static void S_free_nodes(cmark_node *e) { + cmark_node *next; + while (e != NULL) { + if (S_is_block(e)) { + cmark_strbuf_free(&e->string_content); + } + switch (e->type) { + case NODE_CODE_BLOCK: + cmark_chunk_free(&e->as.code.info); + cmark_chunk_free(&e->as.code.literal); + break; + case NODE_TEXT: + case NODE_INLINE_HTML: + case NODE_CODE: + case NODE_HTML: + cmark_chunk_free(&e->as.literal); + break; + case NODE_LINK: + case NODE_IMAGE: + cmark_chunk_free(&e->as.link.url); + cmark_chunk_free(&e->as.link.title); + break; + default: + break; + } + if (e->last_child) { + // Splice children into list + e->last_child->next = e->next; + e->next = e->first_child; + } + next = e->next; + free(e); + e = next; + } +} + +void cmark_node_free(cmark_node *node) { + S_node_unlink(node); + node->next = NULL; + S_free_nodes(node); +} + +cmark_node_type cmark_node_get_type(cmark_node *node) { + if (node == NULL) { + return CMARK_NODE_NONE; + } else { + return node->type; + } +} + +const char *cmark_node_get_type_string(cmark_node *node) { + if (node == NULL) { + return "NONE"; + } + + switch (node->type) { + case CMARK_NODE_NONE: + return "none"; + case CMARK_NODE_DOCUMENT: + return "document"; + case CMARK_NODE_BLOCK_QUOTE: + return "block_quote"; + case CMARK_NODE_LIST: + return "list"; + case CMARK_NODE_ITEM: + return "item"; + case CMARK_NODE_CODE_BLOCK: + return "code_block"; + case CMARK_NODE_HTML: + return "html"; + case CMARK_NODE_PARAGRAPH: + return "paragraph"; + case CMARK_NODE_HEADER: + return "header"; + case CMARK_NODE_HRULE: + return "hrule"; + case CMARK_NODE_TEXT: + return "text"; + case CMARK_NODE_SOFTBREAK: + return "softbreak"; + case CMARK_NODE_LINEBREAK: + return "linebreak"; + case CMARK_NODE_CODE: + return "code"; + case CMARK_NODE_INLINE_HTML: + return "inline_html"; + case CMARK_NODE_EMPH: + return "emph"; + case CMARK_NODE_STRONG: + return "strong"; + case CMARK_NODE_LINK: + return "link"; + case CMARK_NODE_IMAGE: + return "image"; + } + + return "<unknown>"; +} + +cmark_node *cmark_node_next(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->next; + } +} + +cmark_node *cmark_node_previous(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->prev; + } +} + +cmark_node *cmark_node_parent(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->parent; + } +} + +cmark_node *cmark_node_first_child(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->first_child; + } +} + +cmark_node *cmark_node_last_child(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->last_child; + } +} + +void *cmark_node_get_user_data(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->user_data; + } +} + +int cmark_node_set_user_data(cmark_node *node, void *user_data) { + if (node == NULL) { + return 0; + } + node->user_data = user_data; + return 1; +} + +const char *cmark_node_get_literal(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case NODE_HTML: + case NODE_TEXT: + case NODE_INLINE_HTML: + case NODE_CODE: + return cmark_chunk_to_cstr(&node->as.literal); + + case NODE_CODE_BLOCK: + return cmark_chunk_to_cstr(&node->as.code.literal); + + default: + break; + } + + return NULL; +} + +int cmark_node_set_literal(cmark_node *node, const char *content) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case NODE_HTML: + case NODE_TEXT: + case NODE_INLINE_HTML: + case NODE_CODE: + cmark_chunk_set_cstr(&node->as.literal, content); + return 1; + + case NODE_CODE_BLOCK: + cmark_chunk_set_cstr(&node->as.code.literal, content); + return 1; + + default: + break; + } + + return 0; +} + +int cmark_node_get_header_level(cmark_node *node) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_HEADER: + return node->as.header.level; + + default: + break; + } + + return 0; +} + +int cmark_node_set_header_level(cmark_node *node, int level) { + if (node == NULL || level < 1 || level > 6) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_HEADER: + node->as.header.level = level; + return 1; + + default: + break; + } + + return 0; +} + +cmark_list_type cmark_node_get_list_type(cmark_node *node) { + if (node == NULL) { + return CMARK_NO_LIST; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.list_type; + } else { + return CMARK_NO_LIST; + } +} + +int cmark_node_set_list_type(cmark_node *node, cmark_list_type type) { + if (!(type == CMARK_BULLET_LIST || type == CMARK_ORDERED_LIST)) { + return 0; + } + + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.list_type = type; + return 1; + } else { + return 0; + } +} + +cmark_delim_type cmark_node_get_list_delim(cmark_node *node) { + if (node == NULL) { + return CMARK_NO_DELIM; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.delimiter; + } else { + return CMARK_NO_DELIM; + } +} + +int cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim) { + if (!(delim == CMARK_PERIOD_DELIM || delim == CMARK_PAREN_DELIM)) { + return 0; + } + + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.delimiter = delim; + return 1; + } else { + return 0; + } +} + +int cmark_node_get_list_start(cmark_node *node) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.start; + } else { + return 0; + } +} + +int cmark_node_set_list_start(cmark_node *node, int start) { + if (node == NULL || start < 0) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.start = start; + return 1; + } else { + return 0; + } +} + +int cmark_node_get_list_tight(cmark_node *node) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.tight; + } else { + return 0; + } +} + +int cmark_node_set_list_tight(cmark_node *node, int tight) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.tight = tight; + return 1; + } else { + return 0; + } +} + +const char *cmark_node_get_fence_info(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + if (node->type == NODE_CODE_BLOCK) { + return cmark_chunk_to_cstr(&node->as.code.info); + } else { + return NULL; + } +} + +int cmark_node_set_fence_info(cmark_node *node, const char *info) { + if (node == NULL) { + return 0; + } + + if (node->type == NODE_CODE_BLOCK) { + cmark_chunk_set_cstr(&node->as.code.info, info); + return 1; + } else { + return 0; + } +} + +const char *cmark_node_get_url(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case NODE_LINK: + case NODE_IMAGE: + return cmark_chunk_to_cstr(&node->as.link.url); + default: + break; + } + + return NULL; +} + +int cmark_node_set_url(cmark_node *node, const char *url) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case NODE_LINK: + case NODE_IMAGE: + cmark_chunk_set_cstr(&node->as.link.url, url); + return 1; + default: + break; + } + + return 0; +} + +const char *cmark_node_get_title(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case NODE_LINK: + case NODE_IMAGE: + return cmark_chunk_to_cstr(&node->as.link.title); + default: + break; + } + + return NULL; +} + +int cmark_node_set_title(cmark_node *node, const char *title) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case NODE_LINK: + case NODE_IMAGE: + cmark_chunk_set_cstr(&node->as.link.title, title); + return 1; + default: + break; + } + + return 0; +} + +int cmark_node_get_start_line(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->start_line; +} + +int cmark_node_get_start_column(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->start_column; +} + +int cmark_node_get_end_line(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->end_line; +} + +int cmark_node_get_end_column(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->end_column; } // Unlink a node without adjusting its next, prev, and parent pointers. -static void -S_node_unlink(cmark_node *node) -{ - if (node == NULL) { - return; - } +static void S_node_unlink(cmark_node *node) { + if (node == NULL) { + return; + } - if (node->prev) { - node->prev->next = node->next; - } - if (node->next) { - node->next->prev = node->prev; - } - - // Adjust first_child and last_child of parent. - cmark_node *parent = node->parent; - if (parent) { - if (parent->first_child == node) { - parent->first_child = node->next; - } - if (parent->last_child == node) { - parent->last_child = node->prev; - } - } -} - -void -cmark_node_unlink(cmark_node *node) -{ - S_node_unlink(node); - - node->next = NULL; - node->prev = NULL; - node->parent = NULL; + if (node->prev) { + node->prev->next = node->next; + } + if (node->next) { + node->next->prev = node->prev; + } -} - -int -cmark_node_insert_before(cmark_node *node, cmark_node *sibling) -{ - if (node == NULL || sibling == NULL) { - return 0; - } + // Adjust first_child and last_child of parent. + cmark_node *parent = node->parent; + if (parent) { + if (parent->first_child == node) { + parent->first_child = node->next; + } + if (parent->last_child == node) { + parent->last_child = node->prev; + } + } +} - if (!node->parent || !S_can_contain(node->parent, sibling)) { - return 0; - } - - S_node_unlink(sibling); +void cmark_node_unlink(cmark_node *node) { + S_node_unlink(node); - cmark_node *old_prev = node->prev; - - // Insert 'sibling' between 'old_prev' and 'node'. - if (old_prev) { - old_prev->next = sibling; - } - sibling->prev = old_prev; - sibling->next = node; - node->prev = sibling; + node->next = NULL; + node->prev = NULL; + node->parent = NULL; +} + +int cmark_node_insert_before(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + + if (!node->parent || !S_can_contain(node->parent, sibling)) { + return 0; + } + + S_node_unlink(sibling); + + cmark_node *old_prev = node->prev; + + // Insert 'sibling' between 'old_prev' and 'node'. + if (old_prev) { + old_prev->next = sibling; + } + sibling->prev = old_prev; + sibling->next = node; + node->prev = sibling; - // Set new parent. - cmark_node *parent = node->parent; - sibling->parent = parent; - - // Adjust first_child of parent if inserted as first child. - if (parent && !old_prev) { - parent->first_child = sibling; - } - - return 1; + // Set new parent. + cmark_node *parent = node->parent; + sibling->parent = parent; + + // Adjust first_child of parent if inserted as first child. + if (parent && !old_prev) { + parent->first_child = sibling; + } + + return 1; } - -int -cmark_node_insert_after(cmark_node *node, cmark_node *sibling) -{ - if (node == NULL || sibling == NULL) { - return 0; - } - - if (!node->parent || !S_can_contain(node->parent, sibling)) { - return 0; - } - - S_node_unlink(sibling); - - cmark_node *old_next = node->next; - - // Insert 'sibling' between 'node' and 'old_next'. - if (old_next) { - old_next->prev = sibling; - } - sibling->next = old_next; - sibling->prev = node; - node->next = sibling; - - // Set new parent. - cmark_node *parent = node->parent; - sibling->parent = parent; - - // Adjust last_child of parent if inserted as last child. - if (parent && !old_next) { - parent->last_child = sibling; - } - - return 1; -} - -int -cmark_node_prepend_child(cmark_node *node, cmark_node *child) -{ - if (!S_can_contain(node, child)) { - return 0; - } - - S_node_unlink(child); - - cmark_node *old_first_child = node->first_child; - - child->next = old_first_child; - child->prev = NULL; - child->parent = node; - node->first_child = child; - - if (old_first_child) { - old_first_child->prev = child; - } else { - // Also set last_child if node previously had no children. - node->last_child = child; - } - - return 1; -} - -int -cmark_node_append_child(cmark_node *node, cmark_node *child) -{ - if (!S_can_contain(node, child)) { - return 0; - } - - S_node_unlink(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; - } - - return 1; -} - -static void -S_print_error(FILE *out, cmark_node *node, const char *elem) -{ - if (out == NULL) { - return; - } - fprintf(out, "Invalid '%s' in node type %s at %d:%d\n", elem, - cmark_node_get_type_string(node), node->start_line, - node->start_column); -} - -int -cmark_node_check(cmark_node *node, FILE *out) -{ - cmark_node *cur; - int errors = 0; - - if (!node) { - return 0; - } - - cur = node; - while (true) { - if (cur->first_child) { - if (cur->first_child->prev != NULL) { - S_print_error(out, cur->first_child, "prev"); - cur->first_child->prev = NULL; - ++errors; - } - if (cur->first_child->parent != cur) { - S_print_error(out, cur->first_child, "parent"); - cur->first_child->parent = cur; - ++errors; - } - cur = cur->first_child; - continue; - } - -next_sibling: - if (cur == node) { - break; - } - if (cur->next) { - if (cur->next->prev != cur) { - S_print_error(out, cur->next, "prev"); - cur->next->prev = cur; - ++errors; - } - if (cur->next->parent != cur->parent) { - S_print_error(out, cur->next, "parent"); - cur->next->parent = cur->parent; - ++errors; - } - cur = cur->next; - continue; - } - - if (cur->parent->last_child != cur) { - S_print_error(out, cur->parent, "last_child"); - cur->parent->last_child = cur; - ++errors; - } - cur = cur->parent; - goto next_sibling; - } - - return errors; + +int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + + if (!node->parent || !S_can_contain(node->parent, sibling)) { + return 0; + } + + S_node_unlink(sibling); + + cmark_node *old_next = node->next; + + // Insert 'sibling' between 'node' and 'old_next'. + if (old_next) { + old_next->prev = sibling; + } + sibling->next = old_next; + sibling->prev = node; + node->next = sibling; + + // Set new parent. + cmark_node *parent = node->parent; + sibling->parent = parent; + + // Adjust last_child of parent if inserted as last child. + if (parent && !old_next) { + parent->last_child = sibling; + } + + return 1; +} + +int cmark_node_prepend_child(cmark_node *node, cmark_node *child) { + if (!S_can_contain(node, child)) { + return 0; + } + + S_node_unlink(child); + + cmark_node *old_first_child = node->first_child; + + child->next = old_first_child; + child->prev = NULL; + child->parent = node; + node->first_child = child; + + if (old_first_child) { + old_first_child->prev = child; + } else { + // Also set last_child if node previously had no children. + node->last_child = child; + } + + return 1; +} + +int cmark_node_append_child(cmark_node *node, cmark_node *child) { + if (!S_can_contain(node, child)) { + return 0; + } + + S_node_unlink(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; + } + + return 1; +} + +static void S_print_error(FILE *out, cmark_node *node, const char *elem) { + if (out == NULL) { + return; + } + fprintf(out, "Invalid '%s' in node type %s at %d:%d\n", elem, + cmark_node_get_type_string(node), node->start_line, + node->start_column); +} + +int cmark_node_check(cmark_node *node, FILE *out) { + cmark_node *cur; + int errors = 0; + + if (!node) { + return 0; + } + + cur = node; + while (true) { + if (cur->first_child) { + if (cur->first_child->prev != NULL) { + S_print_error(out, cur->first_child, "prev"); + cur->first_child->prev = NULL; + ++errors; + } + if (cur->first_child->parent != cur) { + S_print_error(out, cur->first_child, "parent"); + cur->first_child->parent = cur; + ++errors; + } + cur = cur->first_child; + continue; + } + + next_sibling: + if (cur == node) { + break; + } + if (cur->next) { + if (cur->next->prev != cur) { + S_print_error(out, cur->next, "prev"); + cur->next->prev = cur; + ++errors; + } + if (cur->next->parent != cur->parent) { + S_print_error(out, cur->next, "parent"); + cur->next->parent = cur->parent; + ++errors; + } + cur = cur->next; + continue; + } + + if (cur->parent->last_child != cur) { + S_print_error(out, cur->parent, "last_child"); + cur->parent->last_child = cur; + ++errors; + } + cur = cur->parent; + goto next_sibling; + } + + return errors; } @@ -13,68 +13,67 @@ extern "C" { #include "chunk.h" typedef struct { - cmark_list_type list_type; - int marker_offset; - int padding; - int start; - cmark_delim_type delimiter; - unsigned char bullet_char; - bool tight; + cmark_list_type list_type; + int marker_offset; + int padding; + int start; + cmark_delim_type delimiter; + unsigned char bullet_char; + bool tight; } cmark_list; typedef struct { - cmark_chunk info; - cmark_chunk literal; - int fence_length; - /* fence_offset must be 0-3, so we can use int8_t */ - int8_t fence_offset; - unsigned char fence_char; - bool fenced; + cmark_chunk info; + cmark_chunk literal; + int fence_length; + /* fence_offset must be 0-3, so we can use int8_t */ + int8_t fence_offset; + unsigned char fence_char; + bool fenced; } cmark_code; typedef struct { - int level; - bool setext; + int level; + bool setext; } cmark_header; typedef struct { - cmark_chunk url; - cmark_chunk title; + cmark_chunk url; + cmark_chunk title; } cmark_link; struct cmark_node { - struct cmark_node *next; - struct cmark_node *prev; - struct cmark_node *parent; - struct cmark_node *first_child; - struct cmark_node *last_child; - - void *user_data; - - int start_line; - int start_column; - int end_line; - int end_column; - - cmark_node_type type; - - bool open; - bool last_line_blank; - - cmark_strbuf string_content; - - union { - cmark_chunk literal; - cmark_list list; - cmark_code code; - cmark_header header; - cmark_link link; - int html_block_type; - } as; + struct cmark_node *next; + struct cmark_node *prev; + struct cmark_node *parent; + struct cmark_node *first_child; + struct cmark_node *last_child; + + void *user_data; + + int start_line; + int start_column; + int end_line; + int end_column; + + cmark_node_type type; + + bool open; + bool last_line_blank; + + cmark_strbuf string_content; + + union { + cmark_chunk literal; + cmark_list list; + cmark_code code; + cmark_header header; + cmark_link link; + int html_block_type; + } as; }; -CMARK_EXPORT int -cmark_node_check(cmark_node *node, FILE *out); +CMARK_EXPORT int cmark_node_check(cmark_node *node, FILE *out); #ifdef __cplusplus } diff --git a/src/parser.h b/src/parser.h index 01a7aeb..f359e10 100644 --- a/src/parser.h +++ b/src/parser.h @@ -12,20 +12,20 @@ extern "C" { #define MAX_LINK_LABEL_LENGTH 1000 struct cmark_parser { - struct cmark_reference_map *refmap; - struct cmark_node* root; - struct cmark_node* current; - int line_number; - bufsize_t offset; - bufsize_t column; - bufsize_t first_nonspace; - bufsize_t first_nonspace_column; - int indent; - bool blank; - cmark_strbuf *curline; - bufsize_t last_line_length; - cmark_strbuf *linebuf; - int options; + struct cmark_reference_map *refmap; + struct cmark_node *root; + struct cmark_node *current; + int line_number; + bufsize_t offset; + bufsize_t column; + bufsize_t first_nonspace; + bufsize_t first_nonspace_column; + int indent; + bool blank; + cmark_strbuf *curline; + bufsize_t last_line_length; + cmark_strbuf *linebuf; + int options; }; #ifdef __cplusplus diff --git a/src/references.c b/src/references.c index 1d3d56d..980a948 100644 --- a/src/references.c +++ b/src/references.c @@ -5,150 +5,140 @@ #include "inlines.h" #include "chunk.h" -static unsigned int -refhash(const unsigned char *link_ref) -{ - unsigned int hash = 0; +static unsigned int refhash(const unsigned char *link_ref) { + unsigned int hash = 0; - while (*link_ref) - hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash; + while (*link_ref) + hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash; - return hash; + return hash; } -static void reference_free(cmark_reference *ref) -{ - if(ref != NULL) { - free(ref->label); - cmark_chunk_free(&ref->url); - cmark_chunk_free(&ref->title); - free(ref); - } +static void reference_free(cmark_reference *ref) { + if (ref != NULL) { + free(ref->label); + cmark_chunk_free(&ref->url); + cmark_chunk_free(&ref->title); + free(ref); + } } // normalize reference: collapse internal whitespace to single space, // remove leading/trailing whitespace, case fold // Return NULL if the reference name is actually empty (i.e. composed // solely from whitespace) -static unsigned char *normalize_reference(cmark_chunk *ref) -{ - cmark_strbuf normalized = GH_BUF_INIT; - unsigned char *result; +static unsigned char *normalize_reference(cmark_chunk *ref) { + cmark_strbuf normalized = GH_BUF_INIT; + unsigned char *result; - if(ref == NULL) - return NULL; + if (ref == NULL) + return NULL; - if (ref->len == 0) - return NULL; + if (ref->len == 0) + return NULL; - utf8proc_case_fold(&normalized, ref->data, ref->len); - cmark_strbuf_trim(&normalized); - cmark_strbuf_normalize_whitespace(&normalized); + utf8proc_case_fold(&normalized, ref->data, ref->len); + cmark_strbuf_trim(&normalized); + cmark_strbuf_normalize_whitespace(&normalized); - result = cmark_strbuf_detach(&normalized); - assert(result); + result = cmark_strbuf_detach(&normalized); + assert(result); - if (result[0] == '\0') { - free(result); - return NULL; - } + if (result[0] == '\0') { + free(result); + return NULL; + } - return result; + return result; } -static void add_reference(cmark_reference_map *map, cmark_reference* ref) -{ - cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE]; +static void add_reference(cmark_reference_map *map, cmark_reference *ref) { + cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE]; - while (t) { - if (t->hash == ref->hash && - !strcmp((char *)t->label, (char *)ref->label)) { - reference_free(ref); - return; - } + while (t) { + if (t->hash == ref->hash && !strcmp((char *)t->label, (char *)ref->label)) { + reference_free(ref); + return; + } - t = t->next; - } + t = t->next; + } - map->table[ref->hash % REFMAP_SIZE] = ref; + map->table[ref->hash % REFMAP_SIZE] = ref; } -void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url, - cmark_chunk *title) -{ - cmark_reference *ref; - unsigned char *reflabel = normalize_reference(label); - - /* empty reference name, or composed from only whitespace */ - if (reflabel == NULL) - return; - - ref = (cmark_reference *)calloc(1, sizeof(*ref)); - if(ref != NULL) { - ref->label = reflabel; - ref->hash = refhash(ref->label); - ref->url = cmark_clean_url(url); - ref->title = cmark_clean_title(title); - ref->next = NULL; - - add_reference(map, ref); - } +void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, + cmark_chunk *url, cmark_chunk *title) { + cmark_reference *ref; + unsigned char *reflabel = normalize_reference(label); + + /* empty reference name, or composed from only whitespace */ + if (reflabel == NULL) + return; + + ref = (cmark_reference *)calloc(1, sizeof(*ref)); + if (ref != NULL) { + ref->label = reflabel; + ref->hash = refhash(ref->label); + ref->url = cmark_clean_url(url); + ref->title = cmark_clean_title(title); + ref->next = NULL; + + add_reference(map, ref); + } } // Returns reference if refmap contains a reference with matching // label, otherwise NULL. -cmark_reference* cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label) -{ - cmark_reference *ref = NULL; - unsigned char *norm; - unsigned int hash; - - if (label->len > MAX_LINK_LABEL_LENGTH) - return NULL; - - if (map == NULL) - return NULL; - - norm = normalize_reference(label); - if (norm == NULL) - return NULL; - - hash = refhash(norm); - ref = map->table[hash % REFMAP_SIZE]; - - while (ref) { - if (ref->hash == hash && - !strcmp((char *)ref->label, (char *)norm)) - break; - ref = ref->next; - } - - free(norm); - return ref; +cmark_reference *cmark_reference_lookup(cmark_reference_map *map, + cmark_chunk *label) { + cmark_reference *ref = NULL; + unsigned char *norm; + unsigned int hash; + + if (label->len > MAX_LINK_LABEL_LENGTH) + return NULL; + + if (map == NULL) + return NULL; + + norm = normalize_reference(label); + if (norm == NULL) + return NULL; + + hash = refhash(norm); + ref = map->table[hash % REFMAP_SIZE]; + + while (ref) { + if (ref->hash == hash && !strcmp((char *)ref->label, (char *)norm)) + break; + ref = ref->next; + } + + free(norm); + return ref; } -void cmark_reference_map_free(cmark_reference_map *map) -{ - unsigned int i; +void cmark_reference_map_free(cmark_reference_map *map) { + unsigned int i; - if(map == NULL) - return; + if (map == NULL) + return; - for (i = 0; i < REFMAP_SIZE; ++i) { - cmark_reference *ref = map->table[i]; - cmark_reference *next; + for (i = 0; i < REFMAP_SIZE; ++i) { + cmark_reference *ref = map->table[i]; + cmark_reference *next; - while (ref) { - next = ref->next; - reference_free(ref); - ref = next; - } - } + while (ref) { + next = ref->next; + reference_free(ref); + ref = next; + } + } - free(map); + free(map); } -cmark_reference_map *cmark_reference_map_new(void) -{ - return (cmark_reference_map *)calloc(1, sizeof(cmark_reference_map)); +cmark_reference_map *cmark_reference_map_new(void) { + return (cmark_reference_map *)calloc(1, sizeof(cmark_reference_map)); } diff --git a/src/references.h b/src/references.h index a360cd5..310ff9f 100644 --- a/src/references.h +++ b/src/references.h @@ -10,25 +10,27 @@ extern "C" { #define REFMAP_SIZE 16 struct cmark_reference { - struct cmark_reference *next; - unsigned char *label; - cmark_chunk url; - cmark_chunk title; - unsigned int hash; + struct cmark_reference *next; + unsigned char *label; + cmark_chunk url; + cmark_chunk title; + unsigned int hash; }; typedef struct cmark_reference cmark_reference; struct cmark_reference_map { - cmark_reference *table[REFMAP_SIZE]; + cmark_reference *table[REFMAP_SIZE]; }; typedef struct cmark_reference_map cmark_reference_map; cmark_reference_map *cmark_reference_map_new(void); void cmark_reference_map_free(cmark_reference_map *map); -cmark_reference* cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label); -extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url, cmark_chunk *title); +cmark_reference *cmark_reference_lookup(cmark_reference_map *map, + cmark_chunk *label); +extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, + cmark_chunk *url, cmark_chunk *title); #ifdef __cplusplus } diff --git a/src/render.c b/src/render.c index 2f1faac..4912615 100644 --- a/src/render.c +++ b/src/render.c @@ -5,182 +5,159 @@ #include "utf8.h" #include "render.h" -static inline -void S_cr(cmark_renderer *renderer) -{ - if (renderer->need_cr < 1) { - renderer->need_cr = 1; - } +static inline void S_cr(cmark_renderer *renderer) { + if (renderer->need_cr < 1) { + renderer->need_cr = 1; + } } -static inline -void S_blankline(cmark_renderer *renderer) -{ - if (renderer->need_cr < 2) { - renderer->need_cr = 2; - } +static inline void S_blankline(cmark_renderer *renderer) { + if (renderer->need_cr < 2) { + renderer->need_cr = 2; + } } -static -void S_out(cmark_renderer *renderer, - const char *source, - bool wrap, - cmark_escaping escape) -{ - int length = cmark_strbuf_safe_strlen(source); - unsigned char nextc; - int32_t c; - int i = 0; - int len; - cmark_chunk remainder = cmark_chunk_literal(""); - int k = renderer->buffer->size - 1; - - wrap = wrap && !renderer->no_wrap; - - if (renderer->in_tight_list_item && renderer->need_cr > 1) { - renderer->need_cr = 1; - } - while (renderer->need_cr) { - if (k < 0 || renderer->buffer->ptr[k] == '\n') { - k -= 1; - } else { - cmark_strbuf_putc(renderer->buffer, '\n'); - if (renderer->need_cr > 1) { - cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, - renderer->prefix->size); - } - } - renderer->column = 0; - renderer->begin_line = true; - renderer->need_cr -= 1; - } - - while (i < length) { - if (renderer->begin_line) { - cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, - renderer->prefix->size); - // note: this assumes prefix is ascii: - renderer->column = renderer->prefix->size; - } - - len = utf8proc_iterate((const uint8_t *)source + i, length - i, &c); - if (len == -1) { // error condition - return; // return without rendering rest of string - } - nextc = source[i + len]; - if (c == 32 && wrap) { - if (!renderer->begin_line) { - cmark_strbuf_putc(renderer->buffer, ' '); - renderer->column += 1; - renderer->begin_line = false; - renderer->last_breakable = renderer->buffer->size - - 1; - // skip following spaces - while (source[i + 1] == ' ') { - i++; - } - } - - } else if (c == 10) { - cmark_strbuf_putc(renderer->buffer, '\n'); - renderer->column = 0; - renderer->begin_line = true; - renderer->last_breakable = 0; - } else if (escape == LITERAL) { - cmark_render_code_point(renderer, c); - renderer->begin_line = false; - } else { - (renderer->outc)(renderer, escape, c, nextc); - renderer->begin_line = false; - } - - // If adding the character went beyond width, look for an - // earlier place where the line could be broken: - if (renderer->width > 0 && - renderer->column > renderer->width && - !renderer->begin_line && - renderer->last_breakable > 0) { - - // copy from last_breakable to remainder - cmark_chunk_set_cstr(&remainder, (char *) renderer->buffer->ptr + renderer->last_breakable + 1); - // truncate at last_breakable - cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable); - // add newline, prefix, and remainder - cmark_strbuf_putc(renderer->buffer, '\n'); - cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, - renderer->prefix->size); - cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len); - renderer->column = renderer->prefix->size + remainder.len; - cmark_chunk_free(&remainder); - renderer->last_breakable = 0; - renderer->begin_line = false; - } - - i += len; - } +static void S_out(cmark_renderer *renderer, const char *source, bool wrap, + cmark_escaping escape) { + int length = cmark_strbuf_safe_strlen(source); + unsigned char nextc; + int32_t c; + int i = 0; + int len; + cmark_chunk remainder = cmark_chunk_literal(""); + int k = renderer->buffer->size - 1; + + wrap = wrap && !renderer->no_wrap; + + if (renderer->in_tight_list_item && renderer->need_cr > 1) { + renderer->need_cr = 1; + } + while (renderer->need_cr) { + if (k < 0 || renderer->buffer->ptr[k] == '\n') { + k -= 1; + } else { + cmark_strbuf_putc(renderer->buffer, '\n'); + if (renderer->need_cr > 1) { + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + } + } + renderer->column = 0; + renderer->begin_line = true; + renderer->need_cr -= 1; + } + + while (i < length) { + if (renderer->begin_line) { + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + // note: this assumes prefix is ascii: + renderer->column = renderer->prefix->size; + } + + len = utf8proc_iterate((const uint8_t *)source + i, length - i, &c); + if (len == -1) { // error condition + return; // return without rendering rest of string + } + nextc = source[i + len]; + if (c == 32 && wrap) { + if (!renderer->begin_line) { + cmark_strbuf_putc(renderer->buffer, ' '); + renderer->column += 1; + renderer->begin_line = false; + renderer->last_breakable = renderer->buffer->size - 1; + // skip following spaces + while (source[i + 1] == ' ') { + i++; + } + } + + } else if (c == 10) { + cmark_strbuf_putc(renderer->buffer, '\n'); + renderer->column = 0; + renderer->begin_line = true; + renderer->last_breakable = 0; + } else if (escape == LITERAL) { + cmark_render_code_point(renderer, c); + renderer->begin_line = false; + } else { + (renderer->outc)(renderer, escape, c, nextc); + renderer->begin_line = false; + } + + // If adding the character went beyond width, look for an + // earlier place where the line could be broken: + if (renderer->width > 0 && renderer->column > renderer->width && + !renderer->begin_line && renderer->last_breakable > 0) { + + // copy from last_breakable to remainder + cmark_chunk_set_cstr(&remainder, (char *)renderer->buffer->ptr + + renderer->last_breakable + 1); + // truncate at last_breakable + cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable); + // add newline, prefix, and remainder + cmark_strbuf_putc(renderer->buffer, '\n'); + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len); + renderer->column = renderer->prefix->size + remainder.len; + cmark_chunk_free(&remainder); + renderer->last_breakable = 0; + renderer->begin_line = false; + } + + i += len; + } } // Assumes no newlines, assumes ascii content: -void -cmark_render_ascii(cmark_renderer* renderer, const char* s) -{ - int origsize = renderer->buffer->size; - cmark_strbuf_puts(renderer->buffer, s); - renderer->column += renderer->buffer->size - origsize; +void cmark_render_ascii(cmark_renderer *renderer, const char *s) { + int origsize = renderer->buffer->size; + cmark_strbuf_puts(renderer->buffer, s); + renderer->column += renderer->buffer->size - origsize; } -void -cmark_render_code_point(cmark_renderer *renderer, uint32_t c) -{ - utf8proc_encode_char(c, renderer->buffer); - renderer->column += 1; +void cmark_render_code_point(cmark_renderer *renderer, uint32_t c) { + utf8proc_encode_char(c, renderer->buffer); + renderer->column += 1; } -char* -cmark_render(cmark_node *root, - int options, - int width, - void (*outc)(cmark_renderer*, - cmark_escaping, - int32_t, - unsigned char), - int (*render_node)(cmark_renderer *renderer, - cmark_node *node, - cmark_event_type ev_type, - int options)) -{ - cmark_strbuf pref = GH_BUF_INIT; - cmark_strbuf buf = GH_BUF_INIT; - cmark_node *cur; - cmark_event_type ev_type; - char *result; - cmark_iter *iter = cmark_iter_new(root); - - cmark_renderer renderer = { &buf, &pref, 0, width, - 0, 0, true, false, false, - outc, S_cr, S_blankline, S_out - }; - - while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { - cur = cmark_iter_get_node(iter); - if (!render_node(&renderer, cur, ev_type, options)) { - // a false value causes us to skip processing - // the node's contents. this is used for - // autolinks. - cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT); - } - } - - // ensure final newline - if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') { - cmark_strbuf_putc(renderer.buffer, '\n'); - } - - result = (char *)cmark_strbuf_detach(renderer.buffer); - - cmark_iter_free(iter); - cmark_strbuf_free(renderer.prefix); - cmark_strbuf_free(renderer.buffer); - - return result; +char *cmark_render(cmark_node *root, int options, int width, + void (*outc)(cmark_renderer *, cmark_escaping, int32_t, + unsigned char), + int (*render_node)(cmark_renderer *renderer, + cmark_node *node, + cmark_event_type ev_type, int options)) { + cmark_strbuf pref = GH_BUF_INIT; + cmark_strbuf buf = GH_BUF_INIT; + cmark_node *cur; + cmark_event_type ev_type; + char *result; + cmark_iter *iter = cmark_iter_new(root); + + cmark_renderer renderer = {&buf, &pref, 0, width, 0, 0, true, + false, false, outc, S_cr, S_blankline, S_out}; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (!render_node(&renderer, cur, ev_type, options)) { + // a false value causes us to skip processing + // the node's contents. this is used for + // autolinks. + cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT); + } + } + + // ensure final newline + if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') { + cmark_strbuf_putc(renderer.buffer, '\n'); + } + + result = (char *)cmark_strbuf_detach(renderer.buffer); + + cmark_iter_free(iter); + cmark_strbuf_free(renderer.prefix); + cmark_strbuf_free(renderer.buffer); + + return result; } diff --git a/src/render.h b/src/render.h index ca541bc..9ab347b 100644 --- a/src/render.h +++ b/src/render.h @@ -9,55 +9,36 @@ extern "C" { #include "buffer.h" #include "chunk.h" -typedef enum { - LITERAL, - NORMAL, - TITLE, - URL -} cmark_escaping; +typedef enum { LITERAL, NORMAL, TITLE, URL } cmark_escaping; struct cmark_renderer { - cmark_strbuf* buffer; - cmark_strbuf* prefix; - int column; - int width; - int need_cr; - bufsize_t last_breakable; - bool begin_line; - bool no_wrap; - bool in_tight_list_item; - void (*outc)(struct cmark_renderer*, - cmark_escaping, - int32_t, - unsigned char); - void (*cr)(struct cmark_renderer*); - void (*blankline)(struct cmark_renderer*); - void (*out)(struct cmark_renderer*, - const char *, - bool, - cmark_escaping); + cmark_strbuf *buffer; + cmark_strbuf *prefix; + int column; + int width; + int need_cr; + bufsize_t last_breakable; + bool begin_line; + bool no_wrap; + bool in_tight_list_item; + void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char); + void (*cr)(struct cmark_renderer *); + void (*blankline)(struct cmark_renderer *); + void (*out)(struct cmark_renderer *, const char *, bool, cmark_escaping); }; typedef struct cmark_renderer cmark_renderer; -void -cmark_render_ascii(cmark_renderer *renderer, const char* s); +void cmark_render_ascii(cmark_renderer *renderer, const char *s); -void -cmark_render_code_point(cmark_renderer *renderer, uint32_t c); +void cmark_render_code_point(cmark_renderer *renderer, uint32_t c); -char* -cmark_render(cmark_node *root, - int options, - int width, - void (*outc)(cmark_renderer*, - cmark_escaping, - int32_t, - unsigned char), - int (*render_node)(cmark_renderer *renderer, - cmark_node *node, - cmark_event_type ev_type, - int options)); +char *cmark_render(cmark_node *root, int options, int width, + void (*outc)(cmark_renderer *, cmark_escaping, int32_t, + unsigned char), + int (*render_node)(cmark_renderer *renderer, + cmark_node *node, + cmark_event_type ev_type, int options)); #ifdef __cplusplus } diff --git a/src/scanners.c b/src/scanners.c index 75fdb46..9237c7f 100644 --- a/src/scanners.c +++ b/src/scanners.c @@ -3,21045 +3,27836 @@ #include "chunk.h" #include "scanners.h" -bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset) -{ - bufsize_t res; - unsigned char *ptr = (unsigned char *)c->data; - unsigned char lim = ptr[c->len]; +bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, + bufsize_t offset) { + bufsize_t res; + unsigned char *ptr = (unsigned char *)c->data; + unsigned char lim = ptr[c->len]; - ptr[c->len] = '\0'; - res = scanner(ptr + offset); - ptr[c->len] = lim; + ptr[c->len] = '\0'; + res = scanner(ptr + offset); + ptr[c->len] = lim; - return res; + return res; } - - // 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 = *(marker = p); - if (yych <= 'c') { - if (yych <= 'M') { - if (yych <= 'E') { - if (yych <= 'A') { - if (yych == '\n') goto yy2; - if (yych <= '@') goto yy29; - goto yy6; - } else { - if (yych <= 'B') goto yy24; - if (yych <= 'C') goto yy3; - if (yych <= 'D') goto yy4; - goto yy25; - } - } else { - if (yych <= 'I') { - if (yych <= 'F') goto yy7; - if (yych <= 'G') goto yy8; - if (yych <= 'H') goto yy9; - goto yy10; - } else { - if (yych <= 'J') goto yy5; - if (yych <= 'K') goto yy26; - if (yych <= 'L') goto yy11; - goto yy12; - } - } - } else { - if (yych <= 'U') { - if (yych <= 'Q') { - if (yych <= 'N') goto yy13; - if (yych <= 'O') goto yy14; - if (yych <= 'P') goto yy15; - goto yy27; - } else { - if (yych <= 'R') goto yy16; - if (yych <= 'S') goto yy17; - if (yych <= 'T') goto yy18; - goto yy19; - } - } else { - if (yych <= 'Y') { - if (yych <= 'V') goto yy20; - if (yych <= 'W') goto yy21; - if (yych <= 'X') goto yy22; - goto yy28; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy23; - goto yy29; - } else { - if (yych <= 'a') goto yy6; - if (yych <= 'b') goto yy24; - goto yy3; - } - } - } - } - } else { - if (yych <= 't') { - if (yych <= 'k') { - if (yych <= 'g') { - if (yych <= 'd') goto yy4; - if (yych <= 'e') goto yy25; - if (yych <= 'f') goto yy7; - goto yy8; - } else { - if (yych <= 'h') goto yy9; - if (yych <= 'i') goto yy10; - if (yych <= 'j') goto yy5; - goto yy26; - } - } else { - if (yych <= 'o') { - if (yych <= 'l') goto yy11; - if (yych <= 'm') goto yy12; - if (yych <= 'n') goto yy13; - goto yy14; - } else { - if (yych <= 'q') { - if (yych <= 'p') goto yy15; - goto yy27; - } else { - if (yych <= 'r') goto yy16; - if (yych <= 's') goto yy17; - goto yy18; - } - } - } - } else { - if (yych <= 0xC1) { - if (yych <= 'x') { - if (yych <= 'u') goto yy19; - if (yych <= 'v') goto yy20; - if (yych <= 'w') goto yy21; - goto yy22; - } else { - if (yych <= 'y') goto yy28; - if (yych <= 'z') goto yy23; - if (yych <= 0x7F) goto yy29; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy30; - if (yych <= 0xE0) goto yy32; - if (yych <= 0xEC) goto yy33; - goto yy37; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy33; - goto yy34; - } else { - if (yych <= 0xF3) goto yy35; - if (yych <= 0xF4) goto yy36; - } - } - } - } - } -yy2: - { return 0; } -yy3: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy447; - case 'H': - case 'h': goto yy446; - case 'I': - case 'i': goto yy449; - case 'O': - case 'o': goto yy445; - case 'R': - case 'r': goto yy448; - case 'V': - case 'v': goto yy444; - default: goto yy2; - } -yy4: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy420; - case 'I': - case 'i': goto yy419; - case 'L': - case 'l': goto yy417; - case 'N': - case 'n': goto yy418; - case 'O': - case 'o': goto yy421; - case 'T': - case 't': goto yy416; - case 'V': - case 'v': goto yy415; - default: goto yy2; - } -yy5: - yych = *(marker = ++p); - if (yych <= 'M') { - if (yych == 'A') goto yy407; - if (yych <= 'L') goto yy2; - goto yy406; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy2; - goto yy407; - } else { - if (yych == 'm') goto yy406; - goto yy2; - } - } -yy6: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy388; - case 'B': - case 'b': goto yy387; - case 'C': - case 'c': goto yy386; - case 'D': - case 'd': goto yy385; - case 'F': - case 'f': goto yy384; - case 'I': - case 'i': goto yy383; - case 'P': - case 'p': goto yy382; - case 'T': - case 't': goto yy381; - case 'W': - case 'w': goto yy41; - default: goto yy2; - } -yy7: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'E') { - if (yych == 'A') goto yy368; - if (yych <= 'D') goto yy2; - goto yy367; - } else { - if (yych == 'I') goto yy366; - if (yych <= 'S') goto yy2; - goto yy369; - } - } else { - if (yych <= 'e') { - if (yych == 'a') goto yy368; - if (yych <= 'd') goto yy2; - goto yy367; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy2; - goto yy366; - } else { - if (yych == 't') goto yy369; - goto yy2; - } - } - } -yy8: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy351; - case 'G': - case 'g': goto yy41; - case 'I': - case 'i': goto yy349; - case 'O': - case 'o': goto yy350; - case 'T': - case 't': goto yy348; - default: goto yy2; - } -yy9: - yych = *(marker = ++p); - if (yych <= 'S') { - if (yych <= '3') { - if (yych <= '2') goto yy2; - goto yy344; - } else { - if (yych == 'C') goto yy342; - goto yy2; - } - } else { - if (yych <= 'c') { - if (yych <= 'T') goto yy343; - if (yych <= 'b') goto yy2; - goto yy342; - } else { - if (yych == 't') goto yy343; - goto yy2; - } - } -yy10: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy324; - case 'C': - case 'c': goto yy321; - case 'M': - case 'm': goto yy323; - case 'N': - case 'n': goto yy322; - case 'P': - case 'p': goto yy320; - case 'R': - case 'r': goto yy319; - case 'T': - case 't': goto yy318; - default: goto yy2; - } -yy11: - yych = *(marker = ++p); - if (yych <= 'D') { - if (yych == 'A') goto yy312; - if (yych <= 'C') goto yy2; - goto yy311; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy2; - goto yy312; - } else { - if (yych == 'd') goto yy311; - goto yy2; - } - } -yy12: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy278; - case 'E': - case 'e': goto yy277; - case 'I': - case 'i': goto yy280; - case 'M': - case 'm': goto yy276; - case 'S': - case 's': goto yy275; - case 'T': - case 't': goto yy279; - case 'U': - case 'u': goto yy274; - case 'V': - case 'v': goto yy273; - default: goto yy2; - } -yy13: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy268; - case 'F': - case 'f': goto yy267; - case 'I': - case 'i': goto yy266; - case 'N': - case 'n': goto yy265; - case 'O': - case 'o': goto yy264; - default: goto yy2; - } -yy14: - yych = *(marker = ++p); - if (yych <= 'P') { - if (yych == 'I') goto yy250; - if (yych <= 'O') goto yy2; - goto yy251; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy2; - goto yy250; - } else { - if (yych == 'p') goto yy251; - goto yy2; - } - } -yy15: - yych = *(marker = ++p); - if (yych <= 'S') { - if (yych <= 'L') { - if (yych == 'A') goto yy232; - if (yych <= 'K') goto yy2; - goto yy231; - } else { - if (yych <= 'O') { - if (yych <= 'N') goto yy2; - goto yy233; - } else { - if (yych <= 'Q') goto yy2; - if (yych <= 'R') goto yy230; - goto yy229; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'a') { - if (yych <= '`') goto yy2; - goto yy232; - } else { - if (yych == 'l') goto yy231; - goto yy2; - } - } else { - if (yych <= 'q') { - if (yych <= 'o') goto yy233; - goto yy2; - } else { - if (yych <= 'r') goto yy230; - if (yych <= 's') goto yy229; - goto yy2; - } - } - } -yy16: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'L') { - if (yych == 'E') goto yy219; - goto yy2; - } else { - if (yych <= 'M') goto yy218; - if (yych <= 'R') goto yy2; - if (yych <= 'S') goto yy217; - goto yy216; - } - } else { - if (yych <= 'm') { - if (yych == 'e') goto yy219; - if (yych <= 'l') goto yy2; - goto yy218; - } else { - if (yych <= 'r') goto yy2; - if (yych <= 's') goto yy217; - if (yych <= 't') goto yy216; - goto yy2; - } - } -yy17: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy172; - case 'F': - case 'f': goto yy171; - case 'G': - case 'g': goto yy170; - case 'H': - case 'h': goto yy175; - case 'I': - case 'i': goto yy174; - case 'K': - case 'k': goto yy169; - case 'M': - case 'm': goto yy168; - case 'N': - case 'n': goto yy173; - case 'O': - case 'o': goto yy167; - case 'P': - case 'p': goto yy166; - case 'S': - case 's': goto yy165; - case 'T': - case 't': goto yy164; - case 'V': - case 'v': goto yy163; - default: goto yy2; - } -yy18: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy139; - case 'E': - case 'e': goto yy135; - case 'F': - case 'f': goto yy138; - case 'H': - case 'h': goto yy134; - case 'I': - case 'i': goto yy136; - case 'N': - case 'n': goto yy137; - case 'V': - case 'v': goto yy41; - default: goto yy2; - } -yy19: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'N') { - if (yych == 'D') goto yy126; - if (yych <= 'M') goto yy2; - goto yy125; - } else { - if (yych == 'R') goto yy127; - if (yych <= 'S') goto yy2; - goto yy124; - } - } else { - if (yych <= 'n') { - if (yych == 'd') goto yy126; - if (yych <= 'm') goto yy2; - goto yy125; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy2; - goto yy127; - } else { - if (yych == 't') goto yy124; - goto yy2; - } - } - } -yy20: - yych = *(marker = ++p); - if (yych <= 'I') { - if (yych == 'E') goto yy108; - if (yych <= 'H') goto yy2; - goto yy107; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy2; - goto yy108; - } else { - if (yych == 'i') goto yy107; - goto yy2; - } - } -yy21: - yych = *(marker = ++p); - if (yych <= 'Y') { - if (yych <= 'R') { - if (yych == 'E') goto yy97; - goto yy2; - } else { - if (yych <= 'S') goto yy98; - if (yych <= 'T') goto yy96; - if (yych <= 'X') goto yy2; - goto yy95; - } - } else { - if (yych <= 's') { - if (yych == 'e') goto yy97; - if (yych <= 'r') goto yy2; - goto yy98; - } else { - if (yych <= 't') goto yy96; - if (yych == 'y') goto yy95; - goto yy2; - } - } -yy22: - yych = *(marker = ++p); - if (yych <= 'R') { - if (yych <= 'F') { - if (yych == 'C') goto yy74; - if (yych <= 'E') goto yy2; - goto yy72; - } else { - if (yych == 'M') goto yy73; - if (yych <= 'Q') goto yy2; - goto yy71; - } - } else { - if (yych <= 'f') { - if (yych == 'c') goto yy74; - if (yych <= 'e') goto yy2; - goto yy72; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy2; - goto yy73; - } else { - if (yych == 'r') goto yy71; - goto yy2; - } - } - } -yy23: - yych = *(marker = ++p); - if (yych == '3') goto yy66; - goto yy2; -yy24: - yych = *(marker = ++p); - if (yych <= 'O') { - if (yych <= 'H') { - if (yych == 'E') goto yy56; - goto yy2; - } else { - if (yych <= 'I') goto yy55; - if (yych <= 'N') goto yy2; - goto yy54; - } - } else { - if (yych <= 'h') { - if (yych == 'e') goto yy56; - goto yy2; - } else { - if (yych <= 'i') goto yy55; - if (yych == 'o') goto yy54; - goto yy2; - } - } -yy25: - yych = *(marker = ++p); - if (yych == 'D') goto yy52; - if (yych == 'd') goto yy52; - goto yy2; -yy26: - yych = *(marker = ++p); - if (yych == 'E') goto yy47; - if (yych == 'e') goto yy47; - goto yy2; -yy27: - yych = *(marker = ++p); - if (yych == 'U') goto yy44; - if (yych == 'u') goto yy44; - goto yy2; -yy28: - yych = *(marker = ++p); - if (yych == 'M') goto yy38; - if (yych == 'm') goto yy38; - goto yy2; -yy29: - yych = *++p; - goto yy2; -yy30: - yych = *++p; - if (yych <= 0x7F) goto yy31; - if (yych <= 0xBF) goto yy29; -yy31: - p = marker; - goto yy2; -yy32: - yych = *++p; - if (yych <= 0x9F) goto yy31; - if (yych <= 0xBF) goto yy30; - goto yy31; -yy33: - yych = *++p; - if (yych <= 0x7F) goto yy31; - if (yych <= 0xBF) goto yy30; - goto yy31; -yy34: - yych = *++p; - if (yych <= 0x8F) goto yy31; - if (yych <= 0xBF) goto yy33; - goto yy31; -yy35: - yych = *++p; - if (yych <= 0x7F) goto yy31; - if (yych <= 0xBF) goto yy33; - goto yy31; -yy36: - yych = *++p; - if (yych <= 0x7F) goto yy31; - if (yych <= 0x8F) goto yy33; - goto yy31; -yy37: - yych = *++p; - if (yych <= 0x7F) goto yy31; - if (yych <= 0x9F) goto yy30; - goto yy31; -yy38: - yych = *++p; - if (yych == 'S') goto yy39; - if (yych != 's') goto yy31; -yy39: - yych = *++p; - if (yych == 'G') goto yy40; - if (yych != 'g') goto yy31; -yy40: - yych = *++p; - if (yych == 'R') goto yy41; - if (yych != 'r') goto yy31; -yy41: - yych = *++p; - if (yych != ':') goto yy31; -yy42: - ++p; - { return (bufsize_t)(p - start); } -yy44: - yych = *++p; - if (yych == 'E') goto yy45; - if (yych != 'e') goto yy31; -yy45: - yych = *++p; - if (yych == 'R') goto yy46; - if (yych != 'r') goto yy31; -yy46: - yych = *++p; - if (yych == 'Y') goto yy41; - if (yych == 'y') goto yy41; - goto yy31; -yy47: - yych = *++p; - if (yych == 'Y') goto yy48; - if (yych != 'y') goto yy31; -yy48: - yych = *++p; - if (yych == 'P') goto yy49; - if (yych != 'p') goto yy31; -yy49: - yych = *++p; - if (yych == 'A') goto yy50; - if (yych != 'a') goto yy31; -yy50: - yych = *++p; - if (yych == 'R') goto yy51; - if (yych != 'r') goto yy31; -yy51: - yych = *++p; - if (yych == 'C') goto yy41; - if (yych == 'c') goto yy41; - goto yy31; -yy52: - yych = *++p; - if (yych != '2') goto yy31; - yych = *++p; - if (yych == 'K') goto yy41; - if (yych == 'k') goto yy41; - goto yy31; -yy54: - yych = *++p; - if (yych == 'L') goto yy65; - if (yych == 'l') goto yy65; - goto yy31; -yy55: - yych = *++p; - if (yych == 'T') goto yy61; - if (yych == 't') goto yy61; - goto yy31; -yy56: - yych = *++p; - if (yych == 'S') goto yy57; - if (yych != 's') goto yy31; -yy57: - yych = *++p; - if (yych == 'H') goto yy58; - if (yych != 'h') goto yy31; -yy58: - yych = *++p; - if (yych == 'A') goto yy59; - if (yych != 'a') goto yy31; -yy59: - yych = *++p; - if (yych == 'R') goto yy60; - if (yych != 'r') goto yy31; -yy60: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy61: - yych = *++p; - if (yych == 'C') goto yy62; - if (yych != 'c') goto yy31; -yy62: - yych = *++p; - if (yych == 'O') goto yy63; - if (yych != 'o') goto yy31; -yy63: - yych = *++p; - if (yych == 'I') goto yy64; - if (yych != 'i') goto yy31; -yy64: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy65: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy66: - yych = *++p; - if (yych != '9') goto yy31; - yych = *++p; - if (yych != '.') goto yy31; - yych = *++p; - if (yych != '5') goto yy31; - yych = *++p; - if (yych != '0') goto yy31; - yych = *++p; - if (yych <= 'Q') goto yy31; - if (yych <= 'S') goto yy41; - if (yych <= 'q') goto yy31; - if (yych <= 's') goto yy41; - goto yy31; -yy71: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy72: - yych = *++p; - if (yych == 'I') goto yy93; - if (yych == 'i') goto yy93; - goto yy31; -yy73: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy83; - if (yych <= 'O') goto yy31; - goto yy84; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy31; - goto yy83; - } else { - if (yych == 'p') goto yy84; - goto yy31; - } - } -yy74: - yych = *++p; - if (yych == 'O') goto yy75; - if (yych != 'o') goto yy31; -yy75: - yych = *++p; - if (yych == 'N') goto yy76; - if (yych != 'n') goto yy31; -yy76: - yych = *++p; - if (yych == '-') goto yy77; - if (yych == ':') goto yy42; - goto yy31; -yy77: - yych = *++p; - if (yych == 'U') goto yy78; - if (yych != 'u') goto yy31; -yy78: - yych = *++p; - if (yych == 'S') goto yy79; - if (yych != 's') goto yy31; -yy79: - yych = *++p; - if (yych == 'E') goto yy80; - if (yych != 'e') goto yy31; -yy80: - yych = *++p; - if (yych == 'R') goto yy81; - if (yych != 'r') goto yy31; -yy81: - yych = *++p; - if (yych == 'I') goto yy82; - if (yych != 'i') goto yy31; -yy82: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy83: - yych = *++p; - if (yych == 'R') goto yy85; - if (yych == 'r') goto yy85; - goto yy31; -yy84: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy85: - yych = *++p; - if (yych == 'P') goto yy86; - if (yych != 'p') goto yy31; -yy86: - yych = *++p; - if (yych == 'C') goto yy87; - if (yych != 'c') goto yy31; -yy87: - yych = *++p; - if (yych != '.') goto yy31; - yych = *++p; - if (yych == 'B') goto yy89; - if (yych != 'b') goto yy31; -yy89: - yych = *++p; - if (yych == 'E') goto yy90; - if (yych != 'e') goto yy31; -yy90: - yych = *++p; - if (yych == 'E') goto yy91; - if (yych != 'e') goto yy31; -yy91: - yych = *++p; - if (yych == 'P') goto yy92; - if (yych != 'p') goto yy31; -yy92: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy93: - yych = *++p; - if (yych == 'R') goto yy94; - if (yych != 'r') goto yy31; -yy94: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy95: - yych = *++p; - if (yych == 'C') goto yy103; - if (yych == 'c') goto yy103; - goto yy31; -yy96: - yych = *++p; - if (yych == 'A') goto yy102; - if (yych == 'a') goto yy102; - goto yy31; -yy97: - yych = *++p; - if (yych == 'B') goto yy99; - if (yych == 'b') goto yy99; - goto yy31; -yy98: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy99: - yych = *++p; - if (yych == 'C') goto yy100; - if (yych != 'c') goto yy31; -yy100: - yych = *++p; - if (yych == 'A') goto yy101; - if (yych != 'a') goto yy31; -yy101: - yych = *++p; - if (yych == 'L') goto yy41; - if (yych == 'l') goto yy41; - goto yy31; -yy102: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy103: - yych = *++p; - if (yych == 'I') goto yy104; - if (yych != 'i') goto yy31; -yy104: - yych = *++p; - if (yych == 'W') goto yy105; - if (yych != 'w') goto yy31; -yy105: - yych = *++p; - if (yych == 'Y') goto yy106; - if (yych != 'y') goto yy31; -yy106: - yych = *++p; - if (yych == 'G') goto yy41; - if (yych == 'g') goto yy41; - goto yy31; -yy107: - yych = *++p; - if (yych == 'E') goto yy116; - if (yych == 'e') goto yy116; - goto yy31; -yy108: - yych = *++p; - if (yych <= 'N') { - if (yych <= 'L') goto yy31; - if (yych >= 'N') goto yy110; - } else { - if (yych <= 'l') goto yy31; - if (yych <= 'm') goto yy109; - if (yych <= 'n') goto yy110; - goto yy31; - } -yy109: - yych = *++p; - if (yych == 'M') goto yy115; - if (yych == 'm') goto yy115; - goto yy31; -yy110: - yych = *++p; - if (yych == 'T') goto yy111; - if (yych != 't') goto yy31; -yy111: - yych = *++p; - if (yych == 'R') goto yy112; - if (yych != 'r') goto yy31; -yy112: - yych = *++p; - if (yych == 'I') goto yy113; - if (yych != 'i') goto yy31; -yy113: - yych = *++p; - if (yych == 'L') goto yy114; - if (yych != 'l') goto yy31; -yy114: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy115: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy116: - yych = *++p; - if (yych == 'W') goto yy117; - if (yych != 'w') goto yy31; -yy117: - yych = *++p; - if (yych != '-') goto yy31; - yych = *++p; - if (yych == 'S') goto yy119; - if (yych != 's') goto yy31; -yy119: - yych = *++p; - if (yych == 'O') goto yy120; - if (yych != 'o') goto yy31; -yy120: - yych = *++p; - if (yych == 'U') goto yy121; - if (yych != 'u') goto yy31; -yy121: - yych = *++p; - if (yych == 'R') goto yy122; - if (yych != 'r') goto yy31; -yy122: - yych = *++p; - if (yych == 'C') goto yy123; - if (yych != 'c') goto yy31; -yy123: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy124: - yych = *++p; - if (yych == '2') goto yy131; - goto yy31; -yy125: - yych = *++p; - if (yych == 'R') goto yy128; - if (yych == 'r') goto yy128; - goto yy31; -yy126: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy127: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy128: - yych = *++p; - if (yych == 'E') goto yy129; - if (yych != 'e') goto yy31; -yy129: - yych = *++p; - if (yych == 'A') goto yy130; - if (yych != 'a') goto yy31; -yy130: - yych = *++p; - if (yych == 'L') goto yy41; - if (yych == 'l') goto yy41; - goto yy31; -yy131: - yych = *++p; - if (yych != '0') goto yy31; - yych = *++p; - if (yych != '0') goto yy31; - yych = *++p; - if (yych == '4') goto yy41; - goto yy31; -yy134: - yych = *++p; - if (yych == 'I') goto yy153; - if (yych == 'i') goto yy153; - goto yy31; -yy135: - yych = *++p; - if (yych <= 'L') { - if (yych == 'A') goto yy145; - if (yych <= 'K') goto yy31; - goto yy144; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy31; - goto yy145; - } else { - if (yych == 'l') goto yy144; - goto yy31; - } - } -yy136: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy137: - yych = *++p; - if (yych == '3') goto yy141; - goto yy31; -yy138: - yych = *++p; - if (yych == 'T') goto yy140; - if (yych == 't') goto yy140; - goto yy31; -yy139: - yych = *++p; - if (yych == 'G') goto yy41; - if (yych == 'g') goto yy41; - goto yy31; -yy140: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy141: - yych = *++p; - if (yych != '2') goto yy31; - yych = *++p; - if (yych != '7') goto yy31; - yych = *++p; - if (yych == '0') goto yy41; - goto yy31; -yy144: - yych = *++p; - if (yych <= 'M') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'N') goto yy151; - if (yych == 'n') goto yy151; - goto yy31; - } -yy145: - yych = *++p; - if (yych == 'M') goto yy146; - if (yych != 'm') goto yy31; -yy146: - yych = *++p; - if (yych == 'S') goto yy147; - if (yych != 's') goto yy31; -yy147: - yych = *++p; - if (yych == 'P') goto yy148; - if (yych != 'p') goto yy31; -yy148: - yych = *++p; - if (yych == 'E') goto yy149; - if (yych != 'e') goto yy31; -yy149: - yych = *++p; - if (yych == 'A') goto yy150; - if (yych != 'a') goto yy31; -yy150: - yych = *++p; - if (yych == 'K') goto yy41; - if (yych == 'k') goto yy41; - goto yy31; -yy151: - yych = *++p; - if (yych == 'E') goto yy152; - if (yych != 'e') goto yy31; -yy152: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy153: - yych = *++p; - if (yych <= 'S') { - if (yych == 'N') goto yy154; - if (yych <= 'R') goto yy31; - goto yy155; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy31; - } else { - if (yych == 's') goto yy155; - goto yy31; - } - } -yy154: - yych = *++p; - if (yych == 'G') goto yy162; - if (yych == 'g') goto yy162; - goto yy31; -yy155: - yych = *++p; - if (yych == 'M') goto yy156; - if (yych != 'm') goto yy31; -yy156: - yych = *++p; - if (yych == 'E') goto yy157; - if (yych != 'e') goto yy31; -yy157: - yych = *++p; - if (yych == 'S') goto yy158; - if (yych != 's') goto yy31; -yy158: - yych = *++p; - if (yych == 'S') goto yy159; - if (yych != 's') goto yy31; -yy159: - yych = *++p; - if (yych == 'A') goto yy160; - if (yych != 'a') goto yy31; -yy160: - yych = *++p; - if (yych == 'G') goto yy161; - if (yych != 'g') goto yy31; -yy161: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy162: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy163: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy164: - yych = *++p; - if (yych == 'E') goto yy214; - if (yych == 'e') goto yy214; - goto yy31; -yy165: - yych = *++p; - if (yych == 'H') goto yy41; - if (yych == 'h') goto yy41; - goto yy31; -yy166: - yych = *++p; - if (yych == 'O') goto yy210; - if (yych == 'o') goto yy210; - goto yy31; -yy167: - yych = *++p; - if (yych <= 'L') { - if (yych == 'A') goto yy200; - if (yych <= 'K') goto yy31; - goto yy201; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy31; - goto yy200; - } else { - if (yych == 'l') goto yy201; - goto yy31; - } - } -yy168: - yych = *++p; - if (yych <= 'S') { - if (yych == 'B') goto yy41; - if (yych <= 'R') goto yy31; - goto yy41; - } else { - if (yych <= 'b') { - if (yych <= 'a') goto yy31; - goto yy41; - } else { - if (yych == 's') goto yy41; - goto yy31; - } - } -yy169: - yych = *++p; - if (yych == 'Y') goto yy198; - if (yych == 'y') goto yy198; - goto yy31; -yy170: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy171: - yych = *++p; - if (yych == 'T') goto yy197; - if (yych == 't') goto yy197; - goto yy31; -yy172: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'C') { - if (yych <= 'B') goto yy31; - goto yy184; - } else { - if (yych <= 'Q') goto yy31; - if (yych <= 'R') goto yy182; - goto yy183; - } - } else { - if (yych <= 'q') { - if (yych == 'c') goto yy184; - goto yy31; - } else { - if (yych <= 'r') goto yy182; - if (yych <= 's') goto yy183; - goto yy31; - } - } -yy173: - yych = *++p; - if (yych == 'M') goto yy181; - if (yych == 'm') goto yy181; - goto yy31; -yy174: - yych = *++p; - if (yych <= 'P') { - if (yych == 'E') goto yy178; - if (yych <= 'O') goto yy31; - goto yy179; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy31; - goto yy178; - } else { - if (yych == 'p') goto yy179; - goto yy31; - } - } -yy175: - yych = *++p; - if (yych == 'T') goto yy176; - if (yych != 't') goto yy31; -yy176: - yych = *++p; - if (yych == 'T') goto yy177; - if (yych != 't') goto yy31; -yy177: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy178: - yych = *++p; - if (yych == 'V') goto yy180; - if (yych == 'v') goto yy180; - goto yy31; -yy179: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy180: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy181: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy182: - yych = *++p; - if (yych == 'V') goto yy194; - if (yych == 'v') goto yy194; - goto yy31; -yy183: - yych = *++p; - if (yych == 'S') goto yy191; - if (yych == 's') goto yy191; - goto yy31; -yy184: - yych = *++p; - if (yych == 'O') goto yy185; - if (yych != 'o') goto yy31; -yy185: - yych = *++p; - if (yych == 'N') goto yy186; - if (yych != 'n') goto yy31; -yy186: - yych = *++p; - if (yych == 'D') goto yy187; - if (yych != 'd') goto yy31; -yy187: - yych = *++p; - if (yych == 'L') goto yy188; - if (yych != 'l') goto yy31; -yy188: - yych = *++p; - if (yych == 'I') goto yy189; - if (yych != 'i') goto yy31; -yy189: - yych = *++p; - if (yych == 'F') goto yy190; - if (yych != 'f') goto yy31; -yy190: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy191: - yych = *++p; - if (yych == 'I') goto yy192; - if (yych != 'i') goto yy31; -yy192: - yych = *++p; - if (yych == 'O') goto yy193; - if (yych != 'o') goto yy31; -yy193: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy194: - yych = *++p; - if (yych == 'I') goto yy195; - if (yych != 'i') goto yy31; -yy195: - yych = *++p; - if (yych == 'C') goto yy196; - if (yych != 'c') goto yy31; -yy196: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy197: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy198: - yych = *++p; - if (yych == 'P') goto yy199; - if (yych != 'p') goto yy31; -yy199: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy200: - yych = *++p; - if (yych == 'P') goto yy204; - if (yych == 'p') goto yy204; - goto yy31; -yy201: - yych = *++p; - if (yych == 'D') goto yy202; - if (yych != 'd') goto yy31; -yy202: - yych = *++p; - if (yych == 'A') goto yy203; - if (yych != 'a') goto yy31; -yy203: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy204: - yych = *++p; - if (yych != '.') goto yy31; - yych = *++p; - if (yych == 'B') goto yy206; - if (yych != 'b') goto yy31; -yy206: - yych = *++p; - if (yych == 'E') goto yy207; - if (yych != 'e') goto yy31; -yy207: - yych = *++p; - if (yych == 'E') goto yy208; - if (yych != 'e') goto yy31; -yy208: - yych = *++p; - if (yych == 'P') goto yy209; - if (yych != 'p') goto yy31; -yy209: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy210: - yych = *++p; - if (yych == 'T') goto yy211; - if (yych != 't') goto yy31; -yy211: - yych = *++p; - if (yych == 'I') goto yy212; - if (yych != 'i') goto yy31; -yy212: - yych = *++p; - if (yych == 'F') goto yy213; - if (yych != 'f') goto yy31; -yy213: - yych = *++p; - if (yych == 'Y') goto yy41; - if (yych == 'y') goto yy41; - goto yy31; -yy214: - yych = *++p; - if (yych == 'A') goto yy215; - if (yych != 'a') goto yy31; -yy215: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy216: - yych = *++p; - if (yych <= 'S') { - if (yych == 'M') goto yy228; - if (yych <= 'R') goto yy31; - goto yy227; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy31; - goto yy228; - } else { - if (yych == 's') goto yy227; - goto yy31; - } - } -yy217: - yych = *++p; - if (yych == 'Y') goto yy225; - if (yych == 'y') goto yy225; - goto yy31; -yy218: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy219: - yych = *++p; - if (yych == 'S') goto yy220; - if (yych != 's') goto yy31; -yy220: - yych = *++p; - if (yych <= 'N') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'O') goto yy221; - if (yych != 'o') goto yy31; - } -yy221: - yych = *++p; - if (yych == 'U') goto yy222; - if (yych != 'u') goto yy31; -yy222: - yych = *++p; - if (yych == 'R') goto yy223; - if (yych != 'r') goto yy31; -yy223: - yych = *++p; - if (yych == 'C') goto yy224; - if (yych != 'c') goto yy31; -yy224: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy225: - yych = *++p; - if (yych == 'N') goto yy226; - if (yych != 'n') goto yy31; -yy226: - yych = *++p; - if (yych == 'C') goto yy41; - if (yych == 'c') goto yy41; - goto yy31; -yy227: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy228: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy229: - yych = *++p; - if (yych == 'Y') goto yy249; - if (yych == 'y') goto yy249; - goto yy31; -yy230: - yych = *++p; - if (yych <= 'O') { - if (yych == 'E') goto yy246; - if (yych <= 'N') goto yy31; - goto yy247; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy31; - goto yy246; - } else { - if (yych == 'o') goto yy247; - goto yy31; - } - } -yy231: - yych = *++p; - if (yych == 'A') goto yy241; - if (yych == 'a') goto yy241; - goto yy31; -yy232: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy234; - if (yych <= 'O') goto yy31; - goto yy235; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy31; - goto yy234; - } else { - if (yych == 'p') goto yy235; - goto yy31; - } - } -yy233: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy234: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy235: - yych = *++p; - if (yych == 'A') goto yy236; - if (yych != 'a') goto yy31; -yy236: - yych = *++p; - if (yych == 'R') goto yy237; - if (yych != 'r') goto yy31; -yy237: - yych = *++p; - if (yych == 'A') goto yy238; - if (yych != 'a') goto yy31; -yy238: - yych = *++p; - if (yych == 'Z') goto yy239; - if (yych != 'z') goto yy31; -yy239: - yych = *++p; - if (yych == 'Z') goto yy240; - if (yych != 'z') goto yy31; -yy240: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy241: - yych = *++p; - if (yych == 'T') goto yy242; - if (yych != 't') goto yy31; -yy242: - yych = *++p; - if (yych == 'F') goto yy243; - if (yych != 'f') goto yy31; -yy243: - yych = *++p; - if (yych == 'O') goto yy244; - if (yych != 'o') goto yy31; -yy244: - yych = *++p; - if (yych == 'R') goto yy245; - if (yych != 'r') goto yy31; -yy245: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy246: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy247: - yych = *++p; - if (yych == 'X') goto yy248; - if (yych != 'x') goto yy31; -yy248: - yych = *++p; - if (yych == 'Y') goto yy41; - if (yych == 'y') goto yy41; - goto yy31; -yy249: - yych = *++p; - if (yych == 'C') goto yy41; - if (yych == 'c') goto yy41; - goto yy31; -yy250: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy251: - yych = *++p; - if (yych == 'A') goto yy252; - if (yych != 'a') goto yy31; -yy252: - yych = *++p; - if (yych == 'Q') goto yy253; - if (yych != 'q') goto yy31; -yy253: - yych = *++p; - if (yych == 'U') goto yy254; - if (yych != 'u') goto yy31; -yy254: - yych = *++p; - if (yych == 'E') goto yy255; - if (yych != 'e') goto yy31; -yy255: - yych = *++p; - if (yych == 'L') goto yy256; - if (yych != 'l') goto yy31; -yy256: - yych = *++p; - if (yych == 'O') goto yy257; - if (yych != 'o') goto yy31; -yy257: - yych = *++p; - if (yych == 'C') goto yy258; - if (yych != 'c') goto yy31; -yy258: - yych = *++p; - if (yych == 'K') goto yy259; - if (yych != 'k') goto yy31; -yy259: - yych = *++p; - if (yych == 'T') goto yy260; - if (yych != 't') goto yy31; -yy260: - yych = *++p; - if (yych == 'O') goto yy261; - if (yych != 'o') goto yy31; -yy261: - yych = *++p; - if (yych == 'K') goto yy262; - if (yych != 'k') goto yy31; -yy262: - yych = *++p; - if (yych == 'E') goto yy263; - if (yych != 'e') goto yy31; -yy263: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy264: - yych = *++p; - if (yych == 'T') goto yy271; - if (yych == 't') goto yy271; - goto yy31; -yy265: - yych = *++p; - if (yych == 'T') goto yy270; - if (yych == 't') goto yy270; - goto yy31; -yy266: - yych = *++p; - if (yych <= 'G') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'H') goto yy41; - if (yych == 'h') goto yy41; - goto yy31; - } -yy267: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy268: - yych = *++p; - if (yych == 'W') goto yy269; - if (yych != 'w') goto yy31; -yy269: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy270: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy271: - yych = *++p; - if (yych == 'E') goto yy272; - if (yych != 'e') goto yy31; -yy272: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy273: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy274: - yych = *++p; - if (yych <= 'P') { - if (yych == 'M') goto yy305; - if (yych <= 'O') goto yy31; - goto yy304; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy31; - goto yy305; - } else { - if (yych == 'p') goto yy304; - goto yy31; - } - } -yy275: - yych = *++p; - if (yych <= 'Q') { - if (yych <= '-') { - if (yych <= ',') goto yy31; - goto yy297; - } else { - if (yych == 'N') goto yy298; - goto yy31; - } - } else { - if (yych <= 'n') { - if (yych <= 'R') goto yy296; - if (yych <= 'm') goto yy31; - goto yy298; - } else { - if (yych == 'r') goto yy296; - goto yy31; - } - } -yy276: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy277: - yych = *++p; - if (yych == 'S') goto yy292; - if (yych == 's') goto yy292; - goto yy31; -yy278: - yych = *++p; - switch (yych) { - case 'G': - case 'g': goto yy283; - case 'I': - case 'i': goto yy282; - case 'P': - case 'p': goto yy284; - case 'R': - case 'r': goto yy285; - default: goto yy31; - } -yy279: - yych = *++p; - if (yych == 'Q') goto yy281; - if (yych == 'q') goto yy281; - goto yy31; -yy280: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy281: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy282: - yych = *++p; - if (yych == 'L') goto yy290; - if (yych == 'l') goto yy290; - goto yy31; -yy283: - yych = *++p; - if (yych == 'N') goto yy288; - if (yych == 'n') goto yy288; - goto yy31; -yy284: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy285: - yych = *++p; - if (yych == 'K') goto yy286; - if (yych != 'k') goto yy31; -yy286: - yych = *++p; - if (yych == 'E') goto yy287; - if (yych != 'e') goto yy31; -yy287: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy288: - yych = *++p; - if (yych == 'E') goto yy289; - if (yych != 'e') goto yy31; -yy289: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy290: - yych = *++p; - if (yych == 'T') goto yy291; - if (yych != 't') goto yy31; -yy291: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy292: - yych = *++p; - if (yych == 'S') goto yy293; - if (yych != 's') goto yy31; -yy293: - yych = *++p; - if (yych == 'A') goto yy294; - if (yych != 'a') goto yy31; -yy294: - yych = *++p; - if (yych == 'G') goto yy295; - if (yych != 'g') goto yy31; -yy295: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy296: - yych = *++p; - if (yych == 'P') goto yy303; - if (yych == 'p') goto yy303; - goto yy31; -yy297: - yych = *++p; - if (yych == 'H') goto yy300; - if (yych == 'h') goto yy300; - goto yy31; -yy298: - yych = *++p; - if (yych == 'I') goto yy299; - if (yych != 'i') goto yy31; -yy299: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy300: - yych = *++p; - if (yych == 'E') goto yy301; - if (yych != 'e') goto yy31; -yy301: - yych = *++p; - if (yych == 'L') goto yy302; - if (yych != 'l') goto yy31; -yy302: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy303: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy304: - yych = *++p; - if (yych == 'D') goto yy308; - if (yych == 'd') goto yy308; - goto yy31; -yy305: - yych = *++p; - if (yych == 'B') goto yy306; - if (yych != 'b') goto yy31; -yy306: - yych = *++p; - if (yych == 'L') goto yy307; - if (yych != 'l') goto yy31; -yy307: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy308: - yych = *++p; - if (yych == 'A') goto yy309; - if (yych != 'a') goto yy31; -yy309: - yych = *++p; - if (yych == 'T') goto yy310; - if (yych != 't') goto yy31; -yy310: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy311: - yych = *++p; - if (yych == 'A') goto yy316; - if (yych == 'a') goto yy316; - goto yy31; -yy312: - yych = *++p; - if (yych == 'S') goto yy313; - if (yych != 's') goto yy31; -yy313: - yych = *++p; - if (yych == 'T') goto yy314; - if (yych != 't') goto yy31; -yy314: - yych = *++p; - if (yych == 'F') goto yy315; - if (yych != 'f') goto yy31; -yy315: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy316: - yych = *++p; - if (yych == 'P') goto yy317; - if (yych != 'p') goto yy31; -yy317: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy318: - yych = *++p; - if (yych == 'M') goto yy341; - if (yych == 'm') goto yy341; - goto yy31; -yy319: - yych = *++p; - if (yych <= 'I') { - if (yych == 'C') goto yy330; - if (yych <= 'H') goto yy31; - goto yy329; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy31; - goto yy330; - } else { - if (yych == 'i') goto yy329; - goto yy31; - } - } -yy320: - yych = *++p; - if (yych <= 'P') { - if (yych == 'N') goto yy41; - if (yych <= 'O') goto yy31; - goto yy41; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy31; - goto yy41; - } else { - if (yych == 'p') goto yy41; - goto yy31; - } - } -yy321: - yych = *++p; - if (yych <= 'O') { - if (yych == 'A') goto yy327; - if (yych <= 'N') goto yy31; - goto yy328; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy31; - goto yy327; - } else { - if (yych == 'o') goto yy328; - goto yy31; - } - } -yy322: - yych = *++p; - if (yych == 'F') goto yy326; - if (yych == 'f') goto yy326; - goto yy31; -yy323: - yych = *++p; - if (yych <= '@') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'A') goto yy325; - if (yych == 'a') goto yy325; - goto yy31; - } -yy324: - yych = *++p; - if (yych == 'X') goto yy41; - if (yych == 'x') goto yy41; - goto yy31; -yy325: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy326: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy327: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy328: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy329: - yych = *++p; - if (yych == 'S') goto yy331; - if (yych == 's') goto yy331; - goto yy31; -yy330: - yych = *++p; - if (yych <= ':') { - if (yych == '6') goto yy41; - if (yych <= '9') goto yy31; - goto yy42; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy31; - goto yy41; - } else { - if (yych == 's') goto yy41; - goto yy31; - } - } -yy331: - yych = *++p; - if (yych == '.') goto yy332; - if (yych == ':') goto yy42; - goto yy31; -yy332: - yych = *++p; - if (yych <= 'X') { - if (yych <= 'K') { - if (yych == 'B') goto yy335; - goto yy31; - } else { - if (yych <= 'L') goto yy333; - if (yych <= 'W') goto yy31; - goto yy334; - } - } else { - if (yych <= 'k') { - if (yych == 'b') goto yy335; - goto yy31; - } else { - if (yych <= 'l') goto yy333; - if (yych == 'x') goto yy334; - goto yy31; - } - } -yy333: - yych = *++p; - if (yych == 'W') goto yy340; - if (yych == 'w') goto yy340; - goto yy31; -yy334: - yych = *++p; - if (yych == 'P') goto yy338; - if (yych == 'p') goto yy338; - goto yy31; -yy335: - yych = *++p; - if (yych == 'E') goto yy336; - if (yych != 'e') goto yy31; -yy336: - yych = *++p; - if (yych == 'E') goto yy337; - if (yych != 'e') goto yy31; -yy337: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy338: - yych = *++p; - if (yych == 'C') goto yy339; - if (yych != 'c') goto yy31; -yy339: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy340: - yych = *++p; - if (yych == 'Z') goto yy41; - if (yych == 'z') goto yy41; - goto yy31; -yy341: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy342: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy343: - yych = *++p; - if (yych == 'T') goto yy346; - if (yych == 't') goto yy346; - goto yy31; -yy344: - yych = *++p; - if (yych != '2') goto yy31; - yych = *++p; - if (yych == '3') goto yy41; - goto yy31; -yy346: - yych = *++p; - if (yych == 'P') goto yy347; - if (yych != 'p') goto yy31; -yy347: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy348: - yych = *++p; - if (yych == 'A') goto yy364; - if (yych == 'a') goto yy364; - goto yy31; -yy349: - yych = *++p; - if (yych <= 'Z') { - if (yych == 'T') goto yy41; - if (yych <= 'Y') goto yy31; - goto yy355; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy31; - goto yy41; - } else { - if (yych == 'z') goto yy355; - goto yy31; - } - } -yy350: - yych = *++p; - if (yych <= 'O') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'P') goto yy352; - if (yych == 'p') goto yy352; - goto yy31; - } -yy351: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy352: - yych = *++p; - if (yych == 'H') goto yy353; - if (yych != 'h') goto yy31; -yy353: - yych = *++p; - if (yych == 'E') goto yy354; - if (yych != 'e') goto yy31; -yy354: - yych = *++p; - if (yych == 'R') goto yy41; - if (yych == 'r') goto yy41; - goto yy31; -yy355: - yych = *++p; - if (yych == 'M') goto yy356; - if (yych != 'm') goto yy31; -yy356: - yych = *++p; - if (yych == 'O') goto yy357; - if (yych != 'o') goto yy31; -yy357: - yych = *++p; - if (yych == 'P') goto yy358; - if (yych != 'p') goto yy31; -yy358: - yych = *++p; - if (yych == 'R') goto yy359; - if (yych != 'r') goto yy31; -yy359: - yych = *++p; - if (yych == 'O') goto yy360; - if (yych != 'o') goto yy31; -yy360: - yych = *++p; - if (yych == 'J') goto yy361; - if (yych != 'j') goto yy31; -yy361: - yych = *++p; - if (yych == 'E') goto yy362; - if (yych != 'e') goto yy31; -yy362: - yych = *++p; - if (yych == 'C') goto yy363; - if (yych != 'c') goto yy31; -yy363: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy364: - yych = *++p; - if (yych == 'L') goto yy365; - if (yych != 'l') goto yy31; -yy365: - yych = *++p; - if (yych == 'K') goto yy41; - if (yych == 'k') goto yy41; - goto yy31; -yy366: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'M') { - if (yych == 'L') goto yy376; - goto yy31; - } else { - if (yych <= 'N') goto yy377; - if (yych <= 'R') goto yy31; - goto yy378; - } - } else { - if (yych <= 'm') { - if (yych == 'l') goto yy376; - goto yy31; - } else { - if (yych <= 'n') goto yy377; - if (yych == 's') goto yy378; - goto yy31; - } - } -yy367: - yych = *++p; - if (yych == 'E') goto yy375; - if (yych == 'e') goto yy375; - goto yy31; -yy368: - yych = *++p; - if (yych == 'C') goto yy370; - if (yych == 'c') goto yy370; - goto yy31; -yy369: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy370: - yych = *++p; - if (yych == 'E') goto yy371; - if (yych != 'e') goto yy31; -yy371: - yych = *++p; - if (yych == 'T') goto yy372; - if (yych != 't') goto yy31; -yy372: - yych = *++p; - if (yych == 'I') goto yy373; - if (yych != 'i') goto yy31; -yy373: - yych = *++p; - if (yych == 'M') goto yy374; - if (yych != 'm') goto yy31; -yy374: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy375: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy376: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy377: - yych = *++p; - if (yych == 'G') goto yy379; - if (yych == 'g') goto yy379; - goto yy31; -yy378: - yych = *++p; - if (yych == 'H') goto yy41; - if (yych == 'h') goto yy41; - goto yy31; -yy379: - yych = *++p; - if (yych == 'E') goto yy380; - if (yych != 'e') goto yy31; -yy380: - yych = *++p; - if (yych == 'R') goto yy41; - if (yych == 'r') goto yy41; - goto yy31; -yy381: - yych = *++p; - if (yych == 'T') goto yy399; - if (yych == 't') goto yy399; - goto yy31; -yy382: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy383: - yych = *++p; - if (yych == 'M') goto yy41; - if (yych == 'm') goto yy41; - goto yy31; -yy384: - yych = *++p; - if (yych <= 'S') { - if (yych == 'P') goto yy41; - if (yych <= 'R') goto yy31; - goto yy41; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy31; - goto yy41; - } else { - if (yych == 's') goto yy41; - goto yy31; - } - } -yy385: - yych = *++p; - if (yych == 'I') goto yy393; - if (yych == 'i') goto yy393; - goto yy31; -yy386: - yych = *++p; - if (yych == 'A') goto yy392; - if (yych == 'a') goto yy392; - goto yy31; -yy387: - yych = *++p; - if (yych == 'O') goto yy390; - if (yych == 'o') goto yy390; - goto yy31; -yy388: - yych = *++p; - if (yych == 'A') goto yy389; - if (yych != 'a') goto yy31; -yy389: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy42; - goto yy31; - } else { - if (yych <= 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; - } -yy390: - yych = *++p; - if (yych == 'U') goto yy391; - if (yych != 'u') goto yy31; -yy391: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy392: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy393: - yych = *++p; - if (yych == 'U') goto yy394; - if (yych != 'u') goto yy31; -yy394: - yych = *++p; - if (yych == 'M') goto yy395; - if (yych != 'm') goto yy31; -yy395: - yych = *++p; - if (yych == 'X') goto yy396; - if (yych != 'x') goto yy31; -yy396: - yych = *++p; - if (yych == 'T') goto yy397; - if (yych != 't') goto yy31; -yy397: - yych = *++p; - if (yych == 'R') goto yy398; - if (yych != 'r') goto yy31; -yy398: - yych = *++p; - if (yych == 'A') goto yy41; - if (yych == 'a') goto yy41; - goto yy31; -yy399: - yych = *++p; - if (yych == 'A') goto yy400; - if (yych != 'a') goto yy31; -yy400: - yych = *++p; - if (yych == 'C') goto yy401; - if (yych != 'c') goto yy31; -yy401: - yych = *++p; - if (yych == 'H') goto yy402; - if (yych != 'h') goto yy31; -yy402: - yych = *++p; - if (yych == 'M') goto yy403; - if (yych != 'm') goto yy31; -yy403: - yych = *++p; - if (yych == 'E') goto yy404; - if (yych != 'e') goto yy31; -yy404: - yych = *++p; - if (yych == 'N') goto yy405; - if (yych != 'n') goto yy31; -yy405: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy406: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy407: - yych = *++p; - if (yych <= 'V') { - if (yych == 'R') goto yy41; - if (yych <= 'U') goto yy31; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy31; - goto yy41; - } else { - if (yych != 'v') goto yy31; - } - } - yych = *++p; - if (yych == 'A') goto yy409; - if (yych != 'a') goto yy31; -yy409: - yych = *++p; - if (yych == 'S') goto yy410; - if (yych != 's') goto yy31; -yy410: - yych = *++p; - if (yych == 'C') goto yy411; - if (yych != 'c') goto yy31; -yy411: - yych = *++p; - if (yych == 'R') goto yy412; - if (yych != 'r') goto yy31; -yy412: - yych = *++p; - if (yych == 'I') goto yy413; - if (yych != 'i') goto yy31; -yy413: - yych = *++p; - if (yych == 'P') goto yy414; - if (yych != 'p') goto yy31; -yy414: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy415: - yych = *++p; - if (yych == 'B') goto yy41; - if (yych == 'b') goto yy41; - goto yy31; -yy416: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy417: - yych = *++p; - if (yych == 'N') goto yy424; - if (yych == 'n') goto yy424; - goto yy31; -yy418: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy419: - yych = *++p; - if (yych == 'C') goto yy423; - if (yych == 'c') goto yy423; - goto yy31; -yy420: - yych = *++p; - if (yych <= 'V') { - if (yych == 'T') goto yy422; - if (yych <= 'U') goto yy31; - goto yy41; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy31; - goto yy422; - } else { - if (yych == 'v') goto yy41; - goto yy31; - } - } -yy421: - yych = *++p; - if (yych == 'I') goto yy41; - if (yych == 'i') goto yy41; - goto yy31; -yy422: - yych = *++p; - if (yych == 'A') goto yy41; - if (yych == 'a') goto yy41; - goto yy31; -yy423: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy424: - yych = *++p; - if (yych == 'A') goto yy425; - if (yych != 'a') goto yy31; -yy425: - yych = *++p; - if (yych != '-') goto yy31; - yych = *++p; - if (yych == 'P') goto yy427; - if (yych != 'p') goto yy31; -yy427: - yych = *++p; - if (yych == 'L') goto yy428; - if (yych != 'l') goto yy31; -yy428: - yych = *++p; - if (yych == 'A') goto yy429; - if (yych != 'a') goto yy31; -yy429: - yych = *++p; - if (yych == 'Y') goto yy430; - if (yych != 'y') goto yy31; -yy430: - yych = *++p; - if (yych <= 'S') { - if (yych == 'C') goto yy431; - if (yych <= 'R') goto yy31; - goto yy432; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy31; - } else { - if (yych == 's') goto yy432; - goto yy31; - } - } -yy431: - yych = *++p; - if (yych == 'O') goto yy437; - if (yych == 'o') goto yy437; - goto yy31; -yy432: - yych = *++p; - if (yych == 'I') goto yy433; - if (yych != 'i') goto yy31; -yy433: - yych = *++p; - if (yych == 'N') goto yy434; - if (yych != 'n') goto yy31; -yy434: - yych = *++p; - if (yych == 'G') goto yy435; - if (yych != 'g') goto yy31; -yy435: - yych = *++p; - if (yych == 'L') goto yy436; - if (yych != 'l') goto yy31; -yy436: - yych = *++p; - if (yych == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -yy437: - yych = *++p; - if (yych == 'N') goto yy438; - if (yych != 'n') goto yy31; -yy438: - yych = *++p; - if (yych == 'T') goto yy439; - if (yych != 't') goto yy31; -yy439: - yych = *++p; - if (yych == 'A') goto yy440; - if (yych != 'a') goto yy31; -yy440: - yych = *++p; - if (yych == 'I') goto yy441; - if (yych != 'i') goto yy31; -yy441: - yych = *++p; - if (yych == 'N') goto yy442; - if (yych != 'n') goto yy31; -yy442: - yych = *++p; - if (yych == 'E') goto yy443; - if (yych != 'e') goto yy31; -yy443: - yych = *++p; - if (yych == 'R') goto yy41; - if (yych == 'r') goto yy41; - goto yy31; -yy444: - yych = *++p; - if (yych == 'S') goto yy41; - if (yych == 's') goto yy41; - goto yy31; -yy445: - yych = *++p; - if (yych <= 'N') { - if (yych <= 'A') { - if (yych <= '@') goto yy31; - goto yy467; - } else { - if (yych <= 'L') goto yy31; - if (yych <= 'M') goto yy468; - goto yy469; - } - } else { - if (yych <= 'l') { - if (yych == 'a') goto yy467; - goto yy31; - } else { - if (yych <= 'm') goto yy468; - if (yych <= 'n') goto yy469; - goto yy31; - } - } -yy446: - yych = *++p; - if (yych == 'R') goto yy454; - if (yych == 'r') goto yy454; - goto yy31; -yy447: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy451; - if (yych <= 'O') goto yy31; - goto yy41; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy31; - goto yy451; - } else { - if (yych == 'p') goto yy41; - goto yy31; - } - } -yy448: - yych = *++p; - if (yych == 'I') goto yy450; - if (yych == 'i') goto yy450; - goto yy31; -yy449: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy450: - yych = *++p; - if (yych == 'D') goto yy41; - if (yych == 'd') goto yy41; - goto yy31; -yy451: - yych = *++p; - if (yych == 'L') goto yy452; - if (yych != 'l') goto yy31; -yy452: - yych = *++p; - if (yych == 'T') goto yy453; - if (yych != 't') goto yy31; -yy453: - yych = *++p; - if (yych == 'O') goto yy41; - if (yych == 'o') goto yy41; - goto yy31; -yy454: - yych = *++p; - if (yych == 'O') goto yy455; - if (yych != 'o') goto yy31; -yy455: - yych = *++p; - if (yych == 'M') goto yy456; - if (yych != 'm') goto yy31; -yy456: - yych = *++p; - if (yych == 'E') goto yy457; - if (yych != 'e') goto yy31; -yy457: - yych = *++p; - if (yych == '-') goto yy458; - if (yych == ':') goto yy42; - goto yy31; -yy458: - yych = *++p; - if (yych == 'E') goto yy459; - if (yych != 'e') goto yy31; -yy459: - yych = *++p; - if (yych == 'X') goto yy460; - if (yych != 'x') goto yy31; -yy460: - yych = *++p; - if (yych == 'T') goto yy461; - if (yych != 't') goto yy31; -yy461: - yych = *++p; - if (yych == 'E') goto yy462; - if (yych != 'e') goto yy31; -yy462: - yych = *++p; - if (yych == 'N') goto yy463; - if (yych != 'n') goto yy31; -yy463: - yych = *++p; - if (yych == 'S') goto yy464; - if (yych != 's') goto yy31; -yy464: - yych = *++p; - if (yych == 'I') goto yy465; - if (yych != 'i') goto yy31; -yy465: - yych = *++p; - if (yych == 'O') goto yy466; - if (yych != 'o') goto yy31; -yy466: - yych = *++p; - if (yych == 'N') goto yy41; - if (yych == 'n') goto yy41; - goto yy31; -yy467: - yych = *++p; - if (yych == 'P') goto yy41; - if (yych == 'p') goto yy41; - goto yy31; -yy468: - yych = *++p; - if (yych == '-') goto yy473; - goto yy31; -yy469: - yych = *++p; - if (yych == 'T') goto yy470; - if (yych != 't') goto yy31; -yy470: - yych = *++p; - if (yych == 'E') goto yy471; - if (yych != 'e') goto yy31; -yy471: - yych = *++p; - if (yych == 'N') goto yy472; - if (yych != 'n') goto yy31; -yy472: - yych = *++p; - if (yych == 'T') goto yy41; - if (yych == 't') goto yy41; - goto yy31; -yy473: - yych = *++p; - if (yych == 'E') goto yy474; - if (yych != 'e') goto yy31; -yy474: - yych = *++p; - if (yych == 'V') goto yy475; - if (yych != 'v') goto yy31; -yy475: - yych = *++p; - if (yych == 'E') goto yy476; - if (yych != 'e') goto yy31; -yy476: - yych = *++p; - if (yych == 'N') goto yy477; - if (yych != 'n') goto yy31; -yy477: - yych = *++p; - if (yych == 'T') goto yy478; - if (yych != 't') goto yy31; -yy478: - yych = *++p; - if (yych == 'B') goto yy479; - if (yych != 'b') goto yy31; -yy479: - yych = *++p; - if (yych == 'R') goto yy480; - if (yych != 'r') goto yy31; -yy480: - yych = *++p; - if (yych == 'I') goto yy481; - if (yych != 'i') goto yy31; -yy481: - yych = *++p; - if (yych == 'T') goto yy482; - if (yych != 't') goto yy31; -yy482: - yych = *++p; - if (yych == 'E') goto yy483; - if (yych != 'e') goto yy31; -yy483: - yych = *++p; - if (yych != '-') goto yy31; - yych = *++p; - if (yych == 'A') goto yy485; - if (yych != 'a') goto yy31; -yy485: - yych = *++p; - if (yych == 'T') goto yy486; - if (yych != 't') goto yy31; -yy486: - yych = *++p; - if (yych == 'T') goto yy487; - if (yych != 't') goto yy31; -yy487: - yych = *++p; - if (yych == 'E') goto yy488; - if (yych != 'e') goto yy31; -yy488: - yych = *++p; - if (yych == 'N') goto yy489; - if (yych != 'n') goto yy31; -yy489: - yych = *++p; - if (yych == 'D') goto yy490; - if (yych != 'd') goto yy31; -yy490: - yych = *++p; - if (yych == 'E') goto yy491; - if (yych != 'e') goto yy31; -yy491: - ++p; - if ((yych = *p) == 'E') goto yy41; - if (yych == 'e') goto yy41; - goto yy31; -} + { + unsigned char yych; + yych = *(marker = p); + if (yych <= 'c') { + if (yych <= 'M') { + if (yych <= 'E') { + if (yych <= 'A') { + if (yych == '\n') + goto yy2; + if (yych <= '@') + goto yy29; + goto yy6; + } else { + if (yych <= 'B') + goto yy24; + if (yych <= 'C') + goto yy3; + if (yych <= 'D') + goto yy4; + goto yy25; + } + } else { + if (yych <= 'I') { + if (yych <= 'F') + goto yy7; + if (yych <= 'G') + goto yy8; + if (yych <= 'H') + goto yy9; + goto yy10; + } else { + if (yych <= 'J') + goto yy5; + if (yych <= 'K') + goto yy26; + if (yych <= 'L') + goto yy11; + goto yy12; + } + } + } else { + if (yych <= 'U') { + if (yych <= 'Q') { + if (yych <= 'N') + goto yy13; + if (yych <= 'O') + goto yy14; + if (yych <= 'P') + goto yy15; + goto yy27; + } else { + if (yych <= 'R') + goto yy16; + if (yych <= 'S') + goto yy17; + if (yych <= 'T') + goto yy18; + goto yy19; + } + } else { + if (yych <= 'Y') { + if (yych <= 'V') + goto yy20; + if (yych <= 'W') + goto yy21; + if (yych <= 'X') + goto yy22; + goto yy28; + } else { + if (yych <= '`') { + if (yych <= 'Z') + goto yy23; + goto yy29; + } else { + if (yych <= 'a') + goto yy6; + if (yych <= 'b') + goto yy24; + goto yy3; + } + } + } + } + } else { + if (yych <= 't') { + if (yych <= 'k') { + if (yych <= 'g') { + if (yych <= 'd') + goto yy4; + if (yych <= 'e') + goto yy25; + if (yych <= 'f') + goto yy7; + goto yy8; + } else { + if (yych <= 'h') + goto yy9; + if (yych <= 'i') + goto yy10; + if (yych <= 'j') + goto yy5; + goto yy26; + } + } else { + if (yych <= 'o') { + if (yych <= 'l') + goto yy11; + if (yych <= 'm') + goto yy12; + if (yych <= 'n') + goto yy13; + goto yy14; + } else { + if (yych <= 'q') { + if (yych <= 'p') + goto yy15; + goto yy27; + } else { + if (yych <= 'r') + goto yy16; + if (yych <= 's') + goto yy17; + goto yy18; + } + } + } + } else { + if (yych <= 0xC1) { + if (yych <= 'x') { + if (yych <= 'u') + goto yy19; + if (yych <= 'v') + goto yy20; + if (yych <= 'w') + goto yy21; + goto yy22; + } else { + if (yych <= 'y') + goto yy28; + if (yych <= 'z') + goto yy23; + if (yych <= 0x7F) + goto yy29; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy30; + if (yych <= 0xE0) + goto yy32; + if (yych <= 0xEC) + goto yy33; + goto yy37; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy33; + goto yy34; + } else { + if (yych <= 0xF3) + goto yy35; + if (yych <= 0xF4) + goto yy36; + } + } + } + } + } + yy2 : { return 0; } + yy3: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy447; + case 'H': + case 'h': + goto yy446; + case 'I': + case 'i': + goto yy449; + case 'O': + case 'o': + goto yy445; + case 'R': + case 'r': + goto yy448; + case 'V': + case 'v': + goto yy444; + default: + goto yy2; + } + yy4: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy420; + case 'I': + case 'i': + goto yy419; + case 'L': + case 'l': + goto yy417; + case 'N': + case 'n': + goto yy418; + case 'O': + case 'o': + goto yy421; + case 'T': + case 't': + goto yy416; + case 'V': + case 'v': + goto yy415; + default: + goto yy2; + } + yy5: + yych = *(marker = ++p); + if (yych <= 'M') { + if (yych == 'A') + goto yy407; + if (yych <= 'L') + goto yy2; + goto yy406; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy2; + goto yy407; + } else { + if (yych == 'm') + goto yy406; + goto yy2; + } + } + yy6: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy388; + case 'B': + case 'b': + goto yy387; + case 'C': + case 'c': + goto yy386; + case 'D': + case 'd': + goto yy385; + case 'F': + case 'f': + goto yy384; + case 'I': + case 'i': + goto yy383; + case 'P': + case 'p': + goto yy382; + case 'T': + case 't': + goto yy381; + case 'W': + case 'w': + goto yy41; + default: + goto yy2; + } + yy7: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'E') { + if (yych == 'A') + goto yy368; + if (yych <= 'D') + goto yy2; + goto yy367; + } else { + if (yych == 'I') + goto yy366; + if (yych <= 'S') + goto yy2; + goto yy369; + } + } else { + if (yych <= 'e') { + if (yych == 'a') + goto yy368; + if (yych <= 'd') + goto yy2; + goto yy367; + } else { + if (yych <= 'i') { + if (yych <= 'h') + goto yy2; + goto yy366; + } else { + if (yych == 't') + goto yy369; + goto yy2; + } + } + } + yy8: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy351; + case 'G': + case 'g': + goto yy41; + case 'I': + case 'i': + goto yy349; + case 'O': + case 'o': + goto yy350; + case 'T': + case 't': + goto yy348; + default: + goto yy2; + } + yy9: + yych = *(marker = ++p); + if (yych <= 'S') { + if (yych <= '3') { + if (yych <= '2') + goto yy2; + goto yy344; + } else { + if (yych == 'C') + goto yy342; + goto yy2; + } + } else { + if (yych <= 'c') { + if (yych <= 'T') + goto yy343; + if (yych <= 'b') + goto yy2; + goto yy342; + } else { + if (yych == 't') + goto yy343; + goto yy2; + } + } + yy10: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy324; + case 'C': + case 'c': + goto yy321; + case 'M': + case 'm': + goto yy323; + case 'N': + case 'n': + goto yy322; + case 'P': + case 'p': + goto yy320; + case 'R': + case 'r': + goto yy319; + case 'T': + case 't': + goto yy318; + default: + goto yy2; + } + yy11: + yych = *(marker = ++p); + if (yych <= 'D') { + if (yych == 'A') + goto yy312; + if (yych <= 'C') + goto yy2; + goto yy311; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy2; + goto yy312; + } else { + if (yych == 'd') + goto yy311; + goto yy2; + } + } + yy12: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy278; + case 'E': + case 'e': + goto yy277; + case 'I': + case 'i': + goto yy280; + case 'M': + case 'm': + goto yy276; + case 'S': + case 's': + goto yy275; + case 'T': + case 't': + goto yy279; + case 'U': + case 'u': + goto yy274; + case 'V': + case 'v': + goto yy273; + default: + goto yy2; + } + yy13: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy268; + case 'F': + case 'f': + goto yy267; + case 'I': + case 'i': + goto yy266; + case 'N': + case 'n': + goto yy265; + case 'O': + case 'o': + goto yy264; + default: + goto yy2; + } + yy14: + yych = *(marker = ++p); + if (yych <= 'P') { + if (yych == 'I') + goto yy250; + if (yych <= 'O') + goto yy2; + goto yy251; + } else { + if (yych <= 'i') { + if (yych <= 'h') + goto yy2; + goto yy250; + } else { + if (yych == 'p') + goto yy251; + goto yy2; + } + } + yy15: + yych = *(marker = ++p); + if (yych <= 'S') { + if (yych <= 'L') { + if (yych == 'A') + goto yy232; + if (yych <= 'K') + goto yy2; + goto yy231; + } else { + if (yych <= 'O') { + if (yych <= 'N') + goto yy2; + goto yy233; + } else { + if (yych <= 'Q') + goto yy2; + if (yych <= 'R') + goto yy230; + goto yy229; + } + } + } else { + if (yych <= 'n') { + if (yych <= 'a') { + if (yych <= '`') + goto yy2; + goto yy232; + } else { + if (yych == 'l') + goto yy231; + goto yy2; + } + } else { + if (yych <= 'q') { + if (yych <= 'o') + goto yy233; + goto yy2; + } else { + if (yych <= 'r') + goto yy230; + if (yych <= 's') + goto yy229; + goto yy2; + } + } + } + yy16: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'L') { + if (yych == 'E') + goto yy219; + goto yy2; + } else { + if (yych <= 'M') + goto yy218; + if (yych <= 'R') + goto yy2; + if (yych <= 'S') + goto yy217; + goto yy216; + } + } else { + if (yych <= 'm') { + if (yych == 'e') + goto yy219; + if (yych <= 'l') + goto yy2; + goto yy218; + } else { + if (yych <= 'r') + goto yy2; + if (yych <= 's') + goto yy217; + if (yych <= 't') + goto yy216; + goto yy2; + } + } + yy17: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy172; + case 'F': + case 'f': + goto yy171; + case 'G': + case 'g': + goto yy170; + case 'H': + case 'h': + goto yy175; + case 'I': + case 'i': + goto yy174; + case 'K': + case 'k': + goto yy169; + case 'M': + case 'm': + goto yy168; + case 'N': + case 'n': + goto yy173; + case 'O': + case 'o': + goto yy167; + case 'P': + case 'p': + goto yy166; + case 'S': + case 's': + goto yy165; + case 'T': + case 't': + goto yy164; + case 'V': + case 'v': + goto yy163; + default: + goto yy2; + } + yy18: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy139; + case 'E': + case 'e': + goto yy135; + case 'F': + case 'f': + goto yy138; + case 'H': + case 'h': + goto yy134; + case 'I': + case 'i': + goto yy136; + case 'N': + case 'n': + goto yy137; + case 'V': + case 'v': + goto yy41; + default: + goto yy2; + } + yy19: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'N') { + if (yych == 'D') + goto yy126; + if (yych <= 'M') + goto yy2; + goto yy125; + } else { + if (yych == 'R') + goto yy127; + if (yych <= 'S') + goto yy2; + goto yy124; + } + } else { + if (yych <= 'n') { + if (yych == 'd') + goto yy126; + if (yych <= 'm') + goto yy2; + goto yy125; + } else { + if (yych <= 'r') { + if (yych <= 'q') + goto yy2; + goto yy127; + } else { + if (yych == 't') + goto yy124; + goto yy2; + } + } + } + yy20: + yych = *(marker = ++p); + if (yych <= 'I') { + if (yych == 'E') + goto yy108; + if (yych <= 'H') + goto yy2; + goto yy107; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy2; + goto yy108; + } else { + if (yych == 'i') + goto yy107; + goto yy2; + } + } + yy21: + yych = *(marker = ++p); + if (yych <= 'Y') { + if (yych <= 'R') { + if (yych == 'E') + goto yy97; + goto yy2; + } else { + if (yych <= 'S') + goto yy98; + if (yych <= 'T') + goto yy96; + if (yych <= 'X') + goto yy2; + goto yy95; + } + } else { + if (yych <= 's') { + if (yych == 'e') + goto yy97; + if (yych <= 'r') + goto yy2; + goto yy98; + } else { + if (yych <= 't') + goto yy96; + if (yych == 'y') + goto yy95; + goto yy2; + } + } + yy22: + yych = *(marker = ++p); + if (yych <= 'R') { + if (yych <= 'F') { + if (yych == 'C') + goto yy74; + if (yych <= 'E') + goto yy2; + goto yy72; + } else { + if (yych == 'M') + goto yy73; + if (yych <= 'Q') + goto yy2; + goto yy71; + } + } else { + if (yych <= 'f') { + if (yych == 'c') + goto yy74; + if (yych <= 'e') + goto yy2; + goto yy72; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy2; + goto yy73; + } else { + if (yych == 'r') + goto yy71; + goto yy2; + } + } + } + yy23: + yych = *(marker = ++p); + if (yych == '3') + goto yy66; + goto yy2; + yy24: + yych = *(marker = ++p); + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'E') + goto yy56; + goto yy2; + } else { + if (yych <= 'I') + goto yy55; + if (yych <= 'N') + goto yy2; + goto yy54; + } + } else { + if (yych <= 'h') { + if (yych == 'e') + goto yy56; + goto yy2; + } else { + if (yych <= 'i') + goto yy55; + if (yych == 'o') + goto yy54; + goto yy2; + } + } + yy25: + yych = *(marker = ++p); + if (yych == 'D') + goto yy52; + if (yych == 'd') + goto yy52; + goto yy2; + yy26: + yych = *(marker = ++p); + if (yych == 'E') + goto yy47; + if (yych == 'e') + goto yy47; + goto yy2; + yy27: + yych = *(marker = ++p); + if (yych == 'U') + goto yy44; + if (yych == 'u') + goto yy44; + goto yy2; + yy28: + yych = *(marker = ++p); + if (yych == 'M') + goto yy38; + if (yych == 'm') + goto yy38; + goto yy2; + yy29: + yych = *++p; + goto yy2; + yy30: + yych = *++p; + if (yych <= 0x7F) + goto yy31; + if (yych <= 0xBF) + goto yy29; + yy31: + p = marker; + goto yy2; + yy32: + yych = *++p; + if (yych <= 0x9F) + goto yy31; + if (yych <= 0xBF) + goto yy30; + goto yy31; + yy33: + yych = *++p; + if (yych <= 0x7F) + goto yy31; + if (yych <= 0xBF) + goto yy30; + goto yy31; + yy34: + yych = *++p; + if (yych <= 0x8F) + goto yy31; + if (yych <= 0xBF) + goto yy33; + goto yy31; + yy35: + yych = *++p; + if (yych <= 0x7F) + goto yy31; + if (yych <= 0xBF) + goto yy33; + goto yy31; + yy36: + yych = *++p; + if (yych <= 0x7F) + goto yy31; + if (yych <= 0x8F) + goto yy33; + goto yy31; + yy37: + yych = *++p; + if (yych <= 0x7F) + goto yy31; + if (yych <= 0x9F) + goto yy30; + goto yy31; + yy38: + yych = *++p; + if (yych == 'S') + goto yy39; + if (yych != 's') + goto yy31; + yy39: + yych = *++p; + if (yych == 'G') + goto yy40; + if (yych != 'g') + goto yy31; + yy40: + yych = *++p; + if (yych == 'R') + goto yy41; + if (yych != 'r') + goto yy31; + yy41: + yych = *++p; + if (yych != ':') + goto yy31; + yy42: + ++p; + { return (bufsize_t)(p - start); } + yy44: + yych = *++p; + if (yych == 'E') + goto yy45; + if (yych != 'e') + goto yy31; + yy45: + yych = *++p; + if (yych == 'R') + goto yy46; + if (yych != 'r') + goto yy31; + yy46: + yych = *++p; + if (yych == 'Y') + goto yy41; + if (yych == 'y') + goto yy41; + goto yy31; + yy47: + yych = *++p; + if (yych == 'Y') + goto yy48; + if (yych != 'y') + goto yy31; + yy48: + yych = *++p; + if (yych == 'P') + goto yy49; + if (yych != 'p') + goto yy31; + yy49: + yych = *++p; + if (yych == 'A') + goto yy50; + if (yych != 'a') + goto yy31; + yy50: + yych = *++p; + if (yych == 'R') + goto yy51; + if (yych != 'r') + goto yy31; + yy51: + yych = *++p; + if (yych == 'C') + goto yy41; + if (yych == 'c') + goto yy41; + goto yy31; + yy52: + yych = *++p; + if (yych != '2') + goto yy31; + yych = *++p; + if (yych == 'K') + goto yy41; + if (yych == 'k') + goto yy41; + goto yy31; + yy54: + yych = *++p; + if (yych == 'L') + goto yy65; + if (yych == 'l') + goto yy65; + goto yy31; + yy55: + yych = *++p; + if (yych == 'T') + goto yy61; + if (yych == 't') + goto yy61; + goto yy31; + yy56: + yych = *++p; + if (yych == 'S') + goto yy57; + if (yych != 's') + goto yy31; + yy57: + yych = *++p; + if (yych == 'H') + goto yy58; + if (yych != 'h') + goto yy31; + yy58: + yych = *++p; + if (yych == 'A') + goto yy59; + if (yych != 'a') + goto yy31; + yy59: + yych = *++p; + if (yych == 'R') + goto yy60; + if (yych != 'r') + goto yy31; + yy60: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy61: + yych = *++p; + if (yych == 'C') + goto yy62; + if (yych != 'c') + goto yy31; + yy62: + yych = *++p; + if (yych == 'O') + goto yy63; + if (yych != 'o') + goto yy31; + yy63: + yych = *++p; + if (yych == 'I') + goto yy64; + if (yych != 'i') + goto yy31; + yy64: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy65: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy66: + yych = *++p; + if (yych != '9') + goto yy31; + yych = *++p; + if (yych != '.') + goto yy31; + yych = *++p; + if (yych != '5') + goto yy31; + yych = *++p; + if (yych != '0') + goto yy31; + yych = *++p; + if (yych <= 'Q') + goto yy31; + if (yych <= 'S') + goto yy41; + if (yych <= 'q') + goto yy31; + if (yych <= 's') + goto yy41; + goto yy31; + yy71: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy72: + yych = *++p; + if (yych == 'I') + goto yy93; + if (yych == 'i') + goto yy93; + goto yy31; + yy73: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy83; + if (yych <= 'O') + goto yy31; + goto yy84; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy31; + goto yy83; + } else { + if (yych == 'p') + goto yy84; + goto yy31; + } + } + yy74: + yych = *++p; + if (yych == 'O') + goto yy75; + if (yych != 'o') + goto yy31; + yy75: + yych = *++p; + if (yych == 'N') + goto yy76; + if (yych != 'n') + goto yy31; + yy76: + yych = *++p; + if (yych == '-') + goto yy77; + if (yych == ':') + goto yy42; + goto yy31; + yy77: + yych = *++p; + if (yych == 'U') + goto yy78; + if (yych != 'u') + goto yy31; + yy78: + yych = *++p; + if (yych == 'S') + goto yy79; + if (yych != 's') + goto yy31; + yy79: + yych = *++p; + if (yych == 'E') + goto yy80; + if (yych != 'e') + goto yy31; + yy80: + yych = *++p; + if (yych == 'R') + goto yy81; + if (yych != 'r') + goto yy31; + yy81: + yych = *++p; + if (yych == 'I') + goto yy82; + if (yych != 'i') + goto yy31; + yy82: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy83: + yych = *++p; + if (yych == 'R') + goto yy85; + if (yych == 'r') + goto yy85; + goto yy31; + yy84: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy85: + yych = *++p; + if (yych == 'P') + goto yy86; + if (yych != 'p') + goto yy31; + yy86: + yych = *++p; + if (yych == 'C') + goto yy87; + if (yych != 'c') + goto yy31; + yy87: + yych = *++p; + if (yych != '.') + goto yy31; + yych = *++p; + if (yych == 'B') + goto yy89; + if (yych != 'b') + goto yy31; + yy89: + yych = *++p; + if (yych == 'E') + goto yy90; + if (yych != 'e') + goto yy31; + yy90: + yych = *++p; + if (yych == 'E') + goto yy91; + if (yych != 'e') + goto yy31; + yy91: + yych = *++p; + if (yych == 'P') + goto yy92; + if (yych != 'p') + goto yy31; + yy92: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy93: + yych = *++p; + if (yych == 'R') + goto yy94; + if (yych != 'r') + goto yy31; + yy94: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy95: + yych = *++p; + if (yych == 'C') + goto yy103; + if (yych == 'c') + goto yy103; + goto yy31; + yy96: + yych = *++p; + if (yych == 'A') + goto yy102; + if (yych == 'a') + goto yy102; + goto yy31; + yy97: + yych = *++p; + if (yych == 'B') + goto yy99; + if (yych == 'b') + goto yy99; + goto yy31; + yy98: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy99: + yych = *++p; + if (yych == 'C') + goto yy100; + if (yych != 'c') + goto yy31; + yy100: + yych = *++p; + if (yych == 'A') + goto yy101; + if (yych != 'a') + goto yy31; + yy101: + yych = *++p; + if (yych == 'L') + goto yy41; + if (yych == 'l') + goto yy41; + goto yy31; + yy102: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy103: + yych = *++p; + if (yych == 'I') + goto yy104; + if (yych != 'i') + goto yy31; + yy104: + yych = *++p; + if (yych == 'W') + goto yy105; + if (yych != 'w') + goto yy31; + yy105: + yych = *++p; + if (yych == 'Y') + goto yy106; + if (yych != 'y') + goto yy31; + yy106: + yych = *++p; + if (yych == 'G') + goto yy41; + if (yych == 'g') + goto yy41; + goto yy31; + yy107: + yych = *++p; + if (yych == 'E') + goto yy116; + if (yych == 'e') + goto yy116; + goto yy31; + yy108: + yych = *++p; + if (yych <= 'N') { + if (yych <= 'L') + goto yy31; + if (yych >= 'N') + goto yy110; + } else { + if (yych <= 'l') + goto yy31; + if (yych <= 'm') + goto yy109; + if (yych <= 'n') + goto yy110; + goto yy31; + } + yy109: + yych = *++p; + if (yych == 'M') + goto yy115; + if (yych == 'm') + goto yy115; + goto yy31; + yy110: + yych = *++p; + if (yych == 'T') + goto yy111; + if (yych != 't') + goto yy31; + yy111: + yych = *++p; + if (yych == 'R') + goto yy112; + if (yych != 'r') + goto yy31; + yy112: + yych = *++p; + if (yych == 'I') + goto yy113; + if (yych != 'i') + goto yy31; + yy113: + yych = *++p; + if (yych == 'L') + goto yy114; + if (yych != 'l') + goto yy31; + yy114: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy115: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy116: + yych = *++p; + if (yych == 'W') + goto yy117; + if (yych != 'w') + goto yy31; + yy117: + yych = *++p; + if (yych != '-') + goto yy31; + yych = *++p; + if (yych == 'S') + goto yy119; + if (yych != 's') + goto yy31; + yy119: + yych = *++p; + if (yych == 'O') + goto yy120; + if (yych != 'o') + goto yy31; + yy120: + yych = *++p; + if (yych == 'U') + goto yy121; + if (yych != 'u') + goto yy31; + yy121: + yych = *++p; + if (yych == 'R') + goto yy122; + if (yych != 'r') + goto yy31; + yy122: + yych = *++p; + if (yych == 'C') + goto yy123; + if (yych != 'c') + goto yy31; + yy123: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy124: + yych = *++p; + if (yych == '2') + goto yy131; + goto yy31; + yy125: + yych = *++p; + if (yych == 'R') + goto yy128; + if (yych == 'r') + goto yy128; + goto yy31; + yy126: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy127: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy128: + yych = *++p; + if (yych == 'E') + goto yy129; + if (yych != 'e') + goto yy31; + yy129: + yych = *++p; + if (yych == 'A') + goto yy130; + if (yych != 'a') + goto yy31; + yy130: + yych = *++p; + if (yych == 'L') + goto yy41; + if (yych == 'l') + goto yy41; + goto yy31; + yy131: + yych = *++p; + if (yych != '0') + goto yy31; + yych = *++p; + if (yych != '0') + goto yy31; + yych = *++p; + if (yych == '4') + goto yy41; + goto yy31; + yy134: + yych = *++p; + if (yych == 'I') + goto yy153; + if (yych == 'i') + goto yy153; + goto yy31; + yy135: + yych = *++p; + if (yych <= 'L') { + if (yych == 'A') + goto yy145; + if (yych <= 'K') + goto yy31; + goto yy144; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy31; + goto yy145; + } else { + if (yych == 'l') + goto yy144; + goto yy31; + } + } + yy136: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy137: + yych = *++p; + if (yych == '3') + goto yy141; + goto yy31; + yy138: + yych = *++p; + if (yych == 'T') + goto yy140; + if (yych == 't') + goto yy140; + goto yy31; + yy139: + yych = *++p; + if (yych == 'G') + goto yy41; + if (yych == 'g') + goto yy41; + goto yy31; + yy140: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy141: + yych = *++p; + if (yych != '2') + goto yy31; + yych = *++p; + if (yych != '7') + goto yy31; + yych = *++p; + if (yych == '0') + goto yy41; + goto yy31; + yy144: + yych = *++p; + if (yych <= 'M') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'N') + goto yy151; + if (yych == 'n') + goto yy151; + goto yy31; + } + yy145: + yych = *++p; + if (yych == 'M') + goto yy146; + if (yych != 'm') + goto yy31; + yy146: + yych = *++p; + if (yych == 'S') + goto yy147; + if (yych != 's') + goto yy31; + yy147: + yych = *++p; + if (yych == 'P') + goto yy148; + if (yych != 'p') + goto yy31; + yy148: + yych = *++p; + if (yych == 'E') + goto yy149; + if (yych != 'e') + goto yy31; + yy149: + yych = *++p; + if (yych == 'A') + goto yy150; + if (yych != 'a') + goto yy31; + yy150: + yych = *++p; + if (yych == 'K') + goto yy41; + if (yych == 'k') + goto yy41; + goto yy31; + yy151: + yych = *++p; + if (yych == 'E') + goto yy152; + if (yych != 'e') + goto yy31; + yy152: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy153: + yych = *++p; + if (yych <= 'S') { + if (yych == 'N') + goto yy154; + if (yych <= 'R') + goto yy31; + goto yy155; + } else { + if (yych <= 'n') { + if (yych <= 'm') + goto yy31; + } else { + if (yych == 's') + goto yy155; + goto yy31; + } + } + yy154: + yych = *++p; + if (yych == 'G') + goto yy162; + if (yych == 'g') + goto yy162; + goto yy31; + yy155: + yych = *++p; + if (yych == 'M') + goto yy156; + if (yych != 'm') + goto yy31; + yy156: + yych = *++p; + if (yych == 'E') + goto yy157; + if (yych != 'e') + goto yy31; + yy157: + yych = *++p; + if (yych == 'S') + goto yy158; + if (yych != 's') + goto yy31; + yy158: + yych = *++p; + if (yych == 'S') + goto yy159; + if (yych != 's') + goto yy31; + yy159: + yych = *++p; + if (yych == 'A') + goto yy160; + if (yych != 'a') + goto yy31; + yy160: + yych = *++p; + if (yych == 'G') + goto yy161; + if (yych != 'g') + goto yy31; + yy161: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy162: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy163: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy164: + yych = *++p; + if (yych == 'E') + goto yy214; + if (yych == 'e') + goto yy214; + goto yy31; + yy165: + yych = *++p; + if (yych == 'H') + goto yy41; + if (yych == 'h') + goto yy41; + goto yy31; + yy166: + yych = *++p; + if (yych == 'O') + goto yy210; + if (yych == 'o') + goto yy210; + goto yy31; + yy167: + yych = *++p; + if (yych <= 'L') { + if (yych == 'A') + goto yy200; + if (yych <= 'K') + goto yy31; + goto yy201; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy31; + goto yy200; + } else { + if (yych == 'l') + goto yy201; + goto yy31; + } + } + yy168: + yych = *++p; + if (yych <= 'S') { + if (yych == 'B') + goto yy41; + if (yych <= 'R') + goto yy31; + goto yy41; + } else { + if (yych <= 'b') { + if (yych <= 'a') + goto yy31; + goto yy41; + } else { + if (yych == 's') + goto yy41; + goto yy31; + } + } + yy169: + yych = *++p; + if (yych == 'Y') + goto yy198; + if (yych == 'y') + goto yy198; + goto yy31; + yy170: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy171: + yych = *++p; + if (yych == 'T') + goto yy197; + if (yych == 't') + goto yy197; + goto yy31; + yy172: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'C') { + if (yych <= 'B') + goto yy31; + goto yy184; + } else { + if (yych <= 'Q') + goto yy31; + if (yych <= 'R') + goto yy182; + goto yy183; + } + } else { + if (yych <= 'q') { + if (yych == 'c') + goto yy184; + goto yy31; + } else { + if (yych <= 'r') + goto yy182; + if (yych <= 's') + goto yy183; + goto yy31; + } + } + yy173: + yych = *++p; + if (yych == 'M') + goto yy181; + if (yych == 'm') + goto yy181; + goto yy31; + yy174: + yych = *++p; + if (yych <= 'P') { + if (yych == 'E') + goto yy178; + if (yych <= 'O') + goto yy31; + goto yy179; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy31; + goto yy178; + } else { + if (yych == 'p') + goto yy179; + goto yy31; + } + } + yy175: + yych = *++p; + if (yych == 'T') + goto yy176; + if (yych != 't') + goto yy31; + yy176: + yych = *++p; + if (yych == 'T') + goto yy177; + if (yych != 't') + goto yy31; + yy177: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy178: + yych = *++p; + if (yych == 'V') + goto yy180; + if (yych == 'v') + goto yy180; + goto yy31; + yy179: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy180: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy181: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy182: + yych = *++p; + if (yych == 'V') + goto yy194; + if (yych == 'v') + goto yy194; + goto yy31; + yy183: + yych = *++p; + if (yych == 'S') + goto yy191; + if (yych == 's') + goto yy191; + goto yy31; + yy184: + yych = *++p; + if (yych == 'O') + goto yy185; + if (yych != 'o') + goto yy31; + yy185: + yych = *++p; + if (yych == 'N') + goto yy186; + if (yych != 'n') + goto yy31; + yy186: + yych = *++p; + if (yych == 'D') + goto yy187; + if (yych != 'd') + goto yy31; + yy187: + yych = *++p; + if (yych == 'L') + goto yy188; + if (yych != 'l') + goto yy31; + yy188: + yych = *++p; + if (yych == 'I') + goto yy189; + if (yych != 'i') + goto yy31; + yy189: + yych = *++p; + if (yych == 'F') + goto yy190; + if (yych != 'f') + goto yy31; + yy190: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy191: + yych = *++p; + if (yych == 'I') + goto yy192; + if (yych != 'i') + goto yy31; + yy192: + yych = *++p; + if (yych == 'O') + goto yy193; + if (yych != 'o') + goto yy31; + yy193: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy194: + yych = *++p; + if (yych == 'I') + goto yy195; + if (yych != 'i') + goto yy31; + yy195: + yych = *++p; + if (yych == 'C') + goto yy196; + if (yych != 'c') + goto yy31; + yy196: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy197: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy198: + yych = *++p; + if (yych == 'P') + goto yy199; + if (yych != 'p') + goto yy31; + yy199: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy200: + yych = *++p; + if (yych == 'P') + goto yy204; + if (yych == 'p') + goto yy204; + goto yy31; + yy201: + yych = *++p; + if (yych == 'D') + goto yy202; + if (yych != 'd') + goto yy31; + yy202: + yych = *++p; + if (yych == 'A') + goto yy203; + if (yych != 'a') + goto yy31; + yy203: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy204: + yych = *++p; + if (yych != '.') + goto yy31; + yych = *++p; + if (yych == 'B') + goto yy206; + if (yych != 'b') + goto yy31; + yy206: + yych = *++p; + if (yych == 'E') + goto yy207; + if (yych != 'e') + goto yy31; + yy207: + yych = *++p; + if (yych == 'E') + goto yy208; + if (yych != 'e') + goto yy31; + yy208: + yych = *++p; + if (yych == 'P') + goto yy209; + if (yych != 'p') + goto yy31; + yy209: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy210: + yych = *++p; + if (yych == 'T') + goto yy211; + if (yych != 't') + goto yy31; + yy211: + yych = *++p; + if (yych == 'I') + goto yy212; + if (yych != 'i') + goto yy31; + yy212: + yych = *++p; + if (yych == 'F') + goto yy213; + if (yych != 'f') + goto yy31; + yy213: + yych = *++p; + if (yych == 'Y') + goto yy41; + if (yych == 'y') + goto yy41; + goto yy31; + yy214: + yych = *++p; + if (yych == 'A') + goto yy215; + if (yych != 'a') + goto yy31; + yy215: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy216: + yych = *++p; + if (yych <= 'S') { + if (yych == 'M') + goto yy228; + if (yych <= 'R') + goto yy31; + goto yy227; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy31; + goto yy228; + } else { + if (yych == 's') + goto yy227; + goto yy31; + } + } + yy217: + yych = *++p; + if (yych == 'Y') + goto yy225; + if (yych == 'y') + goto yy225; + goto yy31; + yy218: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy219: + yych = *++p; + if (yych == 'S') + goto yy220; + if (yych != 's') + goto yy31; + yy220: + yych = *++p; + if (yych <= 'N') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'O') + goto yy221; + if (yych != 'o') + goto yy31; + } + yy221: + yych = *++p; + if (yych == 'U') + goto yy222; + if (yych != 'u') + goto yy31; + yy222: + yych = *++p; + if (yych == 'R') + goto yy223; + if (yych != 'r') + goto yy31; + yy223: + yych = *++p; + if (yych == 'C') + goto yy224; + if (yych != 'c') + goto yy31; + yy224: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy225: + yych = *++p; + if (yych == 'N') + goto yy226; + if (yych != 'n') + goto yy31; + yy226: + yych = *++p; + if (yych == 'C') + goto yy41; + if (yych == 'c') + goto yy41; + goto yy31; + yy227: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy228: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy229: + yych = *++p; + if (yych == 'Y') + goto yy249; + if (yych == 'y') + goto yy249; + goto yy31; + yy230: + yych = *++p; + if (yych <= 'O') { + if (yych == 'E') + goto yy246; + if (yych <= 'N') + goto yy31; + goto yy247; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy31; + goto yy246; + } else { + if (yych == 'o') + goto yy247; + goto yy31; + } + } + yy231: + yych = *++p; + if (yych == 'A') + goto yy241; + if (yych == 'a') + goto yy241; + goto yy31; + yy232: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy234; + if (yych <= 'O') + goto yy31; + goto yy235; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy31; + goto yy234; + } else { + if (yych == 'p') + goto yy235; + goto yy31; + } + } + yy233: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy234: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy235: + yych = *++p; + if (yych == 'A') + goto yy236; + if (yych != 'a') + goto yy31; + yy236: + yych = *++p; + if (yych == 'R') + goto yy237; + if (yych != 'r') + goto yy31; + yy237: + yych = *++p; + if (yych == 'A') + goto yy238; + if (yych != 'a') + goto yy31; + yy238: + yych = *++p; + if (yych == 'Z') + goto yy239; + if (yych != 'z') + goto yy31; + yy239: + yych = *++p; + if (yych == 'Z') + goto yy240; + if (yych != 'z') + goto yy31; + yy240: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy241: + yych = *++p; + if (yych == 'T') + goto yy242; + if (yych != 't') + goto yy31; + yy242: + yych = *++p; + if (yych == 'F') + goto yy243; + if (yych != 'f') + goto yy31; + yy243: + yych = *++p; + if (yych == 'O') + goto yy244; + if (yych != 'o') + goto yy31; + yy244: + yych = *++p; + if (yych == 'R') + goto yy245; + if (yych != 'r') + goto yy31; + yy245: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy246: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy247: + yych = *++p; + if (yych == 'X') + goto yy248; + if (yych != 'x') + goto yy31; + yy248: + yych = *++p; + if (yych == 'Y') + goto yy41; + if (yych == 'y') + goto yy41; + goto yy31; + yy249: + yych = *++p; + if (yych == 'C') + goto yy41; + if (yych == 'c') + goto yy41; + goto yy31; + yy250: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy251: + yych = *++p; + if (yych == 'A') + goto yy252; + if (yych != 'a') + goto yy31; + yy252: + yych = *++p; + if (yych == 'Q') + goto yy253; + if (yych != 'q') + goto yy31; + yy253: + yych = *++p; + if (yych == 'U') + goto yy254; + if (yych != 'u') + goto yy31; + yy254: + yych = *++p; + if (yych == 'E') + goto yy255; + if (yych != 'e') + goto yy31; + yy255: + yych = *++p; + if (yych == 'L') + goto yy256; + if (yych != 'l') + goto yy31; + yy256: + yych = *++p; + if (yych == 'O') + goto yy257; + if (yych != 'o') + goto yy31; + yy257: + yych = *++p; + if (yych == 'C') + goto yy258; + if (yych != 'c') + goto yy31; + yy258: + yych = *++p; + if (yych == 'K') + goto yy259; + if (yych != 'k') + goto yy31; + yy259: + yych = *++p; + if (yych == 'T') + goto yy260; + if (yych != 't') + goto yy31; + yy260: + yych = *++p; + if (yych == 'O') + goto yy261; + if (yych != 'o') + goto yy31; + yy261: + yych = *++p; + if (yych == 'K') + goto yy262; + if (yych != 'k') + goto yy31; + yy262: + yych = *++p; + if (yych == 'E') + goto yy263; + if (yych != 'e') + goto yy31; + yy263: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy264: + yych = *++p; + if (yych == 'T') + goto yy271; + if (yych == 't') + goto yy271; + goto yy31; + yy265: + yych = *++p; + if (yych == 'T') + goto yy270; + if (yych == 't') + goto yy270; + goto yy31; + yy266: + yych = *++p; + if (yych <= 'G') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'H') + goto yy41; + if (yych == 'h') + goto yy41; + goto yy31; + } + yy267: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy268: + yych = *++p; + if (yych == 'W') + goto yy269; + if (yych != 'w') + goto yy31; + yy269: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy270: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy271: + yych = *++p; + if (yych == 'E') + goto yy272; + if (yych != 'e') + goto yy31; + yy272: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy273: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy274: + yych = *++p; + if (yych <= 'P') { + if (yych == 'M') + goto yy305; + if (yych <= 'O') + goto yy31; + goto yy304; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy31; + goto yy305; + } else { + if (yych == 'p') + goto yy304; + goto yy31; + } + } + yy275: + yych = *++p; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych <= ',') + goto yy31; + goto yy297; + } else { + if (yych == 'N') + goto yy298; + goto yy31; + } + } else { + if (yych <= 'n') { + if (yych <= 'R') + goto yy296; + if (yych <= 'm') + goto yy31; + goto yy298; + } else { + if (yych == 'r') + goto yy296; + goto yy31; + } + } + yy276: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy277: + yych = *++p; + if (yych == 'S') + goto yy292; + if (yych == 's') + goto yy292; + goto yy31; + yy278: + yych = *++p; + switch (yych) { + case 'G': + case 'g': + goto yy283; + case 'I': + case 'i': + goto yy282; + case 'P': + case 'p': + goto yy284; + case 'R': + case 'r': + goto yy285; + default: + goto yy31; + } + yy279: + yych = *++p; + if (yych == 'Q') + goto yy281; + if (yych == 'q') + goto yy281; + goto yy31; + yy280: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy281: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy282: + yych = *++p; + if (yych == 'L') + goto yy290; + if (yych == 'l') + goto yy290; + goto yy31; + yy283: + yych = *++p; + if (yych == 'N') + goto yy288; + if (yych == 'n') + goto yy288; + goto yy31; + yy284: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy285: + yych = *++p; + if (yych == 'K') + goto yy286; + if (yych != 'k') + goto yy31; + yy286: + yych = *++p; + if (yych == 'E') + goto yy287; + if (yych != 'e') + goto yy31; + yy287: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy288: + yych = *++p; + if (yych == 'E') + goto yy289; + if (yych != 'e') + goto yy31; + yy289: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy290: + yych = *++p; + if (yych == 'T') + goto yy291; + if (yych != 't') + goto yy31; + yy291: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy292: + yych = *++p; + if (yych == 'S') + goto yy293; + if (yych != 's') + goto yy31; + yy293: + yych = *++p; + if (yych == 'A') + goto yy294; + if (yych != 'a') + goto yy31; + yy294: + yych = *++p; + if (yych == 'G') + goto yy295; + if (yych != 'g') + goto yy31; + yy295: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy296: + yych = *++p; + if (yych == 'P') + goto yy303; + if (yych == 'p') + goto yy303; + goto yy31; + yy297: + yych = *++p; + if (yych == 'H') + goto yy300; + if (yych == 'h') + goto yy300; + goto yy31; + yy298: + yych = *++p; + if (yych == 'I') + goto yy299; + if (yych != 'i') + goto yy31; + yy299: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy300: + yych = *++p; + if (yych == 'E') + goto yy301; + if (yych != 'e') + goto yy31; + yy301: + yych = *++p; + if (yych == 'L') + goto yy302; + if (yych != 'l') + goto yy31; + yy302: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy303: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy304: + yych = *++p; + if (yych == 'D') + goto yy308; + if (yych == 'd') + goto yy308; + goto yy31; + yy305: + yych = *++p; + if (yych == 'B') + goto yy306; + if (yych != 'b') + goto yy31; + yy306: + yych = *++p; + if (yych == 'L') + goto yy307; + if (yych != 'l') + goto yy31; + yy307: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy308: + yych = *++p; + if (yych == 'A') + goto yy309; + if (yych != 'a') + goto yy31; + yy309: + yych = *++p; + if (yych == 'T') + goto yy310; + if (yych != 't') + goto yy31; + yy310: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy311: + yych = *++p; + if (yych == 'A') + goto yy316; + if (yych == 'a') + goto yy316; + goto yy31; + yy312: + yych = *++p; + if (yych == 'S') + goto yy313; + if (yych != 's') + goto yy31; + yy313: + yych = *++p; + if (yych == 'T') + goto yy314; + if (yych != 't') + goto yy31; + yy314: + yych = *++p; + if (yych == 'F') + goto yy315; + if (yych != 'f') + goto yy31; + yy315: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy316: + yych = *++p; + if (yych == 'P') + goto yy317; + if (yych != 'p') + goto yy31; + yy317: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy318: + yych = *++p; + if (yych == 'M') + goto yy341; + if (yych == 'm') + goto yy341; + goto yy31; + yy319: + yych = *++p; + if (yych <= 'I') { + if (yych == 'C') + goto yy330; + if (yych <= 'H') + goto yy31; + goto yy329; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy31; + goto yy330; + } else { + if (yych == 'i') + goto yy329; + goto yy31; + } + } + yy320: + yych = *++p; + if (yych <= 'P') { + if (yych == 'N') + goto yy41; + if (yych <= 'O') + goto yy31; + goto yy41; + } else { + if (yych <= 'n') { + if (yych <= 'm') + goto yy31; + goto yy41; + } else { + if (yych == 'p') + goto yy41; + goto yy31; + } + } + yy321: + yych = *++p; + if (yych <= 'O') { + if (yych == 'A') + goto yy327; + if (yych <= 'N') + goto yy31; + goto yy328; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy31; + goto yy327; + } else { + if (yych == 'o') + goto yy328; + goto yy31; + } + } + yy322: + yych = *++p; + if (yych == 'F') + goto yy326; + if (yych == 'f') + goto yy326; + goto yy31; + yy323: + yych = *++p; + if (yych <= '@') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'A') + goto yy325; + if (yych == 'a') + goto yy325; + goto yy31; + } + yy324: + yych = *++p; + if (yych == 'X') + goto yy41; + if (yych == 'x') + goto yy41; + goto yy31; + yy325: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy326: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy327: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy328: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy329: + yych = *++p; + if (yych == 'S') + goto yy331; + if (yych == 's') + goto yy331; + goto yy31; + yy330: + yych = *++p; + if (yych <= ':') { + if (yych == '6') + goto yy41; + if (yych <= '9') + goto yy31; + goto yy42; + } else { + if (yych <= 'S') { + if (yych <= 'R') + goto yy31; + goto yy41; + } else { + if (yych == 's') + goto yy41; + goto yy31; + } + } + yy331: + yych = *++p; + if (yych == '.') + goto yy332; + if (yych == ':') + goto yy42; + goto yy31; + yy332: + yych = *++p; + if (yych <= 'X') { + if (yych <= 'K') { + if (yych == 'B') + goto yy335; + goto yy31; + } else { + if (yych <= 'L') + goto yy333; + if (yych <= 'W') + goto yy31; + goto yy334; + } + } else { + if (yych <= 'k') { + if (yych == 'b') + goto yy335; + goto yy31; + } else { + if (yych <= 'l') + goto yy333; + if (yych == 'x') + goto yy334; + goto yy31; + } + } + yy333: + yych = *++p; + if (yych == 'W') + goto yy340; + if (yych == 'w') + goto yy340; + goto yy31; + yy334: + yych = *++p; + if (yych == 'P') + goto yy338; + if (yych == 'p') + goto yy338; + goto yy31; + yy335: + yych = *++p; + if (yych == 'E') + goto yy336; + if (yych != 'e') + goto yy31; + yy336: + yych = *++p; + if (yych == 'E') + goto yy337; + if (yych != 'e') + goto yy31; + yy337: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy338: + yych = *++p; + if (yych == 'C') + goto yy339; + if (yych != 'c') + goto yy31; + yy339: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy340: + yych = *++p; + if (yych == 'Z') + goto yy41; + if (yych == 'z') + goto yy41; + goto yy31; + yy341: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy342: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy343: + yych = *++p; + if (yych == 'T') + goto yy346; + if (yych == 't') + goto yy346; + goto yy31; + yy344: + yych = *++p; + if (yych != '2') + goto yy31; + yych = *++p; + if (yych == '3') + goto yy41; + goto yy31; + yy346: + yych = *++p; + if (yych == 'P') + goto yy347; + if (yych != 'p') + goto yy31; + yy347: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy348: + yych = *++p; + if (yych == 'A') + goto yy364; + if (yych == 'a') + goto yy364; + goto yy31; + yy349: + yych = *++p; + if (yych <= 'Z') { + if (yych == 'T') + goto yy41; + if (yych <= 'Y') + goto yy31; + goto yy355; + } else { + if (yych <= 't') { + if (yych <= 's') + goto yy31; + goto yy41; + } else { + if (yych == 'z') + goto yy355; + goto yy31; + } + } + yy350: + yych = *++p; + if (yych <= 'O') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'P') + goto yy352; + if (yych == 'p') + goto yy352; + goto yy31; + } + yy351: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy352: + yych = *++p; + if (yych == 'H') + goto yy353; + if (yych != 'h') + goto yy31; + yy353: + yych = *++p; + if (yych == 'E') + goto yy354; + if (yych != 'e') + goto yy31; + yy354: + yych = *++p; + if (yych == 'R') + goto yy41; + if (yych == 'r') + goto yy41; + goto yy31; + yy355: + yych = *++p; + if (yych == 'M') + goto yy356; + if (yych != 'm') + goto yy31; + yy356: + yych = *++p; + if (yych == 'O') + goto yy357; + if (yych != 'o') + goto yy31; + yy357: + yych = *++p; + if (yych == 'P') + goto yy358; + if (yych != 'p') + goto yy31; + yy358: + yych = *++p; + if (yych == 'R') + goto yy359; + if (yych != 'r') + goto yy31; + yy359: + yych = *++p; + if (yych == 'O') + goto yy360; + if (yych != 'o') + goto yy31; + yy360: + yych = *++p; + if (yych == 'J') + goto yy361; + if (yych != 'j') + goto yy31; + yy361: + yych = *++p; + if (yych == 'E') + goto yy362; + if (yych != 'e') + goto yy31; + yy362: + yych = *++p; + if (yych == 'C') + goto yy363; + if (yych != 'c') + goto yy31; + yy363: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy364: + yych = *++p; + if (yych == 'L') + goto yy365; + if (yych != 'l') + goto yy31; + yy365: + yych = *++p; + if (yych == 'K') + goto yy41; + if (yych == 'k') + goto yy41; + goto yy31; + yy366: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'M') { + if (yych == 'L') + goto yy376; + goto yy31; + } else { + if (yych <= 'N') + goto yy377; + if (yych <= 'R') + goto yy31; + goto yy378; + } + } else { + if (yych <= 'm') { + if (yych == 'l') + goto yy376; + goto yy31; + } else { + if (yych <= 'n') + goto yy377; + if (yych == 's') + goto yy378; + goto yy31; + } + } + yy367: + yych = *++p; + if (yych == 'E') + goto yy375; + if (yych == 'e') + goto yy375; + goto yy31; + yy368: + yych = *++p; + if (yych == 'C') + goto yy370; + if (yych == 'c') + goto yy370; + goto yy31; + yy369: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy370: + yych = *++p; + if (yych == 'E') + goto yy371; + if (yych != 'e') + goto yy31; + yy371: + yych = *++p; + if (yych == 'T') + goto yy372; + if (yych != 't') + goto yy31; + yy372: + yych = *++p; + if (yych == 'I') + goto yy373; + if (yych != 'i') + goto yy31; + yy373: + yych = *++p; + if (yych == 'M') + goto yy374; + if (yych != 'm') + goto yy31; + yy374: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy375: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy376: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy377: + yych = *++p; + if (yych == 'G') + goto yy379; + if (yych == 'g') + goto yy379; + goto yy31; + yy378: + yych = *++p; + if (yych == 'H') + goto yy41; + if (yych == 'h') + goto yy41; + goto yy31; + yy379: + yych = *++p; + if (yych == 'E') + goto yy380; + if (yych != 'e') + goto yy31; + yy380: + yych = *++p; + if (yych == 'R') + goto yy41; + if (yych == 'r') + goto yy41; + goto yy31; + yy381: + yych = *++p; + if (yych == 'T') + goto yy399; + if (yych == 't') + goto yy399; + goto yy31; + yy382: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy383: + yych = *++p; + if (yych == 'M') + goto yy41; + if (yych == 'm') + goto yy41; + goto yy31; + yy384: + yych = *++p; + if (yych <= 'S') { + if (yych == 'P') + goto yy41; + if (yych <= 'R') + goto yy31; + goto yy41; + } else { + if (yych <= 'p') { + if (yych <= 'o') + goto yy31; + goto yy41; + } else { + if (yych == 's') + goto yy41; + goto yy31; + } + } + yy385: + yych = *++p; + if (yych == 'I') + goto yy393; + if (yych == 'i') + goto yy393; + goto yy31; + yy386: + yych = *++p; + if (yych == 'A') + goto yy392; + if (yych == 'a') + goto yy392; + goto yy31; + yy387: + yych = *++p; + if (yych == 'O') + goto yy390; + if (yych == 'o') + goto yy390; + goto yy31; + yy388: + yych = *++p; + if (yych == 'A') + goto yy389; + if (yych != 'a') + goto yy31; + yy389: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy42; + goto yy31; + } else { + if (yych <= 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + } + yy390: + yych = *++p; + if (yych == 'U') + goto yy391; + if (yych != 'u') + goto yy31; + yy391: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy392: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy393: + yych = *++p; + if (yych == 'U') + goto yy394; + if (yych != 'u') + goto yy31; + yy394: + yych = *++p; + if (yych == 'M') + goto yy395; + if (yych != 'm') + goto yy31; + yy395: + yych = *++p; + if (yych == 'X') + goto yy396; + if (yych != 'x') + goto yy31; + yy396: + yych = *++p; + if (yych == 'T') + goto yy397; + if (yych != 't') + goto yy31; + yy397: + yych = *++p; + if (yych == 'R') + goto yy398; + if (yych != 'r') + goto yy31; + yy398: + yych = *++p; + if (yych == 'A') + goto yy41; + if (yych == 'a') + goto yy41; + goto yy31; + yy399: + yych = *++p; + if (yych == 'A') + goto yy400; + if (yych != 'a') + goto yy31; + yy400: + yych = *++p; + if (yych == 'C') + goto yy401; + if (yych != 'c') + goto yy31; + yy401: + yych = *++p; + if (yych == 'H') + goto yy402; + if (yych != 'h') + goto yy31; + yy402: + yych = *++p; + if (yych == 'M') + goto yy403; + if (yych != 'm') + goto yy31; + yy403: + yych = *++p; + if (yych == 'E') + goto yy404; + if (yych != 'e') + goto yy31; + yy404: + yych = *++p; + if (yych == 'N') + goto yy405; + if (yych != 'n') + goto yy31; + yy405: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy406: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy407: + yych = *++p; + if (yych <= 'V') { + if (yych == 'R') + goto yy41; + if (yych <= 'U') + goto yy31; + } else { + if (yych <= 'r') { + if (yych <= 'q') + goto yy31; + goto yy41; + } else { + if (yych != 'v') + goto yy31; + } + } + yych = *++p; + if (yych == 'A') + goto yy409; + if (yych != 'a') + goto yy31; + yy409: + yych = *++p; + if (yych == 'S') + goto yy410; + if (yych != 's') + goto yy31; + yy410: + yych = *++p; + if (yych == 'C') + goto yy411; + if (yych != 'c') + goto yy31; + yy411: + yych = *++p; + if (yych == 'R') + goto yy412; + if (yych != 'r') + goto yy31; + yy412: + yych = *++p; + if (yych == 'I') + goto yy413; + if (yych != 'i') + goto yy31; + yy413: + yych = *++p; + if (yych == 'P') + goto yy414; + if (yych != 'p') + goto yy31; + yy414: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy415: + yych = *++p; + if (yych == 'B') + goto yy41; + if (yych == 'b') + goto yy41; + goto yy31; + yy416: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy417: + yych = *++p; + if (yych == 'N') + goto yy424; + if (yych == 'n') + goto yy424; + goto yy31; + yy418: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy419: + yych = *++p; + if (yych == 'C') + goto yy423; + if (yych == 'c') + goto yy423; + goto yy31; + yy420: + yych = *++p; + if (yych <= 'V') { + if (yych == 'T') + goto yy422; + if (yych <= 'U') + goto yy31; + goto yy41; + } else { + if (yych <= 't') { + if (yych <= 's') + goto yy31; + goto yy422; + } else { + if (yych == 'v') + goto yy41; + goto yy31; + } + } + yy421: + yych = *++p; + if (yych == 'I') + goto yy41; + if (yych == 'i') + goto yy41; + goto yy31; + yy422: + yych = *++p; + if (yych == 'A') + goto yy41; + if (yych == 'a') + goto yy41; + goto yy31; + yy423: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy424: + yych = *++p; + if (yych == 'A') + goto yy425; + if (yych != 'a') + goto yy31; + yy425: + yych = *++p; + if (yych != '-') + goto yy31; + yych = *++p; + if (yych == 'P') + goto yy427; + if (yych != 'p') + goto yy31; + yy427: + yych = *++p; + if (yych == 'L') + goto yy428; + if (yych != 'l') + goto yy31; + yy428: + yych = *++p; + if (yych == 'A') + goto yy429; + if (yych != 'a') + goto yy31; + yy429: + yych = *++p; + if (yych == 'Y') + goto yy430; + if (yych != 'y') + goto yy31; + yy430: + yych = *++p; + if (yych <= 'S') { + if (yych == 'C') + goto yy431; + if (yych <= 'R') + goto yy31; + goto yy432; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy31; + } else { + if (yych == 's') + goto yy432; + goto yy31; + } + } + yy431: + yych = *++p; + if (yych == 'O') + goto yy437; + if (yych == 'o') + goto yy437; + goto yy31; + yy432: + yych = *++p; + if (yych == 'I') + goto yy433; + if (yych != 'i') + goto yy31; + yy433: + yych = *++p; + if (yych == 'N') + goto yy434; + if (yych != 'n') + goto yy31; + yy434: + yych = *++p; + if (yych == 'G') + goto yy435; + if (yych != 'g') + goto yy31; + yy435: + yych = *++p; + if (yych == 'L') + goto yy436; + if (yych != 'l') + goto yy31; + yy436: + yych = *++p; + if (yych == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + yy437: + yych = *++p; + if (yych == 'N') + goto yy438; + if (yych != 'n') + goto yy31; + yy438: + yych = *++p; + if (yych == 'T') + goto yy439; + if (yych != 't') + goto yy31; + yy439: + yych = *++p; + if (yych == 'A') + goto yy440; + if (yych != 'a') + goto yy31; + yy440: + yych = *++p; + if (yych == 'I') + goto yy441; + if (yych != 'i') + goto yy31; + yy441: + yych = *++p; + if (yych == 'N') + goto yy442; + if (yych != 'n') + goto yy31; + yy442: + yych = *++p; + if (yych == 'E') + goto yy443; + if (yych != 'e') + goto yy31; + yy443: + yych = *++p; + if (yych == 'R') + goto yy41; + if (yych == 'r') + goto yy41; + goto yy31; + yy444: + yych = *++p; + if (yych == 'S') + goto yy41; + if (yych == 's') + goto yy41; + goto yy31; + yy445: + yych = *++p; + if (yych <= 'N') { + if (yych <= 'A') { + if (yych <= '@') + goto yy31; + goto yy467; + } else { + if (yych <= 'L') + goto yy31; + if (yych <= 'M') + goto yy468; + goto yy469; + } + } else { + if (yych <= 'l') { + if (yych == 'a') + goto yy467; + goto yy31; + } else { + if (yych <= 'm') + goto yy468; + if (yych <= 'n') + goto yy469; + goto yy31; + } + } + yy446: + yych = *++p; + if (yych == 'R') + goto yy454; + if (yych == 'r') + goto yy454; + goto yy31; + yy447: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy451; + if (yych <= 'O') + goto yy31; + goto yy41; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy31; + goto yy451; + } else { + if (yych == 'p') + goto yy41; + goto yy31; + } + } + yy448: + yych = *++p; + if (yych == 'I') + goto yy450; + if (yych == 'i') + goto yy450; + goto yy31; + yy449: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy450: + yych = *++p; + if (yych == 'D') + goto yy41; + if (yych == 'd') + goto yy41; + goto yy31; + yy451: + yych = *++p; + if (yych == 'L') + goto yy452; + if (yych != 'l') + goto yy31; + yy452: + yych = *++p; + if (yych == 'T') + goto yy453; + if (yych != 't') + goto yy31; + yy453: + yych = *++p; + if (yych == 'O') + goto yy41; + if (yych == 'o') + goto yy41; + goto yy31; + yy454: + yych = *++p; + if (yych == 'O') + goto yy455; + if (yych != 'o') + goto yy31; + yy455: + yych = *++p; + if (yych == 'M') + goto yy456; + if (yych != 'm') + goto yy31; + yy456: + yych = *++p; + if (yych == 'E') + goto yy457; + if (yych != 'e') + goto yy31; + yy457: + yych = *++p; + if (yych == '-') + goto yy458; + if (yych == ':') + goto yy42; + goto yy31; + yy458: + yych = *++p; + if (yych == 'E') + goto yy459; + if (yych != 'e') + goto yy31; + yy459: + yych = *++p; + if (yych == 'X') + goto yy460; + if (yych != 'x') + goto yy31; + yy460: + yych = *++p; + if (yych == 'T') + goto yy461; + if (yych != 't') + goto yy31; + yy461: + yych = *++p; + if (yych == 'E') + goto yy462; + if (yych != 'e') + goto yy31; + yy462: + yych = *++p; + if (yych == 'N') + goto yy463; + if (yych != 'n') + goto yy31; + yy463: + yych = *++p; + if (yych == 'S') + goto yy464; + if (yych != 's') + goto yy31; + yy464: + yych = *++p; + if (yych == 'I') + goto yy465; + if (yych != 'i') + goto yy31; + yy465: + yych = *++p; + if (yych == 'O') + goto yy466; + if (yych != 'o') + goto yy31; + yy466: + yych = *++p; + if (yych == 'N') + goto yy41; + if (yych == 'n') + goto yy41; + goto yy31; + yy467: + yych = *++p; + if (yych == 'P') + goto yy41; + if (yych == 'p') + goto yy41; + goto yy31; + yy468: + yych = *++p; + if (yych == '-') + goto yy473; + goto yy31; + yy469: + yych = *++p; + if (yych == 'T') + goto yy470; + if (yych != 't') + goto yy31; + yy470: + yych = *++p; + if (yych == 'E') + goto yy471; + if (yych != 'e') + goto yy31; + yy471: + yych = *++p; + if (yych == 'N') + goto yy472; + if (yych != 'n') + goto yy31; + yy472: + yych = *++p; + if (yych == 'T') + goto yy41; + if (yych == 't') + goto yy41; + goto yy31; + yy473: + yych = *++p; + if (yych == 'E') + goto yy474; + if (yych != 'e') + goto yy31; + yy474: + yych = *++p; + if (yych == 'V') + goto yy475; + if (yych != 'v') + goto yy31; + yy475: + yych = *++p; + if (yych == 'E') + goto yy476; + if (yych != 'e') + goto yy31; + yy476: + yych = *++p; + if (yych == 'N') + goto yy477; + if (yych != 'n') + goto yy31; + yy477: + yych = *++p; + if (yych == 'T') + goto yy478; + if (yych != 't') + goto yy31; + yy478: + yych = *++p; + if (yych == 'B') + goto yy479; + if (yych != 'b') + goto yy31; + yy479: + yych = *++p; + if (yych == 'R') + goto yy480; + if (yych != 'r') + goto yy31; + yy480: + yych = *++p; + if (yych == 'I') + goto yy481; + if (yych != 'i') + goto yy31; + yy481: + yych = *++p; + if (yych == 'T') + goto yy482; + if (yych != 't') + goto yy31; + yy482: + yych = *++p; + if (yych == 'E') + goto yy483; + if (yych != 'e') + goto yy31; + yy483: + yych = *++p; + if (yych != '-') + goto yy31; + yych = *++p; + if (yych == 'A') + goto yy485; + if (yych != 'a') + goto yy31; + yy485: + yych = *++p; + if (yych == 'T') + goto yy486; + if (yych != 't') + goto yy31; + yy486: + yych = *++p; + if (yych == 'T') + goto yy487; + if (yych != 't') + goto yy31; + yy487: + yych = *++p; + if (yych == 'E') + goto yy488; + if (yych != 'e') + goto yy31; + yy488: + yych = *++p; + if (yych == 'N') + goto yy489; + if (yych != 'n') + goto yy31; + yy489: + yych = *++p; + if (yych == 'D') + goto yy490; + if (yych != 'd') + goto yy31; + yy490: + yych = *++p; + if (yych == 'E') + goto yy491; + if (yych != 'e') + goto yy31; + yy491: + ++p; + if ((yych = *p) == 'E') + goto yy41; + if (yych == 'e') + goto yy41; + goto yy31; + } } // 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 = *(marker = p); - if (yych <= 'c') { - if (yych <= 'M') { - if (yych <= 'E') { - if (yych <= 'A') { - if (yych == '\n') goto yy494; - if (yych <= '@') goto yy521; - goto yy498; - } else { - if (yych <= 'B') goto yy516; - if (yych <= 'C') goto yy495; - if (yych <= 'D') goto yy496; - goto yy517; - } - } else { - if (yych <= 'I') { - if (yych <= 'F') goto yy499; - if (yych <= 'G') goto yy500; - if (yych <= 'H') goto yy501; - goto yy502; - } else { - if (yych <= 'J') goto yy497; - if (yych <= 'K') goto yy518; - if (yych <= 'L') goto yy503; - goto yy504; - } - } - } else { - if (yych <= 'U') { - if (yych <= 'Q') { - if (yych <= 'N') goto yy505; - if (yych <= 'O') goto yy506; - if (yych <= 'P') goto yy507; - goto yy519; - } else { - if (yych <= 'R') goto yy508; - if (yych <= 'S') goto yy509; - if (yych <= 'T') goto yy510; - goto yy511; - } - } else { - if (yych <= 'Y') { - if (yych <= 'V') goto yy512; - if (yych <= 'W') goto yy513; - if (yych <= 'X') goto yy514; - goto yy520; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy515; - goto yy521; - } else { - if (yych <= 'a') goto yy498; - if (yych <= 'b') goto yy516; - goto yy495; - } - } - } - } - } else { - if (yych <= 't') { - if (yych <= 'k') { - if (yych <= 'g') { - if (yych <= 'd') goto yy496; - if (yych <= 'e') goto yy517; - if (yych <= 'f') goto yy499; - goto yy500; - } else { - if (yych <= 'h') goto yy501; - if (yych <= 'i') goto yy502; - if (yych <= 'j') goto yy497; - goto yy518; - } - } else { - if (yych <= 'o') { - if (yych <= 'l') goto yy503; - if (yych <= 'm') goto yy504; - if (yych <= 'n') goto yy505; - goto yy506; - } else { - if (yych <= 'q') { - if (yych <= 'p') goto yy507; - goto yy519; - } else { - if (yych <= 'r') goto yy508; - if (yych <= 's') goto yy509; - goto yy510; - } - } - } - } else { - if (yych <= 0xC1) { - if (yych <= 'x') { - if (yych <= 'u') goto yy511; - if (yych <= 'v') goto yy512; - if (yych <= 'w') goto yy513; - goto yy514; - } else { - if (yych <= 'y') goto yy520; - if (yych <= 'z') goto yy515; - if (yych <= 0x7F) goto yy521; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy522; - if (yych <= 0xE0) goto yy524; - if (yych <= 0xEC) goto yy525; - goto yy529; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy525; - goto yy526; - } else { - if (yych <= 0xF3) goto yy527; - if (yych <= 0xF4) goto yy528; - } - } - } - } - } -yy494: - { return 0; } -yy495: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy948; - case 'H': - case 'h': goto yy947; - case 'I': - case 'i': goto yy950; - case 'O': - case 'o': goto yy946; - case 'R': - case 'r': goto yy949; - case 'V': - case 'v': goto yy945; - default: goto yy494; - } -yy496: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy921; - case 'I': - case 'i': goto yy920; - case 'L': - case 'l': goto yy918; - case 'N': - case 'n': goto yy919; - case 'O': - case 'o': goto yy922; - case 'T': - case 't': goto yy917; - case 'V': - case 'v': goto yy916; - default: goto yy494; - } -yy497: - yych = *(marker = ++p); - if (yych <= 'M') { - if (yych == 'A') goto yy908; - if (yych <= 'L') goto yy494; - goto yy907; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy494; - goto yy908; - } else { - if (yych == 'm') goto yy907; - goto yy494; - } - } -yy498: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy889; - case 'B': - case 'b': goto yy888; - case 'C': - case 'c': goto yy887; - case 'D': - case 'd': goto yy886; - case 'F': - case 'f': goto yy885; - case 'I': - case 'i': goto yy884; - case 'P': - case 'p': goto yy883; - case 'T': - case 't': goto yy882; - case 'W': - case 'w': goto yy533; - default: goto yy494; - } -yy499: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'E') { - if (yych == 'A') goto yy869; - if (yych <= 'D') goto yy494; - goto yy868; - } else { - if (yych == 'I') goto yy867; - if (yych <= 'S') goto yy494; - goto yy870; - } - } else { - if (yych <= 'e') { - if (yych == 'a') goto yy869; - if (yych <= 'd') goto yy494; - goto yy868; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy494; - goto yy867; - } else { - if (yych == 't') goto yy870; - goto yy494; - } - } - } -yy500: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy852; - case 'G': - case 'g': goto yy533; - case 'I': - case 'i': goto yy850; - case 'O': - case 'o': goto yy851; - case 'T': - case 't': goto yy849; - default: goto yy494; - } -yy501: - yych = *(marker = ++p); - if (yych <= 'S') { - if (yych <= '3') { - if (yych <= '2') goto yy494; - goto yy845; - } else { - if (yych == 'C') goto yy843; - goto yy494; - } - } else { - if (yych <= 'c') { - if (yych <= 'T') goto yy844; - if (yych <= 'b') goto yy494; - goto yy843; - } else { - if (yych == 't') goto yy844; - goto yy494; - } - } -yy502: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy825; - case 'C': - case 'c': goto yy822; - case 'M': - case 'm': goto yy824; - case 'N': - case 'n': goto yy823; - case 'P': - case 'p': goto yy821; - case 'R': - case 'r': goto yy820; - case 'T': - case 't': goto yy819; - default: goto yy494; - } -yy503: - yych = *(marker = ++p); - if (yych <= 'D') { - if (yych == 'A') goto yy813; - if (yych <= 'C') goto yy494; - goto yy812; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy494; - goto yy813; - } else { - if (yych == 'd') goto yy812; - goto yy494; - } - } -yy504: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy779; - case 'E': - case 'e': goto yy778; - case 'I': - case 'i': goto yy781; - case 'M': - case 'm': goto yy777; - case 'S': - case 's': goto yy776; - case 'T': - case 't': goto yy780; - case 'U': - case 'u': goto yy775; - case 'V': - case 'v': goto yy774; - default: goto yy494; - } -yy505: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy769; - case 'F': - case 'f': goto yy768; - case 'I': - case 'i': goto yy767; - case 'N': - case 'n': goto yy766; - case 'O': - case 'o': goto yy765; - default: goto yy494; - } -yy506: - yych = *(marker = ++p); - if (yych <= 'P') { - if (yych == 'I') goto yy751; - if (yych <= 'O') goto yy494; - goto yy752; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy494; - goto yy751; - } else { - if (yych == 'p') goto yy752; - goto yy494; - } - } -yy507: - yych = *(marker = ++p); - if (yych <= 'S') { - if (yych <= 'L') { - if (yych == 'A') goto yy733; - if (yych <= 'K') goto yy494; - goto yy732; - } else { - if (yych <= 'O') { - if (yych <= 'N') goto yy494; - goto yy734; - } else { - if (yych <= 'Q') goto yy494; - if (yych <= 'R') goto yy731; - goto yy730; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'a') { - if (yych <= '`') goto yy494; - goto yy733; - } else { - if (yych == 'l') goto yy732; - goto yy494; - } - } else { - if (yych <= 'q') { - if (yych <= 'o') goto yy734; - goto yy494; - } else { - if (yych <= 'r') goto yy731; - if (yych <= 's') goto yy730; - goto yy494; - } - } - } -yy508: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'L') { - if (yych == 'E') goto yy720; - goto yy494; - } else { - if (yych <= 'M') goto yy719; - if (yych <= 'R') goto yy494; - if (yych <= 'S') goto yy718; - goto yy717; - } - } else { - if (yych <= 'm') { - if (yych == 'e') goto yy720; - if (yych <= 'l') goto yy494; - goto yy719; - } else { - if (yych <= 'r') goto yy494; - if (yych <= 's') goto yy718; - if (yych <= 't') goto yy717; - goto yy494; - } - } -yy509: - yych = *(marker = ++p); - switch (yych) { - case 'E': - case 'e': goto yy673; - case 'F': - case 'f': goto yy672; - case 'G': - case 'g': goto yy671; - case 'H': - case 'h': goto yy676; - case 'I': - case 'i': goto yy675; - case 'K': - case 'k': goto yy670; - case 'M': - case 'm': goto yy669; - case 'N': - case 'n': goto yy674; - case 'O': - case 'o': goto yy668; - case 'P': - case 'p': goto yy667; - case 'S': - case 's': goto yy666; - case 'T': - case 't': goto yy665; - case 'V': - case 'v': goto yy664; - default: goto yy494; - } -yy510: - yych = *(marker = ++p); - switch (yych) { - case 'A': - case 'a': goto yy640; - case 'E': - case 'e': goto yy636; - case 'F': - case 'f': goto yy639; - case 'H': - case 'h': goto yy635; - case 'I': - case 'i': goto yy637; - case 'N': - case 'n': goto yy638; - case 'V': - case 'v': goto yy533; - default: goto yy494; - } -yy511: - yych = *(marker = ++p); - if (yych <= 'T') { - if (yych <= 'N') { - if (yych == 'D') goto yy627; - if (yych <= 'M') goto yy494; - goto yy626; - } else { - if (yych == 'R') goto yy628; - if (yych <= 'S') goto yy494; - goto yy625; - } - } else { - if (yych <= 'n') { - if (yych == 'd') goto yy627; - if (yych <= 'm') goto yy494; - goto yy626; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy494; - goto yy628; - } else { - if (yych == 't') goto yy625; - goto yy494; - } - } - } -yy512: - yych = *(marker = ++p); - if (yych <= 'I') { - if (yych == 'E') goto yy609; - if (yych <= 'H') goto yy494; - goto yy608; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy494; - goto yy609; - } else { - if (yych == 'i') goto yy608; - goto yy494; - } - } -yy513: - yych = *(marker = ++p); - if (yych <= 'Y') { - if (yych <= 'R') { - if (yych == 'E') goto yy598; - goto yy494; - } else { - if (yych <= 'S') goto yy599; - if (yych <= 'T') goto yy597; - if (yych <= 'X') goto yy494; - goto yy596; - } - } else { - if (yych <= 's') { - if (yych == 'e') goto yy598; - if (yych <= 'r') goto yy494; - goto yy599; - } else { - if (yych <= 't') goto yy597; - if (yych == 'y') goto yy596; - goto yy494; - } - } -yy514: - yych = *(marker = ++p); - if (yych <= 'R') { - if (yych <= 'F') { - if (yych == 'C') goto yy575; - if (yych <= 'E') goto yy494; - goto yy573; - } else { - if (yych == 'M') goto yy574; - if (yych <= 'Q') goto yy494; - goto yy572; - } - } else { - if (yych <= 'f') { - if (yych == 'c') goto yy575; - if (yych <= 'e') goto yy494; - goto yy573; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy494; - goto yy574; - } else { - if (yych == 'r') goto yy572; - goto yy494; - } - } - } -yy515: - yych = *(marker = ++p); - if (yych == '3') goto yy567; - goto yy494; -yy516: - yych = *(marker = ++p); - if (yych <= 'O') { - if (yych <= 'H') { - if (yych == 'E') goto yy557; - goto yy494; - } else { - if (yych <= 'I') goto yy556; - if (yych <= 'N') goto yy494; - goto yy555; - } - } else { - if (yych <= 'h') { - if (yych == 'e') goto yy557; - goto yy494; - } else { - if (yych <= 'i') goto yy556; - if (yych == 'o') goto yy555; - goto yy494; - } - } -yy517: - yych = *(marker = ++p); - if (yych == 'D') goto yy553; - if (yych == 'd') goto yy553; - goto yy494; -yy518: - yych = *(marker = ++p); - if (yych == 'E') goto yy548; - if (yych == 'e') goto yy548; - goto yy494; -yy519: - yych = *(marker = ++p); - if (yych == 'U') goto yy545; - if (yych == 'u') goto yy545; - goto yy494; -yy520: - yych = *(marker = ++p); - if (yych == 'M') goto yy530; - if (yych == 'm') goto yy530; - goto yy494; -yy521: - yych = *++p; - goto yy494; -yy522: - yych = *++p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy521; -yy523: - p = marker; - goto yy494; -yy524: - yych = *++p; - if (yych <= 0x9F) goto yy523; - if (yych <= 0xBF) goto yy522; - goto yy523; -yy525: - yych = *++p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy522; - goto yy523; -yy526: - yych = *++p; - if (yych <= 0x8F) goto yy523; - if (yych <= 0xBF) goto yy525; - goto yy523; -yy527: - yych = *++p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy525; - goto yy523; -yy528: - yych = *++p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0x8F) goto yy525; - goto yy523; -yy529: - yych = *++p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0x9F) goto yy522; - goto yy523; -yy530: - yych = *++p; - if (yych == 'S') goto yy531; - if (yych != 's') goto yy523; -yy531: - yych = *++p; - if (yych == 'G') goto yy532; - if (yych != 'g') goto yy523; -yy532: - yych = *++p; - if (yych == 'R') goto yy533; - if (yych != 'r') goto yy523; -yy533: - yych = *++p; - if (yych != ':') goto yy523; -yy534: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy534; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '<') goto yy523; - if (yych <= '>') goto yy543; - goto yy523; - } else { - if (yych <= 0xDF) goto yy536; - if (yych <= 0xE0) goto yy537; - goto yy538; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy542; - if (yych <= 0xEF) goto yy538; - goto yy539; - } else { - if (yych <= 0xF3) goto yy540; - if (yych <= 0xF4) goto yy541; - goto yy523; - } - } -yy536: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy534; - goto yy523; -yy537: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy523; - if (yych <= 0xBF) goto yy536; - goto yy523; -yy538: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy536; - goto yy523; -yy539: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy523; - if (yych <= 0xBF) goto yy538; - goto yy523; -yy540: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0xBF) goto yy538; - goto yy523; -yy541: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0x8F) goto yy538; - goto yy523; -yy542: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy523; - if (yych <= 0x9F) goto yy536; - goto yy523; -yy543: - ++p; - { return (bufsize_t)(p - start); } -yy545: - yych = *++p; - if (yych == 'E') goto yy546; - if (yych != 'e') goto yy523; -yy546: - yych = *++p; - if (yych == 'R') goto yy547; - if (yych != 'r') goto yy523; -yy547: - yych = *++p; - if (yych == 'Y') goto yy533; - if (yych == 'y') goto yy533; - goto yy523; -yy548: - yych = *++p; - if (yych == 'Y') goto yy549; - if (yych != 'y') goto yy523; -yy549: - yych = *++p; - if (yych == 'P') goto yy550; - if (yych != 'p') goto yy523; -yy550: - yych = *++p; - if (yych == 'A') goto yy551; - if (yych != 'a') goto yy523; -yy551: - yych = *++p; - if (yych == 'R') goto yy552; - if (yych != 'r') goto yy523; -yy552: - yych = *++p; - if (yych == 'C') goto yy533; - if (yych == 'c') goto yy533; - goto yy523; -yy553: - yych = *++p; - if (yych != '2') goto yy523; - yych = *++p; - if (yych == 'K') goto yy533; - if (yych == 'k') goto yy533; - goto yy523; -yy555: - yych = *++p; - if (yych == 'L') goto yy566; - if (yych == 'l') goto yy566; - goto yy523; -yy556: - yych = *++p; - if (yych == 'T') goto yy562; - if (yych == 't') goto yy562; - goto yy523; -yy557: - yych = *++p; - if (yych == 'S') goto yy558; - if (yych != 's') goto yy523; -yy558: - yych = *++p; - if (yych == 'H') goto yy559; - if (yych != 'h') goto yy523; -yy559: - yych = *++p; - if (yych == 'A') goto yy560; - if (yych != 'a') goto yy523; -yy560: - yych = *++p; - if (yych == 'R') goto yy561; - if (yych != 'r') goto yy523; -yy561: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy562: - yych = *++p; - if (yych == 'C') goto yy563; - if (yych != 'c') goto yy523; -yy563: - yych = *++p; - if (yych == 'O') goto yy564; - if (yych != 'o') goto yy523; -yy564: - yych = *++p; - if (yych == 'I') goto yy565; - if (yych != 'i') goto yy523; -yy565: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy566: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy567: - yych = *++p; - if (yych != '9') goto yy523; - yych = *++p; - if (yych != '.') goto yy523; - yych = *++p; - if (yych != '5') goto yy523; - yych = *++p; - if (yych != '0') goto yy523; - yych = *++p; - if (yych <= 'Q') goto yy523; - if (yych <= 'S') goto yy533; - if (yych <= 'q') goto yy523; - if (yych <= 's') goto yy533; - goto yy523; -yy572: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy573: - yych = *++p; - if (yych == 'I') goto yy594; - if (yych == 'i') goto yy594; - goto yy523; -yy574: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy584; - if (yych <= 'O') goto yy523; - goto yy585; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy523; - goto yy584; - } else { - if (yych == 'p') goto yy585; - goto yy523; - } - } -yy575: - yych = *++p; - if (yych == 'O') goto yy576; - if (yych != 'o') goto yy523; -yy576: - yych = *++p; - if (yych == 'N') goto yy577; - if (yych != 'n') goto yy523; -yy577: - yych = *++p; - if (yych == '-') goto yy578; - if (yych == ':') goto yy534; - goto yy523; -yy578: - yych = *++p; - if (yych == 'U') goto yy579; - if (yych != 'u') goto yy523; -yy579: - yych = *++p; - if (yych == 'S') goto yy580; - if (yych != 's') goto yy523; -yy580: - yych = *++p; - if (yych == 'E') goto yy581; - if (yych != 'e') goto yy523; -yy581: - yych = *++p; - if (yych == 'R') goto yy582; - if (yych != 'r') goto yy523; -yy582: - yych = *++p; - if (yych == 'I') goto yy583; - if (yych != 'i') goto yy523; -yy583: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy584: - yych = *++p; - if (yych == 'R') goto yy586; - if (yych == 'r') goto yy586; - goto yy523; -yy585: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy586: - yych = *++p; - if (yych == 'P') goto yy587; - if (yych != 'p') goto yy523; -yy587: - yych = *++p; - if (yych == 'C') goto yy588; - if (yych != 'c') goto yy523; -yy588: - yych = *++p; - if (yych != '.') goto yy523; - yych = *++p; - if (yych == 'B') goto yy590; - if (yych != 'b') goto yy523; -yy590: - yych = *++p; - if (yych == 'E') goto yy591; - if (yych != 'e') goto yy523; -yy591: - yych = *++p; - if (yych == 'E') goto yy592; - if (yych != 'e') goto yy523; -yy592: - yych = *++p; - if (yych == 'P') goto yy593; - if (yych != 'p') goto yy523; -yy593: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy594: - yych = *++p; - if (yych == 'R') goto yy595; - if (yych != 'r') goto yy523; -yy595: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy596: - yych = *++p; - if (yych == 'C') goto yy604; - if (yych == 'c') goto yy604; - goto yy523; -yy597: - yych = *++p; - if (yych == 'A') goto yy603; - if (yych == 'a') goto yy603; - goto yy523; -yy598: - yych = *++p; - if (yych == 'B') goto yy600; - if (yych == 'b') goto yy600; - goto yy523; -yy599: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy600: - yych = *++p; - if (yych == 'C') goto yy601; - if (yych != 'c') goto yy523; -yy601: - yych = *++p; - if (yych == 'A') goto yy602; - if (yych != 'a') goto yy523; -yy602: - yych = *++p; - if (yych == 'L') goto yy533; - if (yych == 'l') goto yy533; - goto yy523; -yy603: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy604: - yych = *++p; - if (yych == 'I') goto yy605; - if (yych != 'i') goto yy523; -yy605: - yych = *++p; - if (yych == 'W') goto yy606; - if (yych != 'w') goto yy523; -yy606: - yych = *++p; - if (yych == 'Y') goto yy607; - if (yych != 'y') goto yy523; -yy607: - yych = *++p; - if (yych == 'G') goto yy533; - if (yych == 'g') goto yy533; - goto yy523; -yy608: - yych = *++p; - if (yych == 'E') goto yy617; - if (yych == 'e') goto yy617; - goto yy523; -yy609: - yych = *++p; - if (yych <= 'N') { - if (yych <= 'L') goto yy523; - if (yych >= 'N') goto yy611; - } else { - if (yych <= 'l') goto yy523; - if (yych <= 'm') goto yy610; - if (yych <= 'n') goto yy611; - goto yy523; - } -yy610: - yych = *++p; - if (yych == 'M') goto yy616; - if (yych == 'm') goto yy616; - goto yy523; -yy611: - yych = *++p; - if (yych == 'T') goto yy612; - if (yych != 't') goto yy523; -yy612: - yych = *++p; - if (yych == 'R') goto yy613; - if (yych != 'r') goto yy523; -yy613: - yych = *++p; - if (yych == 'I') goto yy614; - if (yych != 'i') goto yy523; -yy614: - yych = *++p; - if (yych == 'L') goto yy615; - if (yych != 'l') goto yy523; -yy615: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy616: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy617: - yych = *++p; - if (yych == 'W') goto yy618; - if (yych != 'w') goto yy523; -yy618: - yych = *++p; - if (yych != '-') goto yy523; - yych = *++p; - if (yych == 'S') goto yy620; - if (yych != 's') goto yy523; -yy620: - yych = *++p; - if (yych == 'O') goto yy621; - if (yych != 'o') goto yy523; -yy621: - yych = *++p; - if (yych == 'U') goto yy622; - if (yych != 'u') goto yy523; -yy622: - yych = *++p; - if (yych == 'R') goto yy623; - if (yych != 'r') goto yy523; -yy623: - yych = *++p; - if (yych == 'C') goto yy624; - if (yych != 'c') goto yy523; -yy624: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy625: - yych = *++p; - if (yych == '2') goto yy632; - goto yy523; -yy626: - yych = *++p; - if (yych == 'R') goto yy629; - if (yych == 'r') goto yy629; - goto yy523; -yy627: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy628: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy629: - yych = *++p; - if (yych == 'E') goto yy630; - if (yych != 'e') goto yy523; -yy630: - yych = *++p; - if (yych == 'A') goto yy631; - if (yych != 'a') goto yy523; -yy631: - yych = *++p; - if (yych == 'L') goto yy533; - if (yych == 'l') goto yy533; - goto yy523; -yy632: - yych = *++p; - if (yych != '0') goto yy523; - yych = *++p; - if (yych != '0') goto yy523; - yych = *++p; - if (yych == '4') goto yy533; - goto yy523; -yy635: - yych = *++p; - if (yych == 'I') goto yy654; - if (yych == 'i') goto yy654; - goto yy523; -yy636: - yych = *++p; - if (yych <= 'L') { - if (yych == 'A') goto yy646; - if (yych <= 'K') goto yy523; - goto yy645; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy523; - goto yy646; - } else { - if (yych == 'l') goto yy645; - goto yy523; - } - } -yy637: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy638: - yych = *++p; - if (yych == '3') goto yy642; - goto yy523; -yy639: - yych = *++p; - if (yych == 'T') goto yy641; - if (yych == 't') goto yy641; - goto yy523; -yy640: - yych = *++p; - if (yych == 'G') goto yy533; - if (yych == 'g') goto yy533; - goto yy523; -yy641: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy642: - yych = *++p; - if (yych != '2') goto yy523; - yych = *++p; - if (yych != '7') goto yy523; - yych = *++p; - if (yych == '0') goto yy533; - goto yy523; -yy645: - yych = *++p; - if (yych <= 'M') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'N') goto yy652; - if (yych == 'n') goto yy652; - goto yy523; - } -yy646: - yych = *++p; - if (yych == 'M') goto yy647; - if (yych != 'm') goto yy523; -yy647: - yych = *++p; - if (yych == 'S') goto yy648; - if (yych != 's') goto yy523; -yy648: - yych = *++p; - if (yych == 'P') goto yy649; - if (yych != 'p') goto yy523; -yy649: - yych = *++p; - if (yych == 'E') goto yy650; - if (yych != 'e') goto yy523; -yy650: - yych = *++p; - if (yych == 'A') goto yy651; - if (yych != 'a') goto yy523; -yy651: - yych = *++p; - if (yych == 'K') goto yy533; - if (yych == 'k') goto yy533; - goto yy523; -yy652: - yych = *++p; - if (yych == 'E') goto yy653; - if (yych != 'e') goto yy523; -yy653: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy654: - yych = *++p; - if (yych <= 'S') { - if (yych == 'N') goto yy655; - if (yych <= 'R') goto yy523; - goto yy656; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy523; - } else { - if (yych == 's') goto yy656; - goto yy523; - } - } -yy655: - yych = *++p; - if (yych == 'G') goto yy663; - if (yych == 'g') goto yy663; - goto yy523; -yy656: - yych = *++p; - if (yych == 'M') goto yy657; - if (yych != 'm') goto yy523; -yy657: - yych = *++p; - if (yych == 'E') goto yy658; - if (yych != 'e') goto yy523; -yy658: - yych = *++p; - if (yych == 'S') goto yy659; - if (yych != 's') goto yy523; -yy659: - yych = *++p; - if (yych == 'S') goto yy660; - if (yych != 's') goto yy523; -yy660: - yych = *++p; - if (yych == 'A') goto yy661; - if (yych != 'a') goto yy523; -yy661: - yych = *++p; - if (yych == 'G') goto yy662; - if (yych != 'g') goto yy523; -yy662: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy663: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy664: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy665: - yych = *++p; - if (yych == 'E') goto yy715; - if (yych == 'e') goto yy715; - goto yy523; -yy666: - yych = *++p; - if (yych == 'H') goto yy533; - if (yych == 'h') goto yy533; - goto yy523; -yy667: - yych = *++p; - if (yych == 'O') goto yy711; - if (yych == 'o') goto yy711; - goto yy523; -yy668: - yych = *++p; - if (yych <= 'L') { - if (yych == 'A') goto yy701; - if (yych <= 'K') goto yy523; - goto yy702; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy523; - goto yy701; - } else { - if (yych == 'l') goto yy702; - goto yy523; - } - } -yy669: - yych = *++p; - if (yych <= 'S') { - if (yych == 'B') goto yy533; - if (yych <= 'R') goto yy523; - goto yy533; - } else { - if (yych <= 'b') { - if (yych <= 'a') goto yy523; - goto yy533; - } else { - if (yych == 's') goto yy533; - goto yy523; - } - } -yy670: - yych = *++p; - if (yych == 'Y') goto yy699; - if (yych == 'y') goto yy699; - goto yy523; -yy671: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy672: - yych = *++p; - if (yych == 'T') goto yy698; - if (yych == 't') goto yy698; - goto yy523; -yy673: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'C') { - if (yych <= 'B') goto yy523; - goto yy685; - } else { - if (yych <= 'Q') goto yy523; - if (yych <= 'R') goto yy683; - goto yy684; - } - } else { - if (yych <= 'q') { - if (yych == 'c') goto yy685; - goto yy523; - } else { - if (yych <= 'r') goto yy683; - if (yych <= 's') goto yy684; - goto yy523; - } - } -yy674: - yych = *++p; - if (yych == 'M') goto yy682; - if (yych == 'm') goto yy682; - goto yy523; -yy675: - yych = *++p; - if (yych <= 'P') { - if (yych == 'E') goto yy679; - if (yych <= 'O') goto yy523; - goto yy680; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy523; - goto yy679; - } else { - if (yych == 'p') goto yy680; - goto yy523; - } - } -yy676: - yych = *++p; - if (yych == 'T') goto yy677; - if (yych != 't') goto yy523; -yy677: - yych = *++p; - if (yych == 'T') goto yy678; - if (yych != 't') goto yy523; -yy678: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy679: - yych = *++p; - if (yych == 'V') goto yy681; - if (yych == 'v') goto yy681; - goto yy523; -yy680: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy681: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy682: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy683: - yych = *++p; - if (yych == 'V') goto yy695; - if (yych == 'v') goto yy695; - goto yy523; -yy684: - yych = *++p; - if (yych == 'S') goto yy692; - if (yych == 's') goto yy692; - goto yy523; -yy685: - yych = *++p; - if (yych == 'O') goto yy686; - if (yych != 'o') goto yy523; -yy686: - yych = *++p; - if (yych == 'N') goto yy687; - if (yych != 'n') goto yy523; -yy687: - yych = *++p; - if (yych == 'D') goto yy688; - if (yych != 'd') goto yy523; -yy688: - yych = *++p; - if (yych == 'L') goto yy689; - if (yych != 'l') goto yy523; -yy689: - yych = *++p; - if (yych == 'I') goto yy690; - if (yych != 'i') goto yy523; -yy690: - yych = *++p; - if (yych == 'F') goto yy691; - if (yych != 'f') goto yy523; -yy691: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy692: - yych = *++p; - if (yych == 'I') goto yy693; - if (yych != 'i') goto yy523; -yy693: - yych = *++p; - if (yych == 'O') goto yy694; - if (yych != 'o') goto yy523; -yy694: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy695: - yych = *++p; - if (yych == 'I') goto yy696; - if (yych != 'i') goto yy523; -yy696: - yych = *++p; - if (yych == 'C') goto yy697; - if (yych != 'c') goto yy523; -yy697: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy698: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy699: - yych = *++p; - if (yych == 'P') goto yy700; - if (yych != 'p') goto yy523; -yy700: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy701: - yych = *++p; - if (yych == 'P') goto yy705; - if (yych == 'p') goto yy705; - goto yy523; -yy702: - yych = *++p; - if (yych == 'D') goto yy703; - if (yych != 'd') goto yy523; -yy703: - yych = *++p; - if (yych == 'A') goto yy704; - if (yych != 'a') goto yy523; -yy704: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy705: - yych = *++p; - if (yych != '.') goto yy523; - yych = *++p; - if (yych == 'B') goto yy707; - if (yych != 'b') goto yy523; -yy707: - yych = *++p; - if (yych == 'E') goto yy708; - if (yych != 'e') goto yy523; -yy708: - yych = *++p; - if (yych == 'E') goto yy709; - if (yych != 'e') goto yy523; -yy709: - yych = *++p; - if (yych == 'P') goto yy710; - if (yych != 'p') goto yy523; -yy710: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy711: - yych = *++p; - if (yych == 'T') goto yy712; - if (yych != 't') goto yy523; -yy712: - yych = *++p; - if (yych == 'I') goto yy713; - if (yych != 'i') goto yy523; -yy713: - yych = *++p; - if (yych == 'F') goto yy714; - if (yych != 'f') goto yy523; -yy714: - yych = *++p; - if (yych == 'Y') goto yy533; - if (yych == 'y') goto yy533; - goto yy523; -yy715: - yych = *++p; - if (yych == 'A') goto yy716; - if (yych != 'a') goto yy523; -yy716: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy717: - yych = *++p; - if (yych <= 'S') { - if (yych == 'M') goto yy729; - if (yych <= 'R') goto yy523; - goto yy728; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy523; - goto yy729; - } else { - if (yych == 's') goto yy728; - goto yy523; - } - } -yy718: - yych = *++p; - if (yych == 'Y') goto yy726; - if (yych == 'y') goto yy726; - goto yy523; -yy719: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy720: - yych = *++p; - if (yych == 'S') goto yy721; - if (yych != 's') goto yy523; -yy721: - yych = *++p; - if (yych <= 'N') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'O') goto yy722; - if (yych != 'o') goto yy523; - } -yy722: - yych = *++p; - if (yych == 'U') goto yy723; - if (yych != 'u') goto yy523; -yy723: - yych = *++p; - if (yych == 'R') goto yy724; - if (yych != 'r') goto yy523; -yy724: - yych = *++p; - if (yych == 'C') goto yy725; - if (yych != 'c') goto yy523; -yy725: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy726: - yych = *++p; - if (yych == 'N') goto yy727; - if (yych != 'n') goto yy523; -yy727: - yych = *++p; - if (yych == 'C') goto yy533; - if (yych == 'c') goto yy533; - goto yy523; -yy728: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy729: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy730: - yych = *++p; - if (yych == 'Y') goto yy750; - if (yych == 'y') goto yy750; - goto yy523; -yy731: - yych = *++p; - if (yych <= 'O') { - if (yych == 'E') goto yy747; - if (yych <= 'N') goto yy523; - goto yy748; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy523; - goto yy747; - } else { - if (yych == 'o') goto yy748; - goto yy523; - } - } -yy732: - yych = *++p; - if (yych == 'A') goto yy742; - if (yych == 'a') goto yy742; - goto yy523; -yy733: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy735; - if (yych <= 'O') goto yy523; - goto yy736; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy523; - goto yy735; - } else { - if (yych == 'p') goto yy736; - goto yy523; - } - } -yy734: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy735: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy736: - yych = *++p; - if (yych == 'A') goto yy737; - if (yych != 'a') goto yy523; -yy737: - yych = *++p; - if (yych == 'R') goto yy738; - if (yych != 'r') goto yy523; -yy738: - yych = *++p; - if (yych == 'A') goto yy739; - if (yych != 'a') goto yy523; -yy739: - yych = *++p; - if (yych == 'Z') goto yy740; - if (yych != 'z') goto yy523; -yy740: - yych = *++p; - if (yych == 'Z') goto yy741; - if (yych != 'z') goto yy523; -yy741: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy742: - yych = *++p; - if (yych == 'T') goto yy743; - if (yych != 't') goto yy523; -yy743: - yych = *++p; - if (yych == 'F') goto yy744; - if (yych != 'f') goto yy523; -yy744: - yych = *++p; - if (yych == 'O') goto yy745; - if (yych != 'o') goto yy523; -yy745: - yych = *++p; - if (yych == 'R') goto yy746; - if (yych != 'r') goto yy523; -yy746: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy747: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy748: - yych = *++p; - if (yych == 'X') goto yy749; - if (yych != 'x') goto yy523; -yy749: - yych = *++p; - if (yych == 'Y') goto yy533; - if (yych == 'y') goto yy533; - goto yy523; -yy750: - yych = *++p; - if (yych == 'C') goto yy533; - if (yych == 'c') goto yy533; - goto yy523; -yy751: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy752: - yych = *++p; - if (yych == 'A') goto yy753; - if (yych != 'a') goto yy523; -yy753: - yych = *++p; - if (yych == 'Q') goto yy754; - if (yych != 'q') goto yy523; -yy754: - yych = *++p; - if (yych == 'U') goto yy755; - if (yych != 'u') goto yy523; -yy755: - yych = *++p; - if (yych == 'E') goto yy756; - if (yych != 'e') goto yy523; -yy756: - yych = *++p; - if (yych == 'L') goto yy757; - if (yych != 'l') goto yy523; -yy757: - yych = *++p; - if (yych == 'O') goto yy758; - if (yych != 'o') goto yy523; -yy758: - yych = *++p; - if (yych == 'C') goto yy759; - if (yych != 'c') goto yy523; -yy759: - yych = *++p; - if (yych == 'K') goto yy760; - if (yych != 'k') goto yy523; -yy760: - yych = *++p; - if (yych == 'T') goto yy761; - if (yych != 't') goto yy523; -yy761: - yych = *++p; - if (yych == 'O') goto yy762; - if (yych != 'o') goto yy523; -yy762: - yych = *++p; - if (yych == 'K') goto yy763; - if (yych != 'k') goto yy523; -yy763: - yych = *++p; - if (yych == 'E') goto yy764; - if (yych != 'e') goto yy523; -yy764: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy765: - yych = *++p; - if (yych == 'T') goto yy772; - if (yych == 't') goto yy772; - goto yy523; -yy766: - yych = *++p; - if (yych == 'T') goto yy771; - if (yych == 't') goto yy771; - goto yy523; -yy767: - yych = *++p; - if (yych <= 'G') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'H') goto yy533; - if (yych == 'h') goto yy533; - goto yy523; - } -yy768: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy769: - yych = *++p; - if (yych == 'W') goto yy770; - if (yych != 'w') goto yy523; -yy770: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy771: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy772: - yych = *++p; - if (yych == 'E') goto yy773; - if (yych != 'e') goto yy523; -yy773: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy774: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy775: - yych = *++p; - if (yych <= 'P') { - if (yych == 'M') goto yy806; - if (yych <= 'O') goto yy523; - goto yy805; - } else { - if (yych <= 'm') { - if (yych <= 'l') goto yy523; - goto yy806; - } else { - if (yych == 'p') goto yy805; - goto yy523; - } - } -yy776: - yych = *++p; - if (yych <= 'Q') { - if (yych <= '-') { - if (yych <= ',') goto yy523; - goto yy798; - } else { - if (yych == 'N') goto yy799; - goto yy523; - } - } else { - if (yych <= 'n') { - if (yych <= 'R') goto yy797; - if (yych <= 'm') goto yy523; - goto yy799; - } else { - if (yych == 'r') goto yy797; - goto yy523; - } - } -yy777: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy778: - yych = *++p; - if (yych == 'S') goto yy793; - if (yych == 's') goto yy793; - goto yy523; -yy779: - yych = *++p; - switch (yych) { - case 'G': - case 'g': goto yy784; - case 'I': - case 'i': goto yy783; - case 'P': - case 'p': goto yy785; - case 'R': - case 'r': goto yy786; - default: goto yy523; - } -yy780: - yych = *++p; - if (yych == 'Q') goto yy782; - if (yych == 'q') goto yy782; - goto yy523; -yy781: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy782: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy783: - yych = *++p; - if (yych == 'L') goto yy791; - if (yych == 'l') goto yy791; - goto yy523; -yy784: - yych = *++p; - if (yych == 'N') goto yy789; - if (yych == 'n') goto yy789; - goto yy523; -yy785: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy786: - yych = *++p; - if (yych == 'K') goto yy787; - if (yych != 'k') goto yy523; -yy787: - yych = *++p; - if (yych == 'E') goto yy788; - if (yych != 'e') goto yy523; -yy788: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy789: - yych = *++p; - if (yych == 'E') goto yy790; - if (yych != 'e') goto yy523; -yy790: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy791: - yych = *++p; - if (yych == 'T') goto yy792; - if (yych != 't') goto yy523; -yy792: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy793: - yych = *++p; - if (yych == 'S') goto yy794; - if (yych != 's') goto yy523; -yy794: - yych = *++p; - if (yych == 'A') goto yy795; - if (yych != 'a') goto yy523; -yy795: - yych = *++p; - if (yych == 'G') goto yy796; - if (yych != 'g') goto yy523; -yy796: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy797: - yych = *++p; - if (yych == 'P') goto yy804; - if (yych == 'p') goto yy804; - goto yy523; -yy798: - yych = *++p; - if (yych == 'H') goto yy801; - if (yych == 'h') goto yy801; - goto yy523; -yy799: - yych = *++p; - if (yych == 'I') goto yy800; - if (yych != 'i') goto yy523; -yy800: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy801: - yych = *++p; - if (yych == 'E') goto yy802; - if (yych != 'e') goto yy523; -yy802: - yych = *++p; - if (yych == 'L') goto yy803; - if (yych != 'l') goto yy523; -yy803: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy804: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy805: - yych = *++p; - if (yych == 'D') goto yy809; - if (yych == 'd') goto yy809; - goto yy523; -yy806: - yych = *++p; - if (yych == 'B') goto yy807; - if (yych != 'b') goto yy523; -yy807: - yych = *++p; - if (yych == 'L') goto yy808; - if (yych != 'l') goto yy523; -yy808: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy809: - yych = *++p; - if (yych == 'A') goto yy810; - if (yych != 'a') goto yy523; -yy810: - yych = *++p; - if (yych == 'T') goto yy811; - if (yych != 't') goto yy523; -yy811: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy812: - yych = *++p; - if (yych == 'A') goto yy817; - if (yych == 'a') goto yy817; - goto yy523; -yy813: - yych = *++p; - if (yych == 'S') goto yy814; - if (yych != 's') goto yy523; -yy814: - yych = *++p; - if (yych == 'T') goto yy815; - if (yych != 't') goto yy523; -yy815: - yych = *++p; - if (yych == 'F') goto yy816; - if (yych != 'f') goto yy523; -yy816: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy817: - yych = *++p; - if (yych == 'P') goto yy818; - if (yych != 'p') goto yy523; -yy818: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy819: - yych = *++p; - if (yych == 'M') goto yy842; - if (yych == 'm') goto yy842; - goto yy523; -yy820: - yych = *++p; - if (yych <= 'I') { - if (yych == 'C') goto yy831; - if (yych <= 'H') goto yy523; - goto yy830; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy523; - goto yy831; - } else { - if (yych == 'i') goto yy830; - goto yy523; - } - } -yy821: - yych = *++p; - if (yych <= 'P') { - if (yych == 'N') goto yy533; - if (yych <= 'O') goto yy523; - goto yy533; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy523; - goto yy533; - } else { - if (yych == 'p') goto yy533; - goto yy523; - } - } -yy822: - yych = *++p; - if (yych <= 'O') { - if (yych == 'A') goto yy828; - if (yych <= 'N') goto yy523; - goto yy829; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy523; - goto yy828; - } else { - if (yych == 'o') goto yy829; - goto yy523; - } - } -yy823: - yych = *++p; - if (yych == 'F') goto yy827; - if (yych == 'f') goto yy827; - goto yy523; -yy824: - yych = *++p; - if (yych <= '@') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'A') goto yy826; - if (yych == 'a') goto yy826; - goto yy523; - } -yy825: - yych = *++p; - if (yych == 'X') goto yy533; - if (yych == 'x') goto yy533; - goto yy523; -yy826: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy827: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy828: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy829: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy830: - yych = *++p; - if (yych == 'S') goto yy832; - if (yych == 's') goto yy832; - goto yy523; -yy831: - yych = *++p; - if (yych <= ':') { - if (yych == '6') goto yy533; - if (yych <= '9') goto yy523; - goto yy534; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy523; - goto yy533; - } else { - if (yych == 's') goto yy533; - goto yy523; - } - } -yy832: - yych = *++p; - if (yych == '.') goto yy833; - if (yych == ':') goto yy534; - goto yy523; -yy833: - yych = *++p; - if (yych <= 'X') { - if (yych <= 'K') { - if (yych == 'B') goto yy836; - goto yy523; - } else { - if (yych <= 'L') goto yy834; - if (yych <= 'W') goto yy523; - goto yy835; - } - } else { - if (yych <= 'k') { - if (yych == 'b') goto yy836; - goto yy523; - } else { - if (yych <= 'l') goto yy834; - if (yych == 'x') goto yy835; - goto yy523; - } - } -yy834: - yych = *++p; - if (yych == 'W') goto yy841; - if (yych == 'w') goto yy841; - goto yy523; -yy835: - yych = *++p; - if (yych == 'P') goto yy839; - if (yych == 'p') goto yy839; - goto yy523; -yy836: - yych = *++p; - if (yych == 'E') goto yy837; - if (yych != 'e') goto yy523; -yy837: - yych = *++p; - if (yych == 'E') goto yy838; - if (yych != 'e') goto yy523; -yy838: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy839: - yych = *++p; - if (yych == 'C') goto yy840; - if (yych != 'c') goto yy523; -yy840: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy841: - yych = *++p; - if (yych == 'Z') goto yy533; - if (yych == 'z') goto yy533; - goto yy523; -yy842: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy843: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy844: - yych = *++p; - if (yych == 'T') goto yy847; - if (yych == 't') goto yy847; - goto yy523; -yy845: - yych = *++p; - if (yych != '2') goto yy523; - yych = *++p; - if (yych == '3') goto yy533; - goto yy523; -yy847: - yych = *++p; - if (yych == 'P') goto yy848; - if (yych != 'p') goto yy523; -yy848: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy849: - yych = *++p; - if (yych == 'A') goto yy865; - if (yych == 'a') goto yy865; - goto yy523; -yy850: - yych = *++p; - if (yych <= 'Z') { - if (yych == 'T') goto yy533; - if (yych <= 'Y') goto yy523; - goto yy856; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy523; - goto yy533; - } else { - if (yych == 'z') goto yy856; - goto yy523; - } - } -yy851: - yych = *++p; - if (yych <= 'O') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'P') goto yy853; - if (yych == 'p') goto yy853; - goto yy523; - } -yy852: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy853: - yych = *++p; - if (yych == 'H') goto yy854; - if (yych != 'h') goto yy523; -yy854: - yych = *++p; - if (yych == 'E') goto yy855; - if (yych != 'e') goto yy523; -yy855: - yych = *++p; - if (yych == 'R') goto yy533; - if (yych == 'r') goto yy533; - goto yy523; -yy856: - yych = *++p; - if (yych == 'M') goto yy857; - if (yych != 'm') goto yy523; -yy857: - yych = *++p; - if (yych == 'O') goto yy858; - if (yych != 'o') goto yy523; -yy858: - yych = *++p; - if (yych == 'P') goto yy859; - if (yych != 'p') goto yy523; -yy859: - yych = *++p; - if (yych == 'R') goto yy860; - if (yych != 'r') goto yy523; -yy860: - yych = *++p; - if (yych == 'O') goto yy861; - if (yych != 'o') goto yy523; -yy861: - yych = *++p; - if (yych == 'J') goto yy862; - if (yych != 'j') goto yy523; -yy862: - yych = *++p; - if (yych == 'E') goto yy863; - if (yych != 'e') goto yy523; -yy863: - yych = *++p; - if (yych == 'C') goto yy864; - if (yych != 'c') goto yy523; -yy864: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy865: - yych = *++p; - if (yych == 'L') goto yy866; - if (yych != 'l') goto yy523; -yy866: - yych = *++p; - if (yych == 'K') goto yy533; - if (yych == 'k') goto yy533; - goto yy523; -yy867: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'M') { - if (yych == 'L') goto yy877; - goto yy523; - } else { - if (yych <= 'N') goto yy878; - if (yych <= 'R') goto yy523; - goto yy879; - } - } else { - if (yych <= 'm') { - if (yych == 'l') goto yy877; - goto yy523; - } else { - if (yych <= 'n') goto yy878; - if (yych == 's') goto yy879; - goto yy523; - } - } -yy868: - yych = *++p; - if (yych == 'E') goto yy876; - if (yych == 'e') goto yy876; - goto yy523; -yy869: - yych = *++p; - if (yych == 'C') goto yy871; - if (yych == 'c') goto yy871; - goto yy523; -yy870: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy871: - yych = *++p; - if (yych == 'E') goto yy872; - if (yych != 'e') goto yy523; -yy872: - yych = *++p; - if (yych == 'T') goto yy873; - if (yych != 't') goto yy523; -yy873: - yych = *++p; - if (yych == 'I') goto yy874; - if (yych != 'i') goto yy523; -yy874: - yych = *++p; - if (yych == 'M') goto yy875; - if (yych != 'm') goto yy523; -yy875: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy876: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy877: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy878: - yych = *++p; - if (yych == 'G') goto yy880; - if (yych == 'g') goto yy880; - goto yy523; -yy879: - yych = *++p; - if (yych == 'H') goto yy533; - if (yych == 'h') goto yy533; - goto yy523; -yy880: - yych = *++p; - if (yych == 'E') goto yy881; - if (yych != 'e') goto yy523; -yy881: - yych = *++p; - if (yych == 'R') goto yy533; - if (yych == 'r') goto yy533; - goto yy523; -yy882: - yych = *++p; - if (yych == 'T') goto yy900; - if (yych == 't') goto yy900; - goto yy523; -yy883: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy884: - yych = *++p; - if (yych == 'M') goto yy533; - if (yych == 'm') goto yy533; - goto yy523; -yy885: - yych = *++p; - if (yych <= 'S') { - if (yych == 'P') goto yy533; - if (yych <= 'R') goto yy523; - goto yy533; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy523; - goto yy533; - } else { - if (yych == 's') goto yy533; - goto yy523; - } - } -yy886: - yych = *++p; - if (yych == 'I') goto yy894; - if (yych == 'i') goto yy894; - goto yy523; -yy887: - yych = *++p; - if (yych == 'A') goto yy893; - if (yych == 'a') goto yy893; - goto yy523; -yy888: - yych = *++p; - if (yych == 'O') goto yy891; - if (yych == 'o') goto yy891; - goto yy523; -yy889: - yych = *++p; - if (yych == 'A') goto yy890; - if (yych != 'a') goto yy523; -yy890: - yych = *++p; - if (yych <= 'R') { - if (yych == ':') goto yy534; - goto yy523; - } else { - if (yych <= 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; - } -yy891: - yych = *++p; - if (yych == 'U') goto yy892; - if (yych != 'u') goto yy523; -yy892: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy893: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy894: - yych = *++p; - if (yych == 'U') goto yy895; - if (yych != 'u') goto yy523; -yy895: - yych = *++p; - if (yych == 'M') goto yy896; - if (yych != 'm') goto yy523; -yy896: - yych = *++p; - if (yych == 'X') goto yy897; - if (yych != 'x') goto yy523; -yy897: - yych = *++p; - if (yych == 'T') goto yy898; - if (yych != 't') goto yy523; -yy898: - yych = *++p; - if (yych == 'R') goto yy899; - if (yych != 'r') goto yy523; -yy899: - yych = *++p; - if (yych == 'A') goto yy533; - if (yych == 'a') goto yy533; - goto yy523; -yy900: - yych = *++p; - if (yych == 'A') goto yy901; - if (yych != 'a') goto yy523; -yy901: - yych = *++p; - if (yych == 'C') goto yy902; - if (yych != 'c') goto yy523; -yy902: - yych = *++p; - if (yych == 'H') goto yy903; - if (yych != 'h') goto yy523; -yy903: - yych = *++p; - if (yych == 'M') goto yy904; - if (yych != 'm') goto yy523; -yy904: - yych = *++p; - if (yych == 'E') goto yy905; - if (yych != 'e') goto yy523; -yy905: - yych = *++p; - if (yych == 'N') goto yy906; - if (yych != 'n') goto yy523; -yy906: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy907: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy908: - yych = *++p; - if (yych <= 'V') { - if (yych == 'R') goto yy533; - if (yych <= 'U') goto yy523; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy523; - goto yy533; - } else { - if (yych != 'v') goto yy523; - } - } - yych = *++p; - if (yych == 'A') goto yy910; - if (yych != 'a') goto yy523; -yy910: - yych = *++p; - if (yych == 'S') goto yy911; - if (yych != 's') goto yy523; -yy911: - yych = *++p; - if (yych == 'C') goto yy912; - if (yych != 'c') goto yy523; -yy912: - yych = *++p; - if (yych == 'R') goto yy913; - if (yych != 'r') goto yy523; -yy913: - yych = *++p; - if (yych == 'I') goto yy914; - if (yych != 'i') goto yy523; -yy914: - yych = *++p; - if (yych == 'P') goto yy915; - if (yych != 'p') goto yy523; -yy915: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy916: - yych = *++p; - if (yych == 'B') goto yy533; - if (yych == 'b') goto yy533; - goto yy523; -yy917: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy918: - yych = *++p; - if (yych == 'N') goto yy925; - if (yych == 'n') goto yy925; - goto yy523; -yy919: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy920: - yych = *++p; - if (yych == 'C') goto yy924; - if (yych == 'c') goto yy924; - goto yy523; -yy921: - yych = *++p; - if (yych <= 'V') { - if (yych == 'T') goto yy923; - if (yych <= 'U') goto yy523; - goto yy533; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy523; - goto yy923; - } else { - if (yych == 'v') goto yy533; - goto yy523; - } - } -yy922: - yych = *++p; - if (yych == 'I') goto yy533; - if (yych == 'i') goto yy533; - goto yy523; -yy923: - yych = *++p; - if (yych == 'A') goto yy533; - if (yych == 'a') goto yy533; - goto yy523; -yy924: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy925: - yych = *++p; - if (yych == 'A') goto yy926; - if (yych != 'a') goto yy523; -yy926: - yych = *++p; - if (yych != '-') goto yy523; - yych = *++p; - if (yych == 'P') goto yy928; - if (yych != 'p') goto yy523; -yy928: - yych = *++p; - if (yych == 'L') goto yy929; - if (yych != 'l') goto yy523; -yy929: - yych = *++p; - if (yych == 'A') goto yy930; - if (yych != 'a') goto yy523; -yy930: - yych = *++p; - if (yych == 'Y') goto yy931; - if (yych != 'y') goto yy523; -yy931: - yych = *++p; - if (yych <= 'S') { - if (yych == 'C') goto yy932; - if (yych <= 'R') goto yy523; - goto yy933; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy523; - } else { - if (yych == 's') goto yy933; - goto yy523; - } - } -yy932: - yych = *++p; - if (yych == 'O') goto yy938; - if (yych == 'o') goto yy938; - goto yy523; -yy933: - yych = *++p; - if (yych == 'I') goto yy934; - if (yych != 'i') goto yy523; -yy934: - yych = *++p; - if (yych == 'N') goto yy935; - if (yych != 'n') goto yy523; -yy935: - yych = *++p; - if (yych == 'G') goto yy936; - if (yych != 'g') goto yy523; -yy936: - yych = *++p; - if (yych == 'L') goto yy937; - if (yych != 'l') goto yy523; -yy937: - yych = *++p; - if (yych == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -yy938: - yych = *++p; - if (yych == 'N') goto yy939; - if (yych != 'n') goto yy523; -yy939: - yych = *++p; - if (yych == 'T') goto yy940; - if (yych != 't') goto yy523; -yy940: - yych = *++p; - if (yych == 'A') goto yy941; - if (yych != 'a') goto yy523; -yy941: - yych = *++p; - if (yych == 'I') goto yy942; - if (yych != 'i') goto yy523; -yy942: - yych = *++p; - if (yych == 'N') goto yy943; - if (yych != 'n') goto yy523; -yy943: - yych = *++p; - if (yych == 'E') goto yy944; - if (yych != 'e') goto yy523; -yy944: - yych = *++p; - if (yych == 'R') goto yy533; - if (yych == 'r') goto yy533; - goto yy523; -yy945: - yych = *++p; - if (yych == 'S') goto yy533; - if (yych == 's') goto yy533; - goto yy523; -yy946: - yych = *++p; - if (yych <= 'N') { - if (yych <= 'A') { - if (yych <= '@') goto yy523; - goto yy968; - } else { - if (yych <= 'L') goto yy523; - if (yych <= 'M') goto yy969; - goto yy970; - } - } else { - if (yych <= 'l') { - if (yych == 'a') goto yy968; - goto yy523; - } else { - if (yych <= 'm') goto yy969; - if (yych <= 'n') goto yy970; - goto yy523; - } - } -yy947: - yych = *++p; - if (yych == 'R') goto yy955; - if (yych == 'r') goto yy955; - goto yy523; -yy948: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy952; - if (yych <= 'O') goto yy523; - goto yy533; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy523; - goto yy952; - } else { - if (yych == 'p') goto yy533; - goto yy523; - } - } -yy949: - yych = *++p; - if (yych == 'I') goto yy951; - if (yych == 'i') goto yy951; - goto yy523; -yy950: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy951: - yych = *++p; - if (yych == 'D') goto yy533; - if (yych == 'd') goto yy533; - goto yy523; -yy952: - yych = *++p; - if (yych == 'L') goto yy953; - if (yych != 'l') goto yy523; -yy953: - yych = *++p; - if (yych == 'T') goto yy954; - if (yych != 't') goto yy523; -yy954: - yych = *++p; - if (yych == 'O') goto yy533; - if (yych == 'o') goto yy533; - goto yy523; -yy955: - yych = *++p; - if (yych == 'O') goto yy956; - if (yych != 'o') goto yy523; -yy956: - yych = *++p; - if (yych == 'M') goto yy957; - if (yych != 'm') goto yy523; -yy957: - yych = *++p; - if (yych == 'E') goto yy958; - if (yych != 'e') goto yy523; -yy958: - yych = *++p; - if (yych == '-') goto yy959; - if (yych == ':') goto yy534; - goto yy523; -yy959: - yych = *++p; - if (yych == 'E') goto yy960; - if (yych != 'e') goto yy523; -yy960: - yych = *++p; - if (yych == 'X') goto yy961; - if (yych != 'x') goto yy523; -yy961: - yych = *++p; - if (yych == 'T') goto yy962; - if (yych != 't') goto yy523; -yy962: - yych = *++p; - if (yych == 'E') goto yy963; - if (yych != 'e') goto yy523; -yy963: - yych = *++p; - if (yych == 'N') goto yy964; - if (yych != 'n') goto yy523; -yy964: - yych = *++p; - if (yych == 'S') goto yy965; - if (yych != 's') goto yy523; -yy965: - yych = *++p; - if (yych == 'I') goto yy966; - if (yych != 'i') goto yy523; -yy966: - yych = *++p; - if (yych == 'O') goto yy967; - if (yych != 'o') goto yy523; -yy967: - yych = *++p; - if (yych == 'N') goto yy533; - if (yych == 'n') goto yy533; - goto yy523; -yy968: - yych = *++p; - if (yych == 'P') goto yy533; - if (yych == 'p') goto yy533; - goto yy523; -yy969: - yych = *++p; - if (yych == '-') goto yy974; - goto yy523; -yy970: - yych = *++p; - if (yych == 'T') goto yy971; - if (yych != 't') goto yy523; -yy971: - yych = *++p; - if (yych == 'E') goto yy972; - if (yych != 'e') goto yy523; -yy972: - yych = *++p; - if (yych == 'N') goto yy973; - if (yych != 'n') goto yy523; -yy973: - yych = *++p; - if (yych == 'T') goto yy533; - if (yych == 't') goto yy533; - goto yy523; -yy974: - yych = *++p; - if (yych == 'E') goto yy975; - if (yych != 'e') goto yy523; -yy975: - yych = *++p; - if (yych == 'V') goto yy976; - if (yych != 'v') goto yy523; -yy976: - yych = *++p; - if (yych == 'E') goto yy977; - if (yych != 'e') goto yy523; -yy977: - yych = *++p; - if (yych == 'N') goto yy978; - if (yych != 'n') goto yy523; -yy978: - yych = *++p; - if (yych == 'T') goto yy979; - if (yych != 't') goto yy523; -yy979: - yych = *++p; - if (yych == 'B') goto yy980; - if (yych != 'b') goto yy523; -yy980: - yych = *++p; - if (yych == 'R') goto yy981; - if (yych != 'r') goto yy523; -yy981: - yych = *++p; - if (yych == 'I') goto yy982; - if (yych != 'i') goto yy523; -yy982: - yych = *++p; - if (yych == 'T') goto yy983; - if (yych != 't') goto yy523; -yy983: - yych = *++p; - if (yych == 'E') goto yy984; - if (yych != 'e') goto yy523; -yy984: - yych = *++p; - if (yych != '-') goto yy523; - yych = *++p; - if (yych == 'A') goto yy986; - if (yych != 'a') goto yy523; -yy986: - yych = *++p; - if (yych == 'T') goto yy987; - if (yych != 't') goto yy523; -yy987: - yych = *++p; - if (yych == 'T') goto yy988; - if (yych != 't') goto yy523; -yy988: - yych = *++p; - if (yych == 'E') goto yy989; - if (yych != 'e') goto yy523; -yy989: - yych = *++p; - if (yych == 'N') goto yy990; - if (yych != 'n') goto yy523; -yy990: - yych = *++p; - if (yych == 'D') goto yy991; - if (yych != 'd') goto yy523; -yy991: - yych = *++p; - if (yych == 'E') goto yy992; - if (yych != 'e') goto yy523; -yy992: - ++p; - if ((yych = *p) == 'E') goto yy533; - if (yych == 'e') goto yy533; - goto yy523; -} - + { + 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 = *(marker = p); + if (yych <= 'c') { + if (yych <= 'M') { + if (yych <= 'E') { + if (yych <= 'A') { + if (yych == '\n') + goto yy494; + if (yych <= '@') + goto yy521; + goto yy498; + } else { + if (yych <= 'B') + goto yy516; + if (yych <= 'C') + goto yy495; + if (yych <= 'D') + goto yy496; + goto yy517; + } + } else { + if (yych <= 'I') { + if (yych <= 'F') + goto yy499; + if (yych <= 'G') + goto yy500; + if (yych <= 'H') + goto yy501; + goto yy502; + } else { + if (yych <= 'J') + goto yy497; + if (yych <= 'K') + goto yy518; + if (yych <= 'L') + goto yy503; + goto yy504; + } + } + } else { + if (yych <= 'U') { + if (yych <= 'Q') { + if (yych <= 'N') + goto yy505; + if (yych <= 'O') + goto yy506; + if (yych <= 'P') + goto yy507; + goto yy519; + } else { + if (yych <= 'R') + goto yy508; + if (yych <= 'S') + goto yy509; + if (yych <= 'T') + goto yy510; + goto yy511; + } + } else { + if (yych <= 'Y') { + if (yych <= 'V') + goto yy512; + if (yych <= 'W') + goto yy513; + if (yych <= 'X') + goto yy514; + goto yy520; + } else { + if (yych <= '`') { + if (yych <= 'Z') + goto yy515; + goto yy521; + } else { + if (yych <= 'a') + goto yy498; + if (yych <= 'b') + goto yy516; + goto yy495; + } + } + } + } + } else { + if (yych <= 't') { + if (yych <= 'k') { + if (yych <= 'g') { + if (yych <= 'd') + goto yy496; + if (yych <= 'e') + goto yy517; + if (yych <= 'f') + goto yy499; + goto yy500; + } else { + if (yych <= 'h') + goto yy501; + if (yych <= 'i') + goto yy502; + if (yych <= 'j') + goto yy497; + goto yy518; + } + } else { + if (yych <= 'o') { + if (yych <= 'l') + goto yy503; + if (yych <= 'm') + goto yy504; + if (yych <= 'n') + goto yy505; + goto yy506; + } else { + if (yych <= 'q') { + if (yych <= 'p') + goto yy507; + goto yy519; + } else { + if (yych <= 'r') + goto yy508; + if (yych <= 's') + goto yy509; + goto yy510; + } + } + } + } else { + if (yych <= 0xC1) { + if (yych <= 'x') { + if (yych <= 'u') + goto yy511; + if (yych <= 'v') + goto yy512; + if (yych <= 'w') + goto yy513; + goto yy514; + } else { + if (yych <= 'y') + goto yy520; + if (yych <= 'z') + goto yy515; + if (yych <= 0x7F) + goto yy521; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy522; + if (yych <= 0xE0) + goto yy524; + if (yych <= 0xEC) + goto yy525; + goto yy529; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy525; + goto yy526; + } else { + if (yych <= 0xF3) + goto yy527; + if (yych <= 0xF4) + goto yy528; + } + } + } + } + } + yy494 : { return 0; } + yy495: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy948; + case 'H': + case 'h': + goto yy947; + case 'I': + case 'i': + goto yy950; + case 'O': + case 'o': + goto yy946; + case 'R': + case 'r': + goto yy949; + case 'V': + case 'v': + goto yy945; + default: + goto yy494; + } + yy496: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy921; + case 'I': + case 'i': + goto yy920; + case 'L': + case 'l': + goto yy918; + case 'N': + case 'n': + goto yy919; + case 'O': + case 'o': + goto yy922; + case 'T': + case 't': + goto yy917; + case 'V': + case 'v': + goto yy916; + default: + goto yy494; + } + yy497: + yych = *(marker = ++p); + if (yych <= 'M') { + if (yych == 'A') + goto yy908; + if (yych <= 'L') + goto yy494; + goto yy907; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy494; + goto yy908; + } else { + if (yych == 'm') + goto yy907; + goto yy494; + } + } + yy498: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy889; + case 'B': + case 'b': + goto yy888; + case 'C': + case 'c': + goto yy887; + case 'D': + case 'd': + goto yy886; + case 'F': + case 'f': + goto yy885; + case 'I': + case 'i': + goto yy884; + case 'P': + case 'p': + goto yy883; + case 'T': + case 't': + goto yy882; + case 'W': + case 'w': + goto yy533; + default: + goto yy494; + } + yy499: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'E') { + if (yych == 'A') + goto yy869; + if (yych <= 'D') + goto yy494; + goto yy868; + } else { + if (yych == 'I') + goto yy867; + if (yych <= 'S') + goto yy494; + goto yy870; + } + } else { + if (yych <= 'e') { + if (yych == 'a') + goto yy869; + if (yych <= 'd') + goto yy494; + goto yy868; + } else { + if (yych <= 'i') { + if (yych <= 'h') + goto yy494; + goto yy867; + } else { + if (yych == 't') + goto yy870; + goto yy494; + } + } + } + yy500: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy852; + case 'G': + case 'g': + goto yy533; + case 'I': + case 'i': + goto yy850; + case 'O': + case 'o': + goto yy851; + case 'T': + case 't': + goto yy849; + default: + goto yy494; + } + yy501: + yych = *(marker = ++p); + if (yych <= 'S') { + if (yych <= '3') { + if (yych <= '2') + goto yy494; + goto yy845; + } else { + if (yych == 'C') + goto yy843; + goto yy494; + } + } else { + if (yych <= 'c') { + if (yych <= 'T') + goto yy844; + if (yych <= 'b') + goto yy494; + goto yy843; + } else { + if (yych == 't') + goto yy844; + goto yy494; + } + } + yy502: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy825; + case 'C': + case 'c': + goto yy822; + case 'M': + case 'm': + goto yy824; + case 'N': + case 'n': + goto yy823; + case 'P': + case 'p': + goto yy821; + case 'R': + case 'r': + goto yy820; + case 'T': + case 't': + goto yy819; + default: + goto yy494; + } + yy503: + yych = *(marker = ++p); + if (yych <= 'D') { + if (yych == 'A') + goto yy813; + if (yych <= 'C') + goto yy494; + goto yy812; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy494; + goto yy813; + } else { + if (yych == 'd') + goto yy812; + goto yy494; + } + } + yy504: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy779; + case 'E': + case 'e': + goto yy778; + case 'I': + case 'i': + goto yy781; + case 'M': + case 'm': + goto yy777; + case 'S': + case 's': + goto yy776; + case 'T': + case 't': + goto yy780; + case 'U': + case 'u': + goto yy775; + case 'V': + case 'v': + goto yy774; + default: + goto yy494; + } + yy505: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy769; + case 'F': + case 'f': + goto yy768; + case 'I': + case 'i': + goto yy767; + case 'N': + case 'n': + goto yy766; + case 'O': + case 'o': + goto yy765; + default: + goto yy494; + } + yy506: + yych = *(marker = ++p); + if (yych <= 'P') { + if (yych == 'I') + goto yy751; + if (yych <= 'O') + goto yy494; + goto yy752; + } else { + if (yych <= 'i') { + if (yych <= 'h') + goto yy494; + goto yy751; + } else { + if (yych == 'p') + goto yy752; + goto yy494; + } + } + yy507: + yych = *(marker = ++p); + if (yych <= 'S') { + if (yych <= 'L') { + if (yych == 'A') + goto yy733; + if (yych <= 'K') + goto yy494; + goto yy732; + } else { + if (yych <= 'O') { + if (yych <= 'N') + goto yy494; + goto yy734; + } else { + if (yych <= 'Q') + goto yy494; + if (yych <= 'R') + goto yy731; + goto yy730; + } + } + } else { + if (yych <= 'n') { + if (yych <= 'a') { + if (yych <= '`') + goto yy494; + goto yy733; + } else { + if (yych == 'l') + goto yy732; + goto yy494; + } + } else { + if (yych <= 'q') { + if (yych <= 'o') + goto yy734; + goto yy494; + } else { + if (yych <= 'r') + goto yy731; + if (yych <= 's') + goto yy730; + goto yy494; + } + } + } + yy508: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'L') { + if (yych == 'E') + goto yy720; + goto yy494; + } else { + if (yych <= 'M') + goto yy719; + if (yych <= 'R') + goto yy494; + if (yych <= 'S') + goto yy718; + goto yy717; + } + } else { + if (yych <= 'm') { + if (yych == 'e') + goto yy720; + if (yych <= 'l') + goto yy494; + goto yy719; + } else { + if (yych <= 'r') + goto yy494; + if (yych <= 's') + goto yy718; + if (yych <= 't') + goto yy717; + goto yy494; + } + } + yy509: + yych = *(marker = ++p); + switch (yych) { + case 'E': + case 'e': + goto yy673; + case 'F': + case 'f': + goto yy672; + case 'G': + case 'g': + goto yy671; + case 'H': + case 'h': + goto yy676; + case 'I': + case 'i': + goto yy675; + case 'K': + case 'k': + goto yy670; + case 'M': + case 'm': + goto yy669; + case 'N': + case 'n': + goto yy674; + case 'O': + case 'o': + goto yy668; + case 'P': + case 'p': + goto yy667; + case 'S': + case 's': + goto yy666; + case 'T': + case 't': + goto yy665; + case 'V': + case 'v': + goto yy664; + default: + goto yy494; + } + yy510: + yych = *(marker = ++p); + switch (yych) { + case 'A': + case 'a': + goto yy640; + case 'E': + case 'e': + goto yy636; + case 'F': + case 'f': + goto yy639; + case 'H': + case 'h': + goto yy635; + case 'I': + case 'i': + goto yy637; + case 'N': + case 'n': + goto yy638; + case 'V': + case 'v': + goto yy533; + default: + goto yy494; + } + yy511: + yych = *(marker = ++p); + if (yych <= 'T') { + if (yych <= 'N') { + if (yych == 'D') + goto yy627; + if (yych <= 'M') + goto yy494; + goto yy626; + } else { + if (yych == 'R') + goto yy628; + if (yych <= 'S') + goto yy494; + goto yy625; + } + } else { + if (yych <= 'n') { + if (yych == 'd') + goto yy627; + if (yych <= 'm') + goto yy494; + goto yy626; + } else { + if (yych <= 'r') { + if (yych <= 'q') + goto yy494; + goto yy628; + } else { + if (yych == 't') + goto yy625; + goto yy494; + } + } + } + yy512: + yych = *(marker = ++p); + if (yych <= 'I') { + if (yych == 'E') + goto yy609; + if (yych <= 'H') + goto yy494; + goto yy608; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy494; + goto yy609; + } else { + if (yych == 'i') + goto yy608; + goto yy494; + } + } + yy513: + yych = *(marker = ++p); + if (yych <= 'Y') { + if (yych <= 'R') { + if (yych == 'E') + goto yy598; + goto yy494; + } else { + if (yych <= 'S') + goto yy599; + if (yych <= 'T') + goto yy597; + if (yych <= 'X') + goto yy494; + goto yy596; + } + } else { + if (yych <= 's') { + if (yych == 'e') + goto yy598; + if (yych <= 'r') + goto yy494; + goto yy599; + } else { + if (yych <= 't') + goto yy597; + if (yych == 'y') + goto yy596; + goto yy494; + } + } + yy514: + yych = *(marker = ++p); + if (yych <= 'R') { + if (yych <= 'F') { + if (yych == 'C') + goto yy575; + if (yych <= 'E') + goto yy494; + goto yy573; + } else { + if (yych == 'M') + goto yy574; + if (yych <= 'Q') + goto yy494; + goto yy572; + } + } else { + if (yych <= 'f') { + if (yych == 'c') + goto yy575; + if (yych <= 'e') + goto yy494; + goto yy573; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy494; + goto yy574; + } else { + if (yych == 'r') + goto yy572; + goto yy494; + } + } + } + yy515: + yych = *(marker = ++p); + if (yych == '3') + goto yy567; + goto yy494; + yy516: + yych = *(marker = ++p); + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'E') + goto yy557; + goto yy494; + } else { + if (yych <= 'I') + goto yy556; + if (yych <= 'N') + goto yy494; + goto yy555; + } + } else { + if (yych <= 'h') { + if (yych == 'e') + goto yy557; + goto yy494; + } else { + if (yych <= 'i') + goto yy556; + if (yych == 'o') + goto yy555; + goto yy494; + } + } + yy517: + yych = *(marker = ++p); + if (yych == 'D') + goto yy553; + if (yych == 'd') + goto yy553; + goto yy494; + yy518: + yych = *(marker = ++p); + if (yych == 'E') + goto yy548; + if (yych == 'e') + goto yy548; + goto yy494; + yy519: + yych = *(marker = ++p); + if (yych == 'U') + goto yy545; + if (yych == 'u') + goto yy545; + goto yy494; + yy520: + yych = *(marker = ++p); + if (yych == 'M') + goto yy530; + if (yych == 'm') + goto yy530; + goto yy494; + yy521: + yych = *++p; + goto yy494; + yy522: + yych = *++p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy521; + yy523: + p = marker; + goto yy494; + yy524: + yych = *++p; + if (yych <= 0x9F) + goto yy523; + if (yych <= 0xBF) + goto yy522; + goto yy523; + yy525: + yych = *++p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy522; + goto yy523; + yy526: + yych = *++p; + if (yych <= 0x8F) + goto yy523; + if (yych <= 0xBF) + goto yy525; + goto yy523; + yy527: + yych = *++p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy525; + goto yy523; + yy528: + yych = *++p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0x8F) + goto yy525; + goto yy523; + yy529: + yych = *++p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0x9F) + goto yy522; + goto yy523; + yy530: + yych = *++p; + if (yych == 'S') + goto yy531; + if (yych != 's') + goto yy523; + yy531: + yych = *++p; + if (yych == 'G') + goto yy532; + if (yych != 'g') + goto yy523; + yy532: + yych = *++p; + if (yych == 'R') + goto yy533; + if (yych != 'r') + goto yy523; + yy533: + yych = *++p; + if (yych != ':') + goto yy523; + yy534: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy534; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '<') + goto yy523; + if (yych <= '>') + goto yy543; + goto yy523; + } else { + if (yych <= 0xDF) + goto yy536; + if (yych <= 0xE0) + goto yy537; + goto yy538; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy542; + if (yych <= 0xEF) + goto yy538; + goto yy539; + } else { + if (yych <= 0xF3) + goto yy540; + if (yych <= 0xF4) + goto yy541; + goto yy523; + } + } + yy536: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy534; + goto yy523; + yy537: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy523; + if (yych <= 0xBF) + goto yy536; + goto yy523; + yy538: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy536; + goto yy523; + yy539: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy523; + if (yych <= 0xBF) + goto yy538; + goto yy523; + yy540: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0xBF) + goto yy538; + goto yy523; + yy541: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0x8F) + goto yy538; + goto yy523; + yy542: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy523; + if (yych <= 0x9F) + goto yy536; + goto yy523; + yy543: + ++p; + { return (bufsize_t)(p - start); } + yy545: + yych = *++p; + if (yych == 'E') + goto yy546; + if (yych != 'e') + goto yy523; + yy546: + yych = *++p; + if (yych == 'R') + goto yy547; + if (yych != 'r') + goto yy523; + yy547: + yych = *++p; + if (yych == 'Y') + goto yy533; + if (yych == 'y') + goto yy533; + goto yy523; + yy548: + yych = *++p; + if (yych == 'Y') + goto yy549; + if (yych != 'y') + goto yy523; + yy549: + yych = *++p; + if (yych == 'P') + goto yy550; + if (yych != 'p') + goto yy523; + yy550: + yych = *++p; + if (yych == 'A') + goto yy551; + if (yych != 'a') + goto yy523; + yy551: + yych = *++p; + if (yych == 'R') + goto yy552; + if (yych != 'r') + goto yy523; + yy552: + yych = *++p; + if (yych == 'C') + goto yy533; + if (yych == 'c') + goto yy533; + goto yy523; + yy553: + yych = *++p; + if (yych != '2') + goto yy523; + yych = *++p; + if (yych == 'K') + goto yy533; + if (yych == 'k') + goto yy533; + goto yy523; + yy555: + yych = *++p; + if (yych == 'L') + goto yy566; + if (yych == 'l') + goto yy566; + goto yy523; + yy556: + yych = *++p; + if (yych == 'T') + goto yy562; + if (yych == 't') + goto yy562; + goto yy523; + yy557: + yych = *++p; + if (yych == 'S') + goto yy558; + if (yych != 's') + goto yy523; + yy558: + yych = *++p; + if (yych == 'H') + goto yy559; + if (yych != 'h') + goto yy523; + yy559: + yych = *++p; + if (yych == 'A') + goto yy560; + if (yych != 'a') + goto yy523; + yy560: + yych = *++p; + if (yych == 'R') + goto yy561; + if (yych != 'r') + goto yy523; + yy561: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy562: + yych = *++p; + if (yych == 'C') + goto yy563; + if (yych != 'c') + goto yy523; + yy563: + yych = *++p; + if (yych == 'O') + goto yy564; + if (yych != 'o') + goto yy523; + yy564: + yych = *++p; + if (yych == 'I') + goto yy565; + if (yych != 'i') + goto yy523; + yy565: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy566: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy567: + yych = *++p; + if (yych != '9') + goto yy523; + yych = *++p; + if (yych != '.') + goto yy523; + yych = *++p; + if (yych != '5') + goto yy523; + yych = *++p; + if (yych != '0') + goto yy523; + yych = *++p; + if (yych <= 'Q') + goto yy523; + if (yych <= 'S') + goto yy533; + if (yych <= 'q') + goto yy523; + if (yych <= 's') + goto yy533; + goto yy523; + yy572: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy573: + yych = *++p; + if (yych == 'I') + goto yy594; + if (yych == 'i') + goto yy594; + goto yy523; + yy574: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy584; + if (yych <= 'O') + goto yy523; + goto yy585; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy523; + goto yy584; + } else { + if (yych == 'p') + goto yy585; + goto yy523; + } + } + yy575: + yych = *++p; + if (yych == 'O') + goto yy576; + if (yych != 'o') + goto yy523; + yy576: + yych = *++p; + if (yych == 'N') + goto yy577; + if (yych != 'n') + goto yy523; + yy577: + yych = *++p; + if (yych == '-') + goto yy578; + if (yych == ':') + goto yy534; + goto yy523; + yy578: + yych = *++p; + if (yych == 'U') + goto yy579; + if (yych != 'u') + goto yy523; + yy579: + yych = *++p; + if (yych == 'S') + goto yy580; + if (yych != 's') + goto yy523; + yy580: + yych = *++p; + if (yych == 'E') + goto yy581; + if (yych != 'e') + goto yy523; + yy581: + yych = *++p; + if (yych == 'R') + goto yy582; + if (yych != 'r') + goto yy523; + yy582: + yych = *++p; + if (yych == 'I') + goto yy583; + if (yych != 'i') + goto yy523; + yy583: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy584: + yych = *++p; + if (yych == 'R') + goto yy586; + if (yych == 'r') + goto yy586; + goto yy523; + yy585: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy586: + yych = *++p; + if (yych == 'P') + goto yy587; + if (yych != 'p') + goto yy523; + yy587: + yych = *++p; + if (yych == 'C') + goto yy588; + if (yych != 'c') + goto yy523; + yy588: + yych = *++p; + if (yych != '.') + goto yy523; + yych = *++p; + if (yych == 'B') + goto yy590; + if (yych != 'b') + goto yy523; + yy590: + yych = *++p; + if (yych == 'E') + goto yy591; + if (yych != 'e') + goto yy523; + yy591: + yych = *++p; + if (yych == 'E') + goto yy592; + if (yych != 'e') + goto yy523; + yy592: + yych = *++p; + if (yych == 'P') + goto yy593; + if (yych != 'p') + goto yy523; + yy593: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy594: + yych = *++p; + if (yych == 'R') + goto yy595; + if (yych != 'r') + goto yy523; + yy595: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy596: + yych = *++p; + if (yych == 'C') + goto yy604; + if (yych == 'c') + goto yy604; + goto yy523; + yy597: + yych = *++p; + if (yych == 'A') + goto yy603; + if (yych == 'a') + goto yy603; + goto yy523; + yy598: + yych = *++p; + if (yych == 'B') + goto yy600; + if (yych == 'b') + goto yy600; + goto yy523; + yy599: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy600: + yych = *++p; + if (yych == 'C') + goto yy601; + if (yych != 'c') + goto yy523; + yy601: + yych = *++p; + if (yych == 'A') + goto yy602; + if (yych != 'a') + goto yy523; + yy602: + yych = *++p; + if (yych == 'L') + goto yy533; + if (yych == 'l') + goto yy533; + goto yy523; + yy603: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy604: + yych = *++p; + if (yych == 'I') + goto yy605; + if (yych != 'i') + goto yy523; + yy605: + yych = *++p; + if (yych == 'W') + goto yy606; + if (yych != 'w') + goto yy523; + yy606: + yych = *++p; + if (yych == 'Y') + goto yy607; + if (yych != 'y') + goto yy523; + yy607: + yych = *++p; + if (yych == 'G') + goto yy533; + if (yych == 'g') + goto yy533; + goto yy523; + yy608: + yych = *++p; + if (yych == 'E') + goto yy617; + if (yych == 'e') + goto yy617; + goto yy523; + yy609: + yych = *++p; + if (yych <= 'N') { + if (yych <= 'L') + goto yy523; + if (yych >= 'N') + goto yy611; + } else { + if (yych <= 'l') + goto yy523; + if (yych <= 'm') + goto yy610; + if (yych <= 'n') + goto yy611; + goto yy523; + } + yy610: + yych = *++p; + if (yych == 'M') + goto yy616; + if (yych == 'm') + goto yy616; + goto yy523; + yy611: + yych = *++p; + if (yych == 'T') + goto yy612; + if (yych != 't') + goto yy523; + yy612: + yych = *++p; + if (yych == 'R') + goto yy613; + if (yych != 'r') + goto yy523; + yy613: + yych = *++p; + if (yych == 'I') + goto yy614; + if (yych != 'i') + goto yy523; + yy614: + yych = *++p; + if (yych == 'L') + goto yy615; + if (yych != 'l') + goto yy523; + yy615: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy616: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy617: + yych = *++p; + if (yych == 'W') + goto yy618; + if (yych != 'w') + goto yy523; + yy618: + yych = *++p; + if (yych != '-') + goto yy523; + yych = *++p; + if (yych == 'S') + goto yy620; + if (yych != 's') + goto yy523; + yy620: + yych = *++p; + if (yych == 'O') + goto yy621; + if (yych != 'o') + goto yy523; + yy621: + yych = *++p; + if (yych == 'U') + goto yy622; + if (yych != 'u') + goto yy523; + yy622: + yych = *++p; + if (yych == 'R') + goto yy623; + if (yych != 'r') + goto yy523; + yy623: + yych = *++p; + if (yych == 'C') + goto yy624; + if (yych != 'c') + goto yy523; + yy624: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy625: + yych = *++p; + if (yych == '2') + goto yy632; + goto yy523; + yy626: + yych = *++p; + if (yych == 'R') + goto yy629; + if (yych == 'r') + goto yy629; + goto yy523; + yy627: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy628: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy629: + yych = *++p; + if (yych == 'E') + goto yy630; + if (yych != 'e') + goto yy523; + yy630: + yych = *++p; + if (yych == 'A') + goto yy631; + if (yych != 'a') + goto yy523; + yy631: + yych = *++p; + if (yych == 'L') + goto yy533; + if (yych == 'l') + goto yy533; + goto yy523; + yy632: + yych = *++p; + if (yych != '0') + goto yy523; + yych = *++p; + if (yych != '0') + goto yy523; + yych = *++p; + if (yych == '4') + goto yy533; + goto yy523; + yy635: + yych = *++p; + if (yych == 'I') + goto yy654; + if (yych == 'i') + goto yy654; + goto yy523; + yy636: + yych = *++p; + if (yych <= 'L') { + if (yych == 'A') + goto yy646; + if (yych <= 'K') + goto yy523; + goto yy645; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy523; + goto yy646; + } else { + if (yych == 'l') + goto yy645; + goto yy523; + } + } + yy637: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy638: + yych = *++p; + if (yych == '3') + goto yy642; + goto yy523; + yy639: + yych = *++p; + if (yych == 'T') + goto yy641; + if (yych == 't') + goto yy641; + goto yy523; + yy640: + yych = *++p; + if (yych == 'G') + goto yy533; + if (yych == 'g') + goto yy533; + goto yy523; + yy641: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy642: + yych = *++p; + if (yych != '2') + goto yy523; + yych = *++p; + if (yych != '7') + goto yy523; + yych = *++p; + if (yych == '0') + goto yy533; + goto yy523; + yy645: + yych = *++p; + if (yych <= 'M') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'N') + goto yy652; + if (yych == 'n') + goto yy652; + goto yy523; + } + yy646: + yych = *++p; + if (yych == 'M') + goto yy647; + if (yych != 'm') + goto yy523; + yy647: + yych = *++p; + if (yych == 'S') + goto yy648; + if (yych != 's') + goto yy523; + yy648: + yych = *++p; + if (yych == 'P') + goto yy649; + if (yych != 'p') + goto yy523; + yy649: + yych = *++p; + if (yych == 'E') + goto yy650; + if (yych != 'e') + goto yy523; + yy650: + yych = *++p; + if (yych == 'A') + goto yy651; + if (yych != 'a') + goto yy523; + yy651: + yych = *++p; + if (yych == 'K') + goto yy533; + if (yych == 'k') + goto yy533; + goto yy523; + yy652: + yych = *++p; + if (yych == 'E') + goto yy653; + if (yych != 'e') + goto yy523; + yy653: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy654: + yych = *++p; + if (yych <= 'S') { + if (yych == 'N') + goto yy655; + if (yych <= 'R') + goto yy523; + goto yy656; + } else { + if (yych <= 'n') { + if (yych <= 'm') + goto yy523; + } else { + if (yych == 's') + goto yy656; + goto yy523; + } + } + yy655: + yych = *++p; + if (yych == 'G') + goto yy663; + if (yych == 'g') + goto yy663; + goto yy523; + yy656: + yych = *++p; + if (yych == 'M') + goto yy657; + if (yych != 'm') + goto yy523; + yy657: + yych = *++p; + if (yych == 'E') + goto yy658; + if (yych != 'e') + goto yy523; + yy658: + yych = *++p; + if (yych == 'S') + goto yy659; + if (yych != 's') + goto yy523; + yy659: + yych = *++p; + if (yych == 'S') + goto yy660; + if (yych != 's') + goto yy523; + yy660: + yych = *++p; + if (yych == 'A') + goto yy661; + if (yych != 'a') + goto yy523; + yy661: + yych = *++p; + if (yych == 'G') + goto yy662; + if (yych != 'g') + goto yy523; + yy662: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy663: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy664: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy665: + yych = *++p; + if (yych == 'E') + goto yy715; + if (yych == 'e') + goto yy715; + goto yy523; + yy666: + yych = *++p; + if (yych == 'H') + goto yy533; + if (yych == 'h') + goto yy533; + goto yy523; + yy667: + yych = *++p; + if (yych == 'O') + goto yy711; + if (yych == 'o') + goto yy711; + goto yy523; + yy668: + yych = *++p; + if (yych <= 'L') { + if (yych == 'A') + goto yy701; + if (yych <= 'K') + goto yy523; + goto yy702; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy523; + goto yy701; + } else { + if (yych == 'l') + goto yy702; + goto yy523; + } + } + yy669: + yych = *++p; + if (yych <= 'S') { + if (yych == 'B') + goto yy533; + if (yych <= 'R') + goto yy523; + goto yy533; + } else { + if (yych <= 'b') { + if (yych <= 'a') + goto yy523; + goto yy533; + } else { + if (yych == 's') + goto yy533; + goto yy523; + } + } + yy670: + yych = *++p; + if (yych == 'Y') + goto yy699; + if (yych == 'y') + goto yy699; + goto yy523; + yy671: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy672: + yych = *++p; + if (yych == 'T') + goto yy698; + if (yych == 't') + goto yy698; + goto yy523; + yy673: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'C') { + if (yych <= 'B') + goto yy523; + goto yy685; + } else { + if (yych <= 'Q') + goto yy523; + if (yych <= 'R') + goto yy683; + goto yy684; + } + } else { + if (yych <= 'q') { + if (yych == 'c') + goto yy685; + goto yy523; + } else { + if (yych <= 'r') + goto yy683; + if (yych <= 's') + goto yy684; + goto yy523; + } + } + yy674: + yych = *++p; + if (yych == 'M') + goto yy682; + if (yych == 'm') + goto yy682; + goto yy523; + yy675: + yych = *++p; + if (yych <= 'P') { + if (yych == 'E') + goto yy679; + if (yych <= 'O') + goto yy523; + goto yy680; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy523; + goto yy679; + } else { + if (yych == 'p') + goto yy680; + goto yy523; + } + } + yy676: + yych = *++p; + if (yych == 'T') + goto yy677; + if (yych != 't') + goto yy523; + yy677: + yych = *++p; + if (yych == 'T') + goto yy678; + if (yych != 't') + goto yy523; + yy678: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy679: + yych = *++p; + if (yych == 'V') + goto yy681; + if (yych == 'v') + goto yy681; + goto yy523; + yy680: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy681: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy682: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy683: + yych = *++p; + if (yych == 'V') + goto yy695; + if (yych == 'v') + goto yy695; + goto yy523; + yy684: + yych = *++p; + if (yych == 'S') + goto yy692; + if (yych == 's') + goto yy692; + goto yy523; + yy685: + yych = *++p; + if (yych == 'O') + goto yy686; + if (yych != 'o') + goto yy523; + yy686: + yych = *++p; + if (yych == 'N') + goto yy687; + if (yych != 'n') + goto yy523; + yy687: + yych = *++p; + if (yych == 'D') + goto yy688; + if (yych != 'd') + goto yy523; + yy688: + yych = *++p; + if (yych == 'L') + goto yy689; + if (yych != 'l') + goto yy523; + yy689: + yych = *++p; + if (yych == 'I') + goto yy690; + if (yych != 'i') + goto yy523; + yy690: + yych = *++p; + if (yych == 'F') + goto yy691; + if (yych != 'f') + goto yy523; + yy691: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy692: + yych = *++p; + if (yych == 'I') + goto yy693; + if (yych != 'i') + goto yy523; + yy693: + yych = *++p; + if (yych == 'O') + goto yy694; + if (yych != 'o') + goto yy523; + yy694: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy695: + yych = *++p; + if (yych == 'I') + goto yy696; + if (yych != 'i') + goto yy523; + yy696: + yych = *++p; + if (yych == 'C') + goto yy697; + if (yych != 'c') + goto yy523; + yy697: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy698: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy699: + yych = *++p; + if (yych == 'P') + goto yy700; + if (yych != 'p') + goto yy523; + yy700: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy701: + yych = *++p; + if (yych == 'P') + goto yy705; + if (yych == 'p') + goto yy705; + goto yy523; + yy702: + yych = *++p; + if (yych == 'D') + goto yy703; + if (yych != 'd') + goto yy523; + yy703: + yych = *++p; + if (yych == 'A') + goto yy704; + if (yych != 'a') + goto yy523; + yy704: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy705: + yych = *++p; + if (yych != '.') + goto yy523; + yych = *++p; + if (yych == 'B') + goto yy707; + if (yych != 'b') + goto yy523; + yy707: + yych = *++p; + if (yych == 'E') + goto yy708; + if (yych != 'e') + goto yy523; + yy708: + yych = *++p; + if (yych == 'E') + goto yy709; + if (yych != 'e') + goto yy523; + yy709: + yych = *++p; + if (yych == 'P') + goto yy710; + if (yych != 'p') + goto yy523; + yy710: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy711: + yych = *++p; + if (yych == 'T') + goto yy712; + if (yych != 't') + goto yy523; + yy712: + yych = *++p; + if (yych == 'I') + goto yy713; + if (yych != 'i') + goto yy523; + yy713: + yych = *++p; + if (yych == 'F') + goto yy714; + if (yych != 'f') + goto yy523; + yy714: + yych = *++p; + if (yych == 'Y') + goto yy533; + if (yych == 'y') + goto yy533; + goto yy523; + yy715: + yych = *++p; + if (yych == 'A') + goto yy716; + if (yych != 'a') + goto yy523; + yy716: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy717: + yych = *++p; + if (yych <= 'S') { + if (yych == 'M') + goto yy729; + if (yych <= 'R') + goto yy523; + goto yy728; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy523; + goto yy729; + } else { + if (yych == 's') + goto yy728; + goto yy523; + } + } + yy718: + yych = *++p; + if (yych == 'Y') + goto yy726; + if (yych == 'y') + goto yy726; + goto yy523; + yy719: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy720: + yych = *++p; + if (yych == 'S') + goto yy721; + if (yych != 's') + goto yy523; + yy721: + yych = *++p; + if (yych <= 'N') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'O') + goto yy722; + if (yych != 'o') + goto yy523; + } + yy722: + yych = *++p; + if (yych == 'U') + goto yy723; + if (yych != 'u') + goto yy523; + yy723: + yych = *++p; + if (yych == 'R') + goto yy724; + if (yych != 'r') + goto yy523; + yy724: + yych = *++p; + if (yych == 'C') + goto yy725; + if (yych != 'c') + goto yy523; + yy725: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy726: + yych = *++p; + if (yych == 'N') + goto yy727; + if (yych != 'n') + goto yy523; + yy727: + yych = *++p; + if (yych == 'C') + goto yy533; + if (yych == 'c') + goto yy533; + goto yy523; + yy728: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy729: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy730: + yych = *++p; + if (yych == 'Y') + goto yy750; + if (yych == 'y') + goto yy750; + goto yy523; + yy731: + yych = *++p; + if (yych <= 'O') { + if (yych == 'E') + goto yy747; + if (yych <= 'N') + goto yy523; + goto yy748; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy523; + goto yy747; + } else { + if (yych == 'o') + goto yy748; + goto yy523; + } + } + yy732: + yych = *++p; + if (yych == 'A') + goto yy742; + if (yych == 'a') + goto yy742; + goto yy523; + yy733: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy735; + if (yych <= 'O') + goto yy523; + goto yy736; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy523; + goto yy735; + } else { + if (yych == 'p') + goto yy736; + goto yy523; + } + } + yy734: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy735: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy736: + yych = *++p; + if (yych == 'A') + goto yy737; + if (yych != 'a') + goto yy523; + yy737: + yych = *++p; + if (yych == 'R') + goto yy738; + if (yych != 'r') + goto yy523; + yy738: + yych = *++p; + if (yych == 'A') + goto yy739; + if (yych != 'a') + goto yy523; + yy739: + yych = *++p; + if (yych == 'Z') + goto yy740; + if (yych != 'z') + goto yy523; + yy740: + yych = *++p; + if (yych == 'Z') + goto yy741; + if (yych != 'z') + goto yy523; + yy741: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy742: + yych = *++p; + if (yych == 'T') + goto yy743; + if (yych != 't') + goto yy523; + yy743: + yych = *++p; + if (yych == 'F') + goto yy744; + if (yych != 'f') + goto yy523; + yy744: + yych = *++p; + if (yych == 'O') + goto yy745; + if (yych != 'o') + goto yy523; + yy745: + yych = *++p; + if (yych == 'R') + goto yy746; + if (yych != 'r') + goto yy523; + yy746: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy747: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy748: + yych = *++p; + if (yych == 'X') + goto yy749; + if (yych != 'x') + goto yy523; + yy749: + yych = *++p; + if (yych == 'Y') + goto yy533; + if (yych == 'y') + goto yy533; + goto yy523; + yy750: + yych = *++p; + if (yych == 'C') + goto yy533; + if (yych == 'c') + goto yy533; + goto yy523; + yy751: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy752: + yych = *++p; + if (yych == 'A') + goto yy753; + if (yych != 'a') + goto yy523; + yy753: + yych = *++p; + if (yych == 'Q') + goto yy754; + if (yych != 'q') + goto yy523; + yy754: + yych = *++p; + if (yych == 'U') + goto yy755; + if (yych != 'u') + goto yy523; + yy755: + yych = *++p; + if (yych == 'E') + goto yy756; + if (yych != 'e') + goto yy523; + yy756: + yych = *++p; + if (yych == 'L') + goto yy757; + if (yych != 'l') + goto yy523; + yy757: + yych = *++p; + if (yych == 'O') + goto yy758; + if (yych != 'o') + goto yy523; + yy758: + yych = *++p; + if (yych == 'C') + goto yy759; + if (yych != 'c') + goto yy523; + yy759: + yych = *++p; + if (yych == 'K') + goto yy760; + if (yych != 'k') + goto yy523; + yy760: + yych = *++p; + if (yych == 'T') + goto yy761; + if (yych != 't') + goto yy523; + yy761: + yych = *++p; + if (yych == 'O') + goto yy762; + if (yych != 'o') + goto yy523; + yy762: + yych = *++p; + if (yych == 'K') + goto yy763; + if (yych != 'k') + goto yy523; + yy763: + yych = *++p; + if (yych == 'E') + goto yy764; + if (yych != 'e') + goto yy523; + yy764: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy765: + yych = *++p; + if (yych == 'T') + goto yy772; + if (yych == 't') + goto yy772; + goto yy523; + yy766: + yych = *++p; + if (yych == 'T') + goto yy771; + if (yych == 't') + goto yy771; + goto yy523; + yy767: + yych = *++p; + if (yych <= 'G') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'H') + goto yy533; + if (yych == 'h') + goto yy533; + goto yy523; + } + yy768: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy769: + yych = *++p; + if (yych == 'W') + goto yy770; + if (yych != 'w') + goto yy523; + yy770: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy771: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy772: + yych = *++p; + if (yych == 'E') + goto yy773; + if (yych != 'e') + goto yy523; + yy773: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy774: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy775: + yych = *++p; + if (yych <= 'P') { + if (yych == 'M') + goto yy806; + if (yych <= 'O') + goto yy523; + goto yy805; + } else { + if (yych <= 'm') { + if (yych <= 'l') + goto yy523; + goto yy806; + } else { + if (yych == 'p') + goto yy805; + goto yy523; + } + } + yy776: + yych = *++p; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych <= ',') + goto yy523; + goto yy798; + } else { + if (yych == 'N') + goto yy799; + goto yy523; + } + } else { + if (yych <= 'n') { + if (yych <= 'R') + goto yy797; + if (yych <= 'm') + goto yy523; + goto yy799; + } else { + if (yych == 'r') + goto yy797; + goto yy523; + } + } + yy777: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy778: + yych = *++p; + if (yych == 'S') + goto yy793; + if (yych == 's') + goto yy793; + goto yy523; + yy779: + yych = *++p; + switch (yych) { + case 'G': + case 'g': + goto yy784; + case 'I': + case 'i': + goto yy783; + case 'P': + case 'p': + goto yy785; + case 'R': + case 'r': + goto yy786; + default: + goto yy523; + } + yy780: + yych = *++p; + if (yych == 'Q') + goto yy782; + if (yych == 'q') + goto yy782; + goto yy523; + yy781: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy782: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy783: + yych = *++p; + if (yych == 'L') + goto yy791; + if (yych == 'l') + goto yy791; + goto yy523; + yy784: + yych = *++p; + if (yych == 'N') + goto yy789; + if (yych == 'n') + goto yy789; + goto yy523; + yy785: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy786: + yych = *++p; + if (yych == 'K') + goto yy787; + if (yych != 'k') + goto yy523; + yy787: + yych = *++p; + if (yych == 'E') + goto yy788; + if (yych != 'e') + goto yy523; + yy788: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy789: + yych = *++p; + if (yych == 'E') + goto yy790; + if (yych != 'e') + goto yy523; + yy790: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy791: + yych = *++p; + if (yych == 'T') + goto yy792; + if (yych != 't') + goto yy523; + yy792: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy793: + yych = *++p; + if (yych == 'S') + goto yy794; + if (yych != 's') + goto yy523; + yy794: + yych = *++p; + if (yych == 'A') + goto yy795; + if (yych != 'a') + goto yy523; + yy795: + yych = *++p; + if (yych == 'G') + goto yy796; + if (yych != 'g') + goto yy523; + yy796: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy797: + yych = *++p; + if (yych == 'P') + goto yy804; + if (yych == 'p') + goto yy804; + goto yy523; + yy798: + yych = *++p; + if (yych == 'H') + goto yy801; + if (yych == 'h') + goto yy801; + goto yy523; + yy799: + yych = *++p; + if (yych == 'I') + goto yy800; + if (yych != 'i') + goto yy523; + yy800: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy801: + yych = *++p; + if (yych == 'E') + goto yy802; + if (yych != 'e') + goto yy523; + yy802: + yych = *++p; + if (yych == 'L') + goto yy803; + if (yych != 'l') + goto yy523; + yy803: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy804: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy805: + yych = *++p; + if (yych == 'D') + goto yy809; + if (yych == 'd') + goto yy809; + goto yy523; + yy806: + yych = *++p; + if (yych == 'B') + goto yy807; + if (yych != 'b') + goto yy523; + yy807: + yych = *++p; + if (yych == 'L') + goto yy808; + if (yych != 'l') + goto yy523; + yy808: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy809: + yych = *++p; + if (yych == 'A') + goto yy810; + if (yych != 'a') + goto yy523; + yy810: + yych = *++p; + if (yych == 'T') + goto yy811; + if (yych != 't') + goto yy523; + yy811: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy812: + yych = *++p; + if (yych == 'A') + goto yy817; + if (yych == 'a') + goto yy817; + goto yy523; + yy813: + yych = *++p; + if (yych == 'S') + goto yy814; + if (yych != 's') + goto yy523; + yy814: + yych = *++p; + if (yych == 'T') + goto yy815; + if (yych != 't') + goto yy523; + yy815: + yych = *++p; + if (yych == 'F') + goto yy816; + if (yych != 'f') + goto yy523; + yy816: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy817: + yych = *++p; + if (yych == 'P') + goto yy818; + if (yych != 'p') + goto yy523; + yy818: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy819: + yych = *++p; + if (yych == 'M') + goto yy842; + if (yych == 'm') + goto yy842; + goto yy523; + yy820: + yych = *++p; + if (yych <= 'I') { + if (yych == 'C') + goto yy831; + if (yych <= 'H') + goto yy523; + goto yy830; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy523; + goto yy831; + } else { + if (yych == 'i') + goto yy830; + goto yy523; + } + } + yy821: + yych = *++p; + if (yych <= 'P') { + if (yych == 'N') + goto yy533; + if (yych <= 'O') + goto yy523; + goto yy533; + } else { + if (yych <= 'n') { + if (yych <= 'm') + goto yy523; + goto yy533; + } else { + if (yych == 'p') + goto yy533; + goto yy523; + } + } + yy822: + yych = *++p; + if (yych <= 'O') { + if (yych == 'A') + goto yy828; + if (yych <= 'N') + goto yy523; + goto yy829; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy523; + goto yy828; + } else { + if (yych == 'o') + goto yy829; + goto yy523; + } + } + yy823: + yych = *++p; + if (yych == 'F') + goto yy827; + if (yych == 'f') + goto yy827; + goto yy523; + yy824: + yych = *++p; + if (yych <= '@') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'A') + goto yy826; + if (yych == 'a') + goto yy826; + goto yy523; + } + yy825: + yych = *++p; + if (yych == 'X') + goto yy533; + if (yych == 'x') + goto yy533; + goto yy523; + yy826: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy827: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy828: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy829: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy830: + yych = *++p; + if (yych == 'S') + goto yy832; + if (yych == 's') + goto yy832; + goto yy523; + yy831: + yych = *++p; + if (yych <= ':') { + if (yych == '6') + goto yy533; + if (yych <= '9') + goto yy523; + goto yy534; + } else { + if (yych <= 'S') { + if (yych <= 'R') + goto yy523; + goto yy533; + } else { + if (yych == 's') + goto yy533; + goto yy523; + } + } + yy832: + yych = *++p; + if (yych == '.') + goto yy833; + if (yych == ':') + goto yy534; + goto yy523; + yy833: + yych = *++p; + if (yych <= 'X') { + if (yych <= 'K') { + if (yych == 'B') + goto yy836; + goto yy523; + } else { + if (yych <= 'L') + goto yy834; + if (yych <= 'W') + goto yy523; + goto yy835; + } + } else { + if (yych <= 'k') { + if (yych == 'b') + goto yy836; + goto yy523; + } else { + if (yych <= 'l') + goto yy834; + if (yych == 'x') + goto yy835; + goto yy523; + } + } + yy834: + yych = *++p; + if (yych == 'W') + goto yy841; + if (yych == 'w') + goto yy841; + goto yy523; + yy835: + yych = *++p; + if (yych == 'P') + goto yy839; + if (yych == 'p') + goto yy839; + goto yy523; + yy836: + yych = *++p; + if (yych == 'E') + goto yy837; + if (yych != 'e') + goto yy523; + yy837: + yych = *++p; + if (yych == 'E') + goto yy838; + if (yych != 'e') + goto yy523; + yy838: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy839: + yych = *++p; + if (yych == 'C') + goto yy840; + if (yych != 'c') + goto yy523; + yy840: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy841: + yych = *++p; + if (yych == 'Z') + goto yy533; + if (yych == 'z') + goto yy533; + goto yy523; + yy842: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy843: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy844: + yych = *++p; + if (yych == 'T') + goto yy847; + if (yych == 't') + goto yy847; + goto yy523; + yy845: + yych = *++p; + if (yych != '2') + goto yy523; + yych = *++p; + if (yych == '3') + goto yy533; + goto yy523; + yy847: + yych = *++p; + if (yych == 'P') + goto yy848; + if (yych != 'p') + goto yy523; + yy848: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy849: + yych = *++p; + if (yych == 'A') + goto yy865; + if (yych == 'a') + goto yy865; + goto yy523; + yy850: + yych = *++p; + if (yych <= 'Z') { + if (yych == 'T') + goto yy533; + if (yych <= 'Y') + goto yy523; + goto yy856; + } else { + if (yych <= 't') { + if (yych <= 's') + goto yy523; + goto yy533; + } else { + if (yych == 'z') + goto yy856; + goto yy523; + } + } + yy851: + yych = *++p; + if (yych <= 'O') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'P') + goto yy853; + if (yych == 'p') + goto yy853; + goto yy523; + } + yy852: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy853: + yych = *++p; + if (yych == 'H') + goto yy854; + if (yych != 'h') + goto yy523; + yy854: + yych = *++p; + if (yych == 'E') + goto yy855; + if (yych != 'e') + goto yy523; + yy855: + yych = *++p; + if (yych == 'R') + goto yy533; + if (yych == 'r') + goto yy533; + goto yy523; + yy856: + yych = *++p; + if (yych == 'M') + goto yy857; + if (yych != 'm') + goto yy523; + yy857: + yych = *++p; + if (yych == 'O') + goto yy858; + if (yych != 'o') + goto yy523; + yy858: + yych = *++p; + if (yych == 'P') + goto yy859; + if (yych != 'p') + goto yy523; + yy859: + yych = *++p; + if (yych == 'R') + goto yy860; + if (yych != 'r') + goto yy523; + yy860: + yych = *++p; + if (yych == 'O') + goto yy861; + if (yych != 'o') + goto yy523; + yy861: + yych = *++p; + if (yych == 'J') + goto yy862; + if (yych != 'j') + goto yy523; + yy862: + yych = *++p; + if (yych == 'E') + goto yy863; + if (yych != 'e') + goto yy523; + yy863: + yych = *++p; + if (yych == 'C') + goto yy864; + if (yych != 'c') + goto yy523; + yy864: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy865: + yych = *++p; + if (yych == 'L') + goto yy866; + if (yych != 'l') + goto yy523; + yy866: + yych = *++p; + if (yych == 'K') + goto yy533; + if (yych == 'k') + goto yy533; + goto yy523; + yy867: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'M') { + if (yych == 'L') + goto yy877; + goto yy523; + } else { + if (yych <= 'N') + goto yy878; + if (yych <= 'R') + goto yy523; + goto yy879; + } + } else { + if (yych <= 'm') { + if (yych == 'l') + goto yy877; + goto yy523; + } else { + if (yych <= 'n') + goto yy878; + if (yych == 's') + goto yy879; + goto yy523; + } + } + yy868: + yych = *++p; + if (yych == 'E') + goto yy876; + if (yych == 'e') + goto yy876; + goto yy523; + yy869: + yych = *++p; + if (yych == 'C') + goto yy871; + if (yych == 'c') + goto yy871; + goto yy523; + yy870: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy871: + yych = *++p; + if (yych == 'E') + goto yy872; + if (yych != 'e') + goto yy523; + yy872: + yych = *++p; + if (yych == 'T') + goto yy873; + if (yych != 't') + goto yy523; + yy873: + yych = *++p; + if (yych == 'I') + goto yy874; + if (yych != 'i') + goto yy523; + yy874: + yych = *++p; + if (yych == 'M') + goto yy875; + if (yych != 'm') + goto yy523; + yy875: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy876: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy877: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy878: + yych = *++p; + if (yych == 'G') + goto yy880; + if (yych == 'g') + goto yy880; + goto yy523; + yy879: + yych = *++p; + if (yych == 'H') + goto yy533; + if (yych == 'h') + goto yy533; + goto yy523; + yy880: + yych = *++p; + if (yych == 'E') + goto yy881; + if (yych != 'e') + goto yy523; + yy881: + yych = *++p; + if (yych == 'R') + goto yy533; + if (yych == 'r') + goto yy533; + goto yy523; + yy882: + yych = *++p; + if (yych == 'T') + goto yy900; + if (yych == 't') + goto yy900; + goto yy523; + yy883: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy884: + yych = *++p; + if (yych == 'M') + goto yy533; + if (yych == 'm') + goto yy533; + goto yy523; + yy885: + yych = *++p; + if (yych <= 'S') { + if (yych == 'P') + goto yy533; + if (yych <= 'R') + goto yy523; + goto yy533; + } else { + if (yych <= 'p') { + if (yych <= 'o') + goto yy523; + goto yy533; + } else { + if (yych == 's') + goto yy533; + goto yy523; + } + } + yy886: + yych = *++p; + if (yych == 'I') + goto yy894; + if (yych == 'i') + goto yy894; + goto yy523; + yy887: + yych = *++p; + if (yych == 'A') + goto yy893; + if (yych == 'a') + goto yy893; + goto yy523; + yy888: + yych = *++p; + if (yych == 'O') + goto yy891; + if (yych == 'o') + goto yy891; + goto yy523; + yy889: + yych = *++p; + if (yych == 'A') + goto yy890; + if (yych != 'a') + goto yy523; + yy890: + yych = *++p; + if (yych <= 'R') { + if (yych == ':') + goto yy534; + goto yy523; + } else { + if (yych <= 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + } + yy891: + yych = *++p; + if (yych == 'U') + goto yy892; + if (yych != 'u') + goto yy523; + yy892: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy893: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy894: + yych = *++p; + if (yych == 'U') + goto yy895; + if (yych != 'u') + goto yy523; + yy895: + yych = *++p; + if (yych == 'M') + goto yy896; + if (yych != 'm') + goto yy523; + yy896: + yych = *++p; + if (yych == 'X') + goto yy897; + if (yych != 'x') + goto yy523; + yy897: + yych = *++p; + if (yych == 'T') + goto yy898; + if (yych != 't') + goto yy523; + yy898: + yych = *++p; + if (yych == 'R') + goto yy899; + if (yych != 'r') + goto yy523; + yy899: + yych = *++p; + if (yych == 'A') + goto yy533; + if (yych == 'a') + goto yy533; + goto yy523; + yy900: + yych = *++p; + if (yych == 'A') + goto yy901; + if (yych != 'a') + goto yy523; + yy901: + yych = *++p; + if (yych == 'C') + goto yy902; + if (yych != 'c') + goto yy523; + yy902: + yych = *++p; + if (yych == 'H') + goto yy903; + if (yych != 'h') + goto yy523; + yy903: + yych = *++p; + if (yych == 'M') + goto yy904; + if (yych != 'm') + goto yy523; + yy904: + yych = *++p; + if (yych == 'E') + goto yy905; + if (yych != 'e') + goto yy523; + yy905: + yych = *++p; + if (yych == 'N') + goto yy906; + if (yych != 'n') + goto yy523; + yy906: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy907: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy908: + yych = *++p; + if (yych <= 'V') { + if (yych == 'R') + goto yy533; + if (yych <= 'U') + goto yy523; + } else { + if (yych <= 'r') { + if (yych <= 'q') + goto yy523; + goto yy533; + } else { + if (yych != 'v') + goto yy523; + } + } + yych = *++p; + if (yych == 'A') + goto yy910; + if (yych != 'a') + goto yy523; + yy910: + yych = *++p; + if (yych == 'S') + goto yy911; + if (yych != 's') + goto yy523; + yy911: + yych = *++p; + if (yych == 'C') + goto yy912; + if (yych != 'c') + goto yy523; + yy912: + yych = *++p; + if (yych == 'R') + goto yy913; + if (yych != 'r') + goto yy523; + yy913: + yych = *++p; + if (yych == 'I') + goto yy914; + if (yych != 'i') + goto yy523; + yy914: + yych = *++p; + if (yych == 'P') + goto yy915; + if (yych != 'p') + goto yy523; + yy915: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy916: + yych = *++p; + if (yych == 'B') + goto yy533; + if (yych == 'b') + goto yy533; + goto yy523; + yy917: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy918: + yych = *++p; + if (yych == 'N') + goto yy925; + if (yych == 'n') + goto yy925; + goto yy523; + yy919: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy920: + yych = *++p; + if (yych == 'C') + goto yy924; + if (yych == 'c') + goto yy924; + goto yy523; + yy921: + yych = *++p; + if (yych <= 'V') { + if (yych == 'T') + goto yy923; + if (yych <= 'U') + goto yy523; + goto yy533; + } else { + if (yych <= 't') { + if (yych <= 's') + goto yy523; + goto yy923; + } else { + if (yych == 'v') + goto yy533; + goto yy523; + } + } + yy922: + yych = *++p; + if (yych == 'I') + goto yy533; + if (yych == 'i') + goto yy533; + goto yy523; + yy923: + yych = *++p; + if (yych == 'A') + goto yy533; + if (yych == 'a') + goto yy533; + goto yy523; + yy924: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy925: + yych = *++p; + if (yych == 'A') + goto yy926; + if (yych != 'a') + goto yy523; + yy926: + yych = *++p; + if (yych != '-') + goto yy523; + yych = *++p; + if (yych == 'P') + goto yy928; + if (yych != 'p') + goto yy523; + yy928: + yych = *++p; + if (yych == 'L') + goto yy929; + if (yych != 'l') + goto yy523; + yy929: + yych = *++p; + if (yych == 'A') + goto yy930; + if (yych != 'a') + goto yy523; + yy930: + yych = *++p; + if (yych == 'Y') + goto yy931; + if (yych != 'y') + goto yy523; + yy931: + yych = *++p; + if (yych <= 'S') { + if (yych == 'C') + goto yy932; + if (yych <= 'R') + goto yy523; + goto yy933; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy523; + } else { + if (yych == 's') + goto yy933; + goto yy523; + } + } + yy932: + yych = *++p; + if (yych == 'O') + goto yy938; + if (yych == 'o') + goto yy938; + goto yy523; + yy933: + yych = *++p; + if (yych == 'I') + goto yy934; + if (yych != 'i') + goto yy523; + yy934: + yych = *++p; + if (yych == 'N') + goto yy935; + if (yych != 'n') + goto yy523; + yy935: + yych = *++p; + if (yych == 'G') + goto yy936; + if (yych != 'g') + goto yy523; + yy936: + yych = *++p; + if (yych == 'L') + goto yy937; + if (yych != 'l') + goto yy523; + yy937: + yych = *++p; + if (yych == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + yy938: + yych = *++p; + if (yych == 'N') + goto yy939; + if (yych != 'n') + goto yy523; + yy939: + yych = *++p; + if (yych == 'T') + goto yy940; + if (yych != 't') + goto yy523; + yy940: + yych = *++p; + if (yych == 'A') + goto yy941; + if (yych != 'a') + goto yy523; + yy941: + yych = *++p; + if (yych == 'I') + goto yy942; + if (yych != 'i') + goto yy523; + yy942: + yych = *++p; + if (yych == 'N') + goto yy943; + if (yych != 'n') + goto yy523; + yy943: + yych = *++p; + if (yych == 'E') + goto yy944; + if (yych != 'e') + goto yy523; + yy944: + yych = *++p; + if (yych == 'R') + goto yy533; + if (yych == 'r') + goto yy533; + goto yy523; + yy945: + yych = *++p; + if (yych == 'S') + goto yy533; + if (yych == 's') + goto yy533; + goto yy523; + yy946: + yych = *++p; + if (yych <= 'N') { + if (yych <= 'A') { + if (yych <= '@') + goto yy523; + goto yy968; + } else { + if (yych <= 'L') + goto yy523; + if (yych <= 'M') + goto yy969; + goto yy970; + } + } else { + if (yych <= 'l') { + if (yych == 'a') + goto yy968; + goto yy523; + } else { + if (yych <= 'm') + goto yy969; + if (yych <= 'n') + goto yy970; + goto yy523; + } + } + yy947: + yych = *++p; + if (yych == 'R') + goto yy955; + if (yych == 'r') + goto yy955; + goto yy523; + yy948: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy952; + if (yych <= 'O') + goto yy523; + goto yy533; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy523; + goto yy952; + } else { + if (yych == 'p') + goto yy533; + goto yy523; + } + } + yy949: + yych = *++p; + if (yych == 'I') + goto yy951; + if (yych == 'i') + goto yy951; + goto yy523; + yy950: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy951: + yych = *++p; + if (yych == 'D') + goto yy533; + if (yych == 'd') + goto yy533; + goto yy523; + yy952: + yych = *++p; + if (yych == 'L') + goto yy953; + if (yych != 'l') + goto yy523; + yy953: + yych = *++p; + if (yych == 'T') + goto yy954; + if (yych != 't') + goto yy523; + yy954: + yych = *++p; + if (yych == 'O') + goto yy533; + if (yych == 'o') + goto yy533; + goto yy523; + yy955: + yych = *++p; + if (yych == 'O') + goto yy956; + if (yych != 'o') + goto yy523; + yy956: + yych = *++p; + if (yych == 'M') + goto yy957; + if (yych != 'm') + goto yy523; + yy957: + yych = *++p; + if (yych == 'E') + goto yy958; + if (yych != 'e') + goto yy523; + yy958: + yych = *++p; + if (yych == '-') + goto yy959; + if (yych == ':') + goto yy534; + goto yy523; + yy959: + yych = *++p; + if (yych == 'E') + goto yy960; + if (yych != 'e') + goto yy523; + yy960: + yych = *++p; + if (yych == 'X') + goto yy961; + if (yych != 'x') + goto yy523; + yy961: + yych = *++p; + if (yych == 'T') + goto yy962; + if (yych != 't') + goto yy523; + yy962: + yych = *++p; + if (yych == 'E') + goto yy963; + if (yych != 'e') + goto yy523; + yy963: + yych = *++p; + if (yych == 'N') + goto yy964; + if (yych != 'n') + goto yy523; + yy964: + yych = *++p; + if (yych == 'S') + goto yy965; + if (yych != 's') + goto yy523; + yy965: + yych = *++p; + if (yych == 'I') + goto yy966; + if (yych != 'i') + goto yy523; + yy966: + yych = *++p; + if (yych == 'O') + goto yy967; + if (yych != 'o') + goto yy523; + yy967: + yych = *++p; + if (yych == 'N') + goto yy533; + if (yych == 'n') + goto yy533; + goto yy523; + yy968: + yych = *++p; + if (yych == 'P') + goto yy533; + if (yych == 'p') + goto yy533; + goto yy523; + yy969: + yych = *++p; + if (yych == '-') + goto yy974; + goto yy523; + yy970: + yych = *++p; + if (yych == 'T') + goto yy971; + if (yych != 't') + goto yy523; + yy971: + yych = *++p; + if (yych == 'E') + goto yy972; + if (yych != 'e') + goto yy523; + yy972: + yych = *++p; + if (yych == 'N') + goto yy973; + if (yych != 'n') + goto yy523; + yy973: + yych = *++p; + if (yych == 'T') + goto yy533; + if (yych == 't') + goto yy533; + goto yy523; + yy974: + yych = *++p; + if (yych == 'E') + goto yy975; + if (yych != 'e') + goto yy523; + yy975: + yych = *++p; + if (yych == 'V') + goto yy976; + if (yych != 'v') + goto yy523; + yy976: + yych = *++p; + if (yych == 'E') + goto yy977; + if (yych != 'e') + goto yy523; + yy977: + yych = *++p; + if (yych == 'N') + goto yy978; + if (yych != 'n') + goto yy523; + yy978: + yych = *++p; + if (yych == 'T') + goto yy979; + if (yych != 't') + goto yy523; + yy979: + yych = *++p; + if (yych == 'B') + goto yy980; + if (yych != 'b') + goto yy523; + yy980: + yych = *++p; + if (yych == 'R') + goto yy981; + if (yych != 'r') + goto yy523; + yy981: + yych = *++p; + if (yych == 'I') + goto yy982; + if (yych != 'i') + goto yy523; + yy982: + yych = *++p; + if (yych == 'T') + goto yy983; + if (yych != 't') + goto yy523; + yy983: + yych = *++p; + if (yych == 'E') + goto yy984; + if (yych != 'e') + goto yy523; + yy984: + yych = *++p; + if (yych != '-') + goto yy523; + yych = *++p; + if (yych == 'A') + goto yy986; + if (yych != 'a') + goto yy523; + yy986: + yych = *++p; + if (yych == 'T') + goto yy987; + if (yych != 't') + goto yy523; + yy987: + yych = *++p; + if (yych == 'T') + goto yy988; + if (yych != 't') + goto yy523; + yy988: + yych = *++p; + if (yych == 'E') + goto yy989; + if (yych != 'e') + goto yy523; + yy989: + yych = *++p; + if (yych == 'N') + goto yy990; + if (yych != 'n') + goto yy523; + yy990: + yych = *++p; + if (yych == 'D') + goto yy991; + if (yych != 'd') + goto yy523; + yy991: + yych = *++p; + if (yych == 'E') + goto yy992; + if (yych != 'e') + goto yy523; + yy992: + ++p; + if ((yych = *p) == 'E') + goto yy533; + if (yych == 'e') + goto yy533; + goto yy523; + } } // 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 = *(marker = p); - if (yych <= '?') { - if (yych <= ')') { - if (yych <= ' ') { - if (yych != '\n') goto yy997; - } else { - if (yych == '"') goto yy997; - if (yych <= '\'') goto yy996; - goto yy997; - } - } else { - if (yych <= '9') { - if (yych == ',') goto yy997; - goto yy996; - } else { - if (yych == '=') goto yy996; - if (yych <= '>') goto yy997; - goto yy996; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= ']') { - if (yych <= '@') goto yy997; - if (yych <= 'Z') goto yy996; - goto yy997; - } else { - if (yych <= '~') goto yy996; - if (yych <= 0x7F) goto yy997; - if (yych >= 0xC2) goto yy998; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1000; - if (yych == 0xED) goto yy1005; - goto yy1001; - } else { - if (yych <= 0xF0) goto yy1002; - if (yych <= 0xF3) goto yy1003; - if (yych <= 0xF4) goto yy1004; - } - } - } -yy995: - { return 0; } -yy996: - yych = *(marker = ++p); - if (yych <= ',') { - if (yych <= '"') { - if (yych == '!') goto yy1008; - goto yy995; - } else { - if (yych <= '\'') goto yy1008; - if (yych <= ')') goto yy995; - if (yych <= '+') goto yy1008; - goto yy995; - } - } else { - if (yych <= '>') { - if (yych <= '9') goto yy1008; - if (yych == '=') goto yy1008; - goto yy995; - } else { - if (yych <= 'Z') goto yy1008; - if (yych <= ']') goto yy995; - if (yych <= '~') goto yy1008; - goto yy995; - } - } -yy997: - yych = *++p; - goto yy995; -yy998: - yych = *++p; - if (yych <= 0x7F) goto yy999; - if (yych <= 0xBF) goto yy997; -yy999: - p = marker; - goto yy995; -yy1000: - yych = *++p; - if (yych <= 0x9F) goto yy999; - if (yych <= 0xBF) goto yy998; - goto yy999; -yy1001: - yych = *++p; - if (yych <= 0x7F) goto yy999; - if (yych <= 0xBF) goto yy998; - goto yy999; -yy1002: - yych = *++p; - if (yych <= 0x8F) goto yy999; - if (yych <= 0xBF) goto yy1001; - goto yy999; -yy1003: - yych = *++p; - if (yych <= 0x7F) goto yy999; - if (yych <= 0xBF) goto yy1001; - goto yy999; -yy1004: - yych = *++p; - if (yych <= 0x7F) goto yy999; - if (yych <= 0x8F) goto yy1001; - goto yy999; -yy1005: - yych = *++p; - if (yych <= 0x7F) goto yy999; - if (yych <= 0x9F) goto yy998; - goto yy999; -yy1006: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1009; - goto yy999; - } else { - if (yych <= 'Z') goto yy1009; - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1009; - goto yy999; - } -yy1007: - ++p; - yych = *p; -yy1008: - if (yybm[0+yych] & 128) { - goto yy1007; - } - if (yych <= '>') goto yy999; - if (yych <= '@') goto yy1006; - goto yy999; -yy1009: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1011; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1011; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1011; - goto yy999; - } - } - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1139; - if (yych <= '/') goto yy999; - goto yy1140; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1140; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1140; - goto yy999; - } - } -yy1011: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych <= '-') goto yy1139; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1140; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1140; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1140; - goto yy999; - } - } -yy1012: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1015; - goto yy999; - } else { - if (yych <= 'Z') goto yy1015; - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1015; - goto yy999; - } -yy1013: - ++p; - { return (bufsize_t)(p - start); } -yy1015: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1017; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1017; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1017; - goto yy999; - } - } - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1018; - if (yych <= '/') goto yy999; - goto yy1019; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1019; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1019; - goto yy999; - } - } -yy1017: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1019; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1019; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1019; - goto yy999; - } - } -yy1018: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1020; - if (yych <= '/') goto yy999; - goto yy1021; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1021; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1021; - goto yy999; - } - } -yy1019: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1021; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1021; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1021; - goto yy999; - } - } -yy1020: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1022; - if (yych <= '/') goto yy999; - goto yy1023; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1023; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1023; - goto yy999; - } - } -yy1021: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1023; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1023; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1023; - goto yy999; - } - } -yy1022: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1024; - if (yych <= '/') goto yy999; - goto yy1025; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1025; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1025; - goto yy999; - } - } -yy1023: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1025; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1025; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1025; - goto yy999; - } - } -yy1024: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1026; - if (yych <= '/') goto yy999; - goto yy1027; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1027; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1027; - goto yy999; - } - } -yy1025: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1027; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1027; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1027; - goto yy999; - } - } -yy1026: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1028; - if (yych <= '/') goto yy999; - goto yy1029; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1029; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1029; - goto yy999; - } - } -yy1027: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1029; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1029; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1029; - goto yy999; - } - } -yy1028: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1030; - if (yych <= '/') goto yy999; - goto yy1031; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1031; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1031; - goto yy999; - } - } -yy1029: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1031; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1031; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1031; - goto yy999; - } - } -yy1030: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1032; - if (yych <= '/') goto yy999; - goto yy1033; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1033; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1033; - goto yy999; - } - } -yy1031: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1033; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1033; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1033; - goto yy999; - } - } -yy1032: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1034; - if (yych <= '/') goto yy999; - goto yy1035; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1035; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1035; - goto yy999; - } - } -yy1033: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1035; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1035; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1035; - goto yy999; - } - } -yy1034: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1036; - if (yych <= '/') goto yy999; - goto yy1037; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1037; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1037; - goto yy999; - } - } -yy1035: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1037; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1037; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1037; - goto yy999; - } - } -yy1036: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1038; - if (yych <= '/') goto yy999; - goto yy1039; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1039; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1039; - goto yy999; - } - } -yy1037: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1039; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1039; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1039; - goto yy999; - } - } -yy1038: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1040; - if (yych <= '/') goto yy999; - goto yy1041; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1041; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1041; - goto yy999; - } - } -yy1039: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1041; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1041; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1041; - goto yy999; - } - } -yy1040: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1042; - if (yych <= '/') goto yy999; - goto yy1043; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1043; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1043; - goto yy999; - } - } -yy1041: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1043; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1043; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1043; - goto yy999; - } - } -yy1042: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1044; - if (yych <= '/') goto yy999; - goto yy1045; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1045; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1045; - goto yy999; - } - } -yy1043: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1045; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1045; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1045; - goto yy999; - } - } -yy1044: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1046; - if (yych <= '/') goto yy999; - goto yy1047; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1047; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1047; - goto yy999; - } - } -yy1045: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1047; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1047; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1047; - goto yy999; - } - } -yy1046: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1048; - if (yych <= '/') goto yy999; - goto yy1049; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1049; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1049; - goto yy999; - } - } -yy1047: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1049; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1049; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1049; - goto yy999; - } - } -yy1048: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1050; - if (yych <= '/') goto yy999; - goto yy1051; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1051; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1051; - goto yy999; - } - } -yy1049: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1051; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1051; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1051; - goto yy999; - } - } -yy1050: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1052; - if (yych <= '/') goto yy999; - goto yy1053; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1053; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1053; - goto yy999; - } - } -yy1051: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1053; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1053; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1053; - goto yy999; - } - } -yy1052: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1054; - if (yych <= '/') goto yy999; - goto yy1055; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1055; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1055; - goto yy999; - } - } -yy1053: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1055; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1055; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1055; - goto yy999; - } - } -yy1054: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1056; - if (yych <= '/') goto yy999; - goto yy1057; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1057; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1057; - goto yy999; - } - } -yy1055: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1057; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1057; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1057; - goto yy999; - } - } -yy1056: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1058; - if (yych <= '/') goto yy999; - goto yy1059; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1059; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1059; - goto yy999; - } - } -yy1057: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1059; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1059; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1059; - goto yy999; - } - } -yy1058: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1060; - if (yych <= '/') goto yy999; - goto yy1061; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1061; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1061; - goto yy999; - } - } -yy1059: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1061; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1061; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1061; - goto yy999; - } - } -yy1060: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1062; - if (yych <= '/') goto yy999; - goto yy1063; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1063; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1063; - goto yy999; - } - } -yy1061: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1063; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1063; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1063; - goto yy999; - } - } -yy1062: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1064; - if (yych <= '/') goto yy999; - goto yy1065; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1065; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1065; - goto yy999; - } - } -yy1063: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1065; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1065; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1065; - goto yy999; - } - } -yy1064: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1066; - if (yych <= '/') goto yy999; - goto yy1067; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1067; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1067; - goto yy999; - } - } -yy1065: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1067; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1067; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1067; - goto yy999; - } - } -yy1066: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1068; - if (yych <= '/') goto yy999; - goto yy1069; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1069; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1069; - goto yy999; - } - } -yy1067: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1069; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1069; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1069; - goto yy999; - } - } -yy1068: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1070; - if (yych <= '/') goto yy999; - goto yy1071; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1071; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1071; - goto yy999; - } - } -yy1069: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1071; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1071; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1071; - goto yy999; - } - } -yy1070: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1072; - if (yych <= '/') goto yy999; - goto yy1073; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1073; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1073; - goto yy999; - } - } -yy1071: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1073; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1073; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1073; - goto yy999; - } - } -yy1072: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1074; - if (yych <= '/') goto yy999; - goto yy1075; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1075; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1075; - goto yy999; - } - } -yy1073: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1075; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1075; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1075; - goto yy999; - } - } -yy1074: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1076; - if (yych <= '/') goto yy999; - goto yy1077; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1077; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1077; - goto yy999; - } - } -yy1075: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1077; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1077; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1077; - goto yy999; - } - } -yy1076: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1078; - if (yych <= '/') goto yy999; - goto yy1079; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1079; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1079; - goto yy999; - } - } -yy1077: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1079; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1079; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1079; - goto yy999; - } - } -yy1078: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1080; - if (yych <= '/') goto yy999; - goto yy1081; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1081; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1081; - goto yy999; - } - } -yy1079: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1081; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1081; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1081; - goto yy999; - } - } -yy1080: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1082; - if (yych <= '/') goto yy999; - goto yy1083; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1083; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1083; - goto yy999; - } - } -yy1081: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1083; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1083; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1083; - goto yy999; - } - } -yy1082: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1084; - if (yych <= '/') goto yy999; - goto yy1085; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1085; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1085; - goto yy999; - } - } -yy1083: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1085; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1085; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1085; - goto yy999; - } - } -yy1084: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1086; - if (yych <= '/') goto yy999; - goto yy1087; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1087; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1087; - goto yy999; - } - } -yy1085: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1087; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1087; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1087; - goto yy999; - } - } -yy1086: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1088; - if (yych <= '/') goto yy999; - goto yy1089; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1089; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1089; - goto yy999; - } - } -yy1087: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1089; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1089; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1089; - goto yy999; - } - } -yy1088: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1090; - if (yych <= '/') goto yy999; - goto yy1091; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1091; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1091; - goto yy999; - } - } -yy1089: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1091; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1091; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1091; - goto yy999; - } - } -yy1090: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1092; - if (yych <= '/') goto yy999; - goto yy1093; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1093; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1093; - goto yy999; - } - } -yy1091: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1093; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1093; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1093; - goto yy999; - } - } -yy1092: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1094; - if (yych <= '/') goto yy999; - goto yy1095; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1095; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1095; - goto yy999; - } - } -yy1093: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1095; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1095; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1095; - goto yy999; - } - } -yy1094: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1096; - if (yych <= '/') goto yy999; - goto yy1097; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1097; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1097; - goto yy999; - } - } -yy1095: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1097; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1097; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1097; - goto yy999; - } - } -yy1096: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1098; - if (yych <= '/') goto yy999; - goto yy1099; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1099; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1099; - goto yy999; - } - } -yy1097: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1099; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1099; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1099; - goto yy999; - } - } -yy1098: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1100; - if (yych <= '/') goto yy999; - goto yy1101; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1101; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1101; - goto yy999; - } - } -yy1099: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1101; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1101; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1101; - goto yy999; - } - } -yy1100: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1102; - if (yych <= '/') goto yy999; - goto yy1103; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1103; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1103; - goto yy999; - } - } -yy1101: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1103; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1103; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1103; - goto yy999; - } - } -yy1102: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1104; - if (yych <= '/') goto yy999; - goto yy1105; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1105; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1105; - goto yy999; - } - } -yy1103: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1105; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1105; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1105; - goto yy999; - } - } -yy1104: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1106; - if (yych <= '/') goto yy999; - goto yy1107; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1107; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1107; - goto yy999; - } - } -yy1105: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1107; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1107; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1107; - goto yy999; - } - } -yy1106: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1108; - if (yych <= '/') goto yy999; - goto yy1109; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1109; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1109; - goto yy999; - } - } -yy1107: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1109; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1109; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1109; - goto yy999; - } - } -yy1108: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1110; - if (yych <= '/') goto yy999; - goto yy1111; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1111; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1111; - goto yy999; - } - } -yy1109: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1111; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1111; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1111; - goto yy999; - } - } -yy1110: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1112; - if (yych <= '/') goto yy999; - goto yy1113; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1113; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1113; - goto yy999; - } - } -yy1111: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1113; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1113; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1113; - goto yy999; - } - } -yy1112: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1114; - if (yych <= '/') goto yy999; - goto yy1115; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1115; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1115; - goto yy999; - } - } -yy1113: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1115; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1115; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1115; - goto yy999; - } - } -yy1114: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1116; - if (yych <= '/') goto yy999; - goto yy1117; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1117; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1117; - goto yy999; - } - } -yy1115: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1117; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1117; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1117; - goto yy999; - } - } -yy1116: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1118; - if (yych <= '/') goto yy999; - goto yy1119; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1119; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1119; - goto yy999; - } - } -yy1117: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1119; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1119; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1119; - goto yy999; - } - } -yy1118: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1120; - if (yych <= '/') goto yy999; - goto yy1121; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1121; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1121; - goto yy999; - } - } -yy1119: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1121; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1121; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1121; - goto yy999; - } - } -yy1120: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1122; - if (yych <= '/') goto yy999; - goto yy1123; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1123; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1123; - goto yy999; - } - } -yy1121: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1123; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1123; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1123; - goto yy999; - } - } -yy1122: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1124; - if (yych <= '/') goto yy999; - goto yy1125; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1125; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1125; - goto yy999; - } - } -yy1123: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1125; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1125; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1125; - goto yy999; - } - } -yy1124: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1126; - if (yych <= '/') goto yy999; - goto yy1127; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1127; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1127; - goto yy999; - } - } -yy1125: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1127; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1127; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1127; - goto yy999; - } - } -yy1126: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1128; - if (yych <= '/') goto yy999; - goto yy1129; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1129; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1129; - goto yy999; - } - } -yy1127: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1129; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1129; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1129; - goto yy999; - } - } -yy1128: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1130; - if (yych <= '/') goto yy999; - goto yy1131; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1131; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1131; - goto yy999; - } - } -yy1129: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1131; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1131; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1131; - goto yy999; - } - } -yy1130: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1132; - if (yych <= '/') goto yy999; - goto yy1133; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1133; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1133; - goto yy999; - } - } -yy1131: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1133; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1133; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1133; - goto yy999; - } - } -yy1132: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1134; - if (yych <= '/') goto yy999; - goto yy1135; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1135; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1135; - goto yy999; - } - } -yy1133: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1135; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1135; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1135; - goto yy999; - } - } -yy1134: - ++p; - yych = *p; - if (yych <= '9') { - if (yych == '-') goto yy1136; - if (yych <= '/') goto yy999; - goto yy1137; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1137; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1137; - goto yy999; - } - } -yy1135: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1137; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1137; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1137; - goto yy999; - } - } -yy1136: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1138; - goto yy999; - } else { - if (yych <= 'Z') goto yy1138; - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1138; - goto yy999; - } -yy1137: - ++p; - yych = *p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= '-') goto yy999; - goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych >= ':') goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - } else { - if (yych <= '`') goto yy999; - if (yych >= '{') goto yy999; - } - } -yy1138: - ++p; - yych = *p; - if (yych == '.') goto yy1012; - if (yych == '>') goto yy1013; - goto yy999; -yy1139: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1141; - if (yych <= '/') goto yy999; - goto yy1142; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1142; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1142; - goto yy999; - } - } -yy1140: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1142; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1142; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1142; - goto yy999; - } - } -yy1141: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1143; - if (yych <= '/') goto yy999; - goto yy1144; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1144; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1144; - goto yy999; - } - } -yy1142: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1144; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1144; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1144; - goto yy999; - } - } -yy1143: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1145; - if (yych <= '/') goto yy999; - goto yy1146; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1146; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1146; - goto yy999; - } - } -yy1144: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1146; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1146; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1146; - goto yy999; - } - } -yy1145: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1147; - if (yych <= '/') goto yy999; - goto yy1148; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1148; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1148; - goto yy999; - } - } -yy1146: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1148; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1148; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1148; - goto yy999; - } - } -yy1147: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1149; - if (yych <= '/') goto yy999; - goto yy1150; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1150; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1150; - goto yy999; - } - } -yy1148: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1150; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1150; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1150; - goto yy999; - } - } -yy1149: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1151; - if (yych <= '/') goto yy999; - goto yy1152; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1152; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1152; - goto yy999; - } - } -yy1150: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1152; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1152; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1152; - goto yy999; - } - } -yy1151: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1153; - if (yych <= '/') goto yy999; - goto yy1154; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1154; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1154; - goto yy999; - } - } -yy1152: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1154; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1154; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1154; - goto yy999; - } - } -yy1153: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1155; - if (yych <= '/') goto yy999; - goto yy1156; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1156; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1156; - goto yy999; - } - } -yy1154: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1156; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1156; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1156; - goto yy999; - } - } -yy1155: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1157; - if (yych <= '/') goto yy999; - goto yy1158; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1158; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1158; - goto yy999; - } - } -yy1156: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1158; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1158; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1158; - goto yy999; - } - } -yy1157: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1159; - if (yych <= '/') goto yy999; - goto yy1160; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1160; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1160; - goto yy999; - } - } -yy1158: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1160; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1160; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1160; - goto yy999; - } - } -yy1159: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1161; - if (yych <= '/') goto yy999; - goto yy1162; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1162; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1162; - goto yy999; - } - } -yy1160: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1162; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1162; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1162; - goto yy999; - } - } -yy1161: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1163; - if (yych <= '/') goto yy999; - goto yy1164; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1164; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1164; - goto yy999; - } - } -yy1162: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1164; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1164; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1164; - goto yy999; - } - } -yy1163: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1165; - if (yych <= '/') goto yy999; - goto yy1166; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1166; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1166; - goto yy999; - } - } -yy1164: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1166; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1166; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1166; - goto yy999; - } - } -yy1165: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1167; - if (yych <= '/') goto yy999; - goto yy1168; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1168; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1168; - goto yy999; - } - } -yy1166: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1168; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1168; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1168; - goto yy999; - } - } -yy1167: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1169; - if (yych <= '/') goto yy999; - goto yy1170; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1170; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1170; - goto yy999; - } - } -yy1168: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1170; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1170; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1170; - goto yy999; - } - } -yy1169: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1171; - if (yych <= '/') goto yy999; - goto yy1172; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1172; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1172; - goto yy999; - } - } -yy1170: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1172; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1172; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1172; - goto yy999; - } - } -yy1171: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1173; - if (yych <= '/') goto yy999; - goto yy1174; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1174; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1174; - goto yy999; - } - } -yy1172: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1174; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1174; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1174; - goto yy999; - } - } -yy1173: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1175; - if (yych <= '/') goto yy999; - goto yy1176; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1176; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1176; - goto yy999; - } - } -yy1174: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1176; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1176; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1176; - goto yy999; - } - } -yy1175: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1177; - if (yych <= '/') goto yy999; - goto yy1178; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1178; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1178; - goto yy999; - } - } -yy1176: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1178; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1178; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1178; - goto yy999; - } - } -yy1177: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1179; - if (yych <= '/') goto yy999; - goto yy1180; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1180; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1180; - goto yy999; - } - } -yy1178: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1180; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1180; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1180; - goto yy999; - } - } -yy1179: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1181; - if (yych <= '/') goto yy999; - goto yy1182; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1182; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1182; - goto yy999; - } - } -yy1180: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1182; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1182; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1182; - goto yy999; - } - } -yy1181: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1183; - if (yych <= '/') goto yy999; - goto yy1184; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1184; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1184; - goto yy999; - } - } -yy1182: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1184; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1184; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1184; - goto yy999; - } - } -yy1183: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1185; - if (yych <= '/') goto yy999; - goto yy1186; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1186; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1186; - goto yy999; - } - } -yy1184: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1186; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1186; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1186; - goto yy999; - } - } -yy1185: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1187; - if (yych <= '/') goto yy999; - goto yy1188; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1188; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1188; - goto yy999; - } - } -yy1186: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1188; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1188; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1188; - goto yy999; - } - } -yy1187: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1189; - if (yych <= '/') goto yy999; - goto yy1190; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1190; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1190; - goto yy999; - } - } -yy1188: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1190; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1190; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1190; - goto yy999; - } - } -yy1189: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1191; - if (yych <= '/') goto yy999; - goto yy1192; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1192; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1192; - goto yy999; - } - } -yy1190: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1192; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1192; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1192; - goto yy999; - } - } -yy1191: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1193; - if (yych <= '/') goto yy999; - goto yy1194; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1194; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1194; - goto yy999; - } - } -yy1192: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1194; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1194; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1194; - goto yy999; - } - } -yy1193: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1195; - if (yych <= '/') goto yy999; - goto yy1196; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1196; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1196; - goto yy999; - } - } -yy1194: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1196; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1196; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1196; - goto yy999; - } - } -yy1195: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1197; - if (yych <= '/') goto yy999; - goto yy1198; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1198; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1198; - goto yy999; - } - } -yy1196: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1198; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1198; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1198; - goto yy999; - } - } -yy1197: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1199; - if (yych <= '/') goto yy999; - goto yy1200; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1200; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1200; - goto yy999; - } - } -yy1198: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1200; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1200; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1200; - goto yy999; - } - } -yy1199: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1201; - if (yych <= '/') goto yy999; - goto yy1202; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1202; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1202; - goto yy999; - } - } -yy1200: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1202; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1202; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1202; - goto yy999; - } - } -yy1201: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1203; - if (yych <= '/') goto yy999; - goto yy1204; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1204; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1204; - goto yy999; - } - } -yy1202: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1204; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1204; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1204; - goto yy999; - } - } -yy1203: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1205; - if (yych <= '/') goto yy999; - goto yy1206; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1206; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1206; - goto yy999; - } - } -yy1204: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1206; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1206; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1206; - goto yy999; - } - } -yy1205: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1207; - if (yych <= '/') goto yy999; - goto yy1208; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1208; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1208; - goto yy999; - } - } -yy1206: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1208; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1208; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1208; - goto yy999; - } - } -yy1207: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1209; - if (yych <= '/') goto yy999; - goto yy1210; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1210; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1210; - goto yy999; - } - } -yy1208: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1210; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1210; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1210; - goto yy999; - } - } -yy1209: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1211; - if (yych <= '/') goto yy999; - goto yy1212; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1212; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1212; - goto yy999; - } - } -yy1210: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1212; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1212; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1212; - goto yy999; - } - } -yy1211: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1213; - if (yych <= '/') goto yy999; - goto yy1214; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1214; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1214; - goto yy999; - } - } -yy1212: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1214; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1214; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1214; - goto yy999; - } - } -yy1213: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1215; - if (yych <= '/') goto yy999; - goto yy1216; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1216; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1216; - goto yy999; - } - } -yy1214: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1216; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1216; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1216; - goto yy999; - } - } -yy1215: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1217; - if (yych <= '/') goto yy999; - goto yy1218; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1218; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1218; - goto yy999; - } - } -yy1216: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1218; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1218; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1218; - goto yy999; - } - } -yy1217: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1219; - if (yych <= '/') goto yy999; - goto yy1220; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1220; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1220; - goto yy999; - } - } -yy1218: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1220; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1220; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1220; - goto yy999; - } - } -yy1219: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1221; - if (yych <= '/') goto yy999; - goto yy1222; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1222; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1222; - goto yy999; - } - } -yy1220: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1222; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1222; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1222; - goto yy999; - } - } -yy1221: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1223; - if (yych <= '/') goto yy999; - goto yy1224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1224; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1224; - goto yy999; - } - } -yy1222: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1224; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1224; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1224; - goto yy999; - } - } -yy1223: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1225; - if (yych <= '/') goto yy999; - goto yy1226; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1226; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1226; - goto yy999; - } - } -yy1224: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1226; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1226; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1226; - goto yy999; - } - } -yy1225: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1227; - if (yych <= '/') goto yy999; - goto yy1228; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1228; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1228; - goto yy999; - } - } -yy1226: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1228; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1228; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1228; - goto yy999; - } - } -yy1227: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1229; - if (yych <= '/') goto yy999; - goto yy1230; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1230; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1230; - goto yy999; - } - } -yy1228: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1230; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1230; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1230; - goto yy999; - } - } -yy1229: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1231; - if (yych <= '/') goto yy999; - goto yy1232; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1232; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1232; - goto yy999; - } - } -yy1230: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1232; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1232; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1232; - goto yy999; - } - } -yy1231: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1233; - if (yych <= '/') goto yy999; - goto yy1234; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1234; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1234; - goto yy999; - } - } -yy1232: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1234; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1234; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1234; - goto yy999; - } - } -yy1233: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1235; - if (yych <= '/') goto yy999; - goto yy1236; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1236; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1236; - goto yy999; - } - } -yy1234: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1236; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1236; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1236; - goto yy999; - } - } -yy1235: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1237; - if (yych <= '/') goto yy999; - goto yy1238; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1238; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1238; - goto yy999; - } - } -yy1236: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1238; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1238; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1238; - goto yy999; - } - } -yy1237: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1239; - if (yych <= '/') goto yy999; - goto yy1240; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1240; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1240; - goto yy999; - } - } -yy1238: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1240; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1240; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1240; - goto yy999; - } - } -yy1239: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1241; - if (yych <= '/') goto yy999; - goto yy1242; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1242; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1242; - goto yy999; - } - } -yy1240: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1242; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1242; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1242; - goto yy999; - } - } -yy1241: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1243; - if (yych <= '/') goto yy999; - goto yy1244; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1244; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1244; - goto yy999; - } - } -yy1242: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1244; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1244; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1244; - goto yy999; - } - } -yy1243: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1245; - if (yych <= '/') goto yy999; - goto yy1246; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1246; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1246; - goto yy999; - } - } -yy1244: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1246; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1246; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1246; - goto yy999; - } - } -yy1245: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1247; - if (yych <= '/') goto yy999; - goto yy1248; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1248; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1248; - goto yy999; - } - } -yy1246: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1248; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1248; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1248; - goto yy999; - } - } -yy1247: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1249; - if (yych <= '/') goto yy999; - goto yy1250; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1250; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1250; - goto yy999; - } - } -yy1248: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1250; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1250; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1250; - goto yy999; - } - } -yy1249: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1251; - if (yych <= '/') goto yy999; - goto yy1252; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1252; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1252; - goto yy999; - } - } -yy1250: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1252; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1252; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1252; - goto yy999; - } - } -yy1251: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1253; - if (yych <= '/') goto yy999; - goto yy1254; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1254; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1254; - goto yy999; - } - } -yy1252: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1254; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1254; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1254; - goto yy999; - } - } -yy1253: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1255; - if (yych <= '/') goto yy999; - goto yy1256; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1256; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1256; - goto yy999; - } - } -yy1254: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1256; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1256; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1256; - goto yy999; - } - } -yy1255: - yych = *++p; - if (yych <= '9') { - if (yych == '-') goto yy1257; - if (yych <= '/') goto yy999; - goto yy1258; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy999; - goto yy1258; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1258; - goto yy999; - } - } -yy1256: - yych = *++p; - if (yych <= '=') { - if (yych <= '.') { - if (yych <= ',') goto yy999; - if (yych >= '.') goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1258; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1258; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1258; - goto yy999; - } - } -yy1257: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1138; - goto yy999; - } else { - if (yych <= 'Z') goto yy1138; - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1138; - goto yy999; - } -yy1258: - ++p; - if ((yych = *p) <= '=') { - if (yych <= '.') { - if (yych <= '-') goto yy999; - goto yy1012; - } else { - if (yych <= '/') goto yy999; - if (yych <= '9') goto yy1138; - goto yy999; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1013; - if (yych <= '@') goto yy999; - goto yy1138; - } else { - if (yych <= '`') goto yy999; - if (yych <= 'z') goto yy1138; - goto yy999; - } - } -} - + { + 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 = *(marker = p); + if (yych <= '?') { + if (yych <= ')') { + if (yych <= ' ') { + if (yych != '\n') + goto yy997; + } else { + if (yych == '"') + goto yy997; + if (yych <= '\'') + goto yy996; + goto yy997; + } + } else { + if (yych <= '9') { + if (yych == ',') + goto yy997; + goto yy996; + } else { + if (yych == '=') + goto yy996; + if (yych <= '>') + goto yy997; + goto yy996; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= ']') { + if (yych <= '@') + goto yy997; + if (yych <= 'Z') + goto yy996; + goto yy997; + } else { + if (yych <= '~') + goto yy996; + if (yych <= 0x7F) + goto yy997; + if (yych >= 0xC2) + goto yy998; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1000; + if (yych == 0xED) + goto yy1005; + goto yy1001; + } else { + if (yych <= 0xF0) + goto yy1002; + if (yych <= 0xF3) + goto yy1003; + if (yych <= 0xF4) + goto yy1004; + } + } + } + yy995 : { return 0; } + yy996: + yych = *(marker = ++p); + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') + goto yy1008; + goto yy995; + } else { + if (yych <= '\'') + goto yy1008; + if (yych <= ')') + goto yy995; + if (yych <= '+') + goto yy1008; + goto yy995; + } + } else { + if (yych <= '>') { + if (yych <= '9') + goto yy1008; + if (yych == '=') + goto yy1008; + goto yy995; + } else { + if (yych <= 'Z') + goto yy1008; + if (yych <= ']') + goto yy995; + if (yych <= '~') + goto yy1008; + goto yy995; + } + } + yy997: + yych = *++p; + goto yy995; + yy998: + yych = *++p; + if (yych <= 0x7F) + goto yy999; + if (yych <= 0xBF) + goto yy997; + yy999: + p = marker; + goto yy995; + yy1000: + yych = *++p; + if (yych <= 0x9F) + goto yy999; + if (yych <= 0xBF) + goto yy998; + goto yy999; + yy1001: + yych = *++p; + if (yych <= 0x7F) + goto yy999; + if (yych <= 0xBF) + goto yy998; + goto yy999; + yy1002: + yych = *++p; + if (yych <= 0x8F) + goto yy999; + if (yych <= 0xBF) + goto yy1001; + goto yy999; + yy1003: + yych = *++p; + if (yych <= 0x7F) + goto yy999; + if (yych <= 0xBF) + goto yy1001; + goto yy999; + yy1004: + yych = *++p; + if (yych <= 0x7F) + goto yy999; + if (yych <= 0x8F) + goto yy1001; + goto yy999; + yy1005: + yych = *++p; + if (yych <= 0x7F) + goto yy999; + if (yych <= 0x9F) + goto yy998; + goto yy999; + yy1006: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1009; + goto yy999; + } else { + if (yych <= 'Z') + goto yy1009; + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1009; + goto yy999; + } + yy1007: + ++p; + yych = *p; + yy1008: + if (yybm[0 + yych] & 128) { + goto yy1007; + } + if (yych <= '>') + goto yy999; + if (yych <= '@') + goto yy1006; + goto yy999; + yy1009: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1011; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1011; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1011; + goto yy999; + } + } + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1139; + if (yych <= '/') + goto yy999; + goto yy1140; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1140; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1140; + goto yy999; + } + } + yy1011: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych <= '-') + goto yy1139; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1140; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1140; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1140; + goto yy999; + } + } + yy1012: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1015; + goto yy999; + } else { + if (yych <= 'Z') + goto yy1015; + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1015; + goto yy999; + } + yy1013: + ++p; + { return (bufsize_t)(p - start); } + yy1015: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1017; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1017; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1017; + goto yy999; + } + } + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1018; + if (yych <= '/') + goto yy999; + goto yy1019; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1019; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1019; + goto yy999; + } + } + yy1017: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1019; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1019; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1019; + goto yy999; + } + } + yy1018: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1020; + if (yych <= '/') + goto yy999; + goto yy1021; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1021; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1021; + goto yy999; + } + } + yy1019: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1021; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1021; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1021; + goto yy999; + } + } + yy1020: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1022; + if (yych <= '/') + goto yy999; + goto yy1023; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1023; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1023; + goto yy999; + } + } + yy1021: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1023; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1023; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1023; + goto yy999; + } + } + yy1022: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1024; + if (yych <= '/') + goto yy999; + goto yy1025; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1025; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1025; + goto yy999; + } + } + yy1023: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1025; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1025; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1025; + goto yy999; + } + } + yy1024: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1026; + if (yych <= '/') + goto yy999; + goto yy1027; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1027; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1027; + goto yy999; + } + } + yy1025: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1027; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1027; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1027; + goto yy999; + } + } + yy1026: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1028; + if (yych <= '/') + goto yy999; + goto yy1029; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1029; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1029; + goto yy999; + } + } + yy1027: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1029; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1029; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1029; + goto yy999; + } + } + yy1028: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1030; + if (yych <= '/') + goto yy999; + goto yy1031; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1031; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1031; + goto yy999; + } + } + yy1029: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1031; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1031; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1031; + goto yy999; + } + } + yy1030: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1032; + if (yych <= '/') + goto yy999; + goto yy1033; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1033; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1033; + goto yy999; + } + } + yy1031: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1033; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1033; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1033; + goto yy999; + } + } + yy1032: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1034; + if (yych <= '/') + goto yy999; + goto yy1035; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1035; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1035; + goto yy999; + } + } + yy1033: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1035; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1035; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1035; + goto yy999; + } + } + yy1034: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1036; + if (yych <= '/') + goto yy999; + goto yy1037; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1037; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1037; + goto yy999; + } + } + yy1035: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1037; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1037; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1037; + goto yy999; + } + } + yy1036: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1038; + if (yych <= '/') + goto yy999; + goto yy1039; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1039; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1039; + goto yy999; + } + } + yy1037: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1039; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1039; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1039; + goto yy999; + } + } + yy1038: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1040; + if (yych <= '/') + goto yy999; + goto yy1041; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1041; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1041; + goto yy999; + } + } + yy1039: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1041; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1041; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1041; + goto yy999; + } + } + yy1040: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1042; + if (yych <= '/') + goto yy999; + goto yy1043; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1043; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1043; + goto yy999; + } + } + yy1041: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1043; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1043; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1043; + goto yy999; + } + } + yy1042: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1044; + if (yych <= '/') + goto yy999; + goto yy1045; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1045; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1045; + goto yy999; + } + } + yy1043: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1045; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1045; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1045; + goto yy999; + } + } + yy1044: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1046; + if (yych <= '/') + goto yy999; + goto yy1047; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1047; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1047; + goto yy999; + } + } + yy1045: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1047; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1047; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1047; + goto yy999; + } + } + yy1046: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1048; + if (yych <= '/') + goto yy999; + goto yy1049; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1049; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1049; + goto yy999; + } + } + yy1047: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1049; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1049; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1049; + goto yy999; + } + } + yy1048: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1050; + if (yych <= '/') + goto yy999; + goto yy1051; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1051; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1051; + goto yy999; + } + } + yy1049: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1051; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1051; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1051; + goto yy999; + } + } + yy1050: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1052; + if (yych <= '/') + goto yy999; + goto yy1053; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1053; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1053; + goto yy999; + } + } + yy1051: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1053; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1053; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1053; + goto yy999; + } + } + yy1052: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1054; + if (yych <= '/') + goto yy999; + goto yy1055; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1055; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1055; + goto yy999; + } + } + yy1053: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1055; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1055; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1055; + goto yy999; + } + } + yy1054: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1056; + if (yych <= '/') + goto yy999; + goto yy1057; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1057; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1057; + goto yy999; + } + } + yy1055: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1057; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1057; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1057; + goto yy999; + } + } + yy1056: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1058; + if (yych <= '/') + goto yy999; + goto yy1059; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1059; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1059; + goto yy999; + } + } + yy1057: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1059; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1059; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1059; + goto yy999; + } + } + yy1058: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1060; + if (yych <= '/') + goto yy999; + goto yy1061; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1061; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1061; + goto yy999; + } + } + yy1059: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1061; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1061; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1061; + goto yy999; + } + } + yy1060: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1062; + if (yych <= '/') + goto yy999; + goto yy1063; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1063; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1063; + goto yy999; + } + } + yy1061: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1063; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1063; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1063; + goto yy999; + } + } + yy1062: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1064; + if (yych <= '/') + goto yy999; + goto yy1065; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1065; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1065; + goto yy999; + } + } + yy1063: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1065; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1065; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1065; + goto yy999; + } + } + yy1064: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1066; + if (yych <= '/') + goto yy999; + goto yy1067; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1067; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1067; + goto yy999; + } + } + yy1065: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1067; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1067; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1067; + goto yy999; + } + } + yy1066: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1068; + if (yych <= '/') + goto yy999; + goto yy1069; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1069; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1069; + goto yy999; + } + } + yy1067: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1069; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1069; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1069; + goto yy999; + } + } + yy1068: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1070; + if (yych <= '/') + goto yy999; + goto yy1071; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1071; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1071; + goto yy999; + } + } + yy1069: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1071; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1071; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1071; + goto yy999; + } + } + yy1070: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1072; + if (yych <= '/') + goto yy999; + goto yy1073; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1073; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1073; + goto yy999; + } + } + yy1071: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1073; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1073; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1073; + goto yy999; + } + } + yy1072: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1074; + if (yych <= '/') + goto yy999; + goto yy1075; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1075; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1075; + goto yy999; + } + } + yy1073: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1075; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1075; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1075; + goto yy999; + } + } + yy1074: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1076; + if (yych <= '/') + goto yy999; + goto yy1077; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1077; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1077; + goto yy999; + } + } + yy1075: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1077; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1077; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1077; + goto yy999; + } + } + yy1076: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1078; + if (yych <= '/') + goto yy999; + goto yy1079; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1079; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1079; + goto yy999; + } + } + yy1077: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1079; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1079; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1079; + goto yy999; + } + } + yy1078: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1080; + if (yych <= '/') + goto yy999; + goto yy1081; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1081; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1081; + goto yy999; + } + } + yy1079: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1081; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1081; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1081; + goto yy999; + } + } + yy1080: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1082; + if (yych <= '/') + goto yy999; + goto yy1083; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1083; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1083; + goto yy999; + } + } + yy1081: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1083; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1083; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1083; + goto yy999; + } + } + yy1082: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1084; + if (yych <= '/') + goto yy999; + goto yy1085; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1085; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1085; + goto yy999; + } + } + yy1083: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1085; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1085; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1085; + goto yy999; + } + } + yy1084: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1086; + if (yych <= '/') + goto yy999; + goto yy1087; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1087; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1087; + goto yy999; + } + } + yy1085: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1087; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1087; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1087; + goto yy999; + } + } + yy1086: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1088; + if (yych <= '/') + goto yy999; + goto yy1089; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1089; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1089; + goto yy999; + } + } + yy1087: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1089; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1089; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1089; + goto yy999; + } + } + yy1088: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1090; + if (yych <= '/') + goto yy999; + goto yy1091; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1091; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1091; + goto yy999; + } + } + yy1089: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1091; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1091; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1091; + goto yy999; + } + } + yy1090: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1092; + if (yych <= '/') + goto yy999; + goto yy1093; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1093; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1093; + goto yy999; + } + } + yy1091: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1093; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1093; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1093; + goto yy999; + } + } + yy1092: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1094; + if (yych <= '/') + goto yy999; + goto yy1095; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1095; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1095; + goto yy999; + } + } + yy1093: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1095; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1095; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1095; + goto yy999; + } + } + yy1094: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1096; + if (yych <= '/') + goto yy999; + goto yy1097; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1097; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1097; + goto yy999; + } + } + yy1095: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1097; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1097; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1097; + goto yy999; + } + } + yy1096: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1098; + if (yych <= '/') + goto yy999; + goto yy1099; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1099; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1099; + goto yy999; + } + } + yy1097: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1099; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1099; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1099; + goto yy999; + } + } + yy1098: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1100; + if (yych <= '/') + goto yy999; + goto yy1101; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1101; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1101; + goto yy999; + } + } + yy1099: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1101; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1101; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1101; + goto yy999; + } + } + yy1100: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1102; + if (yych <= '/') + goto yy999; + goto yy1103; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1103; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1103; + goto yy999; + } + } + yy1101: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1103; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1103; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1103; + goto yy999; + } + } + yy1102: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1104; + if (yych <= '/') + goto yy999; + goto yy1105; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1105; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1105; + goto yy999; + } + } + yy1103: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1105; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1105; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1105; + goto yy999; + } + } + yy1104: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1106; + if (yych <= '/') + goto yy999; + goto yy1107; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1107; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1107; + goto yy999; + } + } + yy1105: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1107; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1107; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1107; + goto yy999; + } + } + yy1106: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1108; + if (yych <= '/') + goto yy999; + goto yy1109; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1109; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1109; + goto yy999; + } + } + yy1107: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1109; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1109; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1109; + goto yy999; + } + } + yy1108: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1110; + if (yych <= '/') + goto yy999; + goto yy1111; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1111; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1111; + goto yy999; + } + } + yy1109: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1111; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1111; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1111; + goto yy999; + } + } + yy1110: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1112; + if (yych <= '/') + goto yy999; + goto yy1113; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1113; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1113; + goto yy999; + } + } + yy1111: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1113; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1113; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1113; + goto yy999; + } + } + yy1112: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1114; + if (yych <= '/') + goto yy999; + goto yy1115; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1115; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1115; + goto yy999; + } + } + yy1113: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1115; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1115; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1115; + goto yy999; + } + } + yy1114: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1116; + if (yych <= '/') + goto yy999; + goto yy1117; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1117; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1117; + goto yy999; + } + } + yy1115: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1117; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1117; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1117; + goto yy999; + } + } + yy1116: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1118; + if (yych <= '/') + goto yy999; + goto yy1119; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1119; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1119; + goto yy999; + } + } + yy1117: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1119; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1119; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1119; + goto yy999; + } + } + yy1118: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1120; + if (yych <= '/') + goto yy999; + goto yy1121; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1121; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1121; + goto yy999; + } + } + yy1119: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1121; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1121; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1121; + goto yy999; + } + } + yy1120: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1122; + if (yych <= '/') + goto yy999; + goto yy1123; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1123; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1123; + goto yy999; + } + } + yy1121: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1123; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1123; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1123; + goto yy999; + } + } + yy1122: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1124; + if (yych <= '/') + goto yy999; + goto yy1125; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1125; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1125; + goto yy999; + } + } + yy1123: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1125; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1125; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1125; + goto yy999; + } + } + yy1124: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1126; + if (yych <= '/') + goto yy999; + goto yy1127; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1127; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1127; + goto yy999; + } + } + yy1125: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1127; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1127; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1127; + goto yy999; + } + } + yy1126: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1128; + if (yych <= '/') + goto yy999; + goto yy1129; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1129; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1129; + goto yy999; + } + } + yy1127: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1129; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1129; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1129; + goto yy999; + } + } + yy1128: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1130; + if (yych <= '/') + goto yy999; + goto yy1131; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1131; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1131; + goto yy999; + } + } + yy1129: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1131; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1131; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1131; + goto yy999; + } + } + yy1130: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1132; + if (yych <= '/') + goto yy999; + goto yy1133; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1133; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1133; + goto yy999; + } + } + yy1131: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1133; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1133; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1133; + goto yy999; + } + } + yy1132: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1134; + if (yych <= '/') + goto yy999; + goto yy1135; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1135; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1135; + goto yy999; + } + } + yy1133: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1135; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1135; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1135; + goto yy999; + } + } + yy1134: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy1136; + if (yych <= '/') + goto yy999; + goto yy1137; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1137; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1137; + goto yy999; + } + } + yy1135: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1137; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1137; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1137; + goto yy999; + } + } + yy1136: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1138; + goto yy999; + } else { + if (yych <= 'Z') + goto yy1138; + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1138; + goto yy999; + } + yy1137: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= '-') + goto yy999; + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych >= ':') + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + } else { + if (yych <= '`') + goto yy999; + if (yych >= '{') + goto yy999; + } + } + yy1138: + ++p; + yych = *p; + if (yych == '.') + goto yy1012; + if (yych == '>') + goto yy1013; + goto yy999; + yy1139: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1141; + if (yych <= '/') + goto yy999; + goto yy1142; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1142; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1142; + goto yy999; + } + } + yy1140: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1142; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1142; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1142; + goto yy999; + } + } + yy1141: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1143; + if (yych <= '/') + goto yy999; + goto yy1144; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1144; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1144; + goto yy999; + } + } + yy1142: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1144; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1144; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1144; + goto yy999; + } + } + yy1143: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1145; + if (yych <= '/') + goto yy999; + goto yy1146; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1146; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1146; + goto yy999; + } + } + yy1144: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1146; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1146; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1146; + goto yy999; + } + } + yy1145: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1147; + if (yych <= '/') + goto yy999; + goto yy1148; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1148; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1148; + goto yy999; + } + } + yy1146: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1148; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1148; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1148; + goto yy999; + } + } + yy1147: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1149; + if (yych <= '/') + goto yy999; + goto yy1150; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1150; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1150; + goto yy999; + } + } + yy1148: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1150; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1150; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1150; + goto yy999; + } + } + yy1149: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1151; + if (yych <= '/') + goto yy999; + goto yy1152; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1152; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1152; + goto yy999; + } + } + yy1150: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1152; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1152; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1152; + goto yy999; + } + } + yy1151: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1153; + if (yych <= '/') + goto yy999; + goto yy1154; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1154; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1154; + goto yy999; + } + } + yy1152: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1154; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1154; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1154; + goto yy999; + } + } + yy1153: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1155; + if (yych <= '/') + goto yy999; + goto yy1156; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1156; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1156; + goto yy999; + } + } + yy1154: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1156; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1156; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1156; + goto yy999; + } + } + yy1155: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1157; + if (yych <= '/') + goto yy999; + goto yy1158; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1158; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1158; + goto yy999; + } + } + yy1156: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1158; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1158; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1158; + goto yy999; + } + } + yy1157: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1159; + if (yych <= '/') + goto yy999; + goto yy1160; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1160; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1160; + goto yy999; + } + } + yy1158: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1160; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1160; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1160; + goto yy999; + } + } + yy1159: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1161; + if (yych <= '/') + goto yy999; + goto yy1162; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1162; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1162; + goto yy999; + } + } + yy1160: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1162; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1162; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1162; + goto yy999; + } + } + yy1161: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1163; + if (yych <= '/') + goto yy999; + goto yy1164; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1164; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1164; + goto yy999; + } + } + yy1162: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1164; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1164; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1164; + goto yy999; + } + } + yy1163: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1165; + if (yych <= '/') + goto yy999; + goto yy1166; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1166; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1166; + goto yy999; + } + } + yy1164: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1166; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1166; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1166; + goto yy999; + } + } + yy1165: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1167; + if (yych <= '/') + goto yy999; + goto yy1168; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1168; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1168; + goto yy999; + } + } + yy1166: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1168; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1168; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1168; + goto yy999; + } + } + yy1167: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1169; + if (yych <= '/') + goto yy999; + goto yy1170; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1170; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1170; + goto yy999; + } + } + yy1168: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1170; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1170; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1170; + goto yy999; + } + } + yy1169: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1171; + if (yych <= '/') + goto yy999; + goto yy1172; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1172; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1172; + goto yy999; + } + } + yy1170: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1172; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1172; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1172; + goto yy999; + } + } + yy1171: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1173; + if (yych <= '/') + goto yy999; + goto yy1174; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1174; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1174; + goto yy999; + } + } + yy1172: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1174; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1174; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1174; + goto yy999; + } + } + yy1173: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1175; + if (yych <= '/') + goto yy999; + goto yy1176; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1176; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1176; + goto yy999; + } + } + yy1174: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1176; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1176; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1176; + goto yy999; + } + } + yy1175: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1177; + if (yych <= '/') + goto yy999; + goto yy1178; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1178; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1178; + goto yy999; + } + } + yy1176: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1178; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1178; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1178; + goto yy999; + } + } + yy1177: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1179; + if (yych <= '/') + goto yy999; + goto yy1180; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1180; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1180; + goto yy999; + } + } + yy1178: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1180; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1180; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1180; + goto yy999; + } + } + yy1179: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1181; + if (yych <= '/') + goto yy999; + goto yy1182; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1182; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1182; + goto yy999; + } + } + yy1180: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1182; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1182; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1182; + goto yy999; + } + } + yy1181: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1183; + if (yych <= '/') + goto yy999; + goto yy1184; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1184; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1184; + goto yy999; + } + } + yy1182: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1184; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1184; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1184; + goto yy999; + } + } + yy1183: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1185; + if (yych <= '/') + goto yy999; + goto yy1186; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1186; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1186; + goto yy999; + } + } + yy1184: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1186; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1186; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1186; + goto yy999; + } + } + yy1185: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1187; + if (yych <= '/') + goto yy999; + goto yy1188; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1188; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1188; + goto yy999; + } + } + yy1186: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1188; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1188; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1188; + goto yy999; + } + } + yy1187: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1189; + if (yych <= '/') + goto yy999; + goto yy1190; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1190; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1190; + goto yy999; + } + } + yy1188: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1190; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1190; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1190; + goto yy999; + } + } + yy1189: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1191; + if (yych <= '/') + goto yy999; + goto yy1192; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1192; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1192; + goto yy999; + } + } + yy1190: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1192; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1192; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1192; + goto yy999; + } + } + yy1191: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1193; + if (yych <= '/') + goto yy999; + goto yy1194; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1194; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1194; + goto yy999; + } + } + yy1192: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1194; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1194; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1194; + goto yy999; + } + } + yy1193: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1195; + if (yych <= '/') + goto yy999; + goto yy1196; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1196; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1196; + goto yy999; + } + } + yy1194: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1196; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1196; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1196; + goto yy999; + } + } + yy1195: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1197; + if (yych <= '/') + goto yy999; + goto yy1198; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1198; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1198; + goto yy999; + } + } + yy1196: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1198; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1198; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1198; + goto yy999; + } + } + yy1197: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1199; + if (yych <= '/') + goto yy999; + goto yy1200; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1200; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1200; + goto yy999; + } + } + yy1198: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1200; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1200; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1200; + goto yy999; + } + } + yy1199: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1201; + if (yych <= '/') + goto yy999; + goto yy1202; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1202; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1202; + goto yy999; + } + } + yy1200: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1202; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1202; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1202; + goto yy999; + } + } + yy1201: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1203; + if (yych <= '/') + goto yy999; + goto yy1204; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1204; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1204; + goto yy999; + } + } + yy1202: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1204; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1204; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1204; + goto yy999; + } + } + yy1203: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1205; + if (yych <= '/') + goto yy999; + goto yy1206; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1206; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1206; + goto yy999; + } + } + yy1204: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1206; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1206; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1206; + goto yy999; + } + } + yy1205: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1207; + if (yych <= '/') + goto yy999; + goto yy1208; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1208; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1208; + goto yy999; + } + } + yy1206: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1208; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1208; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1208; + goto yy999; + } + } + yy1207: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1209; + if (yych <= '/') + goto yy999; + goto yy1210; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1210; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1210; + goto yy999; + } + } + yy1208: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1210; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1210; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1210; + goto yy999; + } + } + yy1209: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1211; + if (yych <= '/') + goto yy999; + goto yy1212; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1212; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1212; + goto yy999; + } + } + yy1210: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1212; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1212; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1212; + goto yy999; + } + } + yy1211: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1213; + if (yych <= '/') + goto yy999; + goto yy1214; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1214; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1214; + goto yy999; + } + } + yy1212: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1214; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1214; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1214; + goto yy999; + } + } + yy1213: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1215; + if (yych <= '/') + goto yy999; + goto yy1216; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1216; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1216; + goto yy999; + } + } + yy1214: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1216; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1216; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1216; + goto yy999; + } + } + yy1215: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1217; + if (yych <= '/') + goto yy999; + goto yy1218; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1218; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1218; + goto yy999; + } + } + yy1216: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1218; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1218; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1218; + goto yy999; + } + } + yy1217: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1219; + if (yych <= '/') + goto yy999; + goto yy1220; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1220; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1220; + goto yy999; + } + } + yy1218: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1220; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1220; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1220; + goto yy999; + } + } + yy1219: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1221; + if (yych <= '/') + goto yy999; + goto yy1222; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1222; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1222; + goto yy999; + } + } + yy1220: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1222; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1222; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1222; + goto yy999; + } + } + yy1221: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1223; + if (yych <= '/') + goto yy999; + goto yy1224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1224; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1224; + goto yy999; + } + } + yy1222: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1224; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1224; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1224; + goto yy999; + } + } + yy1223: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1225; + if (yych <= '/') + goto yy999; + goto yy1226; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1226; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1226; + goto yy999; + } + } + yy1224: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1226; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1226; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1226; + goto yy999; + } + } + yy1225: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1227; + if (yych <= '/') + goto yy999; + goto yy1228; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1228; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1228; + goto yy999; + } + } + yy1226: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1228; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1228; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1228; + goto yy999; + } + } + yy1227: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1229; + if (yych <= '/') + goto yy999; + goto yy1230; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1230; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1230; + goto yy999; + } + } + yy1228: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1230; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1230; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1230; + goto yy999; + } + } + yy1229: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1231; + if (yych <= '/') + goto yy999; + goto yy1232; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1232; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1232; + goto yy999; + } + } + yy1230: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1232; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1232; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1232; + goto yy999; + } + } + yy1231: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1233; + if (yych <= '/') + goto yy999; + goto yy1234; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1234; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1234; + goto yy999; + } + } + yy1232: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1234; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1234; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1234; + goto yy999; + } + } + yy1233: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1235; + if (yych <= '/') + goto yy999; + goto yy1236; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1236; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1236; + goto yy999; + } + } + yy1234: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1236; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1236; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1236; + goto yy999; + } + } + yy1235: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1237; + if (yych <= '/') + goto yy999; + goto yy1238; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1238; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1238; + goto yy999; + } + } + yy1236: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1238; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1238; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1238; + goto yy999; + } + } + yy1237: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1239; + if (yych <= '/') + goto yy999; + goto yy1240; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1240; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1240; + goto yy999; + } + } + yy1238: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1240; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1240; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1240; + goto yy999; + } + } + yy1239: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1241; + if (yych <= '/') + goto yy999; + goto yy1242; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1242; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1242; + goto yy999; + } + } + yy1240: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1242; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1242; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1242; + goto yy999; + } + } + yy1241: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1243; + if (yych <= '/') + goto yy999; + goto yy1244; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1244; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1244; + goto yy999; + } + } + yy1242: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1244; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1244; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1244; + goto yy999; + } + } + yy1243: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1245; + if (yych <= '/') + goto yy999; + goto yy1246; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1246; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1246; + goto yy999; + } + } + yy1244: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1246; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1246; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1246; + goto yy999; + } + } + yy1245: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1247; + if (yych <= '/') + goto yy999; + goto yy1248; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1248; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1248; + goto yy999; + } + } + yy1246: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1248; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1248; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1248; + goto yy999; + } + } + yy1247: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1249; + if (yych <= '/') + goto yy999; + goto yy1250; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1250; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1250; + goto yy999; + } + } + yy1248: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1250; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1250; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1250; + goto yy999; + } + } + yy1249: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1251; + if (yych <= '/') + goto yy999; + goto yy1252; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1252; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1252; + goto yy999; + } + } + yy1250: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1252; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1252; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1252; + goto yy999; + } + } + yy1251: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1253; + if (yych <= '/') + goto yy999; + goto yy1254; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1254; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1254; + goto yy999; + } + } + yy1252: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1254; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1254; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1254; + goto yy999; + } + } + yy1253: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1255; + if (yych <= '/') + goto yy999; + goto yy1256; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1256; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1256; + goto yy999; + } + } + yy1254: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1256; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1256; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1256; + goto yy999; + } + } + yy1255: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy1257; + if (yych <= '/') + goto yy999; + goto yy1258; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy999; + goto yy1258; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1258; + goto yy999; + } + } + yy1256: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy999; + if (yych >= '.') + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1258; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1258; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1258; + goto yy999; + } + } + yy1257: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1138; + goto yy999; + } else { + if (yych <= 'Z') + goto yy1138; + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1138; + goto yy999; + } + yy1258: + ++p; + if ((yych = *p) <= '=') { + if (yych <= '.') { + if (yych <= '-') + goto yy999; + goto yy1012; + } else { + if (yych <= '/') + goto yy999; + if (yych <= '9') + goto yy1138; + goto yy999; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1013; + if (yych <= '@') + goto yy999; + goto yy1138; + } else { + if (yych <= '`') + goto yy999; + if (yych <= 'z') + goto yy1138; + goto yy999; + } + } + } } // 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_tag(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, 230, 230, 230, 230, 230, 230, 230, - 230, 199, 199, 199, 199, 199, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 199, 230, 70, 230, 230, 230, 230, 134, - 230, 230, 230, 230, 230, 254, 246, 230, - 254, 254, 254, 254, 254, 254, 254, 254, - 254, 254, 246, 230, 198, 198, 196, 230, - 230, 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, 230, 230, 226, 230, 246, - 198, 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, 230, 230, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 32, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 128, - 160, 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, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= '`') { - if (yych <= '.') { - if (yych <= '\n') { - if (yych <= '\t') goto yy1266; - } else { - if (yych == '!') goto yy1264; - goto yy1266; - } - } else { - if (yych <= '?') { - if (yych <= '/') goto yy1263; - if (yych <= '>') goto yy1266; - goto yy1265; - } else { - if (yych <= '@') goto yy1266; - if (yych <= 'Z') goto yy1262; - goto yy1266; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 'z') goto yy1262; - if (yych <= 0x7F) goto yy1266; - } else { - if (yych <= 0xDF) goto yy1267; - if (yych <= 0xE0) goto yy1269; - goto yy1270; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1274; - if (yych <= 0xEF) goto yy1270; - goto yy1271; - } else { - if (yych <= 0xF3) goto yy1272; - if (yych <= 0xF4) goto yy1273; - } - } - } -yy1261: - { return 0; } -yy1262: - yych = *(marker = ++p); - if (yych <= '/') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1261; - if (yych <= '\r') goto yy1366; - if (yych <= 0x1F) goto yy1261; - goto yy1366; - } else { - if (yych == '-') goto yy1364; - if (yych <= '.') goto yy1261; - goto yy1368; - } - } else { - if (yych <= '@') { - if (yych <= '9') goto yy1364; - if (yych == '>') goto yy1285; - goto yy1261; - } else { - if (yych <= 'Z') goto yy1364; - if (yych <= '`') goto yy1261; - if (yych <= 'z') goto yy1364; - goto yy1261; - } - } -yy1263: - yych = *(marker = ++p); - if (yych <= '@') goto yy1261; - if (yych <= 'Z') goto yy1360; - if (yych <= '`') goto yy1261; - if (yych <= 'z') goto yy1360; - goto yy1261; -yy1264: - yych = *(marker = ++p); - if (yybm[256+yych] & 64) { - goto yy1295; - } - if (yych == '-') goto yy1297; - if (yych <= '@') goto yy1261; - if (yych <= '[') goto yy1294; - goto yy1261; -yy1265: - yych = *(marker = ++p); - if (yych <= 0x00) goto yy1261; - if (yych <= 0x7F) goto yy1276; - if (yych <= 0xC1) goto yy1261; - if (yych <= 0xF4) goto yy1276; - goto yy1261; -yy1266: - yych = *++p; - goto yy1261; -yy1267: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1266; -yy1268: - p = marker; - goto yy1261; -yy1269: - yych = *++p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1267; - goto yy1268; -yy1270: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1267; - goto yy1268; -yy1271: - yych = *++p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1270; - goto yy1268; -yy1272: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1270; - goto yy1268; -yy1273: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1270; - goto yy1268; -yy1274: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1267; - goto yy1268; -yy1275: - ++p; - yych = *p; -yy1276: - if (yybm[256+yych] & 32) { - goto yy1275; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '?') goto yy1284; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1277; - if (yych <= 0xE0) goto yy1278; - goto yy1279; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1283; - if (yych <= 0xEF) goto yy1279; - goto yy1280; - } else { - if (yych <= 0xF3) goto yy1281; - if (yych <= 0xF4) goto yy1282; - goto yy1268; - } - } -yy1277: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1275; - goto yy1268; -yy1278: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1277; - goto yy1268; -yy1279: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1277; - goto yy1268; -yy1280: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1279; - goto yy1268; -yy1281: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1279; - goto yy1268; -yy1282: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1279; - goto yy1268; -yy1283: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1277; - goto yy1268; -yy1284: - ++p; - yych = *p; - if (yych <= 0xE0) { - if (yych <= '>') { - if (yych <= 0x00) goto yy1268; - if (yych <= '=') goto yy1275; - } else { - if (yych <= 0x7F) goto yy1275; - if (yych <= 0xC1) goto yy1268; - if (yych <= 0xDF) goto yy1287; - goto yy1288; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1293; - goto yy1289; - } else { - if (yych <= 0xF0) goto yy1290; - if (yych <= 0xF3) goto yy1291; - if (yych <= 0xF4) goto yy1292; - goto yy1268; - } - } -yy1285: - ++p; - { return (bufsize_t)(p - start); } -yy1287: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1275; - goto yy1268; -yy1288: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1287; - goto yy1268; -yy1289: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1287; - goto yy1268; -yy1290: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1289; - goto yy1268; -yy1291: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1289; - goto yy1268; -yy1292: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1289; - goto yy1268; -yy1293: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1287; - goto yy1268; -yy1294: - yych = *++p; - if (yych == 'C') goto yy1330; - if (yych == 'c') goto yy1330; - goto yy1268; -yy1295: - ++p; - yych = *p; - if (yybm[0+yych] & 1) { - goto yy1319; - } - if (yych <= '@') goto yy1268; - if (yych <= 'Z') goto yy1295; - goto yy1268; -yy1297: - yych = *++p; - if (yych != '-') goto yy1268; - yych = *++p; - if (yych <= 0xE0) { - if (yych <= '=') { - if (yych != '-') goto yy1301; - } else { - if (yych <= '>') goto yy1268; - if (yych <= 0xC1) goto yy1301; - if (yych <= 0xDF) goto yy1302; - goto yy1303; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1308; - goto yy1304; - } else { - if (yych <= 0xF0) goto yy1305; - if (yych <= 0xF3) goto yy1306; - if (yych <= 0xF4) goto yy1307; - goto yy1301; - } - } - yych = *++p; - if (yych <= 0xE0) { - if (yych <= '=') { - if (yych == '-') goto yy1318; - goto yy1301; - } else { - if (yych <= '>') goto yy1268; - if (yych <= 0xC1) goto yy1301; - if (yych <= 0xDF) goto yy1302; - goto yy1303; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1308; - goto yy1304; - } else { - if (yych <= 0xF0) goto yy1305; - if (yych <= 0xF3) goto yy1306; - if (yych <= 0xF4) goto yy1307; - goto yy1301; - } - } -yy1300: - ++p; - yych = *p; -yy1301: - if (yybm[256+yych] & 128) { - goto yy1300; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '-') goto yy1309; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1310; - if (yych <= 0xE0) goto yy1311; - goto yy1312; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1316; - if (yych <= 0xEF) goto yy1312; - goto yy1313; - } else { - if (yych <= 0xF3) goto yy1314; - if (yych <= 0xF4) goto yy1315; - goto yy1268; - } - } -yy1302: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1300; - goto yy1268; -yy1303: - yych = *++p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1302; - goto yy1268; -yy1304: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1302; - goto yy1268; -yy1305: - yych = *++p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1304; - goto yy1268; -yy1306: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1304; - goto yy1268; -yy1307: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1304; - goto yy1268; -yy1308: - yych = *++p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1302; - goto yy1268; -yy1309: - ++p; - yych = *p; - if (yybm[256+yych] & 128) { - goto yy1300; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '-') goto yy1317; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1310; - if (yych <= 0xE0) goto yy1311; - goto yy1312; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1316; - if (yych <= 0xEF) goto yy1312; - goto yy1313; - } else { - if (yych <= 0xF3) goto yy1314; - if (yych <= 0xF4) goto yy1315; - goto yy1268; - } - } -yy1310: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1300; - goto yy1268; -yy1311: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1310; - goto yy1268; -yy1312: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1310; - goto yy1268; -yy1313: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1312; - goto yy1268; -yy1314: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1312; - goto yy1268; -yy1315: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1312; - goto yy1268; -yy1316: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1310; - goto yy1268; -yy1317: - yych = *++p; - if (yych == '>') goto yy1285; - goto yy1268; -yy1318: - yych = *++p; - if (yych == '>') goto yy1285; - goto yy1268; -yy1319: - ++p; - yych = *p; - if (yybm[0+yych] & 1) { - goto yy1319; - } - if (yych <= 0xE0) { - if (yych <= '>') { - if (yych <= 0x00) goto yy1268; - if (yych >= '>') goto yy1285; - } else { - if (yych <= 0x7F) goto yy1321; - if (yych <= 0xC1) goto yy1268; - if (yych <= 0xDF) goto yy1323; - goto yy1324; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1329; - goto yy1325; - } else { - if (yych <= 0xF0) goto yy1326; - if (yych <= 0xF3) goto yy1327; - if (yych <= 0xF4) goto yy1328; - goto yy1268; - } - } -yy1321: - ++p; - yych = *p; - if (yybm[0+yych] & 2) { - goto yy1321; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '>') goto yy1285; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1323; - if (yych <= 0xE0) goto yy1324; - goto yy1325; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1329; - if (yych <= 0xEF) goto yy1325; - goto yy1326; - } else { - if (yych <= 0xF3) goto yy1327; - if (yych <= 0xF4) goto yy1328; - goto yy1268; - } - } -yy1323: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1321; - goto yy1268; -yy1324: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1323; - goto yy1268; -yy1325: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1323; - goto yy1268; -yy1326: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1325; - goto yy1268; -yy1327: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1325; - goto yy1268; -yy1328: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1325; - goto yy1268; -yy1329: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1323; - goto yy1268; -yy1330: - yych = *++p; - if (yych == 'D') goto yy1331; - if (yych != 'd') goto yy1268; -yy1331: - yych = *++p; - if (yych == 'A') goto yy1332; - if (yych != 'a') goto yy1268; -yy1332: - yych = *++p; - if (yych == 'T') goto yy1333; - if (yych != 't') goto yy1268; -yy1333: - yych = *++p; - if (yych == 'A') goto yy1334; - if (yych != 'a') goto yy1268; -yy1334: - yych = *++p; - if (yych != '[') goto yy1268; -yy1335: - ++p; - yych = *p; - if (yybm[0+yych] & 4) { - goto yy1335; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= ']') goto yy1344; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1337; - if (yych <= 0xE0) goto yy1338; - goto yy1339; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1343; - if (yych <= 0xEF) goto yy1339; - goto yy1340; - } else { - if (yych <= 0xF3) goto yy1341; - if (yych <= 0xF4) goto yy1342; - goto yy1268; - } - } -yy1337: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1335; - goto yy1268; -yy1338: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1337; - goto yy1268; -yy1339: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1337; - goto yy1268; -yy1340: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1339; - goto yy1268; -yy1341: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1339; - goto yy1268; -yy1342: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1339; - goto yy1268; -yy1343: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1337; - goto yy1268; -yy1344: - ++p; - yych = *p; - if (yybm[0+yych] & 4) { - goto yy1335; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych >= '^') goto yy1268; - } else { - if (yych <= 0xDF) goto yy1346; - if (yych <= 0xE0) goto yy1347; - goto yy1348; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1352; - if (yych <= 0xEF) goto yy1348; - goto yy1349; - } else { - if (yych <= 0xF3) goto yy1350; - if (yych <= 0xF4) goto yy1351; - goto yy1268; - } - } - ++p; - yych = *p; - if (yych <= 0xE0) { - if (yych <= '>') { - if (yych <= 0x00) goto yy1268; - if (yych <= '=') goto yy1335; - goto yy1285; - } else { - if (yych <= 0x7F) goto yy1335; - if (yych <= 0xC1) goto yy1268; - if (yych <= 0xDF) goto yy1353; - goto yy1354; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1359; - goto yy1355; - } else { - if (yych <= 0xF0) goto yy1356; - if (yych <= 0xF3) goto yy1357; - if (yych <= 0xF4) goto yy1358; - goto yy1268; - } - } -yy1346: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1335; - goto yy1268; -yy1347: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1346; - goto yy1268; -yy1348: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1346; - goto yy1268; -yy1349: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1348; - goto yy1268; -yy1350: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1348; - goto yy1268; -yy1351: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1348; - goto yy1268; -yy1352: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1346; - goto yy1268; -yy1353: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1335; - goto yy1268; -yy1354: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1353; - goto yy1268; -yy1355: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1353; - goto yy1268; -yy1356: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1355; - goto yy1268; -yy1357: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1355; - goto yy1268; -yy1358: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1355; - goto yy1268; -yy1359: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1353; - goto yy1268; -yy1360: - ++p; - yych = *p; - if (yybm[0+yych] & 8) { - goto yy1360; - } - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1268; - if (yych >= 0x0E) goto yy1268; - } else { - if (yych <= ' ') goto yy1362; - if (yych == '>') goto yy1285; - goto yy1268; - } -yy1362: - ++p; - yych = *p; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1268; - if (yych <= '\r') goto yy1362; - goto yy1268; - } else { - if (yych <= ' ') goto yy1362; - if (yych == '>') goto yy1285; - goto yy1268; - } -yy1364: - ++p; - yych = *p; - if (yych <= '/') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1268; - if (yych <= '\r') goto yy1366; - if (yych <= 0x1F) goto yy1268; - } else { - if (yych == '-') goto yy1364; - if (yych <= '.') goto yy1268; - goto yy1368; - } - } else { - if (yych <= '@') { - if (yych <= '9') goto yy1364; - if (yych == '>') goto yy1285; - goto yy1268; - } else { - if (yych <= 'Z') goto yy1364; - if (yych <= '`') goto yy1268; - if (yych <= 'z') goto yy1364; - goto yy1268; - } - } -yy1366: - ++p; - yych = *p; - if (yych <= ':') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1268; - if (yych <= '\r') goto yy1366; - if (yych <= 0x1F) goto yy1268; - goto yy1366; - } else { - if (yych == '/') goto yy1368; - if (yych <= '9') goto yy1268; - goto yy1369; - } - } else { - if (yych <= 'Z') { - if (yych == '>') goto yy1285; - if (yych <= '@') goto yy1268; - goto yy1369; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy1268; - goto yy1369; - } else { - if (yych <= '`') goto yy1268; - if (yych <= 'z') goto yy1369; - goto yy1268; - } - } - } -yy1368: - yych = *++p; - if (yych == '>') goto yy1285; - goto yy1268; -yy1369: - ++p; - yych = *p; - if (yybm[0+yych] & 16) { - goto yy1369; - } - if (yych <= ',') { - if (yych <= '\r') { - if (yych <= 0x08) goto yy1268; - } else { - if (yych != ' ') goto yy1268; - } - } else { - if (yych <= '<') { - if (yych <= '/') goto yy1368; - goto yy1268; - } else { - if (yych <= '=') goto yy1373; - if (yych <= '>') goto yy1285; - goto yy1268; - } - } -yy1371: - ++p; - yych = *p; - if (yych <= '<') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1268; - if (yych <= '\r') goto yy1371; - if (yych <= 0x1F) goto yy1268; - goto yy1371; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1268; - goto yy1368; - } else { - if (yych == ':') goto yy1369; - goto yy1268; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '=') goto yy1373; - if (yych <= '>') goto yy1285; - if (yych <= '@') goto yy1268; - goto yy1369; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy1268; - goto yy1369; - } else { - if (yych <= '`') goto yy1268; - if (yych <= 'z') goto yy1369; - goto yy1268; - } - } - } -yy1373: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1375; - } - if (yych <= 0xE0) { - if (yych <= '"') { - if (yych <= 0x00) goto yy1268; - if (yych >= '!') goto yy1386; - } else { - if (yych <= '\'') goto yy1384; - if (yych <= 0xC1) goto yy1268; - if (yych <= 0xDF) goto yy1377; - goto yy1378; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1375; - } - if (yych <= 0xDF) { - if (yych <= '\'') { - if (yych <= 0x00) goto yy1268; - if (yych <= ' ') goto yy1409; - if (yych <= '"') goto yy1386; - goto yy1384; - } else { - if (yych == '>') goto yy1285; - if (yych <= 0xC1) goto yy1268; - goto yy1377; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1378; - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } -yy1375: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1375; - } - if (yych <= 0xE0) { - if (yych <= '=') { - if (yych <= 0x00) goto yy1268; - if (yych <= ' ') goto yy1403; - goto yy1268; - } else { - if (yych <= '>') goto yy1285; - if (yych <= 0xC1) goto yy1268; - if (yych >= 0xE0) goto yy1378; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } -yy1377: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1375; - goto yy1268; -yy1378: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1377; - goto yy1268; -yy1379: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1377; - goto yy1268; -yy1380: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1379; - goto yy1268; -yy1381: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1379; - goto yy1268; -yy1382: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1379; - goto yy1268; -yy1383: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1377; - goto yy1268; -yy1384: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1384; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '\'') goto yy1395; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1396; - if (yych <= 0xE0) goto yy1397; - goto yy1398; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1402; - if (yych <= 0xEF) goto yy1398; - goto yy1399; - } else { - if (yych <= 0xF3) goto yy1400; - if (yych <= 0xF4) goto yy1401; - goto yy1268; - } - } -yy1386: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1386; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1268; - if (yych <= '"') goto yy1395; - goto yy1268; - } else { - if (yych <= 0xDF) goto yy1388; - if (yych <= 0xE0) goto yy1389; - goto yy1390; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1394; - if (yych <= 0xEF) goto yy1390; - goto yy1391; - } else { - if (yych <= 0xF3) goto yy1392; - if (yych <= 0xF4) goto yy1393; - goto yy1268; - } - } -yy1388: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1386; - goto yy1268; -yy1389: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1388; - goto yy1268; -yy1390: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1388; - goto yy1268; -yy1391: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1390; - goto yy1268; -yy1392: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1390; - goto yy1268; -yy1393: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1390; - goto yy1268; -yy1394: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1388; - goto yy1268; -yy1395: - ++p; - yych = *p; - if (yych <= ' ') { - if (yych <= 0x08) goto yy1268; - if (yych <= '\r') goto yy1366; - if (yych <= 0x1F) goto yy1268; - goto yy1366; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1268; - goto yy1368; - } else { - if (yych == '>') goto yy1285; - goto yy1268; - } - } -yy1396: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1384; - goto yy1268; -yy1397: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1268; - if (yych <= 0xBF) goto yy1396; - goto yy1268; -yy1398: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1396; - goto yy1268; -yy1399: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1268; - if (yych <= 0xBF) goto yy1398; - goto yy1268; -yy1400: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0xBF) goto yy1398; - goto yy1268; -yy1401: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x8F) goto yy1398; - goto yy1268; -yy1402: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1268; - if (yych <= 0x9F) goto yy1396; - goto yy1268; -yy1403: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '"') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy1268; - if (yych <= 0x08) goto yy1375; - goto yy1403; - } else { - if (yych == ' ') goto yy1403; - if (yych <= '!') goto yy1375; - goto yy1268; - } - } else { - if (yych <= ':') { - if (yych == '\'') goto yy1268; - if (yych <= '9') goto yy1375; - } else { - if (yych <= ';') goto yy1375; - if (yych <= '=') goto yy1268; - if (yych <= '>') goto yy1285; - goto yy1375; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1405; - if (yych <= '^') goto yy1375; - if (yych >= '`') goto yy1268; - } else { - if (yych <= 'z') goto yy1405; - if (yych <= 0x7F) goto yy1375; - if (yych <= 0xC1) goto yy1268; - goto yy1377; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1378; - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } - } -yy1405: - ++p; - yych = *p; - if (yych <= '>') { - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1268; - if (yych <= 0x08) goto yy1375; - if (yych >= 0x0E) goto yy1375; - } else { - if (yych <= ' ') goto yy1407; - if (yych == '"') goto yy1268; - goto yy1375; - } - } else { - if (yych <= '/') { - if (yych <= '\'') goto yy1268; - if (yych <= ',') goto yy1375; - if (yych <= '.') goto yy1405; - goto yy1375; - } else { - if (yych <= ';') { - if (yych <= ':') goto yy1405; - goto yy1375; - } else { - if (yych <= '<') goto yy1268; - if (yych <= '=') goto yy1373; - goto yy1285; - } - } - } - } else { - if (yych <= 0xC1) { - if (yych <= '_') { - if (yych <= '@') goto yy1375; - if (yych <= 'Z') goto yy1405; - if (yych <= '^') goto yy1375; - goto yy1405; - } else { - if (yych <= '`') goto yy1268; - if (yych <= 'z') goto yy1405; - if (yych <= 0x7F) goto yy1375; - goto yy1268; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1377; - if (yych <= 0xE0) goto yy1378; - if (yych <= 0xEC) goto yy1379; - goto yy1383; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1379; - goto yy1380; - } else { - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } - } - } -yy1407: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1268; - if (yych <= 0x08) goto yy1375; - if (yych <= '\r') goto yy1407; - goto yy1375; - } else { - if (yych <= ' ') goto yy1407; - if (yych == '"') goto yy1268; - goto yy1375; - } - } else { - if (yych <= ';') { - if (yych <= '\'') goto yy1268; - if (yych == ':') goto yy1405; - goto yy1375; - } else { - if (yych <= '<') goto yy1268; - if (yych <= '=') goto yy1373; - if (yych <= '>') goto yy1285; - goto yy1375; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1405; - if (yych <= '^') goto yy1375; - if (yych <= '_') goto yy1405; - goto yy1268; - } else { - if (yych <= 'z') goto yy1405; - if (yych <= 0x7F) goto yy1375; - if (yych <= 0xC1) goto yy1268; - goto yy1377; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1378; - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } - } -yy1409: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '"') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy1268; - if (yych <= 0x08) goto yy1375; - goto yy1409; - } else { - if (yych == ' ') goto yy1409; - if (yych <= '!') goto yy1375; - goto yy1386; - } - } else { - if (yych <= ':') { - if (yych == '\'') goto yy1384; - if (yych <= '9') goto yy1375; - goto yy1405; - } else { - if (yych <= ';') goto yy1375; - if (yych <= '=') goto yy1268; - if (yych <= '>') goto yy1285; - goto yy1375; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1405; - if (yych <= '^') goto yy1375; - if (yych <= '_') goto yy1405; - goto yy1268; - } else { - if (yych <= 'z') goto yy1405; - if (yych <= 0x7F) goto yy1375; - if (yych <= 0xC1) goto yy1268; - goto yy1377; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1378; - if (yych == 0xED) goto yy1383; - goto yy1379; - } else { - if (yych <= 0xF0) goto yy1380; - if (yych <= 0xF3) goto yy1381; - if (yych <= 0xF4) goto yy1382; - goto yy1268; - } - } - } -} - + { + unsigned char yych; + static const unsigned char yybm[] = { + /* table 1 .. 8: 0 */ + 0, 230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 199, 230, 70, 230, 230, 230, 230, 134, 230, 230, + 230, 230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 246, 230, 198, 198, 196, 230, 230, 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, 230, 230, 226, 230, 246, 198, 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, 230, 230, 230, + 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 32, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 128, 160, 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, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= '`') { + if (yych <= '.') { + if (yych <= '\n') { + if (yych <= '\t') + goto yy1266; + } else { + if (yych == '!') + goto yy1264; + goto yy1266; + } + } else { + if (yych <= '?') { + if (yych <= '/') + goto yy1263; + if (yych <= '>') + goto yy1266; + goto yy1265; + } else { + if (yych <= '@') + goto yy1266; + if (yych <= 'Z') + goto yy1262; + goto yy1266; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 'z') + goto yy1262; + if (yych <= 0x7F) + goto yy1266; + } else { + if (yych <= 0xDF) + goto yy1267; + if (yych <= 0xE0) + goto yy1269; + goto yy1270; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1274; + if (yych <= 0xEF) + goto yy1270; + goto yy1271; + } else { + if (yych <= 0xF3) + goto yy1272; + if (yych <= 0xF4) + goto yy1273; + } + } + } + yy1261 : { return 0; } + yy1262: + yych = *(marker = ++p); + if (yych <= '/') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1261; + if (yych <= '\r') + goto yy1366; + if (yych <= 0x1F) + goto yy1261; + goto yy1366; + } else { + if (yych == '-') + goto yy1364; + if (yych <= '.') + goto yy1261; + goto yy1368; + } + } else { + if (yych <= '@') { + if (yych <= '9') + goto yy1364; + if (yych == '>') + goto yy1285; + goto yy1261; + } else { + if (yych <= 'Z') + goto yy1364; + if (yych <= '`') + goto yy1261; + if (yych <= 'z') + goto yy1364; + goto yy1261; + } + } + yy1263: + yych = *(marker = ++p); + if (yych <= '@') + goto yy1261; + if (yych <= 'Z') + goto yy1360; + if (yych <= '`') + goto yy1261; + if (yych <= 'z') + goto yy1360; + goto yy1261; + yy1264: + yych = *(marker = ++p); + if (yybm[256 + yych] & 64) { + goto yy1295; + } + if (yych == '-') + goto yy1297; + if (yych <= '@') + goto yy1261; + if (yych <= '[') + goto yy1294; + goto yy1261; + yy1265: + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy1261; + if (yych <= 0x7F) + goto yy1276; + if (yych <= 0xC1) + goto yy1261; + if (yych <= 0xF4) + goto yy1276; + goto yy1261; + yy1266: + yych = *++p; + goto yy1261; + yy1267: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1266; + yy1268: + p = marker; + goto yy1261; + yy1269: + yych = *++p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1267; + goto yy1268; + yy1270: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1267; + goto yy1268; + yy1271: + yych = *++p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1270; + goto yy1268; + yy1272: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1270; + goto yy1268; + yy1273: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1270; + goto yy1268; + yy1274: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1267; + goto yy1268; + yy1275: + ++p; + yych = *p; + yy1276: + if (yybm[256 + yych] & 32) { + goto yy1275; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '?') + goto yy1284; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1277; + if (yych <= 0xE0) + goto yy1278; + goto yy1279; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1283; + if (yych <= 0xEF) + goto yy1279; + goto yy1280; + } else { + if (yych <= 0xF3) + goto yy1281; + if (yych <= 0xF4) + goto yy1282; + goto yy1268; + } + } + yy1277: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1275; + goto yy1268; + yy1278: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1277; + goto yy1268; + yy1279: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1277; + goto yy1268; + yy1280: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1279; + goto yy1268; + yy1281: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1279; + goto yy1268; + yy1282: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1279; + goto yy1268; + yy1283: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1277; + goto yy1268; + yy1284: + ++p; + yych = *p; + if (yych <= 0xE0) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy1268; + if (yych <= '=') + goto yy1275; + } else { + if (yych <= 0x7F) + goto yy1275; + if (yych <= 0xC1) + goto yy1268; + if (yych <= 0xDF) + goto yy1287; + goto yy1288; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1293; + goto yy1289; + } else { + if (yych <= 0xF0) + goto yy1290; + if (yych <= 0xF3) + goto yy1291; + if (yych <= 0xF4) + goto yy1292; + goto yy1268; + } + } + yy1285: + ++p; + { return (bufsize_t)(p - start); } + yy1287: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1275; + goto yy1268; + yy1288: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1287; + goto yy1268; + yy1289: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1287; + goto yy1268; + yy1290: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1289; + goto yy1268; + yy1291: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1289; + goto yy1268; + yy1292: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1289; + goto yy1268; + yy1293: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1287; + goto yy1268; + yy1294: + yych = *++p; + if (yych == 'C') + goto yy1330; + if (yych == 'c') + goto yy1330; + goto yy1268; + yy1295: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy1319; + } + if (yych <= '@') + goto yy1268; + if (yych <= 'Z') + goto yy1295; + goto yy1268; + yy1297: + yych = *++p; + if (yych != '-') + goto yy1268; + yych = *++p; + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych != '-') + goto yy1301; + } else { + if (yych <= '>') + goto yy1268; + if (yych <= 0xC1) + goto yy1301; + if (yych <= 0xDF) + goto yy1302; + goto yy1303; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1308; + goto yy1304; + } else { + if (yych <= 0xF0) + goto yy1305; + if (yych <= 0xF3) + goto yy1306; + if (yych <= 0xF4) + goto yy1307; + goto yy1301; + } + } + yych = *++p; + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych == '-') + goto yy1318; + goto yy1301; + } else { + if (yych <= '>') + goto yy1268; + if (yych <= 0xC1) + goto yy1301; + if (yych <= 0xDF) + goto yy1302; + goto yy1303; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1308; + goto yy1304; + } else { + if (yych <= 0xF0) + goto yy1305; + if (yych <= 0xF3) + goto yy1306; + if (yych <= 0xF4) + goto yy1307; + goto yy1301; + } + } + yy1300: + ++p; + yych = *p; + yy1301: + if (yybm[256 + yych] & 128) { + goto yy1300; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '-') + goto yy1309; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1310; + if (yych <= 0xE0) + goto yy1311; + goto yy1312; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1316; + if (yych <= 0xEF) + goto yy1312; + goto yy1313; + } else { + if (yych <= 0xF3) + goto yy1314; + if (yych <= 0xF4) + goto yy1315; + goto yy1268; + } + } + yy1302: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1300; + goto yy1268; + yy1303: + yych = *++p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1302; + goto yy1268; + yy1304: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1302; + goto yy1268; + yy1305: + yych = *++p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1304; + goto yy1268; + yy1306: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1304; + goto yy1268; + yy1307: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1304; + goto yy1268; + yy1308: + yych = *++p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1302; + goto yy1268; + yy1309: + ++p; + yych = *p; + if (yybm[256 + yych] & 128) { + goto yy1300; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '-') + goto yy1317; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1310; + if (yych <= 0xE0) + goto yy1311; + goto yy1312; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1316; + if (yych <= 0xEF) + goto yy1312; + goto yy1313; + } else { + if (yych <= 0xF3) + goto yy1314; + if (yych <= 0xF4) + goto yy1315; + goto yy1268; + } + } + yy1310: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1300; + goto yy1268; + yy1311: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1310; + goto yy1268; + yy1312: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1310; + goto yy1268; + yy1313: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1312; + goto yy1268; + yy1314: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1312; + goto yy1268; + yy1315: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1312; + goto yy1268; + yy1316: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1310; + goto yy1268; + yy1317: + yych = *++p; + if (yych == '>') + goto yy1285; + goto yy1268; + yy1318: + yych = *++p; + if (yych == '>') + goto yy1285; + goto yy1268; + yy1319: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy1319; + } + if (yych <= 0xE0) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy1268; + if (yych >= '>') + goto yy1285; + } else { + if (yych <= 0x7F) + goto yy1321; + if (yych <= 0xC1) + goto yy1268; + if (yych <= 0xDF) + goto yy1323; + goto yy1324; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1329; + goto yy1325; + } else { + if (yych <= 0xF0) + goto yy1326; + if (yych <= 0xF3) + goto yy1327; + if (yych <= 0xF4) + goto yy1328; + goto yy1268; + } + } + yy1321: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy1321; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '>') + goto yy1285; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1323; + if (yych <= 0xE0) + goto yy1324; + goto yy1325; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1329; + if (yych <= 0xEF) + goto yy1325; + goto yy1326; + } else { + if (yych <= 0xF3) + goto yy1327; + if (yych <= 0xF4) + goto yy1328; + goto yy1268; + } + } + yy1323: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1321; + goto yy1268; + yy1324: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1323; + goto yy1268; + yy1325: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1323; + goto yy1268; + yy1326: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1325; + goto yy1268; + yy1327: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1325; + goto yy1268; + yy1328: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1325; + goto yy1268; + yy1329: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1323; + goto yy1268; + yy1330: + yych = *++p; + if (yych == 'D') + goto yy1331; + if (yych != 'd') + goto yy1268; + yy1331: + yych = *++p; + if (yych == 'A') + goto yy1332; + if (yych != 'a') + goto yy1268; + yy1332: + yych = *++p; + if (yych == 'T') + goto yy1333; + if (yych != 't') + goto yy1268; + yy1333: + yych = *++p; + if (yych == 'A') + goto yy1334; + if (yych != 'a') + goto yy1268; + yy1334: + yych = *++p; + if (yych != '[') + goto yy1268; + yy1335: + ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy1335; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= ']') + goto yy1344; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1337; + if (yych <= 0xE0) + goto yy1338; + goto yy1339; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1343; + if (yych <= 0xEF) + goto yy1339; + goto yy1340; + } else { + if (yych <= 0xF3) + goto yy1341; + if (yych <= 0xF4) + goto yy1342; + goto yy1268; + } + } + yy1337: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1335; + goto yy1268; + yy1338: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1337; + goto yy1268; + yy1339: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1337; + goto yy1268; + yy1340: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1339; + goto yy1268; + yy1341: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1339; + goto yy1268; + yy1342: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1339; + goto yy1268; + yy1343: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1337; + goto yy1268; + yy1344: + ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy1335; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych >= '^') + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1346; + if (yych <= 0xE0) + goto yy1347; + goto yy1348; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1352; + if (yych <= 0xEF) + goto yy1348; + goto yy1349; + } else { + if (yych <= 0xF3) + goto yy1350; + if (yych <= 0xF4) + goto yy1351; + goto yy1268; + } + } + ++p; + yych = *p; + if (yych <= 0xE0) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy1268; + if (yych <= '=') + goto yy1335; + goto yy1285; + } else { + if (yych <= 0x7F) + goto yy1335; + if (yych <= 0xC1) + goto yy1268; + if (yych <= 0xDF) + goto yy1353; + goto yy1354; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1359; + goto yy1355; + } else { + if (yych <= 0xF0) + goto yy1356; + if (yych <= 0xF3) + goto yy1357; + if (yych <= 0xF4) + goto yy1358; + goto yy1268; + } + } + yy1346: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1335; + goto yy1268; + yy1347: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1346; + goto yy1268; + yy1348: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1346; + goto yy1268; + yy1349: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1348; + goto yy1268; + yy1350: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1348; + goto yy1268; + yy1351: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1348; + goto yy1268; + yy1352: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1346; + goto yy1268; + yy1353: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1335; + goto yy1268; + yy1354: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1353; + goto yy1268; + yy1355: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1353; + goto yy1268; + yy1356: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1355; + goto yy1268; + yy1357: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1355; + goto yy1268; + yy1358: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1355; + goto yy1268; + yy1359: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1353; + goto yy1268; + yy1360: + ++p; + yych = *p; + if (yybm[0 + yych] & 8) { + goto yy1360; + } + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1268; + if (yych >= 0x0E) + goto yy1268; + } else { + if (yych <= ' ') + goto yy1362; + if (yych == '>') + goto yy1285; + goto yy1268; + } + yy1362: + ++p; + yych = *p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1268; + if (yych <= '\r') + goto yy1362; + goto yy1268; + } else { + if (yych <= ' ') + goto yy1362; + if (yych == '>') + goto yy1285; + goto yy1268; + } + yy1364: + ++p; + yych = *p; + if (yych <= '/') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1268; + if (yych <= '\r') + goto yy1366; + if (yych <= 0x1F) + goto yy1268; + } else { + if (yych == '-') + goto yy1364; + if (yych <= '.') + goto yy1268; + goto yy1368; + } + } else { + if (yych <= '@') { + if (yych <= '9') + goto yy1364; + if (yych == '>') + goto yy1285; + goto yy1268; + } else { + if (yych <= 'Z') + goto yy1364; + if (yych <= '`') + goto yy1268; + if (yych <= 'z') + goto yy1364; + goto yy1268; + } + } + yy1366: + ++p; + yych = *p; + if (yych <= ':') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1268; + if (yych <= '\r') + goto yy1366; + if (yych <= 0x1F) + goto yy1268; + goto yy1366; + } else { + if (yych == '/') + goto yy1368; + if (yych <= '9') + goto yy1268; + goto yy1369; + } + } else { + if (yych <= 'Z') { + if (yych == '>') + goto yy1285; + if (yych <= '@') + goto yy1268; + goto yy1369; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy1268; + goto yy1369; + } else { + if (yych <= '`') + goto yy1268; + if (yych <= 'z') + goto yy1369; + goto yy1268; + } + } + } + yy1368: + yych = *++p; + if (yych == '>') + goto yy1285; + goto yy1268; + yy1369: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy1369; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy1268; + } else { + if (yych != ' ') + goto yy1268; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy1368; + goto yy1268; + } else { + if (yych <= '=') + goto yy1373; + if (yych <= '>') + goto yy1285; + goto yy1268; + } + } + yy1371: + ++p; + yych = *p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1268; + if (yych <= '\r') + goto yy1371; + if (yych <= 0x1F) + goto yy1268; + goto yy1371; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1268; + goto yy1368; + } else { + if (yych == ':') + goto yy1369; + goto yy1268; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy1373; + if (yych <= '>') + goto yy1285; + if (yych <= '@') + goto yy1268; + goto yy1369; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy1268; + goto yy1369; + } else { + if (yych <= '`') + goto yy1268; + if (yych <= 'z') + goto yy1369; + goto yy1268; + } + } + } + yy1373: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1375; + } + if (yych <= 0xE0) { + if (yych <= '"') { + if (yych <= 0x00) + goto yy1268; + if (yych >= '!') + goto yy1386; + } else { + if (yych <= '\'') + goto yy1384; + if (yych <= 0xC1) + goto yy1268; + if (yych <= 0xDF) + goto yy1377; + goto yy1378; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1375; + } + if (yych <= 0xDF) { + if (yych <= '\'') { + if (yych <= 0x00) + goto yy1268; + if (yych <= ' ') + goto yy1409; + if (yych <= '"') + goto yy1386; + goto yy1384; + } else { + if (yych == '>') + goto yy1285; + if (yych <= 0xC1) + goto yy1268; + goto yy1377; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1378; + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + yy1375: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1375; + } + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy1268; + if (yych <= ' ') + goto yy1403; + goto yy1268; + } else { + if (yych <= '>') + goto yy1285; + if (yych <= 0xC1) + goto yy1268; + if (yych >= 0xE0) + goto yy1378; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + yy1377: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1375; + goto yy1268; + yy1378: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1377; + goto yy1268; + yy1379: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1377; + goto yy1268; + yy1380: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1379; + goto yy1268; + yy1381: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1379; + goto yy1268; + yy1382: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1379; + goto yy1268; + yy1383: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1377; + goto yy1268; + yy1384: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1384; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '\'') + goto yy1395; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1396; + if (yych <= 0xE0) + goto yy1397; + goto yy1398; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1402; + if (yych <= 0xEF) + goto yy1398; + goto yy1399; + } else { + if (yych <= 0xF3) + goto yy1400; + if (yych <= 0xF4) + goto yy1401; + goto yy1268; + } + } + yy1386: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1386; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1268; + if (yych <= '"') + goto yy1395; + goto yy1268; + } else { + if (yych <= 0xDF) + goto yy1388; + if (yych <= 0xE0) + goto yy1389; + goto yy1390; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1394; + if (yych <= 0xEF) + goto yy1390; + goto yy1391; + } else { + if (yych <= 0xF3) + goto yy1392; + if (yych <= 0xF4) + goto yy1393; + goto yy1268; + } + } + yy1388: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1386; + goto yy1268; + yy1389: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1388; + goto yy1268; + yy1390: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1388; + goto yy1268; + yy1391: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1390; + goto yy1268; + yy1392: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1390; + goto yy1268; + yy1393: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1390; + goto yy1268; + yy1394: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1388; + goto yy1268; + yy1395: + ++p; + yych = *p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1268; + if (yych <= '\r') + goto yy1366; + if (yych <= 0x1F) + goto yy1268; + goto yy1366; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1268; + goto yy1368; + } else { + if (yych == '>') + goto yy1285; + goto yy1268; + } + } + yy1396: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1384; + goto yy1268; + yy1397: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1268; + if (yych <= 0xBF) + goto yy1396; + goto yy1268; + yy1398: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1396; + goto yy1268; + yy1399: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1268; + if (yych <= 0xBF) + goto yy1398; + goto yy1268; + yy1400: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0xBF) + goto yy1398; + goto yy1268; + yy1401: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x8F) + goto yy1398; + goto yy1268; + yy1402: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1268; + if (yych <= 0x9F) + goto yy1396; + goto yy1268; + yy1403: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '"') { + if (yych <= '\r') { + if (yych <= 0x00) + goto yy1268; + if (yych <= 0x08) + goto yy1375; + goto yy1403; + } else { + if (yych == ' ') + goto yy1403; + if (yych <= '!') + goto yy1375; + goto yy1268; + } + } else { + if (yych <= ':') { + if (yych == '\'') + goto yy1268; + if (yych <= '9') + goto yy1375; + } else { + if (yych <= ';') + goto yy1375; + if (yych <= '=') + goto yy1268; + if (yych <= '>') + goto yy1285; + goto yy1375; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1405; + if (yych <= '^') + goto yy1375; + if (yych >= '`') + goto yy1268; + } else { + if (yych <= 'z') + goto yy1405; + if (yych <= 0x7F) + goto yy1375; + if (yych <= 0xC1) + goto yy1268; + goto yy1377; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1378; + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + } + yy1405: + ++p; + yych = *p; + if (yych <= '>') { + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= 0x00) + goto yy1268; + if (yych <= 0x08) + goto yy1375; + if (yych >= 0x0E) + goto yy1375; + } else { + if (yych <= ' ') + goto yy1407; + if (yych == '"') + goto yy1268; + goto yy1375; + } + } else { + if (yych <= '/') { + if (yych <= '\'') + goto yy1268; + if (yych <= ',') + goto yy1375; + if (yych <= '.') + goto yy1405; + goto yy1375; + } else { + if (yych <= ';') { + if (yych <= ':') + goto yy1405; + goto yy1375; + } else { + if (yych <= '<') + goto yy1268; + if (yych <= '=') + goto yy1373; + goto yy1285; + } + } + } + } else { + if (yych <= 0xC1) { + if (yych <= '_') { + if (yych <= '@') + goto yy1375; + if (yych <= 'Z') + goto yy1405; + if (yych <= '^') + goto yy1375; + goto yy1405; + } else { + if (yych <= '`') + goto yy1268; + if (yych <= 'z') + goto yy1405; + if (yych <= 0x7F) + goto yy1375; + goto yy1268; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1377; + if (yych <= 0xE0) + goto yy1378; + if (yych <= 0xEC) + goto yy1379; + goto yy1383; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1379; + goto yy1380; + } else { + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + } + } + yy1407: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= 0x00) + goto yy1268; + if (yych <= 0x08) + goto yy1375; + if (yych <= '\r') + goto yy1407; + goto yy1375; + } else { + if (yych <= ' ') + goto yy1407; + if (yych == '"') + goto yy1268; + goto yy1375; + } + } else { + if (yych <= ';') { + if (yych <= '\'') + goto yy1268; + if (yych == ':') + goto yy1405; + goto yy1375; + } else { + if (yych <= '<') + goto yy1268; + if (yych <= '=') + goto yy1373; + if (yych <= '>') + goto yy1285; + goto yy1375; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1405; + if (yych <= '^') + goto yy1375; + if (yych <= '_') + goto yy1405; + goto yy1268; + } else { + if (yych <= 'z') + goto yy1405; + if (yych <= 0x7F) + goto yy1375; + if (yych <= 0xC1) + goto yy1268; + goto yy1377; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1378; + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + } + yy1409: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '"') { + if (yych <= '\r') { + if (yych <= 0x00) + goto yy1268; + if (yych <= 0x08) + goto yy1375; + goto yy1409; + } else { + if (yych == ' ') + goto yy1409; + if (yych <= '!') + goto yy1375; + goto yy1386; + } + } else { + if (yych <= ':') { + if (yych == '\'') + goto yy1384; + if (yych <= '9') + goto yy1375; + goto yy1405; + } else { + if (yych <= ';') + goto yy1375; + if (yych <= '=') + goto yy1268; + if (yych <= '>') + goto yy1285; + goto yy1375; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1405; + if (yych <= '^') + goto yy1375; + if (yych <= '_') + goto yy1405; + goto yy1268; + } else { + if (yych <= 'z') + goto yy1405; + if (yych <= 0x7F) + goto yy1375; + if (yych <= 0xC1) + goto yy1268; + goto yy1377; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1378; + if (yych == 0xED) + goto yy1383; + goto yy1379; + } else { + if (yych <= 0xF0) + goto yy1380; + if (yych <= 0xF3) + goto yy1381; + if (yych <= 0xF4) + goto yy1382; + goto yy1268; + } + } + } + } } // 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= ';') { - if (yych != '\n') goto yy1415; - } else { - if (yych <= '<') goto yy1414; - if (yych <= 0x7F) goto yy1415; - if (yych >= 0xC2) goto yy1416; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1418; - if (yych == 0xED) goto yy1423; - goto yy1419; - } else { - if (yych <= 0xF0) goto yy1420; - if (yych <= 0xF3) goto yy1421; - if (yych <= 0xF4) goto yy1422; - } - } -yy1413: - { return 0; } -yy1414: - yych = *(marker = ++p); - switch (yych) { - case '!': goto yy1439; - case '/': goto yy1424; - case '?': goto yy1440; - case 'A': - case 'a': goto yy1426; - case 'B': - case 'b': goto yy1427; - case 'C': - case 'c': goto yy1428; - case 'D': - case 'd': goto yy1429; - case 'F': - case 'f': goto yy1430; - case 'H': - case 'h': goto yy1431; - case 'L': - case 'l': goto yy1432; - case 'M': - case 'm': goto yy1433; - case 'N': - case 'n': goto yy1434; - case 'O': - case 'o': goto yy1435; - case 'P': - case 'p': goto yy1425; - case 'S': - case 's': goto yy1436; - case 'T': - case 't': goto yy1437; - case 'U': - case 'u': goto yy1438; - default: goto yy1413; - } -yy1415: - yych = *++p; - goto yy1413; -yy1416: - yych = *++p; - if (yych <= 0x7F) goto yy1417; - if (yych <= 0xBF) goto yy1415; -yy1417: - p = marker; - goto yy1413; -yy1418: - yych = *++p; - if (yych <= 0x9F) goto yy1417; - if (yych <= 0xBF) goto yy1416; - goto yy1417; -yy1419: - yych = *++p; - if (yych <= 0x7F) goto yy1417; - if (yych <= 0xBF) goto yy1416; - goto yy1417; -yy1420: - yych = *++p; - if (yych <= 0x8F) goto yy1417; - if (yych <= 0xBF) goto yy1419; - goto yy1417; -yy1421: - yych = *++p; - if (yych <= 0x7F) goto yy1417; - if (yych <= 0xBF) goto yy1419; - goto yy1417; -yy1422: - yych = *++p; - if (yych <= 0x7F) goto yy1417; - if (yych <= 0x8F) goto yy1419; - goto yy1417; -yy1423: - yych = *++p; - if (yych <= 0x7F) goto yy1417; - if (yych <= 0x9F) goto yy1416; - goto yy1417; -yy1424: - yych = *++p; - switch (yych) { - case 'A': - case 'a': goto yy1426; - case 'B': - case 'b': goto yy1427; - case 'C': - case 'c': goto yy1428; - case 'D': - case 'd': goto yy1429; - case 'F': - case 'f': goto yy1430; - case 'H': - case 'h': goto yy1431; - case 'L': - case 'l': goto yy1432; - case 'M': - case 'm': goto yy1433; - case 'N': - case 'n': goto yy1434; - case 'O': - case 'o': goto yy1435; - case 'P': - case 'p': goto yy1622; - case 'S': - case 's': goto yy1623; - case 'T': - case 't': goto yy1437; - case 'U': - case 'u': goto yy1438; - default: goto yy1417; - } -yy1425: - yych = *++p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - if (yych <= 0x1F) goto yy1417; - goto yy1456; - } else { - if (yych == '/') goto yy1458; - if (yych <= '=') goto yy1417; - goto yy1456; - } - } else { - if (yych <= 'R') { - if (yych == 'A') goto yy1617; - if (yych <= 'Q') goto yy1417; - goto yy1616; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy1417; - goto yy1617; - } else { - if (yych == 'r') goto yy1616; - goto yy1417; - } - } - } -yy1426: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'D') { - if (yych <= 'C') goto yy1417; - goto yy1605; - } else { - if (yych <= 'Q') goto yy1417; - if (yych <= 'R') goto yy1604; - goto yy1603; - } - } else { - if (yych <= 'q') { - if (yych == 'd') goto yy1605; - goto yy1417; - } else { - if (yych <= 'r') goto yy1604; - if (yych <= 's') goto yy1603; - goto yy1417; - } - } -yy1427: - yych = *++p; - if (yych <= 'O') { - if (yych <= 'K') { - if (yych == 'A') goto yy1589; - goto yy1417; - } else { - if (yych <= 'L') goto yy1588; - if (yych <= 'N') goto yy1417; - goto yy1587; - } - } else { - if (yych <= 'k') { - if (yych == 'a') goto yy1589; - goto yy1417; - } else { - if (yych <= 'l') goto yy1588; - if (yych == 'o') goto yy1587; - goto yy1417; - } - } -yy1428: - yych = *++p; - if (yych <= 'O') { - if (yych <= 'D') { - if (yych == 'A') goto yy1574; - goto yy1417; - } else { - if (yych <= 'E') goto yy1573; - if (yych <= 'N') goto yy1417; - goto yy1572; - } - } else { - if (yych <= 'd') { - if (yych == 'a') goto yy1574; - goto yy1417; - } else { - if (yych <= 'e') goto yy1573; - if (yych == 'o') goto yy1572; - goto yy1417; - } - } -yy1429: - yych = *++p; - switch (yych) { - case 'D': - case 'L': - case 'T': - case 'd': - case 'l': - case 't': goto yy1455; - case 'E': - case 'e': goto yy1564; - case 'I': - case 'i': goto yy1563; - default: goto yy1417; - } -yy1430: - yych = *++p; - if (yych <= 'R') { - if (yych <= 'N') { - if (yych == 'I') goto yy1539; - goto yy1417; - } else { - if (yych <= 'O') goto yy1538; - if (yych <= 'Q') goto yy1417; - goto yy1537; - } - } else { - if (yych <= 'n') { - if (yych == 'i') goto yy1539; - goto yy1417; - } else { - if (yych <= 'o') goto yy1538; - if (yych == 'r') goto yy1537; - goto yy1417; - } - } -yy1431: - yych = *++p; - if (yych <= 'S') { - if (yych <= 'D') { - if (yych == '1') goto yy1455; - goto yy1417; - } else { - if (yych <= 'E') goto yy1532; - if (yych == 'R') goto yy1455; - goto yy1417; - } - } else { - if (yych <= 'q') { - if (yych <= 'T') goto yy1531; - if (yych == 'e') goto yy1532; - goto yy1417; - } else { - if (yych <= 'r') goto yy1455; - if (yych == 't') goto yy1531; - goto yy1417; - } - } -yy1432: - yych = *++p; - if (yych <= 'I') { - if (yych == 'E') goto yy1526; - if (yych <= 'H') goto yy1417; - goto yy1525; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy1417; - goto yy1526; - } else { - if (yych == 'i') goto yy1525; - goto yy1417; - } - } -yy1433: - yych = *++p; - if (yych <= 'E') { - if (yych == 'A') goto yy1517; - if (yych <= 'D') goto yy1417; - goto yy1516; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy1417; - goto yy1517; - } else { - if (yych == 'e') goto yy1516; - goto yy1417; - } - } -yy1434: - yych = *++p; - if (yych <= 'O') { - if (yych == 'A') goto yy1510; - if (yych <= 'N') goto yy1417; - goto yy1509; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy1417; - goto yy1510; - } else { - if (yych == 'o') goto yy1509; - goto yy1417; - } - } -yy1435: - yych = *++p; - if (yych <= 'P') { - if (yych == 'L') goto yy1455; - if (yych <= 'O') goto yy1417; - goto yy1501; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy1417; - goto yy1455; - } else { - if (yych == 'p') goto yy1501; - goto yy1417; - } - } -yy1436: - yych = *++p; - if (yych <= 'U') { - if (yych <= 'E') { - if (yych == 'C') goto yy1478; - if (yych <= 'D') goto yy1417; - goto yy1481; - } else { - if (yych <= 'O') { - if (yych <= 'N') goto yy1417; - goto yy1480; - } else { - if (yych <= 'S') goto yy1417; - if (yych <= 'T') goto yy1477; - goto yy1479; - } - } - } else { - if (yych <= 'n') { - if (yych <= 'c') { - if (yych <= 'b') goto yy1417; - goto yy1478; - } else { - if (yych == 'e') goto yy1481; - goto yy1417; - } - } else { - if (yych <= 's') { - if (yych <= 'o') goto yy1480; - goto yy1417; - } else { - if (yych <= 't') goto yy1477; - if (yych <= 'u') goto yy1479; - goto yy1417; - } - } - } -yy1437: - yych = *++p; - switch (yych) { - case 'A': - case 'a': goto yy1464; - case 'B': - case 'b': goto yy1463; - case 'D': - case 'd': goto yy1455; - case 'F': - case 'f': goto yy1462; - case 'H': - case 'h': goto yy1461; - case 'I': - case 'i': goto yy1460; - case 'R': - case 'r': goto yy1459; - default: goto yy1417; - } -yy1438: - yych = *++p; - if (yych == 'L') goto yy1455; - if (yych == 'l') goto yy1455; - goto yy1417; -yy1439: - yych = *++p; - if (yych <= '@') { - if (yych == '-') goto yy1442; - goto yy1417; - } else { - if (yych <= 'Z') goto yy1443; - if (yych <= '[') goto yy1445; - goto yy1417; - } -yy1440: - ++p; - { return 3; } -yy1442: - yych = *++p; - if (yych == '-') goto yy1453; - goto yy1417; -yy1443: - ++p; - { return 4; } -yy1445: - yych = *++p; - if (yych == 'C') goto yy1446; - if (yych != 'c') goto yy1417; -yy1446: - yych = *++p; - if (yych == 'D') goto yy1447; - if (yych != 'd') goto yy1417; -yy1447: - yych = *++p; - if (yych == 'A') goto yy1448; - if (yych != 'a') goto yy1417; -yy1448: - yych = *++p; - if (yych == 'T') goto yy1449; - if (yych != 't') goto yy1417; -yy1449: - yych = *++p; - if (yych == 'A') goto yy1450; - if (yych != 'a') goto yy1417; -yy1450: - yych = *++p; - if (yych != '[') goto yy1417; - ++p; - { return 5; } -yy1453: - ++p; - { return 2; } -yy1455: - yych = *++p; - if (yych <= ' ') { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - if (yych <= 0x1F) goto yy1417; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1417; - goto yy1458; - } else { - if (yych != '>') goto yy1417; - } - } -yy1456: - ++p; - { return 6; } -yy1458: - yych = *++p; - if (yych == '>') goto yy1456; - goto yy1417; -yy1459: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= '@') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'A') goto yy1475; - if (yych == 'a') goto yy1475; - goto yy1417; - } - } -yy1460: - yych = *++p; - if (yych == 'T') goto yy1473; - if (yych == 't') goto yy1473; - goto yy1417; -yy1461: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'D') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'E') goto yy1471; - if (yych == 'e') goto yy1471; - goto yy1417; - } - } -yy1462: - yych = *++p; - if (yych == 'O') goto yy1469; - if (yych == 'o') goto yy1469; - goto yy1417; -yy1463: - yych = *++p; - if (yych == 'O') goto yy1467; - if (yych == 'o') goto yy1467; - goto yy1417; -yy1464: - yych = *++p; - if (yych == 'B') goto yy1465; - if (yych != 'b') goto yy1417; -yy1465: - yych = *++p; - if (yych == 'L') goto yy1466; - if (yych != 'l') goto yy1417; -yy1466: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1467: - yych = *++p; - if (yych == 'D') goto yy1468; - if (yych != 'd') goto yy1417; -yy1468: - yych = *++p; - if (yych == 'Y') goto yy1455; - if (yych == 'y') goto yy1455; - goto yy1417; -yy1469: - yych = *++p; - if (yych == 'O') goto yy1470; - if (yych != 'o') goto yy1417; -yy1470: - yych = *++p; - if (yych == 'T') goto yy1455; - if (yych == 't') goto yy1455; - goto yy1417; -yy1471: - yych = *++p; - if (yych == 'A') goto yy1472; - if (yych != 'a') goto yy1417; -yy1472: - yych = *++p; - if (yych == 'D') goto yy1455; - if (yych == 'd') goto yy1455; - goto yy1417; -yy1473: - yych = *++p; - if (yych == 'L') goto yy1474; - if (yych != 'l') goto yy1417; -yy1474: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1475: - yych = *++p; - if (yych == 'C') goto yy1476; - if (yych != 'c') goto yy1417; -yy1476: - yych = *++p; - if (yych == 'K') goto yy1455; - if (yych == 'k') goto yy1455; - goto yy1417; -yy1477: - yych = *++p; - if (yych == 'Y') goto yy1499; - if (yych == 'y') goto yy1499; - goto yy1417; -yy1478: - yych = *++p; - if (yych == 'R') goto yy1493; - if (yych == 'r') goto yy1493; - goto yy1417; -yy1479: - yych = *++p; - if (yych == 'M') goto yy1489; - if (yych == 'm') goto yy1489; - goto yy1417; -yy1480: - yych = *++p; - if (yych == 'U') goto yy1486; - if (yych == 'u') goto yy1486; - goto yy1417; -yy1481: - yych = *++p; - if (yych == 'C') goto yy1482; - if (yych != 'c') goto yy1417; -yy1482: - yych = *++p; - if (yych == 'T') goto yy1483; - if (yych != 't') goto yy1417; -yy1483: - yych = *++p; - if (yych == 'I') goto yy1484; - if (yych != 'i') goto yy1417; -yy1484: - yych = *++p; - if (yych == 'O') goto yy1485; - if (yych != 'o') goto yy1417; -yy1485: - yych = *++p; - if (yych == 'N') goto yy1455; - if (yych == 'n') goto yy1455; - goto yy1417; -yy1486: - yych = *++p; - if (yych == 'R') goto yy1487; - if (yych != 'r') goto yy1417; -yy1487: - yych = *++p; - if (yych == 'C') goto yy1488; - if (yych != 'c') goto yy1417; -yy1488: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1489: - yych = *++p; - if (yych == 'M') goto yy1490; - if (yych != 'm') goto yy1417; -yy1490: - yych = *++p; - if (yych == 'A') goto yy1491; - if (yych != 'a') goto yy1417; -yy1491: - yych = *++p; - if (yych == 'R') goto yy1492; - if (yych != 'r') goto yy1417; -yy1492: - yych = *++p; - if (yych == 'Y') goto yy1455; - if (yych == 'y') goto yy1455; - goto yy1417; -yy1493: - yych = *++p; - if (yych == 'I') goto yy1494; - if (yych != 'i') goto yy1417; -yy1494: - yych = *++p; - if (yych == 'P') goto yy1495; - if (yych != 'p') goto yy1417; -yy1495: - yych = *++p; - if (yych == 'T') goto yy1496; - if (yych != 't') goto yy1417; -yy1496: - yych = *++p; - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych >= 0x0E) goto yy1417; - } else { - if (yych <= ' ') goto yy1497; - if (yych != '>') goto yy1417; - } -yy1497: - ++p; -yy1498: - { return 1; } -yy1499: - yych = *++p; - if (yych == 'L') goto yy1500; - if (yych != 'l') goto yy1417; -yy1500: - yych = *++p; - if (yych == 'E') goto yy1496; - if (yych == 'e') goto yy1496; - goto yy1417; -yy1501: - yych = *++p; - if (yych == 'T') goto yy1502; - if (yych != 't') goto yy1417; -yy1502: - yych = *++p; - if (yych <= 'I') { - if (yych == 'G') goto yy1504; - if (yych <= 'H') goto yy1417; - } else { - if (yych <= 'g') { - if (yych <= 'f') goto yy1417; - goto yy1504; - } else { - if (yych != 'i') goto yy1417; - } - } - yych = *++p; - if (yych == 'O') goto yy1508; - if (yych == 'o') goto yy1508; - goto yy1417; -yy1504: - yych = *++p; - if (yych == 'R') goto yy1505; - if (yych != 'r') goto yy1417; -yy1505: - yych = *++p; - if (yych == 'O') goto yy1506; - if (yych != 'o') goto yy1417; -yy1506: - yych = *++p; - if (yych == 'U') goto yy1507; - if (yych != 'u') goto yy1417; -yy1507: - yych = *++p; - if (yych == 'P') goto yy1455; - if (yych == 'p') goto yy1455; - goto yy1417; -yy1508: - yych = *++p; - if (yych == 'N') goto yy1455; - if (yych == 'n') goto yy1455; - goto yy1417; -yy1509: - yych = *++p; - if (yych == 'F') goto yy1511; - if (yych == 'f') goto yy1511; - goto yy1417; -yy1510: - yych = *++p; - if (yych == 'V') goto yy1455; - if (yych == 'v') goto yy1455; - goto yy1417; -yy1511: - yych = *++p; - if (yych == 'R') goto yy1512; - if (yych != 'r') goto yy1417; -yy1512: - yych = *++p; - if (yych == 'A') goto yy1513; - if (yych != 'a') goto yy1417; -yy1513: - yych = *++p; - if (yych == 'M') goto yy1514; - if (yych != 'm') goto yy1417; -yy1514: - yych = *++p; - if (yych == 'E') goto yy1515; - if (yych != 'e') goto yy1417; -yy1515: - yych = *++p; - if (yych == 'S') goto yy1455; - if (yych == 's') goto yy1455; - goto yy1417; -yy1516: - yych = *++p; - if (yych <= 'T') { - if (yych == 'N') goto yy1519; - if (yych <= 'S') goto yy1417; - goto yy1520; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy1417; - goto yy1519; - } else { - if (yych == 't') goto yy1520; - goto yy1417; - } - } -yy1517: - yych = *++p; - if (yych == 'I') goto yy1518; - if (yych != 'i') goto yy1417; -yy1518: - yych = *++p; - if (yych == 'N') goto yy1455; - if (yych == 'n') goto yy1455; - goto yy1417; -yy1519: - yych = *++p; - if (yych == 'U') goto yy1521; - if (yych == 'u') goto yy1521; - goto yy1417; -yy1520: - yych = *++p; - if (yych == 'A') goto yy1455; - if (yych == 'a') goto yy1455; - goto yy1417; -yy1521: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'H') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'I') goto yy1522; - if (yych != 'i') goto yy1417; - } - } -yy1522: - yych = *++p; - if (yych == 'T') goto yy1523; - if (yych != 't') goto yy1417; -yy1523: - yych = *++p; - if (yych == 'E') goto yy1524; - if (yych != 'e') goto yy1417; -yy1524: - yych = *++p; - if (yych == 'M') goto yy1455; - if (yych == 'm') goto yy1455; - goto yy1417; -yy1525: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'M') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'N') goto yy1530; - if (yych == 'n') goto yy1530; - goto yy1417; - } - } -yy1526: - yych = *++p; - if (yych == 'G') goto yy1527; - if (yych != 'g') goto yy1417; -yy1527: - yych = *++p; - if (yych == 'E') goto yy1528; - if (yych != 'e') goto yy1417; -yy1528: - yych = *++p; - if (yych == 'N') goto yy1529; - if (yych != 'n') goto yy1417; -yy1529: - yych = *++p; - if (yych == 'D') goto yy1455; - if (yych == 'd') goto yy1455; - goto yy1417; -yy1530: - yych = *++p; - if (yych == 'K') goto yy1455; - if (yych == 'k') goto yy1455; - goto yy1417; -yy1531: - yych = *++p; - if (yych == 'M') goto yy1536; - if (yych == 'm') goto yy1536; - goto yy1417; -yy1532: - yych = *++p; - if (yych == 'A') goto yy1533; - if (yych != 'a') goto yy1417; -yy1533: - yych = *++p; - if (yych == 'D') goto yy1534; - if (yych != 'd') goto yy1417; -yy1534: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'D') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'E') goto yy1535; - if (yych != 'e') goto yy1417; - } - } -yy1535: - yych = *++p; - if (yych == 'R') goto yy1455; - if (yych == 'r') goto yy1455; - goto yy1417; -yy1536: - yych = *++p; - if (yych == 'L') goto yy1455; - if (yych == 'l') goto yy1455; - goto yy1417; -yy1537: - yych = *++p; - if (yych == 'A') goto yy1558; - if (yych == 'a') goto yy1558; - goto yy1417; -yy1538: - yych = *++p; - if (yych <= 'R') { - if (yych == 'O') goto yy1554; - if (yych <= 'Q') goto yy1417; - goto yy1555; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy1417; - goto yy1554; - } else { - if (yych == 'r') goto yy1555; - goto yy1417; - } - } -yy1539: - yych = *++p; - if (yych <= 'G') { - if (yych == 'E') goto yy1540; - if (yych <= 'F') goto yy1417; - goto yy1541; - } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy1417; - } else { - if (yych == 'g') goto yy1541; - goto yy1417; - } - } -yy1540: - yych = *++p; - if (yych == 'L') goto yy1550; - if (yych == 'l') goto yy1550; - goto yy1417; -yy1541: - yych = *++p; - if (yych <= 'U') { - if (yych == 'C') goto yy1543; - if (yych <= 'T') goto yy1417; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy1417; - goto yy1543; - } else { - if (yych != 'u') goto yy1417; - } - } - yych = *++p; - if (yych == 'R') goto yy1549; - if (yych == 'r') goto yy1549; - goto yy1417; -yy1543: - yych = *++p; - if (yych == 'A') goto yy1544; - if (yych != 'a') goto yy1417; -yy1544: - yych = *++p; - if (yych == 'P') goto yy1545; - if (yych != 'p') goto yy1417; -yy1545: - yych = *++p; - if (yych == 'T') goto yy1546; - if (yych != 't') goto yy1417; -yy1546: - yych = *++p; - if (yych == 'I') goto yy1547; - if (yych != 'i') goto yy1417; -yy1547: - yych = *++p; - if (yych == 'O') goto yy1548; - if (yych != 'o') goto yy1417; -yy1548: - yych = *++p; - if (yych == 'N') goto yy1455; - if (yych == 'n') goto yy1455; - goto yy1417; -yy1549: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1550: - yych = *++p; - if (yych == 'D') goto yy1551; - if (yych != 'd') goto yy1417; -yy1551: - yych = *++p; - if (yych == 'S') goto yy1552; - if (yych != 's') goto yy1417; -yy1552: - yych = *++p; - if (yych == 'E') goto yy1553; - if (yych != 'e') goto yy1417; -yy1553: - yych = *++p; - if (yych == 'T') goto yy1455; - if (yych == 't') goto yy1455; - goto yy1417; -yy1554: - yych = *++p; - if (yych == 'T') goto yy1556; - if (yych == 't') goto yy1556; - goto yy1417; -yy1555: - yych = *++p; - if (yych == 'M') goto yy1455; - if (yych == 'm') goto yy1455; - goto yy1417; -yy1556: - yych = *++p; - if (yych == 'E') goto yy1557; - if (yych != 'e') goto yy1417; -yy1557: - yych = *++p; - if (yych == 'R') goto yy1455; - if (yych == 'r') goto yy1455; - goto yy1417; -yy1558: - yych = *++p; - if (yych == 'M') goto yy1559; - if (yych != 'm') goto yy1417; -yy1559: - yych = *++p; - if (yych == 'E') goto yy1560; - if (yych != 'e') goto yy1417; -yy1560: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'R') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'S') goto yy1561; - if (yych != 's') goto yy1417; - } - } -yy1561: - yych = *++p; - if (yych == 'E') goto yy1562; - if (yych != 'e') goto yy1417; -yy1562: - yych = *++p; - if (yych == 'T') goto yy1455; - if (yych == 't') goto yy1455; - goto yy1417; -yy1563: - yych = *++p; - if (yych <= 'V') { - if (yych <= 'Q') { - if (yych == 'A') goto yy1569; - goto yy1417; - } else { - if (yych <= 'R') goto yy1455; - if (yych <= 'U') goto yy1417; - goto yy1455; - } - } else { - if (yych <= 'q') { - if (yych == 'a') goto yy1569; - goto yy1417; - } else { - if (yych <= 'r') goto yy1455; - if (yych == 'v') goto yy1455; - goto yy1417; - } - } -yy1564: - yych = *++p; - if (yych == 'T') goto yy1565; - if (yych != 't') goto yy1417; -yy1565: - yych = *++p; - if (yych == 'A') goto yy1566; - if (yych != 'a') goto yy1417; -yy1566: - yych = *++p; - if (yych == 'I') goto yy1567; - if (yych != 'i') goto yy1417; -yy1567: - yych = *++p; - if (yych == 'L') goto yy1568; - if (yych != 'l') goto yy1417; -yy1568: - yych = *++p; - if (yych == 'S') goto yy1455; - if (yych == 's') goto yy1455; - goto yy1417; -yy1569: - yych = *++p; - if (yych == 'L') goto yy1570; - if (yych != 'l') goto yy1417; -yy1570: - yych = *++p; - if (yych == 'O') goto yy1571; - if (yych != 'o') goto yy1417; -yy1571: - yych = *++p; - if (yych == 'G') goto yy1455; - if (yych == 'g') goto yy1455; - goto yy1417; -yy1572: - yych = *++p; - if (yych == 'L') goto yy1582; - if (yych == 'l') goto yy1582; - goto yy1417; -yy1573: - yych = *++p; - if (yych == 'N') goto yy1579; - if (yych == 'n') goto yy1579; - goto yy1417; -yy1574: - yych = *++p; - if (yych == 'P') goto yy1575; - if (yych != 'p') goto yy1417; -yy1575: - yych = *++p; - if (yych == 'T') goto yy1576; - if (yych != 't') goto yy1417; -yy1576: - yych = *++p; - if (yych == 'I') goto yy1577; - if (yych != 'i') goto yy1417; -yy1577: - yych = *++p; - if (yych == 'O') goto yy1578; - if (yych != 'o') goto yy1417; -yy1578: - yych = *++p; - if (yych == 'N') goto yy1455; - if (yych == 'n') goto yy1455; - goto yy1417; -yy1579: - yych = *++p; - if (yych == 'T') goto yy1580; - if (yych != 't') goto yy1417; -yy1580: - yych = *++p; - if (yych == 'E') goto yy1581; - if (yych != 'e') goto yy1417; -yy1581: - yych = *++p; - if (yych == 'R') goto yy1455; - if (yych == 'r') goto yy1455; - goto yy1417; -yy1582: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'F') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'G') goto yy1583; - if (yych != 'g') goto yy1417; - } - } -yy1583: - yych = *++p; - if (yych == 'R') goto yy1584; - if (yych != 'r') goto yy1417; -yy1584: - yych = *++p; - if (yych == 'O') goto yy1585; - if (yych != 'o') goto yy1417; -yy1585: - yych = *++p; - if (yych == 'U') goto yy1586; - if (yych != 'u') goto yy1417; -yy1586: - yych = *++p; - if (yych == 'P') goto yy1455; - if (yych == 'p') goto yy1455; - goto yy1417; -yy1587: - yych = *++p; - if (yych == 'D') goto yy1602; - if (yych == 'd') goto yy1602; - goto yy1417; -yy1588: - yych = *++p; - if (yych == 'O') goto yy1595; - if (yych == 'o') goto yy1595; - goto yy1417; -yy1589: - yych = *++p; - if (yych == 'S') goto yy1590; - if (yych != 's') goto yy1417; -yy1590: - yych = *++p; - if (yych == 'E') goto yy1591; - if (yych != 'e') goto yy1417; -yy1591: - yych = *++p; - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - goto yy1417; - } else { - if (yych <= ' ') goto yy1456; - if (yych <= '.') goto yy1417; - goto yy1458; - } - } else { - if (yych <= 'E') { - if (yych == '>') goto yy1456; - goto yy1417; - } else { - if (yych <= 'F') goto yy1592; - if (yych != 'f') goto yy1417; - } - } -yy1592: - yych = *++p; - if (yych == 'O') goto yy1593; - if (yych != 'o') goto yy1417; -yy1593: - yych = *++p; - if (yych == 'N') goto yy1594; - if (yych != 'n') goto yy1417; -yy1594: - yych = *++p; - if (yych == 'T') goto yy1455; - if (yych == 't') goto yy1455; - goto yy1417; -yy1595: - yych = *++p; - if (yych == 'C') goto yy1596; - if (yych != 'c') goto yy1417; -yy1596: - yych = *++p; - if (yych == 'K') goto yy1597; - if (yych != 'k') goto yy1417; -yy1597: - yych = *++p; - if (yych == 'Q') goto yy1598; - if (yych != 'q') goto yy1417; -yy1598: - yych = *++p; - if (yych == 'U') goto yy1599; - if (yych != 'u') goto yy1417; -yy1599: - yych = *++p; - if (yych == 'O') goto yy1600; - if (yych != 'o') goto yy1417; -yy1600: - yych = *++p; - if (yych == 'T') goto yy1601; - if (yych != 't') goto yy1417; -yy1601: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1602: - yych = *++p; - if (yych == 'Y') goto yy1455; - if (yych == 'y') goto yy1455; - goto yy1417; -yy1603: - yych = *++p; - if (yych == 'I') goto yy1614; - if (yych == 'i') goto yy1614; - goto yy1417; -yy1604: - yych = *++p; - if (yych == 'T') goto yy1610; - if (yych == 't') goto yy1610; - goto yy1417; -yy1605: - yych = *++p; - if (yych == 'D') goto yy1606; - if (yych != 'd') goto yy1417; -yy1606: - yych = *++p; - if (yych == 'R') goto yy1607; - if (yych != 'r') goto yy1417; -yy1607: - yych = *++p; - if (yych == 'E') goto yy1608; - if (yych != 'e') goto yy1417; -yy1608: - yych = *++p; - if (yych == 'S') goto yy1609; - if (yych != 's') goto yy1417; -yy1609: - yych = *++p; - if (yych == 'S') goto yy1455; - if (yych == 's') goto yy1455; - goto yy1417; -yy1610: - yych = *++p; - if (yych == 'I') goto yy1611; - if (yych != 'i') goto yy1417; -yy1611: - yych = *++p; - if (yych == 'C') goto yy1612; - if (yych != 'c') goto yy1417; -yy1612: - yych = *++p; - if (yych == 'L') goto yy1613; - if (yych != 'l') goto yy1417; -yy1613: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1614: - yych = *++p; - if (yych == 'D') goto yy1615; - if (yych != 'd') goto yy1417; -yy1615: - yych = *++p; - if (yych == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -yy1616: - yych = *++p; - if (yych == 'E') goto yy1620; - if (yych == 'e') goto yy1620; - goto yy1417; -yy1617: - yych = *++p; - if (yych == 'R') goto yy1618; - if (yych != 'r') goto yy1417; -yy1618: - yych = *++p; - if (yych == 'A') goto yy1619; - if (yych != 'a') goto yy1417; -yy1619: - yych = *++p; - if (yych == 'M') goto yy1455; - if (yych == 'm') goto yy1455; - goto yy1417; -yy1620: - yych = *++p; - if (yych <= ' ') { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1621; - if (yych <= 0x1F) goto yy1417; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1417; - goto yy1458; - } else { - if (yych != '>') goto yy1417; - } - } -yy1621: - yych = *++p; - goto yy1498; -yy1622: - yych = *++p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1417; - if (yych <= '\r') goto yy1456; - if (yych <= 0x1F) goto yy1417; - goto yy1456; - } else { - if (yych == '/') goto yy1458; - if (yych <= '=') goto yy1417; - goto yy1456; - } - } else { - if (yych <= 'R') { - if (yych == 'A') goto yy1617; - if (yych <= 'Q') goto yy1417; - goto yy1624; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy1417; - goto yy1617; - } else { - if (yych == 'r') goto yy1624; - goto yy1417; - } - } - } -yy1623: - yych = *++p; - if (yych <= 'U') { - if (yych <= 'N') { - if (yych == 'E') goto yy1481; - goto yy1417; - } else { - if (yych <= 'O') goto yy1480; - if (yych <= 'T') goto yy1417; - goto yy1479; - } - } else { - if (yych <= 'n') { - if (yych == 'e') goto yy1481; - goto yy1417; - } else { - if (yych <= 'o') goto yy1480; - if (yych == 'u') goto yy1479; - goto yy1417; - } - } -yy1624: - ++p; - if ((yych = *p) == 'E') goto yy1455; - if (yych == 'e') goto yy1455; - goto yy1417; -} - + { + unsigned char yych; + yych = *(marker = p); + if (yych <= 0xDF) { + if (yych <= ';') { + if (yych != '\n') + goto yy1415; + } else { + if (yych <= '<') + goto yy1414; + if (yych <= 0x7F) + goto yy1415; + if (yych >= 0xC2) + goto yy1416; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1418; + if (yych == 0xED) + goto yy1423; + goto yy1419; + } else { + if (yych <= 0xF0) + goto yy1420; + if (yych <= 0xF3) + goto yy1421; + if (yych <= 0xF4) + goto yy1422; + } + } + yy1413 : { return 0; } + yy1414: + yych = *(marker = ++p); + switch (yych) { + case '!': + goto yy1439; + case '/': + goto yy1424; + case '?': + goto yy1440; + case 'A': + case 'a': + goto yy1426; + case 'B': + case 'b': + goto yy1427; + case 'C': + case 'c': + goto yy1428; + case 'D': + case 'd': + goto yy1429; + case 'F': + case 'f': + goto yy1430; + case 'H': + case 'h': + goto yy1431; + case 'L': + case 'l': + goto yy1432; + case 'M': + case 'm': + goto yy1433; + case 'N': + case 'n': + goto yy1434; + case 'O': + case 'o': + goto yy1435; + case 'P': + case 'p': + goto yy1425; + case 'S': + case 's': + goto yy1436; + case 'T': + case 't': + goto yy1437; + case 'U': + case 'u': + goto yy1438; + default: + goto yy1413; + } + yy1415: + yych = *++p; + goto yy1413; + yy1416: + yych = *++p; + if (yych <= 0x7F) + goto yy1417; + if (yych <= 0xBF) + goto yy1415; + yy1417: + p = marker; + goto yy1413; + yy1418: + yych = *++p; + if (yych <= 0x9F) + goto yy1417; + if (yych <= 0xBF) + goto yy1416; + goto yy1417; + yy1419: + yych = *++p; + if (yych <= 0x7F) + goto yy1417; + if (yych <= 0xBF) + goto yy1416; + goto yy1417; + yy1420: + yych = *++p; + if (yych <= 0x8F) + goto yy1417; + if (yych <= 0xBF) + goto yy1419; + goto yy1417; + yy1421: + yych = *++p; + if (yych <= 0x7F) + goto yy1417; + if (yych <= 0xBF) + goto yy1419; + goto yy1417; + yy1422: + yych = *++p; + if (yych <= 0x7F) + goto yy1417; + if (yych <= 0x8F) + goto yy1419; + goto yy1417; + yy1423: + yych = *++p; + if (yych <= 0x7F) + goto yy1417; + if (yych <= 0x9F) + goto yy1416; + goto yy1417; + yy1424: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy1426; + case 'B': + case 'b': + goto yy1427; + case 'C': + case 'c': + goto yy1428; + case 'D': + case 'd': + goto yy1429; + case 'F': + case 'f': + goto yy1430; + case 'H': + case 'h': + goto yy1431; + case 'L': + case 'l': + goto yy1432; + case 'M': + case 'm': + goto yy1433; + case 'N': + case 'n': + goto yy1434; + case 'O': + case 'o': + goto yy1435; + case 'P': + case 'p': + goto yy1622; + case 'S': + case 's': + goto yy1623; + case 'T': + case 't': + goto yy1437; + case 'U': + case 'u': + goto yy1438; + default: + goto yy1417; + } + yy1425: + yych = *++p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + if (yych <= 0x1F) + goto yy1417; + goto yy1456; + } else { + if (yych == '/') + goto yy1458; + if (yych <= '=') + goto yy1417; + goto yy1456; + } + } else { + if (yych <= 'R') { + if (yych == 'A') + goto yy1617; + if (yych <= 'Q') + goto yy1417; + goto yy1616; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy1417; + goto yy1617; + } else { + if (yych == 'r') + goto yy1616; + goto yy1417; + } + } + } + yy1426: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= 'C') + goto yy1417; + goto yy1605; + } else { + if (yych <= 'Q') + goto yy1417; + if (yych <= 'R') + goto yy1604; + goto yy1603; + } + } else { + if (yych <= 'q') { + if (yych == 'd') + goto yy1605; + goto yy1417; + } else { + if (yych <= 'r') + goto yy1604; + if (yych <= 's') + goto yy1603; + goto yy1417; + } + } + yy1427: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') + goto yy1589; + goto yy1417; + } else { + if (yych <= 'L') + goto yy1588; + if (yych <= 'N') + goto yy1417; + goto yy1587; + } + } else { + if (yych <= 'k') { + if (yych == 'a') + goto yy1589; + goto yy1417; + } else { + if (yych <= 'l') + goto yy1588; + if (yych == 'o') + goto yy1587; + goto yy1417; + } + } + yy1428: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == 'A') + goto yy1574; + goto yy1417; + } else { + if (yych <= 'E') + goto yy1573; + if (yych <= 'N') + goto yy1417; + goto yy1572; + } + } else { + if (yych <= 'd') { + if (yych == 'a') + goto yy1574; + goto yy1417; + } else { + if (yych <= 'e') + goto yy1573; + if (yych == 'o') + goto yy1572; + goto yy1417; + } + } + yy1429: + yych = *++p; + switch (yych) { + case 'D': + case 'L': + case 'T': + case 'd': + case 'l': + case 't': + goto yy1455; + case 'E': + case 'e': + goto yy1564; + case 'I': + case 'i': + goto yy1563; + default: + goto yy1417; + } + yy1430: + yych = *++p; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'I') + goto yy1539; + goto yy1417; + } else { + if (yych <= 'O') + goto yy1538; + if (yych <= 'Q') + goto yy1417; + goto yy1537; + } + } else { + if (yych <= 'n') { + if (yych == 'i') + goto yy1539; + goto yy1417; + } else { + if (yych <= 'o') + goto yy1538; + if (yych == 'r') + goto yy1537; + goto yy1417; + } + } + yy1431: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych == '1') + goto yy1455; + goto yy1417; + } else { + if (yych <= 'E') + goto yy1532; + if (yych == 'R') + goto yy1455; + goto yy1417; + } + } else { + if (yych <= 'q') { + if (yych <= 'T') + goto yy1531; + if (yych == 'e') + goto yy1532; + goto yy1417; + } else { + if (yych <= 'r') + goto yy1455; + if (yych == 't') + goto yy1531; + goto yy1417; + } + } + yy1432: + yych = *++p; + if (yych <= 'I') { + if (yych == 'E') + goto yy1526; + if (yych <= 'H') + goto yy1417; + goto yy1525; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy1417; + goto yy1526; + } else { + if (yych == 'i') + goto yy1525; + goto yy1417; + } + } + yy1433: + yych = *++p; + if (yych <= 'E') { + if (yych == 'A') + goto yy1517; + if (yych <= 'D') + goto yy1417; + goto yy1516; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy1417; + goto yy1517; + } else { + if (yych == 'e') + goto yy1516; + goto yy1417; + } + } + yy1434: + yych = *++p; + if (yych <= 'O') { + if (yych == 'A') + goto yy1510; + if (yych <= 'N') + goto yy1417; + goto yy1509; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy1417; + goto yy1510; + } else { + if (yych == 'o') + goto yy1509; + goto yy1417; + } + } + yy1435: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy1455; + if (yych <= 'O') + goto yy1417; + goto yy1501; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy1417; + goto yy1455; + } else { + if (yych == 'p') + goto yy1501; + goto yy1417; + } + } + yy1436: + yych = *++p; + if (yych <= 'U') { + if (yych <= 'E') { + if (yych == 'C') + goto yy1478; + if (yych <= 'D') + goto yy1417; + goto yy1481; + } else { + if (yych <= 'O') { + if (yych <= 'N') + goto yy1417; + goto yy1480; + } else { + if (yych <= 'S') + goto yy1417; + if (yych <= 'T') + goto yy1477; + goto yy1479; + } + } + } else { + if (yych <= 'n') { + if (yych <= 'c') { + if (yych <= 'b') + goto yy1417; + goto yy1478; + } else { + if (yych == 'e') + goto yy1481; + goto yy1417; + } + } else { + if (yych <= 's') { + if (yych <= 'o') + goto yy1480; + goto yy1417; + } else { + if (yych <= 't') + goto yy1477; + if (yych <= 'u') + goto yy1479; + goto yy1417; + } + } + } + yy1437: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy1464; + case 'B': + case 'b': + goto yy1463; + case 'D': + case 'd': + goto yy1455; + case 'F': + case 'f': + goto yy1462; + case 'H': + case 'h': + goto yy1461; + case 'I': + case 'i': + goto yy1460; + case 'R': + case 'r': + goto yy1459; + default: + goto yy1417; + } + yy1438: + yych = *++p; + if (yych == 'L') + goto yy1455; + if (yych == 'l') + goto yy1455; + goto yy1417; + yy1439: + yych = *++p; + if (yych <= '@') { + if (yych == '-') + goto yy1442; + goto yy1417; + } else { + if (yych <= 'Z') + goto yy1443; + if (yych <= '[') + goto yy1445; + goto yy1417; + } + yy1440: + ++p; + { return 3; } + yy1442: + yych = *++p; + if (yych == '-') + goto yy1453; + goto yy1417; + yy1443: + ++p; + { return 4; } + yy1445: + yych = *++p; + if (yych == 'C') + goto yy1446; + if (yych != 'c') + goto yy1417; + yy1446: + yych = *++p; + if (yych == 'D') + goto yy1447; + if (yych != 'd') + goto yy1417; + yy1447: + yych = *++p; + if (yych == 'A') + goto yy1448; + if (yych != 'a') + goto yy1417; + yy1448: + yych = *++p; + if (yych == 'T') + goto yy1449; + if (yych != 't') + goto yy1417; + yy1449: + yych = *++p; + if (yych == 'A') + goto yy1450; + if (yych != 'a') + goto yy1417; + yy1450: + yych = *++p; + if (yych != '[') + goto yy1417; + ++p; + { return 5; } + yy1453: + ++p; + { return 2; } + yy1455: + yych = *++p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + if (yych <= 0x1F) + goto yy1417; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1417; + goto yy1458; + } else { + if (yych != '>') + goto yy1417; + } + } + yy1456: + ++p; + { return 6; } + yy1458: + yych = *++p; + if (yych == '>') + goto yy1456; + goto yy1417; + yy1459: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= '@') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'A') + goto yy1475; + if (yych == 'a') + goto yy1475; + goto yy1417; + } + } + yy1460: + yych = *++p; + if (yych == 'T') + goto yy1473; + if (yych == 't') + goto yy1473; + goto yy1417; + yy1461: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'E') + goto yy1471; + if (yych == 'e') + goto yy1471; + goto yy1417; + } + } + yy1462: + yych = *++p; + if (yych == 'O') + goto yy1469; + if (yych == 'o') + goto yy1469; + goto yy1417; + yy1463: + yych = *++p; + if (yych == 'O') + goto yy1467; + if (yych == 'o') + goto yy1467; + goto yy1417; + yy1464: + yych = *++p; + if (yych == 'B') + goto yy1465; + if (yych != 'b') + goto yy1417; + yy1465: + yych = *++p; + if (yych == 'L') + goto yy1466; + if (yych != 'l') + goto yy1417; + yy1466: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1467: + yych = *++p; + if (yych == 'D') + goto yy1468; + if (yych != 'd') + goto yy1417; + yy1468: + yych = *++p; + if (yych == 'Y') + goto yy1455; + if (yych == 'y') + goto yy1455; + goto yy1417; + yy1469: + yych = *++p; + if (yych == 'O') + goto yy1470; + if (yych != 'o') + goto yy1417; + yy1470: + yych = *++p; + if (yych == 'T') + goto yy1455; + if (yych == 't') + goto yy1455; + goto yy1417; + yy1471: + yych = *++p; + if (yych == 'A') + goto yy1472; + if (yych != 'a') + goto yy1417; + yy1472: + yych = *++p; + if (yych == 'D') + goto yy1455; + if (yych == 'd') + goto yy1455; + goto yy1417; + yy1473: + yych = *++p; + if (yych == 'L') + goto yy1474; + if (yych != 'l') + goto yy1417; + yy1474: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1475: + yych = *++p; + if (yych == 'C') + goto yy1476; + if (yych != 'c') + goto yy1417; + yy1476: + yych = *++p; + if (yych == 'K') + goto yy1455; + if (yych == 'k') + goto yy1455; + goto yy1417; + yy1477: + yych = *++p; + if (yych == 'Y') + goto yy1499; + if (yych == 'y') + goto yy1499; + goto yy1417; + yy1478: + yych = *++p; + if (yych == 'R') + goto yy1493; + if (yych == 'r') + goto yy1493; + goto yy1417; + yy1479: + yych = *++p; + if (yych == 'M') + goto yy1489; + if (yych == 'm') + goto yy1489; + goto yy1417; + yy1480: + yych = *++p; + if (yych == 'U') + goto yy1486; + if (yych == 'u') + goto yy1486; + goto yy1417; + yy1481: + yych = *++p; + if (yych == 'C') + goto yy1482; + if (yych != 'c') + goto yy1417; + yy1482: + yych = *++p; + if (yych == 'T') + goto yy1483; + if (yych != 't') + goto yy1417; + yy1483: + yych = *++p; + if (yych == 'I') + goto yy1484; + if (yych != 'i') + goto yy1417; + yy1484: + yych = *++p; + if (yych == 'O') + goto yy1485; + if (yych != 'o') + goto yy1417; + yy1485: + yych = *++p; + if (yych == 'N') + goto yy1455; + if (yych == 'n') + goto yy1455; + goto yy1417; + yy1486: + yych = *++p; + if (yych == 'R') + goto yy1487; + if (yych != 'r') + goto yy1417; + yy1487: + yych = *++p; + if (yych == 'C') + goto yy1488; + if (yych != 'c') + goto yy1417; + yy1488: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1489: + yych = *++p; + if (yych == 'M') + goto yy1490; + if (yych != 'm') + goto yy1417; + yy1490: + yych = *++p; + if (yych == 'A') + goto yy1491; + if (yych != 'a') + goto yy1417; + yy1491: + yych = *++p; + if (yych == 'R') + goto yy1492; + if (yych != 'r') + goto yy1417; + yy1492: + yych = *++p; + if (yych == 'Y') + goto yy1455; + if (yych == 'y') + goto yy1455; + goto yy1417; + yy1493: + yych = *++p; + if (yych == 'I') + goto yy1494; + if (yych != 'i') + goto yy1417; + yy1494: + yych = *++p; + if (yych == 'P') + goto yy1495; + if (yych != 'p') + goto yy1417; + yy1495: + yych = *++p; + if (yych == 'T') + goto yy1496; + if (yych != 't') + goto yy1417; + yy1496: + yych = *++p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych >= 0x0E) + goto yy1417; + } else { + if (yych <= ' ') + goto yy1497; + if (yych != '>') + goto yy1417; + } + yy1497: + ++p; + yy1498 : { return 1; } + yy1499: + yych = *++p; + if (yych == 'L') + goto yy1500; + if (yych != 'l') + goto yy1417; + yy1500: + yych = *++p; + if (yych == 'E') + goto yy1496; + if (yych == 'e') + goto yy1496; + goto yy1417; + yy1501: + yych = *++p; + if (yych == 'T') + goto yy1502; + if (yych != 't') + goto yy1417; + yy1502: + yych = *++p; + if (yych <= 'I') { + if (yych == 'G') + goto yy1504; + if (yych <= 'H') + goto yy1417; + } else { + if (yych <= 'g') { + if (yych <= 'f') + goto yy1417; + goto yy1504; + } else { + if (yych != 'i') + goto yy1417; + } + } + yych = *++p; + if (yych == 'O') + goto yy1508; + if (yych == 'o') + goto yy1508; + goto yy1417; + yy1504: + yych = *++p; + if (yych == 'R') + goto yy1505; + if (yych != 'r') + goto yy1417; + yy1505: + yych = *++p; + if (yych == 'O') + goto yy1506; + if (yych != 'o') + goto yy1417; + yy1506: + yych = *++p; + if (yych == 'U') + goto yy1507; + if (yych != 'u') + goto yy1417; + yy1507: + yych = *++p; + if (yych == 'P') + goto yy1455; + if (yych == 'p') + goto yy1455; + goto yy1417; + yy1508: + yych = *++p; + if (yych == 'N') + goto yy1455; + if (yych == 'n') + goto yy1455; + goto yy1417; + yy1509: + yych = *++p; + if (yych == 'F') + goto yy1511; + if (yych == 'f') + goto yy1511; + goto yy1417; + yy1510: + yych = *++p; + if (yych == 'V') + goto yy1455; + if (yych == 'v') + goto yy1455; + goto yy1417; + yy1511: + yych = *++p; + if (yych == 'R') + goto yy1512; + if (yych != 'r') + goto yy1417; + yy1512: + yych = *++p; + if (yych == 'A') + goto yy1513; + if (yych != 'a') + goto yy1417; + yy1513: + yych = *++p; + if (yych == 'M') + goto yy1514; + if (yych != 'm') + goto yy1417; + yy1514: + yych = *++p; + if (yych == 'E') + goto yy1515; + if (yych != 'e') + goto yy1417; + yy1515: + yych = *++p; + if (yych == 'S') + goto yy1455; + if (yych == 's') + goto yy1455; + goto yy1417; + yy1516: + yych = *++p; + if (yych <= 'T') { + if (yych == 'N') + goto yy1519; + if (yych <= 'S') + goto yy1417; + goto yy1520; + } else { + if (yych <= 'n') { + if (yych <= 'm') + goto yy1417; + goto yy1519; + } else { + if (yych == 't') + goto yy1520; + goto yy1417; + } + } + yy1517: + yych = *++p; + if (yych == 'I') + goto yy1518; + if (yych != 'i') + goto yy1417; + yy1518: + yych = *++p; + if (yych == 'N') + goto yy1455; + if (yych == 'n') + goto yy1455; + goto yy1417; + yy1519: + yych = *++p; + if (yych == 'U') + goto yy1521; + if (yych == 'u') + goto yy1521; + goto yy1417; + yy1520: + yych = *++p; + if (yych == 'A') + goto yy1455; + if (yych == 'a') + goto yy1455; + goto yy1417; + yy1521: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'H') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'I') + goto yy1522; + if (yych != 'i') + goto yy1417; + } + } + yy1522: + yych = *++p; + if (yych == 'T') + goto yy1523; + if (yych != 't') + goto yy1417; + yy1523: + yych = *++p; + if (yych == 'E') + goto yy1524; + if (yych != 'e') + goto yy1417; + yy1524: + yych = *++p; + if (yych == 'M') + goto yy1455; + if (yych == 'm') + goto yy1455; + goto yy1417; + yy1525: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'M') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'N') + goto yy1530; + if (yych == 'n') + goto yy1530; + goto yy1417; + } + } + yy1526: + yych = *++p; + if (yych == 'G') + goto yy1527; + if (yych != 'g') + goto yy1417; + yy1527: + yych = *++p; + if (yych == 'E') + goto yy1528; + if (yych != 'e') + goto yy1417; + yy1528: + yych = *++p; + if (yych == 'N') + goto yy1529; + if (yych != 'n') + goto yy1417; + yy1529: + yych = *++p; + if (yych == 'D') + goto yy1455; + if (yych == 'd') + goto yy1455; + goto yy1417; + yy1530: + yych = *++p; + if (yych == 'K') + goto yy1455; + if (yych == 'k') + goto yy1455; + goto yy1417; + yy1531: + yych = *++p; + if (yych == 'M') + goto yy1536; + if (yych == 'm') + goto yy1536; + goto yy1417; + yy1532: + yych = *++p; + if (yych == 'A') + goto yy1533; + if (yych != 'a') + goto yy1417; + yy1533: + yych = *++p; + if (yych == 'D') + goto yy1534; + if (yych != 'd') + goto yy1417; + yy1534: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'E') + goto yy1535; + if (yych != 'e') + goto yy1417; + } + } + yy1535: + yych = *++p; + if (yych == 'R') + goto yy1455; + if (yych == 'r') + goto yy1455; + goto yy1417; + yy1536: + yych = *++p; + if (yych == 'L') + goto yy1455; + if (yych == 'l') + goto yy1455; + goto yy1417; + yy1537: + yych = *++p; + if (yych == 'A') + goto yy1558; + if (yych == 'a') + goto yy1558; + goto yy1417; + yy1538: + yych = *++p; + if (yych <= 'R') { + if (yych == 'O') + goto yy1554; + if (yych <= 'Q') + goto yy1417; + goto yy1555; + } else { + if (yych <= 'o') { + if (yych <= 'n') + goto yy1417; + goto yy1554; + } else { + if (yych == 'r') + goto yy1555; + goto yy1417; + } + } + yy1539: + yych = *++p; + if (yych <= 'G') { + if (yych == 'E') + goto yy1540; + if (yych <= 'F') + goto yy1417; + goto yy1541; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy1417; + } else { + if (yych == 'g') + goto yy1541; + goto yy1417; + } + } + yy1540: + yych = *++p; + if (yych == 'L') + goto yy1550; + if (yych == 'l') + goto yy1550; + goto yy1417; + yy1541: + yych = *++p; + if (yych <= 'U') { + if (yych == 'C') + goto yy1543; + if (yych <= 'T') + goto yy1417; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy1417; + goto yy1543; + } else { + if (yych != 'u') + goto yy1417; + } + } + yych = *++p; + if (yych == 'R') + goto yy1549; + if (yych == 'r') + goto yy1549; + goto yy1417; + yy1543: + yych = *++p; + if (yych == 'A') + goto yy1544; + if (yych != 'a') + goto yy1417; + yy1544: + yych = *++p; + if (yych == 'P') + goto yy1545; + if (yych != 'p') + goto yy1417; + yy1545: + yych = *++p; + if (yych == 'T') + goto yy1546; + if (yych != 't') + goto yy1417; + yy1546: + yych = *++p; + if (yych == 'I') + goto yy1547; + if (yych != 'i') + goto yy1417; + yy1547: + yych = *++p; + if (yych == 'O') + goto yy1548; + if (yych != 'o') + goto yy1417; + yy1548: + yych = *++p; + if (yych == 'N') + goto yy1455; + if (yych == 'n') + goto yy1455; + goto yy1417; + yy1549: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1550: + yych = *++p; + if (yych == 'D') + goto yy1551; + if (yych != 'd') + goto yy1417; + yy1551: + yych = *++p; + if (yych == 'S') + goto yy1552; + if (yych != 's') + goto yy1417; + yy1552: + yych = *++p; + if (yych == 'E') + goto yy1553; + if (yych != 'e') + goto yy1417; + yy1553: + yych = *++p; + if (yych == 'T') + goto yy1455; + if (yych == 't') + goto yy1455; + goto yy1417; + yy1554: + yych = *++p; + if (yych == 'T') + goto yy1556; + if (yych == 't') + goto yy1556; + goto yy1417; + yy1555: + yych = *++p; + if (yych == 'M') + goto yy1455; + if (yych == 'm') + goto yy1455; + goto yy1417; + yy1556: + yych = *++p; + if (yych == 'E') + goto yy1557; + if (yych != 'e') + goto yy1417; + yy1557: + yych = *++p; + if (yych == 'R') + goto yy1455; + if (yych == 'r') + goto yy1455; + goto yy1417; + yy1558: + yych = *++p; + if (yych == 'M') + goto yy1559; + if (yych != 'm') + goto yy1417; + yy1559: + yych = *++p; + if (yych == 'E') + goto yy1560; + if (yych != 'e') + goto yy1417; + yy1560: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'R') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'S') + goto yy1561; + if (yych != 's') + goto yy1417; + } + } + yy1561: + yych = *++p; + if (yych == 'E') + goto yy1562; + if (yych != 'e') + goto yy1417; + yy1562: + yych = *++p; + if (yych == 'T') + goto yy1455; + if (yych == 't') + goto yy1455; + goto yy1417; + yy1563: + yych = *++p; + if (yych <= 'V') { + if (yych <= 'Q') { + if (yych == 'A') + goto yy1569; + goto yy1417; + } else { + if (yych <= 'R') + goto yy1455; + if (yych <= 'U') + goto yy1417; + goto yy1455; + } + } else { + if (yych <= 'q') { + if (yych == 'a') + goto yy1569; + goto yy1417; + } else { + if (yych <= 'r') + goto yy1455; + if (yych == 'v') + goto yy1455; + goto yy1417; + } + } + yy1564: + yych = *++p; + if (yych == 'T') + goto yy1565; + if (yych != 't') + goto yy1417; + yy1565: + yych = *++p; + if (yych == 'A') + goto yy1566; + if (yych != 'a') + goto yy1417; + yy1566: + yych = *++p; + if (yych == 'I') + goto yy1567; + if (yych != 'i') + goto yy1417; + yy1567: + yych = *++p; + if (yych == 'L') + goto yy1568; + if (yych != 'l') + goto yy1417; + yy1568: + yych = *++p; + if (yych == 'S') + goto yy1455; + if (yych == 's') + goto yy1455; + goto yy1417; + yy1569: + yych = *++p; + if (yych == 'L') + goto yy1570; + if (yych != 'l') + goto yy1417; + yy1570: + yych = *++p; + if (yych == 'O') + goto yy1571; + if (yych != 'o') + goto yy1417; + yy1571: + yych = *++p; + if (yych == 'G') + goto yy1455; + if (yych == 'g') + goto yy1455; + goto yy1417; + yy1572: + yych = *++p; + if (yych == 'L') + goto yy1582; + if (yych == 'l') + goto yy1582; + goto yy1417; + yy1573: + yych = *++p; + if (yych == 'N') + goto yy1579; + if (yych == 'n') + goto yy1579; + goto yy1417; + yy1574: + yych = *++p; + if (yych == 'P') + goto yy1575; + if (yych != 'p') + goto yy1417; + yy1575: + yych = *++p; + if (yych == 'T') + goto yy1576; + if (yych != 't') + goto yy1417; + yy1576: + yych = *++p; + if (yych == 'I') + goto yy1577; + if (yych != 'i') + goto yy1417; + yy1577: + yych = *++p; + if (yych == 'O') + goto yy1578; + if (yych != 'o') + goto yy1417; + yy1578: + yych = *++p; + if (yych == 'N') + goto yy1455; + if (yych == 'n') + goto yy1455; + goto yy1417; + yy1579: + yych = *++p; + if (yych == 'T') + goto yy1580; + if (yych != 't') + goto yy1417; + yy1580: + yych = *++p; + if (yych == 'E') + goto yy1581; + if (yych != 'e') + goto yy1417; + yy1581: + yych = *++p; + if (yych == 'R') + goto yy1455; + if (yych == 'r') + goto yy1455; + goto yy1417; + yy1582: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'F') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'G') + goto yy1583; + if (yych != 'g') + goto yy1417; + } + } + yy1583: + yych = *++p; + if (yych == 'R') + goto yy1584; + if (yych != 'r') + goto yy1417; + yy1584: + yych = *++p; + if (yych == 'O') + goto yy1585; + if (yych != 'o') + goto yy1417; + yy1585: + yych = *++p; + if (yych == 'U') + goto yy1586; + if (yych != 'u') + goto yy1417; + yy1586: + yych = *++p; + if (yych == 'P') + goto yy1455; + if (yych == 'p') + goto yy1455; + goto yy1417; + yy1587: + yych = *++p; + if (yych == 'D') + goto yy1602; + if (yych == 'd') + goto yy1602; + goto yy1417; + yy1588: + yych = *++p; + if (yych == 'O') + goto yy1595; + if (yych == 'o') + goto yy1595; + goto yy1417; + yy1589: + yych = *++p; + if (yych == 'S') + goto yy1590; + if (yych != 's') + goto yy1417; + yy1590: + yych = *++p; + if (yych == 'E') + goto yy1591; + if (yych != 'e') + goto yy1417; + yy1591: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + goto yy1417; + } else { + if (yych <= ' ') + goto yy1456; + if (yych <= '.') + goto yy1417; + goto yy1458; + } + } else { + if (yych <= 'E') { + if (yych == '>') + goto yy1456; + goto yy1417; + } else { + if (yych <= 'F') + goto yy1592; + if (yych != 'f') + goto yy1417; + } + } + yy1592: + yych = *++p; + if (yych == 'O') + goto yy1593; + if (yych != 'o') + goto yy1417; + yy1593: + yych = *++p; + if (yych == 'N') + goto yy1594; + if (yych != 'n') + goto yy1417; + yy1594: + yych = *++p; + if (yych == 'T') + goto yy1455; + if (yych == 't') + goto yy1455; + goto yy1417; + yy1595: + yych = *++p; + if (yych == 'C') + goto yy1596; + if (yych != 'c') + goto yy1417; + yy1596: + yych = *++p; + if (yych == 'K') + goto yy1597; + if (yych != 'k') + goto yy1417; + yy1597: + yych = *++p; + if (yych == 'Q') + goto yy1598; + if (yych != 'q') + goto yy1417; + yy1598: + yych = *++p; + if (yych == 'U') + goto yy1599; + if (yych != 'u') + goto yy1417; + yy1599: + yych = *++p; + if (yych == 'O') + goto yy1600; + if (yych != 'o') + goto yy1417; + yy1600: + yych = *++p; + if (yych == 'T') + goto yy1601; + if (yych != 't') + goto yy1417; + yy1601: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1602: + yych = *++p; + if (yych == 'Y') + goto yy1455; + if (yych == 'y') + goto yy1455; + goto yy1417; + yy1603: + yych = *++p; + if (yych == 'I') + goto yy1614; + if (yych == 'i') + goto yy1614; + goto yy1417; + yy1604: + yych = *++p; + if (yych == 'T') + goto yy1610; + if (yych == 't') + goto yy1610; + goto yy1417; + yy1605: + yych = *++p; + if (yych == 'D') + goto yy1606; + if (yych != 'd') + goto yy1417; + yy1606: + yych = *++p; + if (yych == 'R') + goto yy1607; + if (yych != 'r') + goto yy1417; + yy1607: + yych = *++p; + if (yych == 'E') + goto yy1608; + if (yych != 'e') + goto yy1417; + yy1608: + yych = *++p; + if (yych == 'S') + goto yy1609; + if (yych != 's') + goto yy1417; + yy1609: + yych = *++p; + if (yych == 'S') + goto yy1455; + if (yych == 's') + goto yy1455; + goto yy1417; + yy1610: + yych = *++p; + if (yych == 'I') + goto yy1611; + if (yych != 'i') + goto yy1417; + yy1611: + yych = *++p; + if (yych == 'C') + goto yy1612; + if (yych != 'c') + goto yy1417; + yy1612: + yych = *++p; + if (yych == 'L') + goto yy1613; + if (yych != 'l') + goto yy1417; + yy1613: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1614: + yych = *++p; + if (yych == 'D') + goto yy1615; + if (yych != 'd') + goto yy1417; + yy1615: + yych = *++p; + if (yych == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + yy1616: + yych = *++p; + if (yych == 'E') + goto yy1620; + if (yych == 'e') + goto yy1620; + goto yy1417; + yy1617: + yych = *++p; + if (yych == 'R') + goto yy1618; + if (yych != 'r') + goto yy1417; + yy1618: + yych = *++p; + if (yych == 'A') + goto yy1619; + if (yych != 'a') + goto yy1417; + yy1619: + yych = *++p; + if (yych == 'M') + goto yy1455; + if (yych == 'm') + goto yy1455; + goto yy1417; + yy1620: + yych = *++p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1621; + if (yych <= 0x1F) + goto yy1417; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1417; + goto yy1458; + } else { + if (yych != '>') + goto yy1417; + } + } + yy1621: + yych = *++p; + goto yy1498; + yy1622: + yych = *++p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1417; + if (yych <= '\r') + goto yy1456; + if (yych <= 0x1F) + goto yy1417; + goto yy1456; + } else { + if (yych == '/') + goto yy1458; + if (yych <= '=') + goto yy1417; + goto yy1456; + } + } else { + if (yych <= 'R') { + if (yych == 'A') + goto yy1617; + if (yych <= 'Q') + goto yy1417; + goto yy1624; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy1417; + goto yy1617; + } else { + if (yych == 'r') + goto yy1624; + goto yy1417; + } + } + } + yy1623: + yych = *++p; + if (yych <= 'U') { + if (yych <= 'N') { + if (yych == 'E') + goto yy1481; + goto yy1417; + } else { + if (yych <= 'O') + goto yy1480; + if (yych <= 'T') + goto yy1417; + goto yy1479; + } + } else { + if (yych <= 'n') { + if (yych == 'e') + goto yy1481; + goto yy1417; + } else { + if (yych <= 'o') + goto yy1480; + if (yych == 'u') + goto yy1479; + goto yy1417; + } + } + yy1624: + ++p; + if ((yych = *p) == 'E') + goto yy1455; + if (yych == 'e') + goto yy1455; + goto yy1417; + } } // 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, 202, 194, 198, 194, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 198, 224, 64, 224, 224, 224, 224, 128, - 224, 224, 224, 224, 224, 241, 240, 224, - 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 240, 224, 192, 192, 192, 224, - 224, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 224, 224, 224, 224, 240, - 192, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= ';') { - if (yych != '\n') goto yy1629; - } else { - if (yych <= '<') goto yy1628; - if (yych <= 0x7F) goto yy1629; - if (yych >= 0xC2) goto yy1630; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1632; - if (yych == 0xED) goto yy1637; - goto yy1633; - } else { - if (yych <= 0xF0) goto yy1634; - if (yych <= 0xF3) goto yy1635; - if (yych <= 0xF4) goto yy1636; - } - } -yy1627: - { return 0; } -yy1628: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '@') { - if (yych == '/') goto yy1640; - goto yy1627; - } else { - if (yych <= 'Z') goto yy1638; - if (yych <= '`') goto yy1627; - if (yych <= 'z') goto yy1638; - goto yy1627; - } -yy1629: - yych = *++p; - goto yy1627; -yy1630: - yych = *++p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1629; -yy1631: - p = marker; - if (yyaccept == 0) { - goto yy1627; - } else { - goto yy1649; - } -yy1632: - yych = *++p; - if (yych <= 0x9F) goto yy1631; - if (yych <= 0xBF) goto yy1630; - goto yy1631; -yy1633: - yych = *++p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1630; - goto yy1631; -yy1634: - yych = *++p; - if (yych <= 0x8F) goto yy1631; - if (yych <= 0xBF) goto yy1633; - goto yy1631; -yy1635: - yych = *++p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1633; - goto yy1631; -yy1636: - yych = *++p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x8F) goto yy1633; - goto yy1631; -yy1637: - yych = *++p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x9F) goto yy1630; - goto yy1631; -yy1638: - ++p; - yych = *p; - if (yybm[0+yych] & 1) { - goto yy1638; - } - if (yych <= ' ') { - if (yych <= 0x08) goto yy1631; - if (yych <= '\r') goto yy1651; - if (yych <= 0x1F) goto yy1631; - goto yy1651; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1631; - goto yy1653; - } else { - if (yych == '>') goto yy1645; - goto yy1631; - } - } -yy1640: - yych = *++p; - if (yych <= '@') goto yy1631; - if (yych <= 'Z') goto yy1641; - if (yych <= '`') goto yy1631; - if (yych >= '{') goto yy1631; -yy1641: - ++p; - yych = *p; - if (yybm[0+yych] & 2) { - goto yy1643; - } - if (yych <= '=') { - if (yych <= '-') { - if (yych <= ',') goto yy1631; - goto yy1641; - } else { - if (yych <= '/') goto yy1631; - if (yych <= '9') goto yy1641; - goto yy1631; - } - } else { - if (yych <= 'Z') { - if (yych <= '>') goto yy1645; - if (yych <= '@') goto yy1631; - goto yy1641; - } else { - if (yych <= '`') goto yy1631; - if (yych <= 'z') goto yy1641; - goto yy1631; - } - } -yy1643: - ++p; - yych = *p; - if (yybm[0+yych] & 2) { - goto yy1643; - } - if (yych != '>') goto yy1631; -yy1645: - ++p; - yych = *p; - if (yybm[0+yych] & 4) { - goto yy1645; - } - if (yych <= 0x08) goto yy1631; - if (yych <= '\n') goto yy1647; - if (yych <= '\v') goto yy1631; - if (yych <= '\r') goto yy1650; - goto yy1631; -yy1647: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 4) { - goto yy1645; - } - if (yych <= 0x08) goto yy1649; - if (yych <= '\n') goto yy1647; - if (yych <= '\v') goto yy1649; - if (yych <= '\r') goto yy1650; -yy1649: - { return 7; } -yy1650: - yych = *++p; - goto yy1649; -yy1651: - ++p; - yych = *p; - if (yych <= ':') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1631; - if (yych <= '\r') goto yy1651; - if (yych <= 0x1F) goto yy1631; - goto yy1651; - } else { - if (yych == '/') goto yy1653; - if (yych <= '9') goto yy1631; - goto yy1654; - } - } else { - if (yych <= 'Z') { - if (yych == '>') goto yy1645; - if (yych <= '@') goto yy1631; - goto yy1654; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy1631; - goto yy1654; - } else { - if (yych <= '`') goto yy1631; - if (yych <= 'z') goto yy1654; - goto yy1631; - } - } - } -yy1653: - yych = *++p; - if (yych == '>') goto yy1645; - goto yy1631; -yy1654: - ++p; - yych = *p; - if (yybm[0+yych] & 16) { - goto yy1654; - } - if (yych <= ',') { - if (yych <= '\r') { - if (yych <= 0x08) goto yy1631; - } else { - if (yych != ' ') goto yy1631; - } - } else { - if (yych <= '<') { - if (yych <= '/') goto yy1653; - goto yy1631; - } else { - if (yych <= '=') goto yy1658; - if (yych <= '>') goto yy1645; - goto yy1631; - } - } -yy1656: - ++p; - yych = *p; - if (yych <= '<') { - if (yych <= ' ') { - if (yych <= 0x08) goto yy1631; - if (yych <= '\r') goto yy1656; - if (yych <= 0x1F) goto yy1631; - goto yy1656; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1631; - goto yy1653; - } else { - if (yych == ':') goto yy1654; - goto yy1631; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '=') goto yy1658; - if (yych <= '>') goto yy1645; - if (yych <= '@') goto yy1631; - goto yy1654; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy1631; - goto yy1654; - } else { - if (yych <= '`') goto yy1631; - if (yych <= 'z') goto yy1654; - goto yy1631; - } - } - } -yy1658: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1660; - } - if (yych <= 0xE0) { - if (yych <= '"') { - if (yych <= 0x00) goto yy1631; - if (yych >= '!') goto yy1671; - } else { - if (yych <= '\'') goto yy1669; - if (yych <= 0xC1) goto yy1631; - if (yych <= 0xDF) goto yy1662; - goto yy1663; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1660; - } - if (yych <= 0xDF) { - if (yych <= '\'') { - if (yych <= 0x00) goto yy1631; - if (yych <= ' ') goto yy1694; - if (yych <= '"') goto yy1671; - goto yy1669; - } else { - if (yych == '>') goto yy1645; - if (yych <= 0xC1) goto yy1631; - goto yy1662; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1663; - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } -yy1660: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1660; - } - if (yych <= 0xE0) { - if (yych <= '=') { - if (yych <= 0x00) goto yy1631; - if (yych <= ' ') goto yy1688; - goto yy1631; - } else { - if (yych <= '>') goto yy1645; - if (yych <= 0xC1) goto yy1631; - if (yych >= 0xE0) goto yy1663; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } -yy1662: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1660; - goto yy1631; -yy1663: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1631; - if (yych <= 0xBF) goto yy1662; - goto yy1631; -yy1664: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1662; - goto yy1631; -yy1665: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1631; - if (yych <= 0xBF) goto yy1664; - goto yy1631; -yy1666: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1664; - goto yy1631; -yy1667: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x8F) goto yy1664; - goto yy1631; -yy1668: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x9F) goto yy1662; - goto yy1631; -yy1669: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1669; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1631; - if (yych <= '\'') goto yy1680; - goto yy1631; - } else { - if (yych <= 0xDF) goto yy1681; - if (yych <= 0xE0) goto yy1682; - goto yy1683; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1687; - if (yych <= 0xEF) goto yy1683; - goto yy1684; - } else { - if (yych <= 0xF3) goto yy1685; - if (yych <= 0xF4) goto yy1686; - goto yy1631; - } - } -yy1671: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1671; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy1631; - if (yych <= '"') goto yy1680; - goto yy1631; - } else { - if (yych <= 0xDF) goto yy1673; - if (yych <= 0xE0) goto yy1674; - goto yy1675; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1679; - if (yych <= 0xEF) goto yy1675; - goto yy1676; - } else { - if (yych <= 0xF3) goto yy1677; - if (yych <= 0xF4) goto yy1678; - goto yy1631; - } - } -yy1673: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1671; - goto yy1631; -yy1674: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1631; - if (yych <= 0xBF) goto yy1673; - goto yy1631; -yy1675: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1673; - goto yy1631; -yy1676: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1631; - if (yych <= 0xBF) goto yy1675; - goto yy1631; -yy1677: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1675; - goto yy1631; -yy1678: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x8F) goto yy1675; - goto yy1631; -yy1679: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x9F) goto yy1673; - goto yy1631; -yy1680: - ++p; - yych = *p; - if (yych <= ' ') { - if (yych <= 0x08) goto yy1631; - if (yych <= '\r') goto yy1651; - if (yych <= 0x1F) goto yy1631; - goto yy1651; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy1631; - goto yy1653; - } else { - if (yych == '>') goto yy1645; - goto yy1631; - } - } -yy1681: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1669; - goto yy1631; -yy1682: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1631; - if (yych <= 0xBF) goto yy1681; - goto yy1631; -yy1683: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1681; - goto yy1631; -yy1684: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1631; - if (yych <= 0xBF) goto yy1683; - goto yy1631; -yy1685: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0xBF) goto yy1683; - goto yy1631; -yy1686: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x8F) goto yy1683; - goto yy1631; -yy1687: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1631; - if (yych <= 0x9F) goto yy1681; - goto yy1631; -yy1688: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '"') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy1631; - if (yych <= 0x08) goto yy1660; - goto yy1688; - } else { - if (yych == ' ') goto yy1688; - if (yych <= '!') goto yy1660; - goto yy1631; - } - } else { - if (yych <= ':') { - if (yych == '\'') goto yy1631; - if (yych <= '9') goto yy1660; - } else { - if (yych <= ';') goto yy1660; - if (yych <= '=') goto yy1631; - if (yych <= '>') goto yy1645; - goto yy1660; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1690; - if (yych <= '^') goto yy1660; - if (yych >= '`') goto yy1631; - } else { - if (yych <= 'z') goto yy1690; - if (yych <= 0x7F) goto yy1660; - if (yych <= 0xC1) goto yy1631; - goto yy1662; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1663; - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } - } -yy1690: - ++p; - yych = *p; - if (yych <= '>') { - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1631; - if (yych <= 0x08) goto yy1660; - if (yych >= 0x0E) goto yy1660; - } else { - if (yych <= ' ') goto yy1692; - if (yych == '"') goto yy1631; - goto yy1660; - } - } else { - if (yych <= '/') { - if (yych <= '\'') goto yy1631; - if (yych <= ',') goto yy1660; - if (yych <= '.') goto yy1690; - goto yy1660; - } else { - if (yych <= ';') { - if (yych <= ':') goto yy1690; - goto yy1660; - } else { - if (yych <= '<') goto yy1631; - if (yych <= '=') goto yy1658; - goto yy1645; - } - } - } - } else { - if (yych <= 0xC1) { - if (yych <= '_') { - if (yych <= '@') goto yy1660; - if (yych <= 'Z') goto yy1690; - if (yych <= '^') goto yy1660; - goto yy1690; - } else { - if (yych <= '`') goto yy1631; - if (yych <= 'z') goto yy1690; - if (yych <= 0x7F) goto yy1660; - goto yy1631; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1662; - if (yych <= 0xE0) goto yy1663; - if (yych <= 0xEC) goto yy1664; - goto yy1668; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1664; - goto yy1665; - } else { - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } - } - } -yy1692: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1631; - if (yych <= 0x08) goto yy1660; - if (yych <= '\r') goto yy1692; - goto yy1660; - } else { - if (yych <= ' ') goto yy1692; - if (yych == '"') goto yy1631; - goto yy1660; - } - } else { - if (yych <= ';') { - if (yych <= '\'') goto yy1631; - if (yych == ':') goto yy1690; - goto yy1660; - } else { - if (yych <= '<') goto yy1631; - if (yych <= '=') goto yy1658; - if (yych <= '>') goto yy1645; - goto yy1660; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1690; - if (yych <= '^') goto yy1660; - if (yych <= '_') goto yy1690; - goto yy1631; - } else { - if (yych <= 'z') goto yy1690; - if (yych <= 0x7F) goto yy1660; - if (yych <= 0xC1) goto yy1631; - goto yy1662; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1663; - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } - } -yy1694: - ++p; - yych = *p; - if (yych <= '@') { - if (yych <= '"') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy1631; - if (yych <= 0x08) goto yy1660; - goto yy1694; - } else { - if (yych == ' ') goto yy1694; - if (yych <= '!') goto yy1660; - goto yy1671; - } - } else { - if (yych <= ':') { - if (yych == '\'') goto yy1669; - if (yych <= '9') goto yy1660; - goto yy1690; - } else { - if (yych <= ';') goto yy1660; - if (yych <= '=') goto yy1631; - if (yych <= '>') goto yy1645; - goto yy1660; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= '`') { - if (yych <= 'Z') goto yy1690; - if (yych <= '^') goto yy1660; - if (yych <= '_') goto yy1690; - goto yy1631; - } else { - if (yych <= 'z') goto yy1690; - if (yych <= 0x7F) goto yy1660; - if (yych <= 0xC1) goto yy1631; - goto yy1662; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1663; - if (yych == 0xED) goto yy1668; - goto yy1664; - } else { - if (yych <= 0xF0) goto yy1665; - if (yych <= 0xF3) goto yy1666; - if (yych <= 0xF4) goto yy1667; - goto yy1631; - } - } - } -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 198, 224, 64, 224, 224, 224, 224, 128, 224, 224, + 224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= ';') { + if (yych != '\n') + goto yy1629; + } else { + if (yych <= '<') + goto yy1628; + if (yych <= 0x7F) + goto yy1629; + if (yych >= 0xC2) + goto yy1630; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1632; + if (yych == 0xED) + goto yy1637; + goto yy1633; + } else { + if (yych <= 0xF0) + goto yy1634; + if (yych <= 0xF3) + goto yy1635; + if (yych <= 0xF4) + goto yy1636; + } + } + yy1627 : { return 0; } + yy1628: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '@') { + if (yych == '/') + goto yy1640; + goto yy1627; + } else { + if (yych <= 'Z') + goto yy1638; + if (yych <= '`') + goto yy1627; + if (yych <= 'z') + goto yy1638; + goto yy1627; + } + yy1629: + yych = *++p; + goto yy1627; + yy1630: + yych = *++p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1629; + yy1631: + p = marker; + if (yyaccept == 0) { + goto yy1627; + } else { + goto yy1649; + } + yy1632: + yych = *++p; + if (yych <= 0x9F) + goto yy1631; + if (yych <= 0xBF) + goto yy1630; + goto yy1631; + yy1633: + yych = *++p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1630; + goto yy1631; + yy1634: + yych = *++p; + if (yych <= 0x8F) + goto yy1631; + if (yych <= 0xBF) + goto yy1633; + goto yy1631; + yy1635: + yych = *++p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1633; + goto yy1631; + yy1636: + yych = *++p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x8F) + goto yy1633; + goto yy1631; + yy1637: + yych = *++p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x9F) + goto yy1630; + goto yy1631; + yy1638: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy1638; + } + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1631; + if (yych <= '\r') + goto yy1651; + if (yych <= 0x1F) + goto yy1631; + goto yy1651; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1631; + goto yy1653; + } else { + if (yych == '>') + goto yy1645; + goto yy1631; + } + } + yy1640: + yych = *++p; + if (yych <= '@') + goto yy1631; + if (yych <= 'Z') + goto yy1641; + if (yych <= '`') + goto yy1631; + if (yych >= '{') + goto yy1631; + yy1641: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy1643; + } + if (yych <= '=') { + if (yych <= '-') { + if (yych <= ',') + goto yy1631; + goto yy1641; + } else { + if (yych <= '/') + goto yy1631; + if (yych <= '9') + goto yy1641; + goto yy1631; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy1645; + if (yych <= '@') + goto yy1631; + goto yy1641; + } else { + if (yych <= '`') + goto yy1631; + if (yych <= 'z') + goto yy1641; + goto yy1631; + } + } + yy1643: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy1643; + } + if (yych != '>') + goto yy1631; + yy1645: + ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy1645; + } + if (yych <= 0x08) + goto yy1631; + if (yych <= '\n') + goto yy1647; + if (yych <= '\v') + goto yy1631; + if (yych <= '\r') + goto yy1650; + goto yy1631; + yy1647: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy1645; + } + if (yych <= 0x08) + goto yy1649; + if (yych <= '\n') + goto yy1647; + if (yych <= '\v') + goto yy1649; + if (yych <= '\r') + goto yy1650; + yy1649 : { return 7; } + yy1650: + yych = *++p; + goto yy1649; + yy1651: + ++p; + yych = *p; + if (yych <= ':') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1631; + if (yych <= '\r') + goto yy1651; + if (yych <= 0x1F) + goto yy1631; + goto yy1651; + } else { + if (yych == '/') + goto yy1653; + if (yych <= '9') + goto yy1631; + goto yy1654; + } + } else { + if (yych <= 'Z') { + if (yych == '>') + goto yy1645; + if (yych <= '@') + goto yy1631; + goto yy1654; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy1631; + goto yy1654; + } else { + if (yych <= '`') + goto yy1631; + if (yych <= 'z') + goto yy1654; + goto yy1631; + } + } + } + yy1653: + yych = *++p; + if (yych == '>') + goto yy1645; + goto yy1631; + yy1654: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy1654; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy1631; + } else { + if (yych != ' ') + goto yy1631; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy1653; + goto yy1631; + } else { + if (yych <= '=') + goto yy1658; + if (yych <= '>') + goto yy1645; + goto yy1631; + } + } + yy1656: + ++p; + yych = *p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1631; + if (yych <= '\r') + goto yy1656; + if (yych <= 0x1F) + goto yy1631; + goto yy1656; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1631; + goto yy1653; + } else { + if (yych == ':') + goto yy1654; + goto yy1631; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy1658; + if (yych <= '>') + goto yy1645; + if (yych <= '@') + goto yy1631; + goto yy1654; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy1631; + goto yy1654; + } else { + if (yych <= '`') + goto yy1631; + if (yych <= 'z') + goto yy1654; + goto yy1631; + } + } + } + yy1658: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1660; + } + if (yych <= 0xE0) { + if (yych <= '"') { + if (yych <= 0x00) + goto yy1631; + if (yych >= '!') + goto yy1671; + } else { + if (yych <= '\'') + goto yy1669; + if (yych <= 0xC1) + goto yy1631; + if (yych <= 0xDF) + goto yy1662; + goto yy1663; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1660; + } + if (yych <= 0xDF) { + if (yych <= '\'') { + if (yych <= 0x00) + goto yy1631; + if (yych <= ' ') + goto yy1694; + if (yych <= '"') + goto yy1671; + goto yy1669; + } else { + if (yych == '>') + goto yy1645; + if (yych <= 0xC1) + goto yy1631; + goto yy1662; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1663; + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + yy1660: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1660; + } + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy1631; + if (yych <= ' ') + goto yy1688; + goto yy1631; + } else { + if (yych <= '>') + goto yy1645; + if (yych <= 0xC1) + goto yy1631; + if (yych >= 0xE0) + goto yy1663; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + yy1662: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1660; + goto yy1631; + yy1663: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1631; + if (yych <= 0xBF) + goto yy1662; + goto yy1631; + yy1664: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1662; + goto yy1631; + yy1665: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1631; + if (yych <= 0xBF) + goto yy1664; + goto yy1631; + yy1666: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1664; + goto yy1631; + yy1667: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x8F) + goto yy1664; + goto yy1631; + yy1668: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x9F) + goto yy1662; + goto yy1631; + yy1669: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1669; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1631; + if (yych <= '\'') + goto yy1680; + goto yy1631; + } else { + if (yych <= 0xDF) + goto yy1681; + if (yych <= 0xE0) + goto yy1682; + goto yy1683; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1687; + if (yych <= 0xEF) + goto yy1683; + goto yy1684; + } else { + if (yych <= 0xF3) + goto yy1685; + if (yych <= 0xF4) + goto yy1686; + goto yy1631; + } + } + yy1671: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1671; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy1631; + if (yych <= '"') + goto yy1680; + goto yy1631; + } else { + if (yych <= 0xDF) + goto yy1673; + if (yych <= 0xE0) + goto yy1674; + goto yy1675; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1679; + if (yych <= 0xEF) + goto yy1675; + goto yy1676; + } else { + if (yych <= 0xF3) + goto yy1677; + if (yych <= 0xF4) + goto yy1678; + goto yy1631; + } + } + yy1673: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1671; + goto yy1631; + yy1674: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1631; + if (yych <= 0xBF) + goto yy1673; + goto yy1631; + yy1675: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1673; + goto yy1631; + yy1676: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1631; + if (yych <= 0xBF) + goto yy1675; + goto yy1631; + yy1677: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1675; + goto yy1631; + yy1678: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x8F) + goto yy1675; + goto yy1631; + yy1679: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x9F) + goto yy1673; + goto yy1631; + yy1680: + ++p; + yych = *p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy1631; + if (yych <= '\r') + goto yy1651; + if (yych <= 0x1F) + goto yy1631; + goto yy1651; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy1631; + goto yy1653; + } else { + if (yych == '>') + goto yy1645; + goto yy1631; + } + } + yy1681: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1669; + goto yy1631; + yy1682: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1631; + if (yych <= 0xBF) + goto yy1681; + goto yy1631; + yy1683: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1681; + goto yy1631; + yy1684: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1631; + if (yych <= 0xBF) + goto yy1683; + goto yy1631; + yy1685: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0xBF) + goto yy1683; + goto yy1631; + yy1686: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x8F) + goto yy1683; + goto yy1631; + yy1687: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1631; + if (yych <= 0x9F) + goto yy1681; + goto yy1631; + yy1688: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '"') { + if (yych <= '\r') { + if (yych <= 0x00) + goto yy1631; + if (yych <= 0x08) + goto yy1660; + goto yy1688; + } else { + if (yych == ' ') + goto yy1688; + if (yych <= '!') + goto yy1660; + goto yy1631; + } + } else { + if (yych <= ':') { + if (yych == '\'') + goto yy1631; + if (yych <= '9') + goto yy1660; + } else { + if (yych <= ';') + goto yy1660; + if (yych <= '=') + goto yy1631; + if (yych <= '>') + goto yy1645; + goto yy1660; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1690; + if (yych <= '^') + goto yy1660; + if (yych >= '`') + goto yy1631; + } else { + if (yych <= 'z') + goto yy1690; + if (yych <= 0x7F) + goto yy1660; + if (yych <= 0xC1) + goto yy1631; + goto yy1662; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1663; + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + } + yy1690: + ++p; + yych = *p; + if (yych <= '>') { + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= 0x00) + goto yy1631; + if (yych <= 0x08) + goto yy1660; + if (yych >= 0x0E) + goto yy1660; + } else { + if (yych <= ' ') + goto yy1692; + if (yych == '"') + goto yy1631; + goto yy1660; + } + } else { + if (yych <= '/') { + if (yych <= '\'') + goto yy1631; + if (yych <= ',') + goto yy1660; + if (yych <= '.') + goto yy1690; + goto yy1660; + } else { + if (yych <= ';') { + if (yych <= ':') + goto yy1690; + goto yy1660; + } else { + if (yych <= '<') + goto yy1631; + if (yych <= '=') + goto yy1658; + goto yy1645; + } + } + } + } else { + if (yych <= 0xC1) { + if (yych <= '_') { + if (yych <= '@') + goto yy1660; + if (yych <= 'Z') + goto yy1690; + if (yych <= '^') + goto yy1660; + goto yy1690; + } else { + if (yych <= '`') + goto yy1631; + if (yych <= 'z') + goto yy1690; + if (yych <= 0x7F) + goto yy1660; + goto yy1631; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1662; + if (yych <= 0xE0) + goto yy1663; + if (yych <= 0xEC) + goto yy1664; + goto yy1668; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1664; + goto yy1665; + } else { + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + } + } + yy1692: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= 0x00) + goto yy1631; + if (yych <= 0x08) + goto yy1660; + if (yych <= '\r') + goto yy1692; + goto yy1660; + } else { + if (yych <= ' ') + goto yy1692; + if (yych == '"') + goto yy1631; + goto yy1660; + } + } else { + if (yych <= ';') { + if (yych <= '\'') + goto yy1631; + if (yych == ':') + goto yy1690; + goto yy1660; + } else { + if (yych <= '<') + goto yy1631; + if (yych <= '=') + goto yy1658; + if (yych <= '>') + goto yy1645; + goto yy1660; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1690; + if (yych <= '^') + goto yy1660; + if (yych <= '_') + goto yy1690; + goto yy1631; + } else { + if (yych <= 'z') + goto yy1690; + if (yych <= 0x7F) + goto yy1660; + if (yych <= 0xC1) + goto yy1631; + goto yy1662; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1663; + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + } + yy1694: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '"') { + if (yych <= '\r') { + if (yych <= 0x00) + goto yy1631; + if (yych <= 0x08) + goto yy1660; + goto yy1694; + } else { + if (yych == ' ') + goto yy1694; + if (yych <= '!') + goto yy1660; + goto yy1671; + } + } else { + if (yych <= ':') { + if (yych == '\'') + goto yy1669; + if (yych <= '9') + goto yy1660; + goto yy1690; + } else { + if (yych <= ';') + goto yy1660; + if (yych <= '=') + goto yy1631; + if (yych <= '>') + goto yy1645; + goto yy1660; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= '`') { + if (yych <= 'Z') + goto yy1690; + if (yych <= '^') + goto yy1660; + if (yych <= '_') + goto yy1690; + goto yy1631; + } else { + if (yych <= 'z') + goto yy1690; + if (yych <= 0x7F) + goto yy1660; + if (yych <= 0xC1) + goto yy1631; + goto yy1662; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1663; + if (yych == 0xED) + goto yy1668; + goto yy1664; + } else { + if (yych <= 0xF0) + goto yy1665; + if (yych <= 0xF3) + goto yy1666; + if (yych <= 0xF4) + goto yy1667; + goto yy1631; + } + } + } + } } // 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[] = { - 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, 64, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= ';') { - if (yych != '\n') goto yy1699; - } else { - if (yych <= '<') goto yy1700; - if (yych <= 0x7F) goto yy1699; - if (yych >= 0xC2) goto yy1701; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1703; - if (yych == 0xED) goto yy1708; - goto yy1704; - } else { - if (yych <= 0xF0) goto yy1705; - if (yych <= 0xF3) goto yy1706; - if (yych <= 0xF4) goto yy1707; - } - } -yy1698: - { return 0; } -yy1699: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych == '\n') goto yy1698; - goto yy1713; - } else { - if (yych <= 0xC1) goto yy1698; - if (yych <= 0xF4) goto yy1713; - goto yy1698; - } -yy1700: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '/') { - if (yych == '\n') goto yy1698; - if (yych <= '.') goto yy1713; - goto yy1709; - } else { - if (yych <= 0x7F) goto yy1713; - if (yych <= 0xC1) goto yy1698; - if (yych <= 0xF4) goto yy1713; - goto yy1698; - } -yy1701: - yych = *++p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1699; -yy1702: - p = marker; - if (yyaccept == 0) { - goto yy1698; - } else { - goto yy1730; - } -yy1703: - yych = *++p; - if (yych <= 0x9F) goto yy1702; - if (yych <= 0xBF) goto yy1701; - goto yy1702; -yy1704: - yych = *++p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1701; - goto yy1702; -yy1705: - yych = *++p; - if (yych <= 0x8F) goto yy1702; - if (yych <= 0xBF) goto yy1704; - goto yy1702; -yy1706: - yych = *++p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1704; - goto yy1702; -yy1707: - yych = *++p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0x8F) goto yy1704; - goto yy1702; -yy1708: - yych = *++p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0x9F) goto yy1701; - goto yy1702; -yy1709: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 's') { - if (yych <= 'R') { - if (yych <= '\n') { - if (yych <= '\t') goto yy1712; - goto yy1702; - } else { - if (yych == 'P') goto yy1721; - goto yy1712; - } - } else { - if (yych <= 'o') { - if (yych <= 'S') goto yy1722; - goto yy1712; - } else { - if (yych <= 'p') goto yy1721; - if (yych <= 'r') goto yy1712; - goto yy1722; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } else { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - goto yy1716; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1720; - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1710: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xDF) { - if (yych <= '.') { - if (yych == '\n') goto yy1702; - } else { - if (yych <= '/') goto yy1709; - if (yych <= 0x7F) goto yy1712; - if (yych <= 0xC1) goto yy1702; - goto yy1714; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1715; - if (yych == 0xED) goto yy1720; - goto yy1716; - } else { - if (yych <= 0xF0) goto yy1717; - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } -yy1712: - ++p; - yych = *p; -yy1713: - if (yybm[0+yych] & 128) { - goto yy1712; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1702; - if (yych <= '<') goto yy1710; - goto yy1702; - } else { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - goto yy1716; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1720; - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } -yy1714: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1712; - goto yy1702; -yy1715: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1702; - if (yych <= 0xBF) goto yy1714; - goto yy1702; -yy1716: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1714; - goto yy1702; -yy1717: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1702; - if (yych <= 0xBF) goto yy1716; - goto yy1702; -yy1718: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0xBF) goto yy1716; - goto yy1702; -yy1719: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0x8F) goto yy1716; - goto yy1702; -yy1720: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1702; - if (yych <= 0x9F) goto yy1714; - goto yy1702; -yy1721: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'R') { - if (yych == '\n') goto yy1702; - if (yych <= 'Q') goto yy1712; - goto yy1733; - } else { - if (yych == 'r') goto yy1733; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1722: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 't') { - if (yych <= 'S') { - if (yych <= '\n') { - if (yych <= '\t') goto yy1712; - goto yy1702; - } else { - if (yych == 'C') goto yy1724; - goto yy1712; - } - } else { - if (yych <= 'b') { - if (yych >= 'U') goto yy1712; - } else { - if (yych <= 'c') goto yy1724; - if (yych <= 's') goto yy1712; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } else { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - goto yy1716; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1720; - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'Y') { - if (yych == '\n') goto yy1702; - if (yych <= 'X') goto yy1712; - goto yy1731; - } else { - if (yych == 'y') goto yy1731; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1724: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'R') { - if (yych == '\n') goto yy1702; - if (yych <= 'Q') goto yy1712; - } else { - if (yych == 'r') goto yy1725; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1725: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'I') { - if (yych == '\n') goto yy1702; - if (yych <= 'H') goto yy1712; - } else { - if (yych == 'i') goto yy1726; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1726: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'P') { - if (yych == '\n') goto yy1702; - if (yych <= 'O') goto yy1712; - } else { - if (yych == 'p') goto yy1727; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1727: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'T') { - if (yych == '\n') goto yy1702; - if (yych <= 'S') goto yy1712; - } else { - if (yych == 't') goto yy1728; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1728: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xDF) { - if (yych <= '=') { - if (yych == '\n') goto yy1702; - goto yy1712; - } else { - if (yych <= '>') goto yy1729; - if (yych <= 0x7F) goto yy1712; - if (yych <= 0xC1) goto yy1702; - goto yy1714; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1715; - if (yych == 0xED) goto yy1720; - goto yy1716; - } else { - if (yych <= 0xF0) goto yy1717; - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } -yy1729: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1712; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1730; - if (yych <= '<') goto yy1710; - } else { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - goto yy1716; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1720; - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - } - } -yy1730: - { return (bufsize_t)(p - start); } -yy1731: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'L') { - if (yych == '\n') goto yy1702; - if (yych <= 'K') goto yy1712; - } else { - if (yych == 'l') goto yy1732; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1732: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'E') { - if (yych == '\n') goto yy1702; - if (yych <= 'D') goto yy1712; - goto yy1728; - } else { - if (yych == 'e') goto yy1728; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -yy1733: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1710; - } - if (yych <= 0xC1) { - if (yych <= 'E') { - if (yych == '\n') goto yy1702; - if (yych <= 'D') goto yy1712; - goto yy1728; - } else { - if (yych == 'e') goto yy1728; - if (yych <= 0x7F) goto yy1712; - goto yy1702; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1714; - if (yych <= 0xE0) goto yy1715; - if (yych <= 0xEC) goto yy1716; - goto yy1720; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1716; - goto yy1717; - } else { - if (yych <= 0xF3) goto yy1718; - if (yych <= 0xF4) goto yy1719; - goto yy1702; - } - } - } -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 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, 64, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= ';') { + if (yych != '\n') + goto yy1699; + } else { + if (yych <= '<') + goto yy1700; + if (yych <= 0x7F) + goto yy1699; + if (yych >= 0xC2) + goto yy1701; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1703; + if (yych == 0xED) + goto yy1708; + goto yy1704; + } else { + if (yych <= 0xF0) + goto yy1705; + if (yych <= 0xF3) + goto yy1706; + if (yych <= 0xF4) + goto yy1707; + } + } + yy1698 : { return 0; } + yy1699: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1698; + goto yy1713; + } else { + if (yych <= 0xC1) + goto yy1698; + if (yych <= 0xF4) + goto yy1713; + goto yy1698; + } + yy1700: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '/') { + if (yych == '\n') + goto yy1698; + if (yych <= '.') + goto yy1713; + goto yy1709; + } else { + if (yych <= 0x7F) + goto yy1713; + if (yych <= 0xC1) + goto yy1698; + if (yych <= 0xF4) + goto yy1713; + goto yy1698; + } + yy1701: + yych = *++p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1699; + yy1702: + p = marker; + if (yyaccept == 0) { + goto yy1698; + } else { + goto yy1730; + } + yy1703: + yych = *++p; + if (yych <= 0x9F) + goto yy1702; + if (yych <= 0xBF) + goto yy1701; + goto yy1702; + yy1704: + yych = *++p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1701; + goto yy1702; + yy1705: + yych = *++p; + if (yych <= 0x8F) + goto yy1702; + if (yych <= 0xBF) + goto yy1704; + goto yy1702; + yy1706: + yych = *++p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1704; + goto yy1702; + yy1707: + yych = *++p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0x8F) + goto yy1704; + goto yy1702; + yy1708: + yych = *++p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0x9F) + goto yy1701; + goto yy1702; + yy1709: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 's') { + if (yych <= 'R') { + if (yych <= '\n') { + if (yych <= '\t') + goto yy1712; + goto yy1702; + } else { + if (yych == 'P') + goto yy1721; + goto yy1712; + } + } else { + if (yych <= 'o') { + if (yych <= 'S') + goto yy1722; + goto yy1712; + } else { + if (yych <= 'p') + goto yy1721; + if (yych <= 'r') + goto yy1712; + goto yy1722; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } else { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + goto yy1716; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1720; + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1710: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xDF) { + if (yych <= '.') { + if (yych == '\n') + goto yy1702; + } else { + if (yych <= '/') + goto yy1709; + if (yych <= 0x7F) + goto yy1712; + if (yych <= 0xC1) + goto yy1702; + goto yy1714; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1715; + if (yych == 0xED) + goto yy1720; + goto yy1716; + } else { + if (yych <= 0xF0) + goto yy1717; + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + yy1712: + ++p; + yych = *p; + yy1713: + if (yybm[0 + yych] & 128) { + goto yy1712; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1702; + if (yych <= '<') + goto yy1710; + goto yy1702; + } else { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + goto yy1716; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1720; + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + yy1714: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1712; + goto yy1702; + yy1715: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1702; + if (yych <= 0xBF) + goto yy1714; + goto yy1702; + yy1716: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1714; + goto yy1702; + yy1717: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1702; + if (yych <= 0xBF) + goto yy1716; + goto yy1702; + yy1718: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0xBF) + goto yy1716; + goto yy1702; + yy1719: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0x8F) + goto yy1716; + goto yy1702; + yy1720: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1702; + if (yych <= 0x9F) + goto yy1714; + goto yy1702; + yy1721: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'R') { + if (yych == '\n') + goto yy1702; + if (yych <= 'Q') + goto yy1712; + goto yy1733; + } else { + if (yych == 'r') + goto yy1733; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1722: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 't') { + if (yych <= 'S') { + if (yych <= '\n') { + if (yych <= '\t') + goto yy1712; + goto yy1702; + } else { + if (yych == 'C') + goto yy1724; + goto yy1712; + } + } else { + if (yych <= 'b') { + if (yych >= 'U') + goto yy1712; + } else { + if (yych <= 'c') + goto yy1724; + if (yych <= 's') + goto yy1712; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } else { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + goto yy1716; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1720; + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'Y') { + if (yych == '\n') + goto yy1702; + if (yych <= 'X') + goto yy1712; + goto yy1731; + } else { + if (yych == 'y') + goto yy1731; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1724: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'R') { + if (yych == '\n') + goto yy1702; + if (yych <= 'Q') + goto yy1712; + } else { + if (yych == 'r') + goto yy1725; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1725: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'I') { + if (yych == '\n') + goto yy1702; + if (yych <= 'H') + goto yy1712; + } else { + if (yych == 'i') + goto yy1726; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1726: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'P') { + if (yych == '\n') + goto yy1702; + if (yych <= 'O') + goto yy1712; + } else { + if (yych == 'p') + goto yy1727; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1727: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'T') { + if (yych == '\n') + goto yy1702; + if (yych <= 'S') + goto yy1712; + } else { + if (yych == 't') + goto yy1728; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1728: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych == '\n') + goto yy1702; + goto yy1712; + } else { + if (yych <= '>') + goto yy1729; + if (yych <= 0x7F) + goto yy1712; + if (yych <= 0xC1) + goto yy1702; + goto yy1714; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1715; + if (yych == 0xED) + goto yy1720; + goto yy1716; + } else { + if (yych <= 0xF0) + goto yy1717; + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + yy1729: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1712; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1730; + if (yych <= '<') + goto yy1710; + } else { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + goto yy1716; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1720; + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + } + } + yy1730 : { return (bufsize_t)(p - start); } + yy1731: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'L') { + if (yych == '\n') + goto yy1702; + if (yych <= 'K') + goto yy1712; + } else { + if (yych == 'l') + goto yy1732; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1732: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'E') { + if (yych == '\n') + goto yy1702; + if (yych <= 'D') + goto yy1712; + goto yy1728; + } else { + if (yych == 'e') + goto yy1728; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + yy1733: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1710; + } + if (yych <= 0xC1) { + if (yych <= 'E') { + if (yych == '\n') + goto yy1702; + if (yych <= 'D') + goto yy1712; + goto yy1728; + } else { + if (yych == 'e') + goto yy1728; + if (yych <= 0x7F) + goto yy1712; + goto yy1702; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1714; + if (yych <= 0xE0) + goto yy1715; + if (yych <= 0xEC) + goto yy1716; + goto yy1720; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1716; + goto yy1717; + } else { + if (yych <= 0xF3) + goto yy1718; + if (yych <= 0xF4) + goto yy1719; + goto yy1702; + } + } + } + } } // 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[] = { - 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, 64, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= ',') { - if (yych != '\n') goto yy1737; - } else { - if (yych <= '-') goto yy1738; - if (yych <= 0x7F) goto yy1737; - if (yych >= 0xC2) goto yy1739; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1741; - if (yych == 0xED) goto yy1746; - goto yy1742; - } else { - if (yych <= 0xF0) goto yy1743; - if (yych <= 0xF3) goto yy1744; - if (yych <= 0xF4) goto yy1745; - } - } -yy1736: - { return 0; } -yy1737: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych == '\n') goto yy1736; - goto yy1750; - } else { - if (yych <= 0xC1) goto yy1736; - if (yych <= 0xF4) goto yy1750; - goto yy1736; - } -yy1738: - yyaccept = 0; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) { - goto yy1747; - } - if (yych <= 0x7F) { - if (yych == '\n') goto yy1736; - goto yy1750; - } else { - if (yych <= 0xC1) goto yy1736; - if (yych <= 0xF4) goto yy1750; - goto yy1736; - } -yy1739: - yych = *++p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1737; -yy1740: - p = marker; - if (yyaccept == 0) { - goto yy1736; - } else { - goto yy1760; - } -yy1741: - yych = *++p; - if (yych <= 0x9F) goto yy1740; - if (yych <= 0xBF) goto yy1739; - goto yy1740; -yy1742: - yych = *++p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1739; - goto yy1740; -yy1743: - yych = *++p; - if (yych <= 0x8F) goto yy1740; - if (yych <= 0xBF) goto yy1742; - goto yy1740; -yy1744: - yych = *++p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1742; - goto yy1740; -yy1745: - yych = *++p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0x8F) goto yy1742; - goto yy1740; -yy1746: - yych = *++p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0x9F) goto yy1739; - goto yy1740; -yy1747: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1747; - } - if (yych <= 0xDF) { - if (yych <= '=') { - if (yych == '\n') goto yy1740; - } else { - if (yych <= '>') goto yy1759; - if (yych <= 0x7F) goto yy1749; - if (yych <= 0xC1) goto yy1740; - goto yy1751; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1752; - if (yych == 0xED) goto yy1757; - goto yy1753; - } else { - if (yych <= 0xF0) goto yy1754; - if (yych <= 0xF3) goto yy1755; - if (yych <= 0xF4) goto yy1756; - goto yy1740; - } - } -yy1749: - ++p; - yych = *p; -yy1750: - if (yybm[0+yych] & 128) { - goto yy1749; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1740; - if (yych <= '-') goto yy1758; - goto yy1740; - } else { - if (yych <= 0xDF) goto yy1751; - if (yych <= 0xE0) goto yy1752; - goto yy1753; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1757; - if (yych <= 0xEF) goto yy1753; - goto yy1754; - } else { - if (yych <= 0xF3) goto yy1755; - if (yych <= 0xF4) goto yy1756; - goto yy1740; - } - } -yy1751: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1749; - goto yy1740; -yy1752: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1740; - if (yych <= 0xBF) goto yy1751; - goto yy1740; -yy1753: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1751; - goto yy1740; -yy1754: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1740; - if (yych <= 0xBF) goto yy1753; - goto yy1740; -yy1755: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0xBF) goto yy1753; - goto yy1740; -yy1756: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0x8F) goto yy1753; - goto yy1740; -yy1757: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1740; - if (yych <= 0x9F) goto yy1751; - goto yy1740; -yy1758: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1749; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1740; - if (yych <= '-') goto yy1747; - goto yy1740; - } else { - if (yych <= 0xDF) goto yy1751; - if (yych <= 0xE0) goto yy1752; - goto yy1753; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1757; - if (yych <= 0xEF) goto yy1753; - goto yy1754; - } else { - if (yych <= 0xF3) goto yy1755; - if (yych <= 0xF4) goto yy1756; - goto yy1740; - } - } -yy1759: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1749; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1760; - if (yych <= '-') goto yy1758; - } else { - if (yych <= 0xDF) goto yy1751; - if (yych <= 0xE0) goto yy1752; - goto yy1753; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1757; - if (yych <= 0xEF) goto yy1753; - goto yy1754; - } else { - if (yych <= 0xF3) goto yy1755; - if (yych <= 0xF4) goto yy1756; - } - } -yy1760: - { return (bufsize_t)(p - start); } -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 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, 64, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= ',') { + if (yych != '\n') + goto yy1737; + } else { + if (yych <= '-') + goto yy1738; + if (yych <= 0x7F) + goto yy1737; + if (yych >= 0xC2) + goto yy1739; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1741; + if (yych == 0xED) + goto yy1746; + goto yy1742; + } else { + if (yych <= 0xF0) + goto yy1743; + if (yych <= 0xF3) + goto yy1744; + if (yych <= 0xF4) + goto yy1745; + } + } + yy1736 : { return 0; } + yy1737: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1736; + goto yy1750; + } else { + if (yych <= 0xC1) + goto yy1736; + if (yych <= 0xF4) + goto yy1750; + goto yy1736; + } + yy1738: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy1747; + } + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1736; + goto yy1750; + } else { + if (yych <= 0xC1) + goto yy1736; + if (yych <= 0xF4) + goto yy1750; + goto yy1736; + } + yy1739: + yych = *++p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1737; + yy1740: + p = marker; + if (yyaccept == 0) { + goto yy1736; + } else { + goto yy1760; + } + yy1741: + yych = *++p; + if (yych <= 0x9F) + goto yy1740; + if (yych <= 0xBF) + goto yy1739; + goto yy1740; + yy1742: + yych = *++p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1739; + goto yy1740; + yy1743: + yych = *++p; + if (yych <= 0x8F) + goto yy1740; + if (yych <= 0xBF) + goto yy1742; + goto yy1740; + yy1744: + yych = *++p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1742; + goto yy1740; + yy1745: + yych = *++p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0x8F) + goto yy1742; + goto yy1740; + yy1746: + yych = *++p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0x9F) + goto yy1739; + goto yy1740; + yy1747: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1747; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych == '\n') + goto yy1740; + } else { + if (yych <= '>') + goto yy1759; + if (yych <= 0x7F) + goto yy1749; + if (yych <= 0xC1) + goto yy1740; + goto yy1751; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1752; + if (yych == 0xED) + goto yy1757; + goto yy1753; + } else { + if (yych <= 0xF0) + goto yy1754; + if (yych <= 0xF3) + goto yy1755; + if (yych <= 0xF4) + goto yy1756; + goto yy1740; + } + } + yy1749: + ++p; + yych = *p; + yy1750: + if (yybm[0 + yych] & 128) { + goto yy1749; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1740; + if (yych <= '-') + goto yy1758; + goto yy1740; + } else { + if (yych <= 0xDF) + goto yy1751; + if (yych <= 0xE0) + goto yy1752; + goto yy1753; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1757; + if (yych <= 0xEF) + goto yy1753; + goto yy1754; + } else { + if (yych <= 0xF3) + goto yy1755; + if (yych <= 0xF4) + goto yy1756; + goto yy1740; + } + } + yy1751: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1749; + goto yy1740; + yy1752: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1740; + if (yych <= 0xBF) + goto yy1751; + goto yy1740; + yy1753: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1751; + goto yy1740; + yy1754: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1740; + if (yych <= 0xBF) + goto yy1753; + goto yy1740; + yy1755: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0xBF) + goto yy1753; + goto yy1740; + yy1756: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0x8F) + goto yy1753; + goto yy1740; + yy1757: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1740; + if (yych <= 0x9F) + goto yy1751; + goto yy1740; + yy1758: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1749; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1740; + if (yych <= '-') + goto yy1747; + goto yy1740; + } else { + if (yych <= 0xDF) + goto yy1751; + if (yych <= 0xE0) + goto yy1752; + goto yy1753; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1757; + if (yych <= 0xEF) + goto yy1753; + goto yy1754; + } else { + if (yych <= 0xF3) + goto yy1755; + if (yych <= 0xF4) + goto yy1756; + goto yy1740; + } + } + yy1759: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1749; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1760; + if (yych <= '-') + goto yy1758; + } else { + if (yych <= 0xDF) + goto yy1751; + if (yych <= 0xE0) + goto yy1752; + goto yy1753; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1757; + if (yych <= 0xEF) + goto yy1753; + goto yy1754; + } else { + if (yych <= 0xF3) + goto yy1755; + if (yych <= 0xF4) + goto yy1756; + } + } + yy1760 : { 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[] = { - 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, 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, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= '>') { - if (yych != '\n') goto yy1764; - } else { - if (yych <= '?') goto yy1765; - if (yych <= 0x7F) goto yy1764; - if (yych >= 0xC2) goto yy1766; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1768; - if (yych == 0xED) goto yy1773; - goto yy1769; - } else { - if (yych <= 0xF0) goto yy1770; - if (yych <= 0xF3) goto yy1771; - if (yych <= 0xF4) goto yy1772; - } - } -yy1763: - { return 0; } -yy1764: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych == '\n') goto yy1763; - goto yy1779; - } else { - if (yych <= 0xC1) goto yy1763; - if (yych <= 0xF4) goto yy1779; - goto yy1763; - } -yy1765: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= '>') { - if (yych == '\n') goto yy1763; - if (yych <= '=') goto yy1779; - goto yy1774; - } else { - if (yych <= 0x7F) goto yy1779; - if (yych <= 0xC1) goto yy1763; - if (yych <= 0xF4) goto yy1779; - goto yy1763; - } -yy1766: - yych = *++p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1764; -yy1767: - p = marker; - if (yyaccept == 0) { - goto yy1763; - } else { - goto yy1775; - } -yy1768: - yych = *++p; - if (yych <= 0x9F) goto yy1767; - if (yych <= 0xBF) goto yy1766; - goto yy1767; -yy1769: - yych = *++p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1766; - goto yy1767; -yy1770: - yych = *++p; - if (yych <= 0x8F) goto yy1767; - if (yych <= 0xBF) goto yy1769; - goto yy1767; -yy1771: - yych = *++p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1769; - goto yy1767; -yy1772: - yych = *++p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0x8F) goto yy1769; - goto yy1767; -yy1773: - yych = *++p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0x9F) goto yy1766; - goto yy1767; -yy1774: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1778; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1775; - if (yych <= '?') goto yy1776; - } else { - if (yych <= 0xDF) goto yy1780; - if (yych <= 0xE0) goto yy1781; - goto yy1782; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1786; - if (yych <= 0xEF) goto yy1782; - goto yy1783; - } else { - if (yych <= 0xF3) goto yy1784; - if (yych <= 0xF4) goto yy1785; - } - } -yy1775: - { return (bufsize_t)(p - start); } -yy1776: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1776; - } - if (yych <= 0xDF) { - if (yych <= '=') { - if (yych == '\n') goto yy1767; - } else { - if (yych <= '>') goto yy1774; - if (yych <= 0x7F) goto yy1778; - if (yych <= 0xC1) goto yy1767; - goto yy1780; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1781; - if (yych == 0xED) goto yy1786; - goto yy1782; - } else { - if (yych <= 0xF0) goto yy1783; - if (yych <= 0xF3) goto yy1784; - if (yych <= 0xF4) goto yy1785; - goto yy1767; - } - } -yy1778: - ++p; - yych = *p; -yy1779: - if (yybm[0+yych] & 128) { - goto yy1778; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1767; - if (yych <= '?') goto yy1776; - goto yy1767; - } else { - if (yych <= 0xDF) goto yy1780; - if (yych <= 0xE0) goto yy1781; - goto yy1782; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1786; - if (yych <= 0xEF) goto yy1782; - goto yy1783; - } else { - if (yych <= 0xF3) goto yy1784; - if (yych <= 0xF4) goto yy1785; - goto yy1767; - } - } -yy1780: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1778; - goto yy1767; -yy1781: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1767; - if (yych <= 0xBF) goto yy1780; - goto yy1767; -yy1782: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1780; - goto yy1767; -yy1783: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1767; - if (yych <= 0xBF) goto yy1782; - goto yy1767; -yy1784: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0xBF) goto yy1782; - goto yy1767; -yy1785: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0x8F) goto yy1782; - goto yy1767; -yy1786: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1767; - if (yych <= 0x9F) goto yy1780; - goto yy1767; -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= '>') { + if (yych != '\n') + goto yy1764; + } else { + if (yych <= '?') + goto yy1765; + if (yych <= 0x7F) + goto yy1764; + if (yych >= 0xC2) + goto yy1766; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1768; + if (yych == 0xED) + goto yy1773; + goto yy1769; + } else { + if (yych <= 0xF0) + goto yy1770; + if (yych <= 0xF3) + goto yy1771; + if (yych <= 0xF4) + goto yy1772; + } + } + yy1763 : { return 0; } + yy1764: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1763; + goto yy1779; + } else { + if (yych <= 0xC1) + goto yy1763; + if (yych <= 0xF4) + goto yy1779; + goto yy1763; + } + yy1765: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '>') { + if (yych == '\n') + goto yy1763; + if (yych <= '=') + goto yy1779; + goto yy1774; + } else { + if (yych <= 0x7F) + goto yy1779; + if (yych <= 0xC1) + goto yy1763; + if (yych <= 0xF4) + goto yy1779; + goto yy1763; + } + yy1766: + yych = *++p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1764; + yy1767: + p = marker; + if (yyaccept == 0) { + goto yy1763; + } else { + goto yy1775; + } + yy1768: + yych = *++p; + if (yych <= 0x9F) + goto yy1767; + if (yych <= 0xBF) + goto yy1766; + goto yy1767; + yy1769: + yych = *++p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1766; + goto yy1767; + yy1770: + yych = *++p; + if (yych <= 0x8F) + goto yy1767; + if (yych <= 0xBF) + goto yy1769; + goto yy1767; + yy1771: + yych = *++p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1769; + goto yy1767; + yy1772: + yych = *++p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0x8F) + goto yy1769; + goto yy1767; + yy1773: + yych = *++p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0x9F) + goto yy1766; + goto yy1767; + yy1774: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1778; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1775; + if (yych <= '?') + goto yy1776; + } else { + if (yych <= 0xDF) + goto yy1780; + if (yych <= 0xE0) + goto yy1781; + goto yy1782; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1786; + if (yych <= 0xEF) + goto yy1782; + goto yy1783; + } else { + if (yych <= 0xF3) + goto yy1784; + if (yych <= 0xF4) + goto yy1785; + } + } + yy1775 : { return (bufsize_t)(p - start); } + yy1776: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1776; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych == '\n') + goto yy1767; + } else { + if (yych <= '>') + goto yy1774; + if (yych <= 0x7F) + goto yy1778; + if (yych <= 0xC1) + goto yy1767; + goto yy1780; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1781; + if (yych == 0xED) + goto yy1786; + goto yy1782; + } else { + if (yych <= 0xF0) + goto yy1783; + if (yych <= 0xF3) + goto yy1784; + if (yych <= 0xF4) + goto yy1785; + goto yy1767; + } + } + yy1778: + ++p; + yych = *p; + yy1779: + if (yybm[0 + yych] & 128) { + goto yy1778; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1767; + if (yych <= '?') + goto yy1776; + goto yy1767; + } else { + if (yych <= 0xDF) + goto yy1780; + if (yych <= 0xE0) + goto yy1781; + goto yy1782; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1786; + if (yych <= 0xEF) + goto yy1782; + goto yy1783; + } else { + if (yych <= 0xF3) + goto yy1784; + if (yych <= 0xF4) + goto yy1785; + goto yy1767; + } + } + yy1780: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1778; + goto yy1767; + yy1781: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1767; + if (yych <= 0xBF) + goto yy1780; + goto yy1767; + yy1782: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1780; + goto yy1767; + yy1783: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1767; + if (yych <= 0xBF) + goto yy1782; + goto yy1767; + yy1784: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0xBF) + goto yy1782; + goto yy1767; + yy1785: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0x8F) + goto yy1782; + goto yy1767; + yy1786: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1767; + if (yych <= 0x9F) + goto yy1780; + goto yy1767; + } } // 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[] = { - 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, 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= '=') { - if (yych != '\n') goto yy1790; - } else { - if (yych <= '>') goto yy1791; - if (yych <= 0x7F) goto yy1790; - if (yych >= 0xC2) goto yy1793; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1795; - if (yych == 0xED) goto yy1800; - goto yy1796; - } else { - if (yych <= 0xF0) goto yy1797; - if (yych <= 0xF3) goto yy1798; - if (yych <= 0xF4) goto yy1799; - } - } -yy1789: - { return 0; } -yy1790: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych == '\n') goto yy1789; - goto yy1804; - } else { - if (yych <= 0xC1) goto yy1789; - if (yych <= 0xF4) goto yy1804; - goto yy1789; - } -yy1791: - yyaccept = 1; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych != '\n') goto yy1804; - } else { - if (yych <= 0xC1) goto yy1792; - if (yych <= 0xF4) goto yy1804; - } -yy1792: - { return (bufsize_t)(p - start); } -yy1793: - yych = *++p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1790; -yy1794: - p = marker; - if (yyaccept == 0) { - goto yy1789; - } else { - goto yy1792; - } -yy1795: - yych = *++p; - if (yych <= 0x9F) goto yy1794; - if (yych <= 0xBF) goto yy1793; - goto yy1794; -yy1796: - yych = *++p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1793; - goto yy1794; -yy1797: - yych = *++p; - if (yych <= 0x8F) goto yy1794; - if (yych <= 0xBF) goto yy1796; - goto yy1794; -yy1798: - yych = *++p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1796; - goto yy1794; -yy1799: - yych = *++p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0x8F) goto yy1796; - goto yy1794; -yy1800: - yych = *++p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0x9F) goto yy1793; - goto yy1794; -yy1801: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1803; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1792; - if (yych <= '>') goto yy1801; - goto yy1792; - } else { - if (yych <= 0xDF) goto yy1805; - if (yych <= 0xE0) goto yy1806; - goto yy1807; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1811; - if (yych <= 0xEF) goto yy1807; - goto yy1808; - } else { - if (yych <= 0xF3) goto yy1809; - if (yych <= 0xF4) goto yy1810; - goto yy1792; - } - } -yy1803: - ++p; - yych = *p; -yy1804: - if (yybm[0+yych] & 128) { - goto yy1803; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1794; - if (yych <= '>') goto yy1801; - goto yy1794; - } else { - if (yych <= 0xDF) goto yy1805; - if (yych <= 0xE0) goto yy1806; - goto yy1807; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1811; - if (yych <= 0xEF) goto yy1807; - goto yy1808; - } else { - if (yych <= 0xF3) goto yy1809; - if (yych <= 0xF4) goto yy1810; - goto yy1794; - } - } -yy1805: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1803; - goto yy1794; -yy1806: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1794; - if (yych <= 0xBF) goto yy1805; - goto yy1794; -yy1807: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1805; - goto yy1794; -yy1808: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1794; - if (yych <= 0xBF) goto yy1807; - goto yy1794; -yy1809: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0xBF) goto yy1807; - goto yy1794; -yy1810: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0x8F) goto yy1807; - goto yy1794; -yy1811: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1794; - if (yych <= 0x9F) goto yy1805; - goto yy1794; -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 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, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych != '\n') + goto yy1790; + } else { + if (yych <= '>') + goto yy1791; + if (yych <= 0x7F) + goto yy1790; + if (yych >= 0xC2) + goto yy1793; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1795; + if (yych == 0xED) + goto yy1800; + goto yy1796; + } else { + if (yych <= 0xF0) + goto yy1797; + if (yych <= 0xF3) + goto yy1798; + if (yych <= 0xF4) + goto yy1799; + } + } + yy1789 : { return 0; } + yy1790: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1789; + goto yy1804; + } else { + if (yych <= 0xC1) + goto yy1789; + if (yych <= 0xF4) + goto yy1804; + goto yy1789; + } + yy1791: + yyaccept = 1; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych != '\n') + goto yy1804; + } else { + if (yych <= 0xC1) + goto yy1792; + if (yych <= 0xF4) + goto yy1804; + } + yy1792 : { return (bufsize_t)(p - start); } + yy1793: + yych = *++p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1790; + yy1794: + p = marker; + if (yyaccept == 0) { + goto yy1789; + } else { + goto yy1792; + } + yy1795: + yych = *++p; + if (yych <= 0x9F) + goto yy1794; + if (yych <= 0xBF) + goto yy1793; + goto yy1794; + yy1796: + yych = *++p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1793; + goto yy1794; + yy1797: + yych = *++p; + if (yych <= 0x8F) + goto yy1794; + if (yych <= 0xBF) + goto yy1796; + goto yy1794; + yy1798: + yych = *++p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1796; + goto yy1794; + yy1799: + yych = *++p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0x8F) + goto yy1796; + goto yy1794; + yy1800: + yych = *++p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0x9F) + goto yy1793; + goto yy1794; + yy1801: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1803; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1792; + if (yych <= '>') + goto yy1801; + goto yy1792; + } else { + if (yych <= 0xDF) + goto yy1805; + if (yych <= 0xE0) + goto yy1806; + goto yy1807; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1811; + if (yych <= 0xEF) + goto yy1807; + goto yy1808; + } else { + if (yych <= 0xF3) + goto yy1809; + if (yych <= 0xF4) + goto yy1810; + goto yy1792; + } + } + yy1803: + ++p; + yych = *p; + yy1804: + if (yybm[0 + yych] & 128) { + goto yy1803; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1794; + if (yych <= '>') + goto yy1801; + goto yy1794; + } else { + if (yych <= 0xDF) + goto yy1805; + if (yych <= 0xE0) + goto yy1806; + goto yy1807; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1811; + if (yych <= 0xEF) + goto yy1807; + goto yy1808; + } else { + if (yych <= 0xF3) + goto yy1809; + if (yych <= 0xF4) + goto yy1810; + goto yy1794; + } + } + yy1805: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1803; + goto yy1794; + yy1806: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1794; + if (yych <= 0xBF) + goto yy1805; + goto yy1794; + yy1807: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1805; + goto yy1794; + yy1808: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1794; + if (yych <= 0xBF) + goto yy1807; + goto yy1794; + yy1809: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0xBF) + goto yy1807; + goto yy1794; + yy1810: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0x8F) + goto yy1807; + goto yy1794; + yy1811: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1794; + if (yych <= 0x9F) + goto yy1805; + goto yy1794; + } } // 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[] = { - 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, 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, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= '\\') { - if (yych != '\n') goto yy1815; - } else { - if (yych <= ']') goto yy1816; - if (yych <= 0x7F) goto yy1815; - if (yych >= 0xC2) goto yy1817; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1819; - if (yych == 0xED) goto yy1824; - goto yy1820; - } else { - if (yych <= 0xF0) goto yy1821; - if (yych <= 0xF3) goto yy1822; - if (yych <= 0xF4) goto yy1823; - } - } -yy1814: - { return 0; } -yy1815: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x7F) { - if (yych == '\n') goto yy1814; - goto yy1828; - } else { - if (yych <= 0xC1) goto yy1814; - if (yych <= 0xF4) goto yy1828; - goto yy1814; - } -yy1816: - yyaccept = 0; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) { - goto yy1825; - } - if (yych <= 0x7F) { - if (yych == '\n') goto yy1814; - goto yy1828; - } else { - if (yych <= 0xC1) goto yy1814; - if (yych <= 0xF4) goto yy1828; - goto yy1814; - } -yy1817: - yych = *++p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1815; -yy1818: - p = marker; - if (yyaccept == 0) { - goto yy1814; - } else { - goto yy1838; - } -yy1819: - yych = *++p; - if (yych <= 0x9F) goto yy1818; - if (yych <= 0xBF) goto yy1817; - goto yy1818; -yy1820: - yych = *++p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1817; - goto yy1818; -yy1821: - yych = *++p; - if (yych <= 0x8F) goto yy1818; - if (yych <= 0xBF) goto yy1820; - goto yy1818; -yy1822: - yych = *++p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1820; - goto yy1818; -yy1823: - yych = *++p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0x8F) goto yy1820; - goto yy1818; -yy1824: - yych = *++p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0x9F) goto yy1817; - goto yy1818; -yy1825: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1825; - } - if (yych <= 0xDF) { - if (yych <= '=') { - if (yych == '\n') goto yy1818; - } else { - if (yych <= '>') goto yy1837; - if (yych <= 0x7F) goto yy1827; - if (yych <= 0xC1) goto yy1818; - goto yy1829; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1830; - if (yych == 0xED) goto yy1835; - goto yy1831; - } else { - if (yych <= 0xF0) goto yy1832; - if (yych <= 0xF3) goto yy1833; - if (yych <= 0xF4) goto yy1834; - goto yy1818; - } - } -yy1827: - ++p; - yych = *p; -yy1828: - if (yybm[0+yych] & 128) { - goto yy1827; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1818; - if (yych <= ']') goto yy1836; - goto yy1818; - } else { - if (yych <= 0xDF) goto yy1829; - if (yych <= 0xE0) goto yy1830; - goto yy1831; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1835; - if (yych <= 0xEF) goto yy1831; - goto yy1832; - } else { - if (yych <= 0xF3) goto yy1833; - if (yych <= 0xF4) goto yy1834; - goto yy1818; - } - } -yy1829: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1827; - goto yy1818; -yy1830: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1818; - if (yych <= 0xBF) goto yy1829; - goto yy1818; -yy1831: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1829; - goto yy1818; -yy1832: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1818; - if (yych <= 0xBF) goto yy1831; - goto yy1818; -yy1833: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0xBF) goto yy1831; - goto yy1818; -yy1834: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0x8F) goto yy1831; - goto yy1818; -yy1835: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1818; - if (yych <= 0x9F) goto yy1829; - goto yy1818; -yy1836: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1827; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1818; - if (yych <= ']') goto yy1825; - goto yy1818; - } else { - if (yych <= 0xDF) goto yy1829; - if (yych <= 0xE0) goto yy1830; - goto yy1831; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1835; - if (yych <= 0xEF) goto yy1831; - goto yy1832; - } else { - if (yych <= 0xF3) goto yy1833; - if (yych <= 0xF4) goto yy1834; - goto yy1818; - } - } -yy1837: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1827; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\n') goto yy1838; - if (yych <= ']') goto yy1836; - } else { - if (yych <= 0xDF) goto yy1829; - if (yych <= 0xE0) goto yy1830; - goto yy1831; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1835; - if (yych <= 0xEF) goto yy1831; - goto yy1832; - } else { - if (yych <= 0xF3) goto yy1833; - if (yych <= 0xF4) goto yy1834; - } - } -yy1838: - { return (bufsize_t)(p - start); } -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= '\\') { + if (yych != '\n') + goto yy1815; + } else { + if (yych <= ']') + goto yy1816; + if (yych <= 0x7F) + goto yy1815; + if (yych >= 0xC2) + goto yy1817; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1819; + if (yych == 0xED) + goto yy1824; + goto yy1820; + } else { + if (yych <= 0xF0) + goto yy1821; + if (yych <= 0xF3) + goto yy1822; + if (yych <= 0xF4) + goto yy1823; + } + } + yy1814 : { return 0; } + yy1815: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1814; + goto yy1828; + } else { + if (yych <= 0xC1) + goto yy1814; + if (yych <= 0xF4) + goto yy1828; + goto yy1814; + } + yy1816: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy1825; + } + if (yych <= 0x7F) { + if (yych == '\n') + goto yy1814; + goto yy1828; + } else { + if (yych <= 0xC1) + goto yy1814; + if (yych <= 0xF4) + goto yy1828; + goto yy1814; + } + yy1817: + yych = *++p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1815; + yy1818: + p = marker; + if (yyaccept == 0) { + goto yy1814; + } else { + goto yy1838; + } + yy1819: + yych = *++p; + if (yych <= 0x9F) + goto yy1818; + if (yych <= 0xBF) + goto yy1817; + goto yy1818; + yy1820: + yych = *++p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1817; + goto yy1818; + yy1821: + yych = *++p; + if (yych <= 0x8F) + goto yy1818; + if (yych <= 0xBF) + goto yy1820; + goto yy1818; + yy1822: + yych = *++p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1820; + goto yy1818; + yy1823: + yych = *++p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0x8F) + goto yy1820; + goto yy1818; + yy1824: + yych = *++p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0x9F) + goto yy1817; + goto yy1818; + yy1825: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1825; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych == '\n') + goto yy1818; + } else { + if (yych <= '>') + goto yy1837; + if (yych <= 0x7F) + goto yy1827; + if (yych <= 0xC1) + goto yy1818; + goto yy1829; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1830; + if (yych == 0xED) + goto yy1835; + goto yy1831; + } else { + if (yych <= 0xF0) + goto yy1832; + if (yych <= 0xF3) + goto yy1833; + if (yych <= 0xF4) + goto yy1834; + goto yy1818; + } + } + yy1827: + ++p; + yych = *p; + yy1828: + if (yybm[0 + yych] & 128) { + goto yy1827; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1818; + if (yych <= ']') + goto yy1836; + goto yy1818; + } else { + if (yych <= 0xDF) + goto yy1829; + if (yych <= 0xE0) + goto yy1830; + goto yy1831; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1835; + if (yych <= 0xEF) + goto yy1831; + goto yy1832; + } else { + if (yych <= 0xF3) + goto yy1833; + if (yych <= 0xF4) + goto yy1834; + goto yy1818; + } + } + yy1829: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1827; + goto yy1818; + yy1830: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1818; + if (yych <= 0xBF) + goto yy1829; + goto yy1818; + yy1831: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1829; + goto yy1818; + yy1832: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1818; + if (yych <= 0xBF) + goto yy1831; + goto yy1818; + yy1833: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0xBF) + goto yy1831; + goto yy1818; + yy1834: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0x8F) + goto yy1831; + goto yy1818; + yy1835: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1818; + if (yych <= 0x9F) + goto yy1829; + goto yy1818; + yy1836: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1827; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1818; + if (yych <= ']') + goto yy1825; + goto yy1818; + } else { + if (yych <= 0xDF) + goto yy1829; + if (yych <= 0xE0) + goto yy1830; + goto yy1831; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1835; + if (yych <= 0xEF) + goto yy1831; + goto yy1832; + } else { + if (yych <= 0xF3) + goto yy1833; + if (yych <= 0xF4) + goto yy1834; + goto yy1818; + } + } + yy1837: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1827; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy1838; + if (yych <= ']') + goto yy1836; + } else { + if (yych <= 0xDF) + goto yy1829; + if (yych <= 0xE0) + goto yy1830; + goto yy1831; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1835; + if (yych <= 0xEF) + goto yy1831; + goto yy1832; + } else { + if (yych <= 0xF3) + goto yy1833; + if (yych <= 0xF4) + goto yy1834; + } + } + yy1838 : { return (bufsize_t)(p - start); } + } } // Try to match a URL in a link or reference, return number of chars matched. // This may optionally be contained in <..>; otherwise // whitespace and unbalanced right parentheses aren't allowed. // Newlines aren't ever allowed. -bufsize_t _scan_link_url(const unsigned char *p) -{ +bufsize_t _scan_link_url(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, 8, 128, 128, 8, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 136, 224, 224, 224, 224, 224, 224, 224, - 128, 128, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 32, 224, 32, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 16, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= '[') { - if (yych <= ' ') { - if (yych <= '\f') { - if (yych == '\n') goto yy1842; - goto yy1858; - } else { - if (yych <= '\r') goto yy1844; - if (yych <= 0x1F) goto yy1858; - goto yy1844; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1846; - if (yych <= '(') goto yy1857; - goto yy1858; - } else { - if (yych == '<') goto yy1845; - goto yy1846; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1855; - if (yych <= 0x7F) goto yy1846; - } else { - if (yych <= 0xDF) goto yy1847; - if (yych <= 0xE0) goto yy1849; - goto yy1850; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1854; - if (yych <= 0xEF) goto yy1850; - goto yy1851; - } else { - if (yych <= 0xF3) goto yy1852; - if (yych <= 0xF4) goto yy1853; - } - } - } -yy1841: - { return (bufsize_t)(p - start); } -yy1842: - yyaccept = 0; - marker = ++p; - yych = *p; -yy1843: - if (yybm[0+yych] & 8) { - goto yy1842; - } - if (yych <= 0x7F) { - if (yych <= ')') { - if (yych <= 0x1F) goto yy1841; - if (yych <= '\'') goto yy1870; - if (yych <= '(') goto yy1861; - goto yy1841; - } else { - if (yych <= '<') { - if (yych <= ';') goto yy1870; - goto yy1905; - } else { - if (yych == '\\') goto yy1879; - goto yy1870; - } - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) { - if (yych <= 0xC1) goto yy1841; - goto yy1872; - } else { - if (yych <= 0xE0) goto yy1873; - if (yych <= 0xEC) goto yy1874; - goto yy1878; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1874; - goto yy1875; - } else { - if (yych <= 0xF3) goto yy1876; - if (yych <= 0xF4) goto yy1877; - goto yy1841; - } - } - } -yy1844: - yyaccept = 0; - yych = *(marker = ++p); - goto yy1843; -yy1845: - yyaccept = 0; - yych = *(marker = ++p); - if (yybm[0+yych] & 64) { - goto yy1905; - } - if (yych <= '>') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1841; - goto yy1919; - } else { - if (yych <= '\n') goto yy1841; - if (yych <= '\f') goto yy1919; - goto yy1841; - } - } else { - if (yych <= '(') { - if (yych <= ' ') goto yy1919; - goto yy1917; - } else { - if (yych <= ')') goto yy1919; - if (yych <= '<') goto yy1870; - goto yy1907; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1916; - goto yy1841; - } else { - if (yych <= 0xDF) goto yy1909; - if (yych <= 0xE0) goto yy1910; - goto yy1911; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1915; - if (yych <= 0xEF) goto yy1911; - goto yy1912; - } else { - if (yych <= 0xF3) goto yy1913; - if (yych <= 0xF4) goto yy1914; - goto yy1841; - } - } - } -yy1846: - yyaccept = 0; - yych = *(marker = ++p); - goto yy1871; -yy1847: - yych = *++p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1846; -yy1848: - p = marker; - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy1841; - } else { - goto yy1856; - } - } else { - goto yy1908; - } -yy1849: - yych = *++p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1847; - goto yy1848; -yy1850: - yych = *++p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1847; - goto yy1848; -yy1851: - yych = *++p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1850; - goto yy1848; -yy1852: - yych = *++p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1850; - goto yy1848; -yy1853: - yych = *++p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1850; - goto yy1848; -yy1854: - yych = *++p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1847; - goto yy1848; -yy1855: - yyaccept = 1; - yych = *(marker = ++p); - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy1870; - } else { - if (yych <= 0xDF) goto yy1880; - if (yych <= 0xE0) goto yy1881; - goto yy1882; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1886; - if (yych <= 0xEF) goto yy1882; - goto yy1883; - } else { - if (yych <= 0xF3) goto yy1884; - if (yych <= 0xF4) goto yy1885; - } - } -yy1856: - { return 0; } -yy1857: - yyaccept = 1; - yych = *(marker = ++p); - if (yych <= '(') { - if (yych <= ' ') goto yy1856; - if (yych <= '\'') goto yy1862; - goto yy1856; - } else { - if (yych <= 0x7F) goto yy1862; - if (yych <= 0xC1) goto yy1856; - if (yych <= 0xF4) goto yy1862; - goto yy1856; - } -yy1858: - yych = *++p; - goto yy1856; -yy1859: - ++p; - yych = *p; - if (yybm[0+yych] & 16) { - goto yy1859; - } - if (yych <= 0xE0) { - if (yych <= ')') { - if (yych <= ' ') goto yy1848; - if (yych >= ')') goto yy1887; - } else { - if (yych <= 0x7F) goto yy1861; - if (yych <= 0xC1) goto yy1848; - if (yych <= 0xDF) goto yy1863; - goto yy1864; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1869; - goto yy1865; - } else { - if (yych <= 0xF0) goto yy1866; - if (yych <= 0xF3) goto yy1867; - if (yych <= 0xF4) goto yy1868; - goto yy1848; - } - } -yy1861: - ++p; - yych = *p; -yy1862: - if (yybm[0+yych] & 32) { - goto yy1861; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= '(') goto yy1848; - if (yych <= ')') goto yy1870; - goto yy1859; - } else { - if (yych <= 0xC1) goto yy1848; - if (yych >= 0xE0) goto yy1864; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1869; - goto yy1865; - } else { - if (yych <= 0xF0) goto yy1866; - if (yych <= 0xF3) goto yy1867; - if (yych <= 0xF4) goto yy1868; - goto yy1848; - } - } -yy1863: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1861; - goto yy1848; -yy1864: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1863; - goto yy1848; -yy1865: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1863; - goto yy1848; -yy1866: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1865; - goto yy1848; -yy1867: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1865; - goto yy1848; -yy1868: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1865; - goto yy1848; -yy1869: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1863; - goto yy1848; -yy1870: - yyaccept = 0; - marker = ++p; - yych = *p; -yy1871: - if (yych <= 0xC1) { - if (yych <= ')') { - if (yych <= ' ') goto yy1841; - if (yych <= '\'') goto yy1870; - if (yych <= '(') goto yy1861; - goto yy1841; - } else { - if (yych == '\\') goto yy1879; - if (yych <= 0x7F) goto yy1870; - goto yy1841; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1872; - if (yych <= 0xE0) goto yy1873; - if (yych <= 0xEC) goto yy1874; - goto yy1878; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1874; - goto yy1875; - } else { - if (yych <= 0xF3) goto yy1876; - if (yych <= 0xF4) goto yy1877; - goto yy1841; - } - } - } -yy1872: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1870; - goto yy1848; -yy1873: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1872; - goto yy1848; -yy1874: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1872; - goto yy1848; -yy1875: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1874; - goto yy1848; -yy1876: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1874; - goto yy1848; -yy1877: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1874; - goto yy1848; -yy1878: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1872; - goto yy1848; -yy1879: - ++p; - yych = *p; - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy1870; - goto yy1848; - } else { - if (yych <= 0xDF) goto yy1880; - if (yych <= 0xE0) goto yy1881; - goto yy1882; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1886; - if (yych <= 0xEF) goto yy1882; - goto yy1883; - } else { - if (yych <= 0xF3) goto yy1884; - if (yych <= 0xF4) goto yy1885; - goto yy1848; - } - } -yy1880: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1870; - goto yy1848; -yy1881: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1880; - goto yy1848; -yy1882: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1880; - goto yy1848; -yy1883: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1882; - goto yy1848; -yy1884: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1882; - goto yy1848; -yy1885: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1882; - goto yy1848; -yy1886: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1880; - goto yy1848; -yy1887: - yyaccept = 0; - marker = ++p; - yych = *p; -yy1888: - if (yych <= 0xC1) { - if (yych <= ')') { - if (yych <= ' ') goto yy1841; - if (yych <= '\'') goto yy1887; - if (yych <= '(') goto yy1861; - goto yy1870; - } else { - if (yych == '\\') goto yy1896; - if (yych <= 0x7F) goto yy1887; - goto yy1841; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1889; - if (yych <= 0xE0) goto yy1890; - if (yych <= 0xEC) goto yy1891; - goto yy1895; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1891; - goto yy1892; - } else { - if (yych <= 0xF3) goto yy1893; - if (yych <= 0xF4) goto yy1894; - goto yy1841; - } - } - } -yy1889: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1887; - goto yy1848; -yy1890: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1889; - goto yy1848; -yy1891: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1889; - goto yy1848; -yy1892: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1891; - goto yy1848; -yy1893: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1891; - goto yy1848; -yy1894: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1891; - goto yy1848; -yy1895: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1889; - goto yy1848; -yy1896: - ++p; - yych = *p; - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= ' ') goto yy1870; - if (yych <= '[') goto yy1887; - } else { - if (yych <= 0x7F) goto yy1887; - if (yych <= 0xC1) goto yy1848; - if (yych <= 0xDF) goto yy1898; - goto yy1899; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1904; - goto yy1900; - } else { - if (yych <= 0xF0) goto yy1901; - if (yych <= 0xF3) goto yy1902; - if (yych <= 0xF4) goto yy1903; - goto yy1848; - } - } - yyaccept = 0; - marker = ++p; - yych = *p; - if (yych <= 0xDF) { - if (yych <= '[') { - if (yych <= ' ') goto yy1841; - if (yych == '(') goto yy1861; - goto yy1887; - } else { - if (yych <= '\\') goto yy1896; - if (yych <= 0x7F) goto yy1887; - if (yych <= 0xC1) goto yy1841; - goto yy1889; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy1890; - if (yych == 0xED) goto yy1895; - goto yy1891; - } else { - if (yych <= 0xF0) goto yy1892; - if (yych <= 0xF3) goto yy1893; - if (yych <= 0xF4) goto yy1894; - goto yy1841; - } - } -yy1898: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1887; - goto yy1848; -yy1899: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1898; - goto yy1848; -yy1900: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1898; - goto yy1848; -yy1901: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1900; - goto yy1848; -yy1902: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1900; - goto yy1848; -yy1903: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1900; - goto yy1848; -yy1904: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1898; - goto yy1848; -yy1905: - yyaccept = 0; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1905; - } - if (yych <= '>') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1841; - goto yy1919; - } else { - if (yych <= '\n') goto yy1841; - if (yych <= '\f') goto yy1919; - goto yy1841; - } - } else { - if (yych <= '(') { - if (yych <= ' ') goto yy1919; - goto yy1917; - } else { - if (yych <= ')') goto yy1919; - if (yych <= '<') goto yy1870; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1916; - goto yy1841; - } else { - if (yych <= 0xDF) goto yy1909; - if (yych <= 0xE0) goto yy1910; - goto yy1911; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1915; - if (yych <= 0xEF) goto yy1911; - goto yy1912; - } else { - if (yych <= 0xF3) goto yy1913; - if (yych <= 0xF4) goto yy1914; - goto yy1841; - } - } - } -yy1907: - yyaccept = 2; - yych = *(marker = ++p); - if (yych <= ')') { - if (yych <= ' ') goto yy1908; - if (yych <= '(') goto yy1871; - } else { - if (yych <= 0x7F) goto yy1871; - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xF4) goto yy1871; - } -yy1908: - { return (bufsize_t)(p - start); } -yy1909: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1905; - goto yy1848; -yy1910: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1909; - goto yy1848; -yy1911: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1909; - goto yy1848; -yy1912: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1911; - goto yy1848; -yy1913: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1911; - goto yy1848; -yy1914: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1911; - goto yy1848; -yy1915: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1909; - goto yy1848; -yy1916: - ++p; - yych = *p; - if (yych <= 0x7F) { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1870; - goto yy1905; - } else { - if (yych <= '\n') goto yy1870; - if (yych <= '\f') goto yy1905; - goto yy1870; - } - } else { - if (yych <= '>') { - if (yych <= '=') goto yy1905; - goto yy1963; - } else { - if (yych == '\\') goto yy1964; - goto yy1905; - } - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) { - if (yych <= 0xC1) goto yy1848; - goto yy1965; - } else { - if (yych <= 0xE0) goto yy1966; - if (yych <= 0xEC) goto yy1967; - goto yy1971; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1967; - goto yy1968; - } else { - if (yych <= 0xF3) goto yy1969; - if (yych <= 0xF4) goto yy1970; - goto yy1848; - } - } - } -yy1917: - ++p; - yych = *p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy1848; - if (yych >= '\n') goto yy1848; - } else { - if (yych == '\r') goto yy1848; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1917; - if (yych >= ')') goto yy1905; - } else { - if (yych == '<') goto yy1861; - if (yych <= '=') goto yy1917; - goto yy1932; - } - } - } else { - if (yych <= 0xE0) { - if (yych <= 0x7F) { - if (yych == '\\') goto yy1933; - goto yy1917; - } else { - if (yych <= 0xC1) goto yy1848; - if (yych <= 0xDF) goto yy1935; - goto yy1936; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1941; - goto yy1937; - } else { - if (yych <= 0xF0) goto yy1938; - if (yych <= 0xF3) goto yy1939; - if (yych <= 0xF4) goto yy1940; - goto yy1848; - } - } - } -yy1919: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1919; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= '<') goto yy1848; - if (yych >= '?') goto yy1922; - } else { - if (yych <= 0xC1) goto yy1848; - if (yych <= 0xDF) goto yy1924; - goto yy1925; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1930; - goto yy1926; - } else { - if (yych <= 0xF0) goto yy1927; - if (yych <= 0xF3) goto yy1928; - if (yych <= 0xF4) goto yy1929; - goto yy1848; - } - } -yy1921: - yych = *++p; - goto yy1908; -yy1922: - ++p; - yych = *p; - if (yych <= 0x7F) { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1848; - goto yy1919; - } else { - if (yych <= '\n') goto yy1848; - if (yych <= '\f') goto yy1919; - goto yy1848; - } - } else { - if (yych <= '>') { - if (yych <= '=') goto yy1919; - goto yy1931; - } else { - if (yych == '\\') goto yy1922; - goto yy1919; - } - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) { - if (yych <= 0xC1) goto yy1848; - } else { - if (yych <= 0xE0) goto yy1925; - if (yych <= 0xEC) goto yy1926; - goto yy1930; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1926; - goto yy1927; - } else { - if (yych <= 0xF3) goto yy1928; - if (yych <= 0xF4) goto yy1929; - goto yy1848; - } - } - } -yy1924: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1919; - goto yy1848; -yy1925: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1924; - goto yy1848; -yy1926: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1924; - goto yy1848; -yy1927: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1926; - goto yy1848; -yy1928: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1926; - goto yy1848; -yy1929: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1926; - goto yy1848; -yy1930: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1924; - goto yy1848; -yy1931: - yyaccept = 2; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy1919; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= '<') goto yy1908; - if (yych <= '>') goto yy1921; - goto yy1922; - } else { - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xDF) goto yy1924; - goto yy1925; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1930; - goto yy1926; - } else { - if (yych <= 0xF0) goto yy1927; - if (yych <= 0xF3) goto yy1928; - if (yych <= 0xF4) goto yy1929; - goto yy1908; - } - } -yy1932: - yyaccept = 2; - yych = *(marker = ++p); - if (yych <= '(') { - if (yych <= ' ') goto yy1908; - if (yych <= '\'') goto yy1862; - goto yy1908; - } else { - if (yych <= 0x7F) goto yy1862; - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xF4) goto yy1862; - goto yy1908; - } -yy1933: - ++p; - yych = *p; - if (yych <= '[') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1848; - goto yy1919; - } else { - if (yych <= '\n') goto yy1848; - if (yych <= '\f') goto yy1919; - goto yy1848; - } - } else { - if (yych <= ')') { - if (yych <= ' ') goto yy1919; - if (yych <= '(') goto yy1917; - goto yy1942; - } else { - if (yych == '>') goto yy1944; - goto yy1917; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1933; - if (yych <= 0x7F) goto yy1917; - goto yy1848; - } else { - if (yych <= 0xDF) goto yy1935; - if (yych <= 0xE0) goto yy1936; - goto yy1937; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1941; - if (yych <= 0xEF) goto yy1937; - goto yy1938; - } else { - if (yych <= 0xF3) goto yy1939; - if (yych <= 0xF4) goto yy1940; - goto yy1848; - } - } - } -yy1935: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1917; - goto yy1848; -yy1936: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1935; - goto yy1848; -yy1937: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1935; - goto yy1848; -yy1938: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1937; - goto yy1848; -yy1939: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1937; - goto yy1848; -yy1940: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1937; - goto yy1848; -yy1941: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1935; - goto yy1848; -yy1942: - yyaccept = 0; - marker = ++p; - yych = *p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy1841; - if (yych <= '\t') goto yy1919; - goto yy1841; - } else { - if (yych == '\r') goto yy1841; - goto yy1919; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1942; - if (yych <= '(') goto yy1917; - goto yy1905; - } else { - if (yych == '<') goto yy1887; - if (yych <= '=') goto yy1942; - goto yy1945; - } - } - } else { - if (yych <= 0xE0) { - if (yych <= 0x7F) { - if (yych == '\\') goto yy1946; - goto yy1942; - } else { - if (yych <= 0xC1) goto yy1841; - if (yych <= 0xDF) goto yy1947; - goto yy1948; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1953; - goto yy1949; - } else { - if (yych <= 0xF0) goto yy1950; - if (yych <= 0xF3) goto yy1951; - if (yych <= 0xF4) goto yy1952; - goto yy1841; - } - } - } -yy1944: - yyaccept = 2; - marker = ++p; - yych = *p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy1908; - if (yych <= '\t') goto yy1919; - goto yy1908; - } else { - if (yych == '\r') goto yy1908; - goto yy1919; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1917; - if (yych <= '(') goto yy1919; - goto yy1905; - } else { - if (yych == '<') goto yy1861; - if (yych <= '=') goto yy1917; - goto yy1932; - } - } - } else { - if (yych <= 0xE0) { - if (yych <= 0x7F) { - if (yych == '\\') goto yy1933; - goto yy1917; - } else { - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xDF) goto yy1935; - goto yy1936; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1941; - goto yy1937; - } else { - if (yych <= 0xF0) goto yy1938; - if (yych <= 0xF3) goto yy1939; - if (yych <= 0xF4) goto yy1940; - goto yy1908; - } - } - } -yy1945: - yyaccept = 2; - yych = *(marker = ++p); - if (yych <= ' ') goto yy1908; - if (yych <= 0x7F) goto yy1888; - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xF4) goto yy1888; - goto yy1908; -yy1946: - ++p; - yych = *p; - if (yych <= '\\') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1870; - goto yy1905; - } else { - if (yych <= '\n') goto yy1870; - if (yych <= '\f') goto yy1905; - goto yy1870; - } - } else { - if (yych <= '=') { - if (yych <= ' ') goto yy1905; - goto yy1942; - } else { - if (yych <= '>') goto yy1954; - if (yych <= '[') goto yy1942; - goto yy1955; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x7F) goto yy1942; - goto yy1848; - } else { - if (yych <= 0xDF) goto yy1956; - if (yych <= 0xE0) goto yy1957; - goto yy1958; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1962; - if (yych <= 0xEF) goto yy1958; - goto yy1959; - } else { - if (yych <= 0xF3) goto yy1960; - if (yych <= 0xF4) goto yy1961; - goto yy1848; - } - } - } -yy1947: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1942; - goto yy1848; -yy1948: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1947; - goto yy1848; -yy1949: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1947; - goto yy1848; -yy1950: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1949; - goto yy1848; -yy1951: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1949; - goto yy1848; -yy1952: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1949; - goto yy1848; -yy1953: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1947; - goto yy1848; -yy1954: - yyaccept = 2; - marker = ++p; - yych = *p; - if (yych <= '>') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy1908; - if (yych <= '\t') goto yy1919; - goto yy1908; - } else { - if (yych == '\r') goto yy1908; - goto yy1919; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1942; - if (yych <= '(') goto yy1917; - goto yy1905; - } else { - if (yych == '<') goto yy1887; - if (yych <= '=') goto yy1942; - goto yy1945; - } - } - } else { - if (yych <= 0xE0) { - if (yych <= 0x7F) { - if (yych == '\\') goto yy1946; - goto yy1942; - } else { - if (yych <= 0xC1) goto yy1908; - if (yych <= 0xDF) goto yy1947; - goto yy1948; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1953; - goto yy1949; - } else { - if (yych <= 0xF0) goto yy1950; - if (yych <= 0xF3) goto yy1951; - if (yych <= 0xF4) goto yy1952; - goto yy1908; - } - } - } -yy1955: - yyaccept = 0; - marker = ++p; - yych = *p; - if (yych <= '[') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1841; - goto yy1919; - } else { - if (yych <= '\n') goto yy1841; - if (yych <= '\f') goto yy1919; - goto yy1841; - } - } else { - if (yych <= '(') { - if (yych <= ' ') goto yy1919; - if (yych <= '\'') goto yy1942; - goto yy1917; - } else { - if (yych == '>') goto yy1954; - goto yy1942; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1946; - if (yych <= 0x7F) goto yy1942; - goto yy1841; - } else { - if (yych <= 0xDF) goto yy1947; - if (yych <= 0xE0) goto yy1948; - goto yy1949; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1953; - if (yych <= 0xEF) goto yy1949; - goto yy1950; - } else { - if (yych <= 0xF3) goto yy1951; - if (yych <= 0xF4) goto yy1952; - goto yy1841; - } - } - } -yy1956: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1942; - goto yy1848; -yy1957: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1956; - goto yy1848; -yy1958: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1956; - goto yy1848; -yy1959: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1958; - goto yy1848; -yy1960: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1958; - goto yy1848; -yy1961: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1958; - goto yy1848; -yy1962: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1956; - goto yy1848; -yy1963: - yyaccept = 2; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy1905; - } - if (yych <= '>') { - if (yych <= '\r') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy1908; - goto yy1919; - } else { - if (yych <= '\n') goto yy1908; - if (yych <= '\f') goto yy1919; - goto yy1908; - } - } else { - if (yych <= '(') { - if (yych <= ' ') goto yy1919; - goto yy1917; - } else { - if (yych <= ')') goto yy1919; - if (yych <= '<') goto yy1870; - goto yy1907; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1916; - goto yy1908; - } else { - if (yych <= 0xDF) goto yy1909; - if (yych <= 0xE0) goto yy1910; - goto yy1911; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1915; - if (yych <= 0xEF) goto yy1911; - goto yy1912; - } else { - if (yych <= 0xF3) goto yy1913; - if (yych <= 0xF4) goto yy1914; - goto yy1908; - } - } - } -yy1964: - yyaccept = 0; - marker = ++p; - yych = *p; - if (yych <= '[') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy1841; - if (yych <= '\t') goto yy1919; - goto yy1841; - } else { - if (yych == '\r') goto yy1841; - goto yy1919; - } - } else { - if (yych <= ')') { - if (yych <= '\'') goto yy1905; - if (yych <= '(') goto yy1917; - goto yy1919; - } else { - if (yych == '>') goto yy1963; - goto yy1905; - } - } - } else { - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= '\\') goto yy1916; - if (yych <= 0x7F) goto yy1905; - goto yy1841; - } else { - if (yych <= 0xDF) goto yy1909; - if (yych <= 0xE0) goto yy1910; - goto yy1911; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy1915; - if (yych <= 0xEF) goto yy1911; - goto yy1912; - } else { - if (yych <= 0xF3) goto yy1913; - if (yych <= 0xF4) goto yy1914; - goto yy1841; - } - } - } -yy1965: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1905; - goto yy1848; -yy1966: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1848; - if (yych <= 0xBF) goto yy1965; - goto yy1848; -yy1967: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1965; - goto yy1848; -yy1968: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1848; - if (yych <= 0xBF) goto yy1967; - goto yy1848; -yy1969: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0xBF) goto yy1967; - goto yy1848; -yy1970: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x8F) goto yy1967; - goto yy1848; -yy1971: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1848; - if (yych <= 0x9F) goto yy1965; - goto yy1848; -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 8, 128, 128, 8, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 32, 224, 32, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 16, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= '[') { + if (yych <= ' ') { + if (yych <= '\f') { + if (yych == '\n') + goto yy1842; + goto yy1858; + } else { + if (yych <= '\r') + goto yy1844; + if (yych <= 0x1F) + goto yy1858; + goto yy1844; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1846; + if (yych <= '(') + goto yy1857; + goto yy1858; + } else { + if (yych == '<') + goto yy1845; + goto yy1846; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1855; + if (yych <= 0x7F) + goto yy1846; + } else { + if (yych <= 0xDF) + goto yy1847; + if (yych <= 0xE0) + goto yy1849; + goto yy1850; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1854; + if (yych <= 0xEF) + goto yy1850; + goto yy1851; + } else { + if (yych <= 0xF3) + goto yy1852; + if (yych <= 0xF4) + goto yy1853; + } + } + } + yy1841 : { return (bufsize_t)(p - start); } + yy1842: + yyaccept = 0; + marker = ++p; + yych = *p; + yy1843: + if (yybm[0 + yych] & 8) { + goto yy1842; + } + if (yych <= 0x7F) { + if (yych <= ')') { + if (yych <= 0x1F) + goto yy1841; + if (yych <= '\'') + goto yy1870; + if (yych <= '(') + goto yy1861; + goto yy1841; + } else { + if (yych <= '<') { + if (yych <= ';') + goto yy1870; + goto yy1905; + } else { + if (yych == '\\') + goto yy1879; + goto yy1870; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) { + if (yych <= 0xC1) + goto yy1841; + goto yy1872; + } else { + if (yych <= 0xE0) + goto yy1873; + if (yych <= 0xEC) + goto yy1874; + goto yy1878; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1874; + goto yy1875; + } else { + if (yych <= 0xF3) + goto yy1876; + if (yych <= 0xF4) + goto yy1877; + goto yy1841; + } + } + } + yy1844: + yyaccept = 0; + yych = *(marker = ++p); + goto yy1843; + yy1845: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy1905; + } + if (yych <= '>') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1841; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1841; + if (yych <= '\f') + goto yy1919; + goto yy1841; + } + } else { + if (yych <= '(') { + if (yych <= ' ') + goto yy1919; + goto yy1917; + } else { + if (yych <= ')') + goto yy1919; + if (yych <= '<') + goto yy1870; + goto yy1907; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1916; + goto yy1841; + } else { + if (yych <= 0xDF) + goto yy1909; + if (yych <= 0xE0) + goto yy1910; + goto yy1911; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1915; + if (yych <= 0xEF) + goto yy1911; + goto yy1912; + } else { + if (yych <= 0xF3) + goto yy1913; + if (yych <= 0xF4) + goto yy1914; + goto yy1841; + } + } + } + yy1846: + yyaccept = 0; + yych = *(marker = ++p); + goto yy1871; + yy1847: + yych = *++p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1846; + yy1848: + p = marker; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy1841; + } else { + goto yy1856; + } + } else { + goto yy1908; + } + yy1849: + yych = *++p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1847; + goto yy1848; + yy1850: + yych = *++p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1847; + goto yy1848; + yy1851: + yych = *++p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1850; + goto yy1848; + yy1852: + yych = *++p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1850; + goto yy1848; + yy1853: + yych = *++p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1850; + goto yy1848; + yy1854: + yych = *++p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1847; + goto yy1848; + yy1855: + yyaccept = 1; + yych = *(marker = ++p); + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy1870; + } else { + if (yych <= 0xDF) + goto yy1880; + if (yych <= 0xE0) + goto yy1881; + goto yy1882; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1886; + if (yych <= 0xEF) + goto yy1882; + goto yy1883; + } else { + if (yych <= 0xF3) + goto yy1884; + if (yych <= 0xF4) + goto yy1885; + } + } + yy1856 : { return 0; } + yy1857: + yyaccept = 1; + yych = *(marker = ++p); + if (yych <= '(') { + if (yych <= ' ') + goto yy1856; + if (yych <= '\'') + goto yy1862; + goto yy1856; + } else { + if (yych <= 0x7F) + goto yy1862; + if (yych <= 0xC1) + goto yy1856; + if (yych <= 0xF4) + goto yy1862; + goto yy1856; + } + yy1858: + yych = *++p; + goto yy1856; + yy1859: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy1859; + } + if (yych <= 0xE0) { + if (yych <= ')') { + if (yych <= ' ') + goto yy1848; + if (yych >= ')') + goto yy1887; + } else { + if (yych <= 0x7F) + goto yy1861; + if (yych <= 0xC1) + goto yy1848; + if (yych <= 0xDF) + goto yy1863; + goto yy1864; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1869; + goto yy1865; + } else { + if (yych <= 0xF0) + goto yy1866; + if (yych <= 0xF3) + goto yy1867; + if (yych <= 0xF4) + goto yy1868; + goto yy1848; + } + } + yy1861: + ++p; + yych = *p; + yy1862: + if (yybm[0 + yych] & 32) { + goto yy1861; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= '(') + goto yy1848; + if (yych <= ')') + goto yy1870; + goto yy1859; + } else { + if (yych <= 0xC1) + goto yy1848; + if (yych >= 0xE0) + goto yy1864; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1869; + goto yy1865; + } else { + if (yych <= 0xF0) + goto yy1866; + if (yych <= 0xF3) + goto yy1867; + if (yych <= 0xF4) + goto yy1868; + goto yy1848; + } + } + yy1863: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1861; + goto yy1848; + yy1864: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1863; + goto yy1848; + yy1865: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1863; + goto yy1848; + yy1866: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1865; + goto yy1848; + yy1867: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1865; + goto yy1848; + yy1868: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1865; + goto yy1848; + yy1869: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1863; + goto yy1848; + yy1870: + yyaccept = 0; + marker = ++p; + yych = *p; + yy1871: + if (yych <= 0xC1) { + if (yych <= ')') { + if (yych <= ' ') + goto yy1841; + if (yych <= '\'') + goto yy1870; + if (yych <= '(') + goto yy1861; + goto yy1841; + } else { + if (yych == '\\') + goto yy1879; + if (yych <= 0x7F) + goto yy1870; + goto yy1841; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1872; + if (yych <= 0xE0) + goto yy1873; + if (yych <= 0xEC) + goto yy1874; + goto yy1878; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1874; + goto yy1875; + } else { + if (yych <= 0xF3) + goto yy1876; + if (yych <= 0xF4) + goto yy1877; + goto yy1841; + } + } + } + yy1872: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1870; + goto yy1848; + yy1873: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1872; + goto yy1848; + yy1874: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1872; + goto yy1848; + yy1875: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1874; + goto yy1848; + yy1876: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1874; + goto yy1848; + yy1877: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1874; + goto yy1848; + yy1878: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1872; + goto yy1848; + yy1879: + ++p; + yych = *p; + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy1870; + goto yy1848; + } else { + if (yych <= 0xDF) + goto yy1880; + if (yych <= 0xE0) + goto yy1881; + goto yy1882; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1886; + if (yych <= 0xEF) + goto yy1882; + goto yy1883; + } else { + if (yych <= 0xF3) + goto yy1884; + if (yych <= 0xF4) + goto yy1885; + goto yy1848; + } + } + yy1880: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1870; + goto yy1848; + yy1881: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1880; + goto yy1848; + yy1882: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1880; + goto yy1848; + yy1883: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1882; + goto yy1848; + yy1884: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1882; + goto yy1848; + yy1885: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1882; + goto yy1848; + yy1886: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1880; + goto yy1848; + yy1887: + yyaccept = 0; + marker = ++p; + yych = *p; + yy1888: + if (yych <= 0xC1) { + if (yych <= ')') { + if (yych <= ' ') + goto yy1841; + if (yych <= '\'') + goto yy1887; + if (yych <= '(') + goto yy1861; + goto yy1870; + } else { + if (yych == '\\') + goto yy1896; + if (yych <= 0x7F) + goto yy1887; + goto yy1841; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1889; + if (yych <= 0xE0) + goto yy1890; + if (yych <= 0xEC) + goto yy1891; + goto yy1895; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1891; + goto yy1892; + } else { + if (yych <= 0xF3) + goto yy1893; + if (yych <= 0xF4) + goto yy1894; + goto yy1841; + } + } + } + yy1889: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1887; + goto yy1848; + yy1890: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1889; + goto yy1848; + yy1891: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1889; + goto yy1848; + yy1892: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1891; + goto yy1848; + yy1893: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1891; + goto yy1848; + yy1894: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1891; + goto yy1848; + yy1895: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1889; + goto yy1848; + yy1896: + ++p; + yych = *p; + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= ' ') + goto yy1870; + if (yych <= '[') + goto yy1887; + } else { + if (yych <= 0x7F) + goto yy1887; + if (yych <= 0xC1) + goto yy1848; + if (yych <= 0xDF) + goto yy1898; + goto yy1899; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1904; + goto yy1900; + } else { + if (yych <= 0xF0) + goto yy1901; + if (yych <= 0xF3) + goto yy1902; + if (yych <= 0xF4) + goto yy1903; + goto yy1848; + } + } + yyaccept = 0; + marker = ++p; + yych = *p; + if (yych <= 0xDF) { + if (yych <= '[') { + if (yych <= ' ') + goto yy1841; + if (yych == '(') + goto yy1861; + goto yy1887; + } else { + if (yych <= '\\') + goto yy1896; + if (yych <= 0x7F) + goto yy1887; + if (yych <= 0xC1) + goto yy1841; + goto yy1889; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy1890; + if (yych == 0xED) + goto yy1895; + goto yy1891; + } else { + if (yych <= 0xF0) + goto yy1892; + if (yych <= 0xF3) + goto yy1893; + if (yych <= 0xF4) + goto yy1894; + goto yy1841; + } + } + yy1898: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1887; + goto yy1848; + yy1899: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1898; + goto yy1848; + yy1900: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1898; + goto yy1848; + yy1901: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1900; + goto yy1848; + yy1902: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1900; + goto yy1848; + yy1903: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1900; + goto yy1848; + yy1904: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1898; + goto yy1848; + yy1905: + yyaccept = 0; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1905; + } + if (yych <= '>') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1841; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1841; + if (yych <= '\f') + goto yy1919; + goto yy1841; + } + } else { + if (yych <= '(') { + if (yych <= ' ') + goto yy1919; + goto yy1917; + } else { + if (yych <= ')') + goto yy1919; + if (yych <= '<') + goto yy1870; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1916; + goto yy1841; + } else { + if (yych <= 0xDF) + goto yy1909; + if (yych <= 0xE0) + goto yy1910; + goto yy1911; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1915; + if (yych <= 0xEF) + goto yy1911; + goto yy1912; + } else { + if (yych <= 0xF3) + goto yy1913; + if (yych <= 0xF4) + goto yy1914; + goto yy1841; + } + } + } + yy1907: + yyaccept = 2; + yych = *(marker = ++p); + if (yych <= ')') { + if (yych <= ' ') + goto yy1908; + if (yych <= '(') + goto yy1871; + } else { + if (yych <= 0x7F) + goto yy1871; + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xF4) + goto yy1871; + } + yy1908 : { return (bufsize_t)(p - start); } + yy1909: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1905; + goto yy1848; + yy1910: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1909; + goto yy1848; + yy1911: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1909; + goto yy1848; + yy1912: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1911; + goto yy1848; + yy1913: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1911; + goto yy1848; + yy1914: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1911; + goto yy1848; + yy1915: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1909; + goto yy1848; + yy1916: + ++p; + yych = *p; + if (yych <= 0x7F) { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1870; + goto yy1905; + } else { + if (yych <= '\n') + goto yy1870; + if (yych <= '\f') + goto yy1905; + goto yy1870; + } + } else { + if (yych <= '>') { + if (yych <= '=') + goto yy1905; + goto yy1963; + } else { + if (yych == '\\') + goto yy1964; + goto yy1905; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) { + if (yych <= 0xC1) + goto yy1848; + goto yy1965; + } else { + if (yych <= 0xE0) + goto yy1966; + if (yych <= 0xEC) + goto yy1967; + goto yy1971; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1967; + goto yy1968; + } else { + if (yych <= 0xF3) + goto yy1969; + if (yych <= 0xF4) + goto yy1970; + goto yy1848; + } + } + } + yy1917: + ++p; + yych = *p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy1848; + if (yych >= '\n') + goto yy1848; + } else { + if (yych == '\r') + goto yy1848; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1917; + if (yych >= ')') + goto yy1905; + } else { + if (yych == '<') + goto yy1861; + if (yych <= '=') + goto yy1917; + goto yy1932; + } + } + } else { + if (yych <= 0xE0) { + if (yych <= 0x7F) { + if (yych == '\\') + goto yy1933; + goto yy1917; + } else { + if (yych <= 0xC1) + goto yy1848; + if (yych <= 0xDF) + goto yy1935; + goto yy1936; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1941; + goto yy1937; + } else { + if (yych <= 0xF0) + goto yy1938; + if (yych <= 0xF3) + goto yy1939; + if (yych <= 0xF4) + goto yy1940; + goto yy1848; + } + } + } + yy1919: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1919; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= '<') + goto yy1848; + if (yych >= '?') + goto yy1922; + } else { + if (yych <= 0xC1) + goto yy1848; + if (yych <= 0xDF) + goto yy1924; + goto yy1925; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1930; + goto yy1926; + } else { + if (yych <= 0xF0) + goto yy1927; + if (yych <= 0xF3) + goto yy1928; + if (yych <= 0xF4) + goto yy1929; + goto yy1848; + } + } + yy1921: + yych = *++p; + goto yy1908; + yy1922: + ++p; + yych = *p; + if (yych <= 0x7F) { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1848; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1848; + if (yych <= '\f') + goto yy1919; + goto yy1848; + } + } else { + if (yych <= '>') { + if (yych <= '=') + goto yy1919; + goto yy1931; + } else { + if (yych == '\\') + goto yy1922; + goto yy1919; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) { + if (yych <= 0xC1) + goto yy1848; + } else { + if (yych <= 0xE0) + goto yy1925; + if (yych <= 0xEC) + goto yy1926; + goto yy1930; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1926; + goto yy1927; + } else { + if (yych <= 0xF3) + goto yy1928; + if (yych <= 0xF4) + goto yy1929; + goto yy1848; + } + } + } + yy1924: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1919; + goto yy1848; + yy1925: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1924; + goto yy1848; + yy1926: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1924; + goto yy1848; + yy1927: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1926; + goto yy1848; + yy1928: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1926; + goto yy1848; + yy1929: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1926; + goto yy1848; + yy1930: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1924; + goto yy1848; + yy1931: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy1919; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= '<') + goto yy1908; + if (yych <= '>') + goto yy1921; + goto yy1922; + } else { + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xDF) + goto yy1924; + goto yy1925; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1930; + goto yy1926; + } else { + if (yych <= 0xF0) + goto yy1927; + if (yych <= 0xF3) + goto yy1928; + if (yych <= 0xF4) + goto yy1929; + goto yy1908; + } + } + yy1932: + yyaccept = 2; + yych = *(marker = ++p); + if (yych <= '(') { + if (yych <= ' ') + goto yy1908; + if (yych <= '\'') + goto yy1862; + goto yy1908; + } else { + if (yych <= 0x7F) + goto yy1862; + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xF4) + goto yy1862; + goto yy1908; + } + yy1933: + ++p; + yych = *p; + if (yych <= '[') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1848; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1848; + if (yych <= '\f') + goto yy1919; + goto yy1848; + } + } else { + if (yych <= ')') { + if (yych <= ' ') + goto yy1919; + if (yych <= '(') + goto yy1917; + goto yy1942; + } else { + if (yych == '>') + goto yy1944; + goto yy1917; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1933; + if (yych <= 0x7F) + goto yy1917; + goto yy1848; + } else { + if (yych <= 0xDF) + goto yy1935; + if (yych <= 0xE0) + goto yy1936; + goto yy1937; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1941; + if (yych <= 0xEF) + goto yy1937; + goto yy1938; + } else { + if (yych <= 0xF3) + goto yy1939; + if (yych <= 0xF4) + goto yy1940; + goto yy1848; + } + } + } + yy1935: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1917; + goto yy1848; + yy1936: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1935; + goto yy1848; + yy1937: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1935; + goto yy1848; + yy1938: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1937; + goto yy1848; + yy1939: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1937; + goto yy1848; + yy1940: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1937; + goto yy1848; + yy1941: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1935; + goto yy1848; + yy1942: + yyaccept = 0; + marker = ++p; + yych = *p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy1841; + if (yych <= '\t') + goto yy1919; + goto yy1841; + } else { + if (yych == '\r') + goto yy1841; + goto yy1919; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1942; + if (yych <= '(') + goto yy1917; + goto yy1905; + } else { + if (yych == '<') + goto yy1887; + if (yych <= '=') + goto yy1942; + goto yy1945; + } + } + } else { + if (yych <= 0xE0) { + if (yych <= 0x7F) { + if (yych == '\\') + goto yy1946; + goto yy1942; + } else { + if (yych <= 0xC1) + goto yy1841; + if (yych <= 0xDF) + goto yy1947; + goto yy1948; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1953; + goto yy1949; + } else { + if (yych <= 0xF0) + goto yy1950; + if (yych <= 0xF3) + goto yy1951; + if (yych <= 0xF4) + goto yy1952; + goto yy1841; + } + } + } + yy1944: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy1908; + if (yych <= '\t') + goto yy1919; + goto yy1908; + } else { + if (yych == '\r') + goto yy1908; + goto yy1919; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1917; + if (yych <= '(') + goto yy1919; + goto yy1905; + } else { + if (yych == '<') + goto yy1861; + if (yych <= '=') + goto yy1917; + goto yy1932; + } + } + } else { + if (yych <= 0xE0) { + if (yych <= 0x7F) { + if (yych == '\\') + goto yy1933; + goto yy1917; + } else { + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xDF) + goto yy1935; + goto yy1936; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1941; + goto yy1937; + } else { + if (yych <= 0xF0) + goto yy1938; + if (yych <= 0xF3) + goto yy1939; + if (yych <= 0xF4) + goto yy1940; + goto yy1908; + } + } + } + yy1945: + yyaccept = 2; + yych = *(marker = ++p); + if (yych <= ' ') + goto yy1908; + if (yych <= 0x7F) + goto yy1888; + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xF4) + goto yy1888; + goto yy1908; + yy1946: + ++p; + yych = *p; + if (yych <= '\\') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1870; + goto yy1905; + } else { + if (yych <= '\n') + goto yy1870; + if (yych <= '\f') + goto yy1905; + goto yy1870; + } + } else { + if (yych <= '=') { + if (yych <= ' ') + goto yy1905; + goto yy1942; + } else { + if (yych <= '>') + goto yy1954; + if (yych <= '[') + goto yy1942; + goto yy1955; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy1942; + goto yy1848; + } else { + if (yych <= 0xDF) + goto yy1956; + if (yych <= 0xE0) + goto yy1957; + goto yy1958; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1962; + if (yych <= 0xEF) + goto yy1958; + goto yy1959; + } else { + if (yych <= 0xF3) + goto yy1960; + if (yych <= 0xF4) + goto yy1961; + goto yy1848; + } + } + } + yy1947: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1942; + goto yy1848; + yy1948: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1947; + goto yy1848; + yy1949: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1947; + goto yy1848; + yy1950: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1949; + goto yy1848; + yy1951: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1949; + goto yy1848; + yy1952: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1949; + goto yy1848; + yy1953: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1947; + goto yy1848; + yy1954: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy1908; + if (yych <= '\t') + goto yy1919; + goto yy1908; + } else { + if (yych == '\r') + goto yy1908; + goto yy1919; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1942; + if (yych <= '(') + goto yy1917; + goto yy1905; + } else { + if (yych == '<') + goto yy1887; + if (yych <= '=') + goto yy1942; + goto yy1945; + } + } + } else { + if (yych <= 0xE0) { + if (yych <= 0x7F) { + if (yych == '\\') + goto yy1946; + goto yy1942; + } else { + if (yych <= 0xC1) + goto yy1908; + if (yych <= 0xDF) + goto yy1947; + goto yy1948; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1953; + goto yy1949; + } else { + if (yych <= 0xF0) + goto yy1950; + if (yych <= 0xF3) + goto yy1951; + if (yych <= 0xF4) + goto yy1952; + goto yy1908; + } + } + } + yy1955: + yyaccept = 0; + marker = ++p; + yych = *p; + if (yych <= '[') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1841; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1841; + if (yych <= '\f') + goto yy1919; + goto yy1841; + } + } else { + if (yych <= '(') { + if (yych <= ' ') + goto yy1919; + if (yych <= '\'') + goto yy1942; + goto yy1917; + } else { + if (yych == '>') + goto yy1954; + goto yy1942; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1946; + if (yych <= 0x7F) + goto yy1942; + goto yy1841; + } else { + if (yych <= 0xDF) + goto yy1947; + if (yych <= 0xE0) + goto yy1948; + goto yy1949; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1953; + if (yych <= 0xEF) + goto yy1949; + goto yy1950; + } else { + if (yych <= 0xF3) + goto yy1951; + if (yych <= 0xF4) + goto yy1952; + goto yy1841; + } + } + } + yy1956: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1942; + goto yy1848; + yy1957: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1956; + goto yy1848; + yy1958: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1956; + goto yy1848; + yy1959: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1958; + goto yy1848; + yy1960: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1958; + goto yy1848; + yy1961: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1958; + goto yy1848; + yy1962: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1956; + goto yy1848; + yy1963: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy1905; + } + if (yych <= '>') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy1908; + goto yy1919; + } else { + if (yych <= '\n') + goto yy1908; + if (yych <= '\f') + goto yy1919; + goto yy1908; + } + } else { + if (yych <= '(') { + if (yych <= ' ') + goto yy1919; + goto yy1917; + } else { + if (yych <= ')') + goto yy1919; + if (yych <= '<') + goto yy1870; + goto yy1907; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1916; + goto yy1908; + } else { + if (yych <= 0xDF) + goto yy1909; + if (yych <= 0xE0) + goto yy1910; + goto yy1911; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1915; + if (yych <= 0xEF) + goto yy1911; + goto yy1912; + } else { + if (yych <= 0xF3) + goto yy1913; + if (yych <= 0xF4) + goto yy1914; + goto yy1908; + } + } + } + yy1964: + yyaccept = 0; + marker = ++p; + yych = *p; + if (yych <= '[') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy1841; + if (yych <= '\t') + goto yy1919; + goto yy1841; + } else { + if (yych == '\r') + goto yy1841; + goto yy1919; + } + } else { + if (yych <= ')') { + if (yych <= '\'') + goto yy1905; + if (yych <= '(') + goto yy1917; + goto yy1919; + } else { + if (yych == '>') + goto yy1963; + goto yy1905; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\\') + goto yy1916; + if (yych <= 0x7F) + goto yy1905; + goto yy1841; + } else { + if (yych <= 0xDF) + goto yy1909; + if (yych <= 0xE0) + goto yy1910; + goto yy1911; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy1915; + if (yych <= 0xEF) + goto yy1911; + goto yy1912; + } else { + if (yych <= 0xF3) + goto yy1913; + if (yych <= 0xF4) + goto yy1914; + goto yy1841; + } + } + } + yy1965: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1905; + goto yy1848; + yy1966: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1848; + if (yych <= 0xBF) + goto yy1965; + goto yy1848; + yy1967: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1965; + goto yy1848; + yy1968: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1848; + if (yych <= 0xBF) + goto yy1967; + goto yy1848; + yy1969: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0xBF) + goto yy1967; + goto yy1848; + yy1970: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x8F) + goto yy1967; + goto yy1848; + yy1971: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1848; + if (yych <= 0x9F) + goto yy1965; + goto yy1848; + } } // 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, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 96, 224, 224, 224, 224, 160, - 224, 192, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 16, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xC1) { - if (yych <= '"') { - if (yych == '\n') goto yy1974; - if (yych <= '!') goto yy1978; - goto yy1975; - } else { - if (yych <= '\'') { - if (yych <= '&') goto yy1978; - goto yy1976; - } else { - if (yych <= '(') goto yy1977; - if (yych <= 0x7F) goto yy1978; - } - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy1979; - if (yych <= 0xE0) goto yy1981; - if (yych <= 0xEC) goto yy1982; - goto yy1986; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy1982; - goto yy1983; - } else { - if (yych <= 0xF3) goto yy1984; - if (yych <= 0xF4) goto yy1985; - } - } - } -yy1974: - { return 0; } -yy1975: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy1974; - if (yych <= 0x7F) goto yy2018; - if (yych <= 0xC1) goto yy1974; - if (yych <= 0xF4) goto yy2018; - goto yy1974; -yy1976: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy1974; - if (yych <= 0x7F) goto yy2004; - if (yych <= 0xC1) goto yy1974; - if (yych <= 0xF4) goto yy2004; - goto yy1974; -yy1977: - yyaccept = 0; - yych = *(marker = ++p); - if (yych <= 0x00) goto yy1974; - if (yych <= 0x7F) goto yy1990; - if (yych <= 0xC1) goto yy1974; - if (yych <= 0xF4) goto yy1990; - goto yy1974; -yy1978: - yych = *++p; - goto yy1974; -yy1979: - yych = *++p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1978; -yy1980: - p = marker; - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy1974; - } else { - goto yy1999; - } - } else { - if (yyaccept == 2) { - goto yy2013; - } else { - goto yy2027; - } - } -yy1981: - yych = *++p; - if (yych <= 0x9F) goto yy1980; - if (yych <= 0xBF) goto yy1979; - goto yy1980; -yy1982: - yych = *++p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1979; - goto yy1980; -yy1983: - yych = *++p; - if (yych <= 0x8F) goto yy1980; - if (yych <= 0xBF) goto yy1982; - goto yy1980; -yy1984: - yych = *++p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1982; - goto yy1980; -yy1985: - yych = *++p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x8F) goto yy1982; - goto yy1980; -yy1986: - yych = *++p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x9F) goto yy1979; - goto yy1980; -yy1987: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1989; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= ')') goto yy2000; - goto yy1987; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych <= 0xDF) goto yy1991; - goto yy1992; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1997; - goto yy1993; - } else { - if (yych <= 0xF0) goto yy1994; - if (yych <= 0xF3) goto yy1995; - if (yych <= 0xF4) goto yy1996; - goto yy1980; - } - } -yy1989: - ++p; - yych = *p; -yy1990: - if (yybm[0+yych] & 32) { - goto yy1989; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= ')') goto yy1998; - goto yy1987; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych >= 0xE0) goto yy1992; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1997; - goto yy1993; - } else { - if (yych <= 0xF0) goto yy1994; - if (yych <= 0xF3) goto yy1995; - if (yych <= 0xF4) goto yy1996; - goto yy1980; - } - } -yy1991: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1989; - goto yy1980; -yy1992: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1980; - if (yych <= 0xBF) goto yy1991; - goto yy1980; -yy1993: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1991; - goto yy1980; -yy1994: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1980; - if (yych <= 0xBF) goto yy1993; - goto yy1980; -yy1995: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy1993; - goto yy1980; -yy1996: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x8F) goto yy1993; - goto yy1980; -yy1997: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x9F) goto yy1991; - goto yy1980; -yy1998: - ++p; -yy1999: - { return (bufsize_t)(p - start); } -yy2000: - yyaccept = 1; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy1989; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1999; - if (yych <= ')') goto yy1998; - goto yy1987; - } else { - if (yych <= 0xC1) goto yy1999; - if (yych <= 0xDF) goto yy1991; - goto yy1992; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy1997; - goto yy1993; - } else { - if (yych <= 0xF0) goto yy1994; - if (yych <= 0xF3) goto yy1995; - if (yych <= 0xF4) goto yy1996; - goto yy1999; - } - } -yy2001: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy2003; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= '\'') goto yy2014; - goto yy2001; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych <= 0xDF) goto yy2005; - goto yy2006; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2011; - goto yy2007; - } else { - if (yych <= 0xF0) goto yy2008; - if (yych <= 0xF3) goto yy2009; - if (yych <= 0xF4) goto yy2010; - goto yy1980; - } - } -yy2003: - ++p; - yych = *p; -yy2004: - if (yybm[0+yych] & 64) { - goto yy2003; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= '\'') goto yy2012; - goto yy2001; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych >= 0xE0) goto yy2006; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2011; - goto yy2007; - } else { - if (yych <= 0xF0) goto yy2008; - if (yych <= 0xF3) goto yy2009; - if (yych <= 0xF4) goto yy2010; - goto yy1980; - } - } -yy2005: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2003; - goto yy1980; -yy2006: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1980; - if (yych <= 0xBF) goto yy2005; - goto yy1980; -yy2007: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2005; - goto yy1980; -yy2008: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1980; - if (yych <= 0xBF) goto yy2007; - goto yy1980; -yy2009: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2007; - goto yy1980; -yy2010: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x8F) goto yy2007; - goto yy1980; -yy2011: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x9F) goto yy2005; - goto yy1980; -yy2012: - ++p; -yy2013: - { return (bufsize_t)(p - start); } -yy2014: - yyaccept = 2; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy2003; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy2013; - if (yych <= '\'') goto yy2012; - goto yy2001; - } else { - if (yych <= 0xC1) goto yy2013; - if (yych <= 0xDF) goto yy2005; - goto yy2006; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2011; - goto yy2007; - } else { - if (yych <= 0xF0) goto yy2008; - if (yych <= 0xF3) goto yy2009; - if (yych <= 0xF4) goto yy2010; - goto yy2013; - } - } -yy2015: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2017; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= '"') goto yy2028; - goto yy2015; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych <= 0xDF) goto yy2019; - goto yy2020; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2025; - goto yy2021; - } else { - if (yych <= 0xF0) goto yy2022; - if (yych <= 0xF3) goto yy2023; - if (yych <= 0xF4) goto yy2024; - goto yy1980; - } - } -yy2017: - ++p; - yych = *p; -yy2018: - if (yybm[0+yych] & 128) { - goto yy2017; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy1980; - if (yych <= '"') goto yy2026; - goto yy2015; - } else { - if (yych <= 0xC1) goto yy1980; - if (yych >= 0xE0) goto yy2020; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2025; - goto yy2021; - } else { - if (yych <= 0xF0) goto yy2022; - if (yych <= 0xF3) goto yy2023; - if (yych <= 0xF4) goto yy2024; - goto yy1980; - } - } -yy2019: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2017; - goto yy1980; -yy2020: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy1980; - if (yych <= 0xBF) goto yy2019; - goto yy1980; -yy2021: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2019; - goto yy1980; -yy2022: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy1980; - if (yych <= 0xBF) goto yy2021; - goto yy1980; -yy2023: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0xBF) goto yy2021; - goto yy1980; -yy2024: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x8F) goto yy2021; - goto yy1980; -yy2025: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy1980; - if (yych <= 0x9F) goto yy2019; - goto yy1980; -yy2026: - ++p; -yy2027: - { return (bufsize_t)(p - start); } -yy2028: - yyaccept = 3; - marker = ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2017; - } - if (yych <= 0xE0) { - if (yych <= '\\') { - if (yych <= 0x00) goto yy2027; - if (yych <= '"') goto yy2026; - goto yy2015; - } else { - if (yych <= 0xC1) goto yy2027; - if (yych <= 0xDF) goto yy2019; - goto yy2020; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2025; - goto yy2021; - } else { - if (yych <= 0xF0) goto yy2022; - if (yych <= 0xF3) goto yy2023; - if (yych <= 0xF4) goto yy2024; - goto yy2027; - } - } -} - + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 96, 224, 224, 224, 224, 160, 224, 192, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 16, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xC1) { + if (yych <= '"') { + if (yych == '\n') + goto yy1974; + if (yych <= '!') + goto yy1978; + goto yy1975; + } else { + if (yych <= '\'') { + if (yych <= '&') + goto yy1978; + goto yy1976; + } else { + if (yych <= '(') + goto yy1977; + if (yych <= 0x7F) + goto yy1978; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy1979; + if (yych <= 0xE0) + goto yy1981; + if (yych <= 0xEC) + goto yy1982; + goto yy1986; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy1982; + goto yy1983; + } else { + if (yych <= 0xF3) + goto yy1984; + if (yych <= 0xF4) + goto yy1985; + } + } + } + yy1974 : { return 0; } + yy1975: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy1974; + if (yych <= 0x7F) + goto yy2018; + if (yych <= 0xC1) + goto yy1974; + if (yych <= 0xF4) + goto yy2018; + goto yy1974; + yy1976: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy1974; + if (yych <= 0x7F) + goto yy2004; + if (yych <= 0xC1) + goto yy1974; + if (yych <= 0xF4) + goto yy2004; + goto yy1974; + yy1977: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy1974; + if (yych <= 0x7F) + goto yy1990; + if (yych <= 0xC1) + goto yy1974; + if (yych <= 0xF4) + goto yy1990; + goto yy1974; + yy1978: + yych = *++p; + goto yy1974; + yy1979: + yych = *++p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1978; + yy1980: + p = marker; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy1974; + } else { + goto yy1999; + } + } else { + if (yyaccept == 2) { + goto yy2013; + } else { + goto yy2027; + } + } + yy1981: + yych = *++p; + if (yych <= 0x9F) + goto yy1980; + if (yych <= 0xBF) + goto yy1979; + goto yy1980; + yy1982: + yych = *++p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1979; + goto yy1980; + yy1983: + yych = *++p; + if (yych <= 0x8F) + goto yy1980; + if (yych <= 0xBF) + goto yy1982; + goto yy1980; + yy1984: + yych = *++p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1982; + goto yy1980; + yy1985: + yych = *++p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x8F) + goto yy1982; + goto yy1980; + yy1986: + yych = *++p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x9F) + goto yy1979; + goto yy1980; + yy1987: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1989; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= ')') + goto yy2000; + goto yy1987; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych <= 0xDF) + goto yy1991; + goto yy1992; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1997; + goto yy1993; + } else { + if (yych <= 0xF0) + goto yy1994; + if (yych <= 0xF3) + goto yy1995; + if (yych <= 0xF4) + goto yy1996; + goto yy1980; + } + } + yy1989: + ++p; + yych = *p; + yy1990: + if (yybm[0 + yych] & 32) { + goto yy1989; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= ')') + goto yy1998; + goto yy1987; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych >= 0xE0) + goto yy1992; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1997; + goto yy1993; + } else { + if (yych <= 0xF0) + goto yy1994; + if (yych <= 0xF3) + goto yy1995; + if (yych <= 0xF4) + goto yy1996; + goto yy1980; + } + } + yy1991: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1989; + goto yy1980; + yy1992: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1980; + if (yych <= 0xBF) + goto yy1991; + goto yy1980; + yy1993: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1991; + goto yy1980; + yy1994: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1980; + if (yych <= 0xBF) + goto yy1993; + goto yy1980; + yy1995: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy1993; + goto yy1980; + yy1996: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x8F) + goto yy1993; + goto yy1980; + yy1997: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x9F) + goto yy1991; + goto yy1980; + yy1998: + ++p; + yy1999 : { return (bufsize_t)(p - start); } + yy2000: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy1989; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1999; + if (yych <= ')') + goto yy1998; + goto yy1987; + } else { + if (yych <= 0xC1) + goto yy1999; + if (yych <= 0xDF) + goto yy1991; + goto yy1992; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy1997; + goto yy1993; + } else { + if (yych <= 0xF0) + goto yy1994; + if (yych <= 0xF3) + goto yy1995; + if (yych <= 0xF4) + goto yy1996; + goto yy1999; + } + } + yy2001: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy2003; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= '\'') + goto yy2014; + goto yy2001; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych <= 0xDF) + goto yy2005; + goto yy2006; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2011; + goto yy2007; + } else { + if (yych <= 0xF0) + goto yy2008; + if (yych <= 0xF3) + goto yy2009; + if (yych <= 0xF4) + goto yy2010; + goto yy1980; + } + } + yy2003: + ++p; + yych = *p; + yy2004: + if (yybm[0 + yych] & 64) { + goto yy2003; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= '\'') + goto yy2012; + goto yy2001; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych >= 0xE0) + goto yy2006; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2011; + goto yy2007; + } else { + if (yych <= 0xF0) + goto yy2008; + if (yych <= 0xF3) + goto yy2009; + if (yych <= 0xF4) + goto yy2010; + goto yy1980; + } + } + yy2005: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2003; + goto yy1980; + yy2006: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1980; + if (yych <= 0xBF) + goto yy2005; + goto yy1980; + yy2007: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2005; + goto yy1980; + yy2008: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1980; + if (yych <= 0xBF) + goto yy2007; + goto yy1980; + yy2009: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2007; + goto yy1980; + yy2010: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x8F) + goto yy2007; + goto yy1980; + yy2011: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x9F) + goto yy2005; + goto yy1980; + yy2012: + ++p; + yy2013 : { return (bufsize_t)(p - start); } + yy2014: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy2003; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy2013; + if (yych <= '\'') + goto yy2012; + goto yy2001; + } else { + if (yych <= 0xC1) + goto yy2013; + if (yych <= 0xDF) + goto yy2005; + goto yy2006; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2011; + goto yy2007; + } else { + if (yych <= 0xF0) + goto yy2008; + if (yych <= 0xF3) + goto yy2009; + if (yych <= 0xF4) + goto yy2010; + goto yy2013; + } + } + yy2015: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2017; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= '"') + goto yy2028; + goto yy2015; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych <= 0xDF) + goto yy2019; + goto yy2020; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2025; + goto yy2021; + } else { + if (yych <= 0xF0) + goto yy2022; + if (yych <= 0xF3) + goto yy2023; + if (yych <= 0xF4) + goto yy2024; + goto yy1980; + } + } + yy2017: + ++p; + yych = *p; + yy2018: + if (yybm[0 + yych] & 128) { + goto yy2017; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy1980; + if (yych <= '"') + goto yy2026; + goto yy2015; + } else { + if (yych <= 0xC1) + goto yy1980; + if (yych >= 0xE0) + goto yy2020; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2025; + goto yy2021; + } else { + if (yych <= 0xF0) + goto yy2022; + if (yych <= 0xF3) + goto yy2023; + if (yych <= 0xF4) + goto yy2024; + goto yy1980; + } + } + yy2019: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2017; + goto yy1980; + yy2020: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy1980; + if (yych <= 0xBF) + goto yy2019; + goto yy1980; + yy2021: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2019; + goto yy1980; + yy2022: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy1980; + if (yych <= 0xBF) + goto yy2021; + goto yy1980; + yy2023: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0xBF) + goto yy2021; + goto yy1980; + yy2024: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x8F) + goto yy2021; + goto yy1980; + yy2025: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy1980; + if (yych <= 0x9F) + goto yy2019; + goto yy1980; + yy2026: + ++p; + yy2027 : { return (bufsize_t)(p - start); } + yy2028: + yyaccept = 3; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2017; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy2027; + if (yych <= '"') + goto yy2026; + goto yy2015; + } else { + if (yych <= 0xC1) + goto yy2027; + if (yych <= 0xDF) + goto yy2019; + goto yy2020; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2025; + goto yy2021; + } else { + if (yych <= 0xF0) + goto yy2022; + if (yych <= 0xF3) + goto yy2023; + if (yych <= 0xF4) + goto yy2024; + goto yy2027; + } + } + } } // Match space characters, including newlines. -bufsize_t _scan_spacechars(const unsigned char *p) -{ +bufsize_t _scan_spacechars(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, 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 = *(marker = p); - if (yych <= 0xC1) { - if (yych <= '\r') { - if (yych <= 0x08) goto yy2035; - if (yych == '\n') goto yy2033; - goto yy2032; - } else { - if (yych == ' ') goto yy2032; - if (yych <= 0x7F) goto yy2035; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy2037; - if (yych <= 0xE0) goto yy2039; - if (yych <= 0xEC) goto yy2040; - goto yy2044; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2040; - goto yy2041; - } else { - if (yych <= 0xF3) goto yy2042; - if (yych <= 0xF4) goto yy2043; - } - } - } -yy2031: - { return (bufsize_t)(p - start); } -yy2032: - yych = *++p; - goto yy2034; -yy2033: - ++p; - yych = *p; -yy2034: - if (yybm[0+yych] & 128) { - goto yy2033; - } - goto yy2031; -yy2035: - ++p; - { return 0; } -yy2037: - yych = *++p; - if (yych <= 0x7F) goto yy2038; - if (yych <= 0xBF) goto yy2035; -yy2038: - p = marker; - goto yy2031; -yy2039: - yych = *++p; - if (yych <= 0x9F) goto yy2038; - if (yych <= 0xBF) goto yy2037; - goto yy2038; -yy2040: - yych = *++p; - if (yych <= 0x7F) goto yy2038; - if (yych <= 0xBF) goto yy2037; - goto yy2038; -yy2041: - yych = *++p; - if (yych <= 0x8F) goto yy2038; - if (yych <= 0xBF) goto yy2040; - goto yy2038; -yy2042: - yych = *++p; - if (yych <= 0x7F) goto yy2038; - if (yych <= 0xBF) goto yy2040; - goto yy2038; -yy2043: - yych = *++p; - if (yych <= 0x7F) goto yy2038; - if (yych <= 0x8F) goto yy2040; - goto yy2038; -yy2044: - ++p; - if ((yych = *p) <= 0x7F) goto yy2038; - if (yych <= 0x9F) goto yy2037; - goto yy2038; -} + 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 = *(marker = p); + if (yych <= 0xC1) { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy2035; + if (yych == '\n') + goto yy2033; + goto yy2032; + } else { + if (yych == ' ') + goto yy2032; + if (yych <= 0x7F) + goto yy2035; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy2037; + if (yych <= 0xE0) + goto yy2039; + if (yych <= 0xEC) + goto yy2040; + goto yy2044; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy2040; + goto yy2041; + } else { + if (yych <= 0xF3) + goto yy2042; + if (yych <= 0xF4) + goto yy2043; + } + } + } + yy2031 : { return (bufsize_t)(p - start); } + yy2032: + yych = *++p; + goto yy2034; + yy2033: + ++p; + yych = *p; + yy2034: + if (yybm[0 + yych] & 128) { + goto yy2033; + } + goto yy2031; + yy2035: + ++p; + { return 0; } + yy2037: + yych = *++p; + if (yych <= 0x7F) + goto yy2038; + if (yych <= 0xBF) + goto yy2035; + yy2038: + p = marker; + goto yy2031; + yy2039: + yych = *++p; + if (yych <= 0x9F) + goto yy2038; + if (yych <= 0xBF) + goto yy2037; + goto yy2038; + yy2040: + yych = *++p; + if (yych <= 0x7F) + goto yy2038; + if (yych <= 0xBF) + goto yy2037; + goto yy2038; + yy2041: + yych = *++p; + if (yych <= 0x8F) + goto yy2038; + if (yych <= 0xBF) + goto yy2040; + goto yy2038; + yy2042: + yych = *++p; + if (yych <= 0x7F) + goto yy2038; + if (yych <= 0xBF) + goto yy2040; + goto yy2038; + yy2043: + yych = *++p; + if (yych <= 0x7F) + goto yy2038; + if (yych <= 0x8F) + goto yy2040; + goto yy2038; + yy2044: + ++p; + if ((yych = *p) <= 0x7F) + goto yy2038; + if (yych <= 0x9F) + goto yy2037; + goto yy2038; + } } // Match ATX header start. -bufsize_t _scan_atx_header_start(const unsigned char *p) -{ +bufsize_t _scan_atx_header_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, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= '"') { - if (yych != '\n') goto yy2049; - } else { - if (yych <= '#') goto yy2048; - if (yych <= 0x7F) goto yy2049; - if (yych >= 0xC2) goto yy2050; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy2052; - if (yych == 0xED) goto yy2057; - goto yy2053; - } else { - if (yych <= 0xF0) goto yy2054; - if (yych <= 0xF3) goto yy2055; - if (yych <= 0xF4) goto yy2056; - } - } -yy2047: - { return 0; } -yy2048: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) { - goto yy2060; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2058; - goto yy2047; - } else { - if (yych <= '\r') goto yy2058; - if (yych == '#') goto yy2062; - goto yy2047; - } -yy2049: - yych = *++p; - goto yy2047; -yy2050: - yych = *++p; - if (yych <= 0x7F) goto yy2051; - if (yych <= 0xBF) goto yy2049; -yy2051: - p = marker; - goto yy2047; -yy2052: - yych = *++p; - if (yych <= 0x9F) goto yy2051; - if (yych <= 0xBF) goto yy2050; - goto yy2051; -yy2053: - yych = *++p; - if (yych <= 0x7F) goto yy2051; - if (yych <= 0xBF) goto yy2050; - goto yy2051; -yy2054: - yych = *++p; - if (yych <= 0x8F) goto yy2051; - if (yych <= 0xBF) goto yy2053; - goto yy2051; -yy2055: - yych = *++p; - if (yych <= 0x7F) goto yy2051; - if (yych <= 0xBF) goto yy2053; - goto yy2051; -yy2056: - yych = *++p; - if (yych <= 0x7F) goto yy2051; - if (yych <= 0x8F) goto yy2053; - goto yy2051; -yy2057: - yych = *++p; - if (yych <= 0x7F) goto yy2051; - if (yych <= 0x9F) goto yy2050; - goto yy2051; -yy2058: - ++p; -yy2059: - { return (bufsize_t)(p - start); } -yy2060: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2060; - } - goto yy2059; -yy2062: - yych = *++p; - if (yybm[0+yych] & 128) { - goto yy2060; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2058; - goto yy2051; - } else { - if (yych <= '\r') goto yy2058; - if (yych != '#') goto yy2051; - } - yych = *++p; - if (yybm[0+yych] & 128) { - goto yy2060; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2058; - goto yy2051; - } else { - if (yych <= '\r') goto yy2058; - if (yych != '#') goto yy2051; - } - yych = *++p; - if (yybm[0+yych] & 128) { - goto yy2060; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2058; - goto yy2051; - } else { - if (yych <= '\r') goto yy2058; - if (yych != '#') goto yy2051; - } - yych = *++p; - if (yybm[0+yych] & 128) { - goto yy2060; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2058; - goto yy2051; - } else { - if (yych <= '\r') goto yy2058; - if (yych != '#') goto yy2051; - } - ++p; - if (yybm[0+(yych = *p)] & 128) { - goto yy2060; - } - if (yych == '\n') goto yy2058; - if (yych == '\r') goto yy2058; - goto yy2051; -} - + { + 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, 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 = *(marker = p); + if (yych <= 0xDF) { + if (yych <= '"') { + if (yych != '\n') + goto yy2049; + } else { + if (yych <= '#') + goto yy2048; + if (yych <= 0x7F) + goto yy2049; + if (yych >= 0xC2) + goto yy2050; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy2052; + if (yych == 0xED) + goto yy2057; + goto yy2053; + } else { + if (yych <= 0xF0) + goto yy2054; + if (yych <= 0xF3) + goto yy2055; + if (yych <= 0xF4) + goto yy2056; + } + } + yy2047 : { return 0; } + yy2048: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy2060; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2058; + goto yy2047; + } else { + if (yych <= '\r') + goto yy2058; + if (yych == '#') + goto yy2062; + goto yy2047; + } + yy2049: + yych = *++p; + goto yy2047; + yy2050: + yych = *++p; + if (yych <= 0x7F) + goto yy2051; + if (yych <= 0xBF) + goto yy2049; + yy2051: + p = marker; + goto yy2047; + yy2052: + yych = *++p; + if (yych <= 0x9F) + goto yy2051; + if (yych <= 0xBF) + goto yy2050; + goto yy2051; + yy2053: + yych = *++p; + if (yych <= 0x7F) + goto yy2051; + if (yych <= 0xBF) + goto yy2050; + goto yy2051; + yy2054: + yych = *++p; + if (yych <= 0x8F) + goto yy2051; + if (yych <= 0xBF) + goto yy2053; + goto yy2051; + yy2055: + yych = *++p; + if (yych <= 0x7F) + goto yy2051; + if (yych <= 0xBF) + goto yy2053; + goto yy2051; + yy2056: + yych = *++p; + if (yych <= 0x7F) + goto yy2051; + if (yych <= 0x8F) + goto yy2053; + goto yy2051; + yy2057: + yych = *++p; + if (yych <= 0x7F) + goto yy2051; + if (yych <= 0x9F) + goto yy2050; + goto yy2051; + yy2058: + ++p; + yy2059 : { return (bufsize_t)(p - start); } + yy2060: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2060; + } + goto yy2059; + yy2062: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy2060; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2058; + goto yy2051; + } else { + if (yych <= '\r') + goto yy2058; + if (yych != '#') + goto yy2051; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy2060; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2058; + goto yy2051; + } else { + if (yych <= '\r') + goto yy2058; + if (yych != '#') + goto yy2051; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy2060; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2058; + goto yy2051; + } else { + if (yych <= '\r') + goto yy2058; + if (yych != '#') + goto yy2051; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy2060; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2058; + goto yy2051; + } else { + if (yych <= '\r') + goto yy2058; + if (yych != '#') + goto yy2051; + } + ++p; + if (yybm[0 + (yych = *p)] & 128) { + goto yy2060; + } + if (yych == '\n') + goto yy2058; + if (yych == '\r') + goto yy2058; + goto yy2051; + } } // Match setext header line. Return 1 for level-1 header, // 2 for level-2, 0 for no match. -bufsize_t _scan_setext_header_line(const unsigned char *p) -{ +bufsize_t _scan_setext_header_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, 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, 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 = *(marker = p); - if (yych <= 0xC1) { - if (yych <= '-') { - if (yych == '\n') goto yy2069; - if (yych <= ',') goto yy2072; - goto yy2071; - } else { - if (yych == '=') goto yy2070; - if (yych <= 0x7F) goto yy2072; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy2073; - if (yych <= 0xE0) goto yy2075; - if (yych <= 0xEC) goto yy2076; - goto yy2080; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2076; - goto yy2077; - } else { - if (yych <= 0xF3) goto yy2078; - if (yych <= 0xF4) goto yy2079; - } - } - } -yy2069: - { return 0; } -yy2070: - yych = *(marker = ++p); - if (yybm[0+yych] & 128) { - goto yy2091; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2089; - goto yy2069; - } else { - if (yych <= '\r') goto yy2089; - if (yych == ' ') goto yy2087; - goto yy2069; - } -yy2071: - yych = *(marker = ++p); - if (yybm[0+yych] & 32) { - goto yy2081; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2083; - goto yy2069; - } else { - if (yych <= '\r') goto yy2083; - if (yych == '-') goto yy2085; - goto yy2069; - } -yy2072: - yych = *++p; - goto yy2069; -yy2073: - yych = *++p; - if (yych <= 0x7F) goto yy2074; - if (yych <= 0xBF) goto yy2072; -yy2074: - p = marker; - goto yy2069; -yy2075: - yych = *++p; - if (yych <= 0x9F) goto yy2074; - if (yych <= 0xBF) goto yy2073; - goto yy2074; -yy2076: - yych = *++p; - if (yych <= 0x7F) goto yy2074; - if (yych <= 0xBF) goto yy2073; - goto yy2074; -yy2077: - yych = *++p; - if (yych <= 0x8F) goto yy2074; - if (yych <= 0xBF) goto yy2076; - goto yy2074; -yy2078: - yych = *++p; - if (yych <= 0x7F) goto yy2074; - if (yych <= 0xBF) goto yy2076; - goto yy2074; -yy2079: - yych = *++p; - if (yych <= 0x7F) goto yy2074; - if (yych <= 0x8F) goto yy2076; - goto yy2074; -yy2080: - yych = *++p; - if (yych <= 0x7F) goto yy2074; - if (yych <= 0x9F) goto yy2073; - goto yy2074; -yy2081: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy2081; - } - if (yych == '\n') goto yy2083; - if (yych != '\r') goto yy2074; -yy2083: - ++p; - { return 2; } -yy2085: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy2081; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2083; - goto yy2074; - } else { - if (yych <= '\r') goto yy2083; - if (yych == '-') goto yy2085; - goto yy2074; - } -yy2087: - ++p; - yych = *p; - if (yych <= '\f') { - if (yych != '\n') goto yy2074; - } else { - if (yych <= '\r') goto yy2089; - if (yych == ' ') goto yy2087; - goto yy2074; - } -yy2089: - ++p; - { return 1; } -yy2091: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2091; - } - if (yych <= '\f') { - if (yych == '\n') goto yy2089; - goto yy2074; - } else { - if (yych <= '\r') goto yy2089; - if (yych == ' ') goto yy2087; - goto yy2074; - } -} - + { + 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, 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 = *(marker = p); + if (yych <= 0xC1) { + if (yych <= '-') { + if (yych == '\n') + goto yy2069; + if (yych <= ',') + goto yy2072; + goto yy2071; + } else { + if (yych == '=') + goto yy2070; + if (yych <= 0x7F) + goto yy2072; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy2073; + if (yych <= 0xE0) + goto yy2075; + if (yych <= 0xEC) + goto yy2076; + goto yy2080; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy2076; + goto yy2077; + } else { + if (yych <= 0xF3) + goto yy2078; + if (yych <= 0xF4) + goto yy2079; + } + } + } + yy2069 : { return 0; } + yy2070: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy2091; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2089; + goto yy2069; + } else { + if (yych <= '\r') + goto yy2089; + if (yych == ' ') + goto yy2087; + goto yy2069; + } + yy2071: + yych = *(marker = ++p); + if (yybm[0 + yych] & 32) { + goto yy2081; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2083; + goto yy2069; + } else { + if (yych <= '\r') + goto yy2083; + if (yych == '-') + goto yy2085; + goto yy2069; + } + yy2072: + yych = *++p; + goto yy2069; + yy2073: + yych = *++p; + if (yych <= 0x7F) + goto yy2074; + if (yych <= 0xBF) + goto yy2072; + yy2074: + p = marker; + goto yy2069; + yy2075: + yych = *++p; + if (yych <= 0x9F) + goto yy2074; + if (yych <= 0xBF) + goto yy2073; + goto yy2074; + yy2076: + yych = *++p; + if (yych <= 0x7F) + goto yy2074; + if (yych <= 0xBF) + goto yy2073; + goto yy2074; + yy2077: + yych = *++p; + if (yych <= 0x8F) + goto yy2074; + if (yych <= 0xBF) + goto yy2076; + goto yy2074; + yy2078: + yych = *++p; + if (yych <= 0x7F) + goto yy2074; + if (yych <= 0xBF) + goto yy2076; + goto yy2074; + yy2079: + yych = *++p; + if (yych <= 0x7F) + goto yy2074; + if (yych <= 0x8F) + goto yy2076; + goto yy2074; + yy2080: + yych = *++p; + if (yych <= 0x7F) + goto yy2074; + if (yych <= 0x9F) + goto yy2073; + goto yy2074; + yy2081: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy2081; + } + if (yych == '\n') + goto yy2083; + if (yych != '\r') + goto yy2074; + yy2083: + ++p; + { return 2; } + yy2085: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy2081; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2083; + goto yy2074; + } else { + if (yych <= '\r') + goto yy2083; + if (yych == '-') + goto yy2085; + goto yy2074; + } + yy2087: + ++p; + yych = *p; + if (yych <= '\f') { + if (yych != '\n') + goto yy2074; + } else { + if (yych <= '\r') + goto yy2089; + if (yych == ' ') + goto yy2087; + goto yy2074; + } + yy2089: + ++p; + { return 1; } + yy2091: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2091; + } + if (yych <= '\f') { + if (yych == '\n') + goto yy2089; + goto yy2074; + } else { + if (yych <= '\r') + goto yy2089; + if (yych == ' ') + goto yy2087; + goto yy2074; + } + } } // Scan a horizontal rule line: "...three or more hyphens, asterisks, // or underscores on a line by themselves. If you wish, you may use // spaces between the hyphens or asterisks." -bufsize_t _scan_hrule(const unsigned char *p) -{ +bufsize_t _scan_hrule(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, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 248, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 128, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0x7F) { - if (yych <= '*') { - if (yych == '\n') goto yy2095; - if (yych <= ')') goto yy2099; - goto yy2096; - } else { - if (yych <= '-') { - if (yych <= ',') goto yy2099; - goto yy2098; - } else { - if (yych == '_') goto yy2097; - goto yy2099; - } - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) { - if (yych >= 0xC2) goto yy2100; - } else { - if (yych <= 0xE0) goto yy2102; - if (yych <= 0xEC) goto yy2103; - goto yy2107; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2103; - goto yy2104; - } else { - if (yych <= 0xF3) goto yy2105; - if (yych <= 0xF4) goto yy2106; - } - } - } -yy2095: - { return 0; } -yy2096: - yych = *(marker = ++p); - if (yych == ' ') goto yy2128; - if (yych == '*') goto yy2130; - goto yy2095; -yy2097: - yych = *(marker = ++p); - if (yych == ' ') goto yy2118; - if (yych == '_') goto yy2120; - goto yy2095; -yy2098: - yych = *(marker = ++p); - if (yybm[0+yych] & 8) { - goto yy2108; - } - if (yych == '-') goto yy2110; - goto yy2095; -yy2099: - yych = *++p; - goto yy2095; -yy2100: - yych = *++p; - if (yych <= 0x7F) goto yy2101; - if (yych <= 0xBF) goto yy2099; -yy2101: - p = marker; - goto yy2095; -yy2102: - yych = *++p; - if (yych <= 0x9F) goto yy2101; - if (yych <= 0xBF) goto yy2100; - goto yy2101; -yy2103: - yych = *++p; - if (yych <= 0x7F) goto yy2101; - if (yych <= 0xBF) goto yy2100; - goto yy2101; -yy2104: - yych = *++p; - if (yych <= 0x8F) goto yy2101; - if (yych <= 0xBF) goto yy2103; - goto yy2101; -yy2105: - yych = *++p; - if (yych <= 0x7F) goto yy2101; - if (yych <= 0xBF) goto yy2103; - goto yy2101; -yy2106: - yych = *++p; - if (yych <= 0x7F) goto yy2101; - if (yych <= 0x8F) goto yy2103; - goto yy2101; -yy2107: - yych = *++p; - if (yych <= 0x7F) goto yy2101; - if (yych <= 0x9F) goto yy2100; - goto yy2101; -yy2108: - ++p; - yych = *p; - if (yybm[0+yych] & 8) { - goto yy2108; - } - if (yych != '-') goto yy2101; -yy2110: - ++p; - yych = *p; - if (yych == ' ') goto yy2110; - if (yych != '-') goto yy2101; -yy2112: - ++p; - yych = *p; - if (yybm[0+yych] & 16) { - goto yy2112; - } - if (yych <= '\n') { - if (yych <= 0x08) goto yy2101; - if (yych >= '\n') goto yy2116; - } else { - if (yych == '\r') goto yy2116; - goto yy2101; - } -yy2114: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy2114; - } - if (yych <= 0x08) goto yy2101; - if (yych <= '\n') goto yy2116; - if (yych != '\r') goto yy2101; -yy2116: - ++p; - { return (bufsize_t)(p - start); } -yy2118: - ++p; - yych = *p; - if (yych == ' ') goto yy2118; - if (yych != '_') goto yy2101; -yy2120: - ++p; - yych = *p; - if (yych == ' ') goto yy2120; - if (yych != '_') goto yy2101; -yy2122: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy2122; - } - if (yych <= '\n') { - if (yych <= 0x08) goto yy2101; - if (yych >= '\n') goto yy2126; - } else { - if (yych == '\r') goto yy2126; - goto yy2101; - } -yy2124: - ++p; - yych = *p; - if (yych <= '\f') { - if (yych <= 0x08) goto yy2101; - if (yych <= '\t') goto yy2124; - if (yych >= '\v') goto yy2101; - } else { - if (yych <= '\r') goto yy2126; - if (yych == ' ') goto yy2124; - goto yy2101; - } -yy2126: - ++p; - { return (bufsize_t)(p - start); } -yy2128: - ++p; - yych = *p; - if (yych == ' ') goto yy2128; - if (yych != '*') goto yy2101; -yy2130: - ++p; - yych = *p; - if (yych == ' ') goto yy2130; - if (yych != '*') goto yy2101; -yy2132: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2132; - } - if (yych <= '\n') { - if (yych <= 0x08) goto yy2101; - if (yych >= '\n') goto yy2136; - } else { - if (yych == '\r') goto yy2136; - goto yy2101; - } -yy2134: - ++p; - yych = *p; - if (yych <= '\f') { - if (yych <= 0x08) goto yy2101; - if (yych <= '\t') goto yy2134; - if (yych >= '\v') goto yy2101; - } else { - if (yych <= '\r') goto yy2136; - if (yych == ' ') goto yy2134; - goto yy2101; - } -yy2136: - ++p; - { return (bufsize_t)(p - start); } -} - + { + 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, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0x7F) { + if (yych <= '*') { + if (yych == '\n') + goto yy2095; + if (yych <= ')') + goto yy2099; + goto yy2096; + } else { + if (yych <= '-') { + if (yych <= ',') + goto yy2099; + goto yy2098; + } else { + if (yych == '_') + goto yy2097; + goto yy2099; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) { + if (yych >= 0xC2) + goto yy2100; + } else { + if (yych <= 0xE0) + goto yy2102; + if (yych <= 0xEC) + goto yy2103; + goto yy2107; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy2103; + goto yy2104; + } else { + if (yych <= 0xF3) + goto yy2105; + if (yych <= 0xF4) + goto yy2106; + } + } + } + yy2095 : { return 0; } + yy2096: + yych = *(marker = ++p); + if (yych == ' ') + goto yy2128; + if (yych == '*') + goto yy2130; + goto yy2095; + yy2097: + yych = *(marker = ++p); + if (yych == ' ') + goto yy2118; + if (yych == '_') + goto yy2120; + goto yy2095; + yy2098: + yych = *(marker = ++p); + if (yybm[0 + yych] & 8) { + goto yy2108; + } + if (yych == '-') + goto yy2110; + goto yy2095; + yy2099: + yych = *++p; + goto yy2095; + yy2100: + yych = *++p; + if (yych <= 0x7F) + goto yy2101; + if (yych <= 0xBF) + goto yy2099; + yy2101: + p = marker; + goto yy2095; + yy2102: + yych = *++p; + if (yych <= 0x9F) + goto yy2101; + if (yych <= 0xBF) + goto yy2100; + goto yy2101; + yy2103: + yych = *++p; + if (yych <= 0x7F) + goto yy2101; + if (yych <= 0xBF) + goto yy2100; + goto yy2101; + yy2104: + yych = *++p; + if (yych <= 0x8F) + goto yy2101; + if (yych <= 0xBF) + goto yy2103; + goto yy2101; + yy2105: + yych = *++p; + if (yych <= 0x7F) + goto yy2101; + if (yych <= 0xBF) + goto yy2103; + goto yy2101; + yy2106: + yych = *++p; + if (yych <= 0x7F) + goto yy2101; + if (yych <= 0x8F) + goto yy2103; + goto yy2101; + yy2107: + yych = *++p; + if (yych <= 0x7F) + goto yy2101; + if (yych <= 0x9F) + goto yy2100; + goto yy2101; + yy2108: + ++p; + yych = *p; + if (yybm[0 + yych] & 8) { + goto yy2108; + } + if (yych != '-') + goto yy2101; + yy2110: + ++p; + yych = *p; + if (yych == ' ') + goto yy2110; + if (yych != '-') + goto yy2101; + yy2112: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy2112; + } + if (yych <= '\n') { + if (yych <= 0x08) + goto yy2101; + if (yych >= '\n') + goto yy2116; + } else { + if (yych == '\r') + goto yy2116; + goto yy2101; + } + yy2114: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy2114; + } + if (yych <= 0x08) + goto yy2101; + if (yych <= '\n') + goto yy2116; + if (yych != '\r') + goto yy2101; + yy2116: + ++p; + { return (bufsize_t)(p - start); } + yy2118: + ++p; + yych = *p; + if (yych == ' ') + goto yy2118; + if (yych != '_') + goto yy2101; + yy2120: + ++p; + yych = *p; + if (yych == ' ') + goto yy2120; + if (yych != '_') + goto yy2101; + yy2122: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy2122; + } + if (yych <= '\n') { + if (yych <= 0x08) + goto yy2101; + if (yych >= '\n') + goto yy2126; + } else { + if (yych == '\r') + goto yy2126; + goto yy2101; + } + yy2124: + ++p; + yych = *p; + if (yych <= '\f') { + if (yych <= 0x08) + goto yy2101; + if (yych <= '\t') + goto yy2124; + if (yych >= '\v') + goto yy2101; + } else { + if (yych <= '\r') + goto yy2126; + if (yych == ' ') + goto yy2124; + goto yy2101; + } + yy2126: + ++p; + { return (bufsize_t)(p - start); } + yy2128: + ++p; + yych = *p; + if (yych == ' ') + goto yy2128; + if (yych != '*') + goto yy2101; + yy2130: + ++p; + yych = *p; + if (yych == ' ') + goto yy2130; + if (yych != '*') + goto yy2101; + yy2132: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2132; + } + if (yych <= '\n') { + if (yych <= 0x08) + goto yy2101; + if (yych >= '\n') + goto yy2136; + } else { + if (yych == '\r') + goto yy2136; + goto yy2101; + } + yy2134: + ++p; + yych = *p; + if (yych <= '\f') { + if (yych <= 0x08) + goto yy2101; + if (yych <= '\t') + goto yy2134; + if (yych >= '\v') + goto yy2101; + } else { + if (yych <= '\r') + goto yy2136; + if (yych == ' ') + goto yy2134; + goto yy2101; + } + yy2136: + ++p; + { return (bufsize_t)(p - start); } + } } // 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, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 0, 160, 160, 0, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 96, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 144, 160, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xC1) { - if (yych <= '`') { - if (yych == '\n') goto yy2140; - if (yych <= '_') goto yy2143; - goto yy2141; - } else { - if (yych == '~') goto yy2142; - if (yych <= 0x7F) goto yy2143; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy2144; - if (yych <= 0xE0) goto yy2146; - if (yych <= 0xEC) goto yy2147; - goto yy2151; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2147; - goto yy2148; - } else { - if (yych <= 0xF3) goto yy2149; - if (yych <= 0xF4) goto yy2150; - } - } - } -yy2140: - { return 0; } -yy2141: - yych = *(marker = ++p); - if (yych == '`') goto yy2166; - goto yy2140; -yy2142: - yych = *(marker = ++p); - if (yych == '~') goto yy2152; - goto yy2140; -yy2143: - yych = *++p; - goto yy2140; -yy2144: - yych = *++p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2143; -yy2145: - p = marker; - goto yy2140; -yy2146: - yych = *++p; - if (yych <= 0x9F) goto yy2145; - if (yych <= 0xBF) goto yy2144; - goto yy2145; -yy2147: - yych = *++p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2144; - goto yy2145; -yy2148: - yych = *++p; - if (yych <= 0x8F) goto yy2145; - if (yych <= 0xBF) goto yy2147; - goto yy2145; -yy2149: - yych = *++p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2147; - goto yy2145; -yy2150: - yych = *++p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x8F) goto yy2147; - goto yy2145; -yy2151: - yych = *++p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x9F) goto yy2144; - goto yy2145; -yy2152: - yych = *++p; - if (yybm[0+yych] & 16) { - goto yy2153; - } - goto yy2145; -yy2153: - marker = p + 1; - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy2155; - } - if (yych <= 0xE0) { - if (yych <= '~') { - if (yych <= 0x00) goto yy2145; - if (yych <= '\r') goto yy2164; - goto yy2153; - } else { - if (yych <= 0xC1) goto yy2145; - if (yych <= 0xDF) goto yy2157; - goto yy2158; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2163; - goto yy2159; - } else { - if (yych <= 0xF0) goto yy2160; - if (yych <= 0xF3) goto yy2161; - if (yych <= 0xF4) goto yy2162; - goto yy2145; - } - } -yy2155: - ++p; - yych = *p; - if (yybm[0+yych] & 32) { - goto yy2155; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy2145; - if (yych <= '\r') goto yy2164; - goto yy2145; - } else { - if (yych <= 0xDF) goto yy2157; - if (yych <= 0xE0) goto yy2158; - goto yy2159; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy2163; - if (yych <= 0xEF) goto yy2159; - goto yy2160; - } else { - if (yych <= 0xF3) goto yy2161; - if (yych <= 0xF4) goto yy2162; - goto yy2145; - } - } -yy2157: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2155; - goto yy2145; -yy2158: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy2145; - if (yych <= 0xBF) goto yy2157; - goto yy2145; -yy2159: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2157; - goto yy2145; -yy2160: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy2145; - if (yych <= 0xBF) goto yy2159; - goto yy2145; -yy2161: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2159; - goto yy2145; -yy2162: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x8F) goto yy2159; - goto yy2145; -yy2163: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x9F) goto yy2157; - goto yy2145; -yy2164: - ++p; - p = marker; - { return (bufsize_t)(p - start); } -yy2166: - yych = *++p; - if (yybm[0+yych] & 64) { - goto yy2167; - } - goto yy2145; -yy2167: - marker = p + 1; - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2169; - } - if (yych <= 0xE0) { - if (yych <= '`') { - if (yych <= 0x00) goto yy2145; - if (yych <= '\r') goto yy2178; - goto yy2167; - } else { - if (yych <= 0xC1) goto yy2145; - if (yych <= 0xDF) goto yy2171; - goto yy2172; - } - } else { - if (yych <= 0xEF) { - if (yych == 0xED) goto yy2177; - goto yy2173; - } else { - if (yych <= 0xF0) goto yy2174; - if (yych <= 0xF3) goto yy2175; - if (yych <= 0xF4) goto yy2176; - goto yy2145; - } - } -yy2169: - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2169; - } - if (yych <= 0xEC) { - if (yych <= 0xC1) { - if (yych <= 0x00) goto yy2145; - if (yych <= '\r') goto yy2178; - goto yy2145; - } else { - if (yych <= 0xDF) goto yy2171; - if (yych <= 0xE0) goto yy2172; - goto yy2173; - } - } else { - if (yych <= 0xF0) { - if (yych <= 0xED) goto yy2177; - if (yych <= 0xEF) goto yy2173; - goto yy2174; - } else { - if (yych <= 0xF3) goto yy2175; - if (yych <= 0xF4) goto yy2176; - goto yy2145; - } - } -yy2171: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2169; - goto yy2145; -yy2172: - ++p; - yych = *p; - if (yych <= 0x9F) goto yy2145; - if (yych <= 0xBF) goto yy2171; - goto yy2145; -yy2173: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2171; - goto yy2145; -yy2174: - ++p; - yych = *p; - if (yych <= 0x8F) goto yy2145; - if (yych <= 0xBF) goto yy2173; - goto yy2145; -yy2175: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0xBF) goto yy2173; - goto yy2145; -yy2176: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x8F) goto yy2173; - goto yy2145; -yy2177: - ++p; - yych = *p; - if (yych <= 0x7F) goto yy2145; - if (yych <= 0x9F) goto yy2171; - goto yy2145; -yy2178: - ++p; - p = marker; - { return (bufsize_t)(p - start); } -} - + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 160, 160, 160, 160, 160, 160, 160, 160, 160, 0, 160, 160, 0, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 144, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xC1) { + if (yych <= '`') { + if (yych == '\n') + goto yy2140; + if (yych <= '_') + goto yy2143; + goto yy2141; + } else { + if (yych == '~') + goto yy2142; + if (yych <= 0x7F) + goto yy2143; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy2144; + if (yych <= 0xE0) + goto yy2146; + if (yych <= 0xEC) + goto yy2147; + goto yy2151; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy2147; + goto yy2148; + } else { + if (yych <= 0xF3) + goto yy2149; + if (yych <= 0xF4) + goto yy2150; + } + } + } + yy2140 : { return 0; } + yy2141: + yych = *(marker = ++p); + if (yych == '`') + goto yy2166; + goto yy2140; + yy2142: + yych = *(marker = ++p); + if (yych == '~') + goto yy2152; + goto yy2140; + yy2143: + yych = *++p; + goto yy2140; + yy2144: + yych = *++p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2143; + yy2145: + p = marker; + goto yy2140; + yy2146: + yych = *++p; + if (yych <= 0x9F) + goto yy2145; + if (yych <= 0xBF) + goto yy2144; + goto yy2145; + yy2147: + yych = *++p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2144; + goto yy2145; + yy2148: + yych = *++p; + if (yych <= 0x8F) + goto yy2145; + if (yych <= 0xBF) + goto yy2147; + goto yy2145; + yy2149: + yych = *++p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2147; + goto yy2145; + yy2150: + yych = *++p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x8F) + goto yy2147; + goto yy2145; + yy2151: + yych = *++p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x9F) + goto yy2144; + goto yy2145; + yy2152: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy2153; + } + goto yy2145; + yy2153: + marker = p + 1; + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy2155; + } + if (yych <= 0xE0) { + if (yych <= '~') { + if (yych <= 0x00) + goto yy2145; + if (yych <= '\r') + goto yy2164; + goto yy2153; + } else { + if (yych <= 0xC1) + goto yy2145; + if (yych <= 0xDF) + goto yy2157; + goto yy2158; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2163; + goto yy2159; + } else { + if (yych <= 0xF0) + goto yy2160; + if (yych <= 0xF3) + goto yy2161; + if (yych <= 0xF4) + goto yy2162; + goto yy2145; + } + } + yy2155: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy2155; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy2145; + if (yych <= '\r') + goto yy2164; + goto yy2145; + } else { + if (yych <= 0xDF) + goto yy2157; + if (yych <= 0xE0) + goto yy2158; + goto yy2159; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy2163; + if (yych <= 0xEF) + goto yy2159; + goto yy2160; + } else { + if (yych <= 0xF3) + goto yy2161; + if (yych <= 0xF4) + goto yy2162; + goto yy2145; + } + } + yy2157: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2155; + goto yy2145; + yy2158: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy2145; + if (yych <= 0xBF) + goto yy2157; + goto yy2145; + yy2159: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2157; + goto yy2145; + yy2160: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy2145; + if (yych <= 0xBF) + goto yy2159; + goto yy2145; + yy2161: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2159; + goto yy2145; + yy2162: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x8F) + goto yy2159; + goto yy2145; + yy2163: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x9F) + goto yy2157; + goto yy2145; + yy2164: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy2166: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy2167; + } + goto yy2145; + yy2167: + marker = p + 1; + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2169; + } + if (yych <= 0xE0) { + if (yych <= '`') { + if (yych <= 0x00) + goto yy2145; + if (yych <= '\r') + goto yy2178; + goto yy2167; + } else { + if (yych <= 0xC1) + goto yy2145; + if (yych <= 0xDF) + goto yy2171; + goto yy2172; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy2177; + goto yy2173; + } else { + if (yych <= 0xF0) + goto yy2174; + if (yych <= 0xF3) + goto yy2175; + if (yych <= 0xF4) + goto yy2176; + goto yy2145; + } + } + yy2169: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2169; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy2145; + if (yych <= '\r') + goto yy2178; + goto yy2145; + } else { + if (yych <= 0xDF) + goto yy2171; + if (yych <= 0xE0) + goto yy2172; + goto yy2173; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy2177; + if (yych <= 0xEF) + goto yy2173; + goto yy2174; + } else { + if (yych <= 0xF3) + goto yy2175; + if (yych <= 0xF4) + goto yy2176; + goto yy2145; + } + } + yy2171: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2169; + goto yy2145; + yy2172: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy2145; + if (yych <= 0xBF) + goto yy2171; + goto yy2145; + yy2173: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2171; + goto yy2145; + yy2174: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy2145; + if (yych <= 0xBF) + goto yy2173; + goto yy2145; + yy2175: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0xBF) + goto yy2173; + goto yy2145; + yy2176: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x8F) + goto yy2173; + goto yy2145; + yy2177: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy2145; + if (yych <= 0x9F) + goto yy2171; + goto yy2145; + yy2178: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + } } // Scan a closing code fence with length at least len. -bufsize_t _scan_close_code_fence(const unsigned char *p) -{ +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, 64, 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, - 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, 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, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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 = *(marker = p); - if (yych <= 0xC1) { - if (yych <= '`') { - if (yych == '\n') goto yy2182; - if (yych <= '_') goto yy2185; - goto yy2183; - } else { - if (yych == '~') goto yy2184; - if (yych <= 0x7F) goto yy2185; - } - } else { - if (yych <= 0xED) { - if (yych <= 0xDF) goto yy2186; - if (yych <= 0xE0) goto yy2188; - if (yych <= 0xEC) goto yy2189; - goto yy2193; - } else { - if (yych <= 0xF0) { - if (yych <= 0xEF) goto yy2189; - goto yy2190; - } else { - if (yych <= 0xF3) goto yy2191; - if (yych <= 0xF4) goto yy2192; - } - } - } -yy2182: - { return 0; } -yy2183: - yych = *(marker = ++p); - if (yych == '`') goto yy2201; - goto yy2182; -yy2184: - yych = *(marker = ++p); - if (yych == '~') goto yy2194; - goto yy2182; -yy2185: - yych = *++p; - goto yy2182; -yy2186: - yych = *++p; - if (yych <= 0x7F) goto yy2187; - if (yych <= 0xBF) goto yy2185; -yy2187: - p = marker; - goto yy2182; -yy2188: - yych = *++p; - if (yych <= 0x9F) goto yy2187; - if (yych <= 0xBF) goto yy2186; - goto yy2187; -yy2189: - yych = *++p; - if (yych <= 0x7F) goto yy2187; - if (yych <= 0xBF) goto yy2186; - goto yy2187; -yy2190: - yych = *++p; - if (yych <= 0x8F) goto yy2187; - if (yych <= 0xBF) goto yy2189; - goto yy2187; -yy2191: - yych = *++p; - if (yych <= 0x7F) goto yy2187; - if (yych <= 0xBF) goto yy2189; - goto yy2187; -yy2192: - yych = *++p; - if (yych <= 0x7F) goto yy2187; - if (yych <= 0x8F) goto yy2189; - goto yy2187; -yy2193: - yych = *++p; - if (yych <= 0x7F) goto yy2187; - if (yych <= 0x9F) goto yy2186; - goto yy2187; -yy2194: - yych = *++p; - if (yybm[0+yych] & 32) { - goto yy2195; - } - goto yy2187; -yy2195: - marker = p + 1; - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy2197; - } - if (yych <= '\f') { - if (yych <= 0x08) goto yy2187; - if (yych <= '\n') goto yy2199; - goto yy2187; - } else { - if (yych <= '\r') goto yy2199; - if (yych == '~') goto yy2195; - goto yy2187; - } -yy2197: - ++p; - yych = *p; - if (yybm[0+yych] & 64) { - goto yy2197; - } - if (yych <= 0x08) goto yy2187; - if (yych <= '\n') goto yy2199; - if (yych != '\r') goto yy2187; -yy2199: - ++p; - p = marker; - { return (bufsize_t)(p - start); } -yy2201: - yych = *++p; - if (yybm[0+yych] & 128) { - goto yy2202; - } - goto yy2187; -yy2202: - marker = p + 1; - ++p; - yych = *p; - if (yybm[0+yych] & 128) { - goto yy2202; - } - if (yych <= '\f') { - if (yych <= 0x08) goto yy2187; - if (yych <= '\t') goto yy2204; - if (yych <= '\n') goto yy2206; - goto yy2187; - } else { - if (yych <= '\r') goto yy2206; - if (yych != ' ') goto yy2187; - } -yy2204: - ++p; - yych = *p; - if (yych <= '\f') { - if (yych <= 0x08) goto yy2187; - if (yych <= '\t') goto yy2204; - if (yych >= '\v') goto yy2187; - } else { - if (yych <= '\r') goto yy2206; - if (yych == ' ') goto yy2204; - goto yy2187; - } -yy2206: - ++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, 64, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 = *(marker = p); + if (yych <= 0xC1) { + if (yych <= '`') { + if (yych == '\n') + goto yy2182; + if (yych <= '_') + goto yy2185; + goto yy2183; + } else { + if (yych == '~') + goto yy2184; + if (yych <= 0x7F) + goto yy2185; + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy2186; + if (yych <= 0xE0) + goto yy2188; + if (yych <= 0xEC) + goto yy2189; + goto yy2193; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy2189; + goto yy2190; + } else { + if (yych <= 0xF3) + goto yy2191; + if (yych <= 0xF4) + goto yy2192; + } + } + } + yy2182 : { return 0; } + yy2183: + yych = *(marker = ++p); + if (yych == '`') + goto yy2201; + goto yy2182; + yy2184: + yych = *(marker = ++p); + if (yych == '~') + goto yy2194; + goto yy2182; + yy2185: + yych = *++p; + goto yy2182; + yy2186: + yych = *++p; + if (yych <= 0x7F) + goto yy2187; + if (yych <= 0xBF) + goto yy2185; + yy2187: + p = marker; + goto yy2182; + yy2188: + yych = *++p; + if (yych <= 0x9F) + goto yy2187; + if (yych <= 0xBF) + goto yy2186; + goto yy2187; + yy2189: + yych = *++p; + if (yych <= 0x7F) + goto yy2187; + if (yych <= 0xBF) + goto yy2186; + goto yy2187; + yy2190: + yych = *++p; + if (yych <= 0x8F) + goto yy2187; + if (yych <= 0xBF) + goto yy2189; + goto yy2187; + yy2191: + yych = *++p; + if (yych <= 0x7F) + goto yy2187; + if (yych <= 0xBF) + goto yy2189; + goto yy2187; + yy2192: + yych = *++p; + if (yych <= 0x7F) + goto yy2187; + if (yych <= 0x8F) + goto yy2189; + goto yy2187; + yy2193: + yych = *++p; + if (yych <= 0x7F) + goto yy2187; + if (yych <= 0x9F) + goto yy2186; + goto yy2187; + yy2194: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy2195; + } + goto yy2187; + yy2195: + marker = p + 1; + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy2197; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy2187; + if (yych <= '\n') + goto yy2199; + goto yy2187; + } else { + if (yych <= '\r') + goto yy2199; + if (yych == '~') + goto yy2195; + goto yy2187; + } + yy2197: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy2197; + } + if (yych <= 0x08) + goto yy2187; + if (yych <= '\n') + goto yy2199; + if (yych != '\r') + goto yy2187; + yy2199: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy2201: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy2202; + } + goto yy2187; + yy2202: + marker = p + 1; + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy2202; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy2187; + if (yych <= '\t') + goto yy2204; + if (yych <= '\n') + goto yy2206; + goto yy2187; + } else { + if (yych <= '\r') + goto yy2206; + if (yych != ' ') + goto yy2187; + } + yy2204: + ++p; + yych = *p; + if (yych <= '\f') { + if (yych <= 0x08) + goto yy2187; + if (yych <= '\t') + goto yy2204; + if (yych >= '\v') + goto yy2187; + } else { + if (yych <= '\r') + goto yy2206; + if (yych == ' ') + goto yy2204; + goto yy2187; + } + yy2206: + ++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 = *(marker = p); - if (yych <= 0xDF) { - if (yych <= '%') { - if (yych != '\n') goto yy2212; - } else { - if (yych <= '&') goto yy2211; - if (yych <= 0x7F) goto yy2212; - if (yych >= 0xC2) goto yy2213; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy2215; - if (yych == 0xED) goto yy2220; - goto yy2216; - } else { - if (yych <= 0xF0) goto yy2217; - if (yych <= 0xF3) goto yy2218; - if (yych <= 0xF4) goto yy2219; - } - } -yy2210: - { return 0; } -yy2211: - yych = *(marker = ++p); - if (yych <= '@') { - if (yych == '#') goto yy2221; - goto yy2210; - } else { - if (yych <= 'Z') goto yy2222; - if (yych <= '`') goto yy2210; - if (yych <= 'z') goto yy2222; - goto yy2210; - } -yy2212: - yych = *++p; - goto yy2210; -yy2213: - yych = *++p; - if (yych <= 0x7F) goto yy2214; - if (yych <= 0xBF) goto yy2212; -yy2214: - p = marker; - goto yy2210; -yy2215: - yych = *++p; - if (yych <= 0x9F) goto yy2214; - if (yych <= 0xBF) goto yy2213; - goto yy2214; -yy2216: - yych = *++p; - if (yych <= 0x7F) goto yy2214; - if (yych <= 0xBF) goto yy2213; - goto yy2214; -yy2217: - yych = *++p; - if (yych <= 0x8F) goto yy2214; - if (yych <= 0xBF) goto yy2216; - goto yy2214; -yy2218: - yych = *++p; - if (yych <= 0x7F) goto yy2214; - if (yych <= 0xBF) goto yy2216; - goto yy2214; -yy2219: - yych = *++p; - if (yych <= 0x7F) goto yy2214; - if (yych <= 0x8F) goto yy2216; - goto yy2214; -yy2220: - yych = *++p; - if (yych <= 0x7F) goto yy2214; - if (yych <= 0x9F) goto yy2213; - goto yy2214; -yy2221: - yych = *++p; - if (yych <= 'W') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2257; - goto yy2214; - } else { - if (yych <= 'X') goto yy2256; - if (yych == 'x') goto yy2256; - goto yy2214; - } -yy2222: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy2214; - if (yych >= ':') goto yy2214; - } else { - if (yych <= 'Z') goto yy2223; - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } -yy2223: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2226; - if (yych <= ':') goto yy2214; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - goto yy2226; - } else { - if (yych <= '`') goto yy2214; - if (yych <= 'z') goto yy2226; - goto yy2214; - } - } -yy2224: - ++p; - { return (bufsize_t)(p - start); } -yy2226: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2227; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2227: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2228; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2228: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2229; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2229: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2230; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2230: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2231; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2231: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2232; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2232: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2233; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2233: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2234; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2234: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2235; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2235: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2236; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2236: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2237; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2237: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2238; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2238: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2239; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2239: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2240; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2240: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2241; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2241: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2242; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2242: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2243; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2243: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2244; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2244: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2245; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2245: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2246; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2246: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2247; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2247: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2248; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2248: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2249; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2249: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2250; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2250: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2251; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2251: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2252; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2252: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2253; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2253: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2254; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2254: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2255; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= '{') goto yy2214; - } - } -yy2255: - yych = *++p; - if (yych == ';') goto yy2224; - goto yy2214; -yy2256: - yych = *++p; - if (yych <= '@') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2264; - goto yy2214; - } else { - if (yych <= 'F') goto yy2264; - if (yych <= '`') goto yy2214; - if (yych <= 'f') goto yy2264; - goto yy2214; - } -yy2257: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2258; - if (yych == ';') goto yy2224; - goto yy2214; -yy2258: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2259; - if (yych == ';') goto yy2224; - goto yy2214; -yy2259: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2260; - if (yych == ';') goto yy2224; - goto yy2214; -yy2260: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2261; - if (yych == ';') goto yy2224; - goto yy2214; -yy2261: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2262; - if (yych == ';') goto yy2224; - goto yy2214; -yy2262: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2263; - if (yych == ';') goto yy2224; - goto yy2214; -yy2263: - yych = *++p; - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2255; - if (yych == ';') goto yy2224; - goto yy2214; -yy2264: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2265; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2265: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2266; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2266: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2267; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2267: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2268; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2268: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2269; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2269: - yych = *++p; - if (yych <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2270; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - } else { - if (yych <= '`') goto yy2214; - if (yych >= 'g') goto yy2214; - } - } -yy2270: - ++p; - if ((yych = *p) <= ';') { - if (yych <= '/') goto yy2214; - if (yych <= '9') goto yy2255; - if (yych <= ':') goto yy2214; - goto yy2224; - } else { - if (yych <= 'F') { - if (yych <= '@') goto yy2214; - goto yy2255; - } else { - if (yych <= '`') goto yy2214; - if (yych <= 'f') goto yy2255; - goto yy2214; - } - } -} - + { + unsigned char yych; + yych = *(marker = p); + if (yych <= 0xDF) { + if (yych <= '%') { + if (yych != '\n') + goto yy2212; + } else { + if (yych <= '&') + goto yy2211; + if (yych <= 0x7F) + goto yy2212; + if (yych >= 0xC2) + goto yy2213; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy2215; + if (yych == 0xED) + goto yy2220; + goto yy2216; + } else { + if (yych <= 0xF0) + goto yy2217; + if (yych <= 0xF3) + goto yy2218; + if (yych <= 0xF4) + goto yy2219; + } + } + yy2210 : { return 0; } + yy2211: + yych = *(marker = ++p); + if (yych <= '@') { + if (yych == '#') + goto yy2221; + goto yy2210; + } else { + if (yych <= 'Z') + goto yy2222; + if (yych <= '`') + goto yy2210; + if (yych <= 'z') + goto yy2222; + goto yy2210; + } + yy2212: + yych = *++p; + goto yy2210; + yy2213: + yych = *++p; + if (yych <= 0x7F) + goto yy2214; + if (yych <= 0xBF) + goto yy2212; + yy2214: + p = marker; + goto yy2210; + yy2215: + yych = *++p; + if (yych <= 0x9F) + goto yy2214; + if (yych <= 0xBF) + goto yy2213; + goto yy2214; + yy2216: + yych = *++p; + if (yych <= 0x7F) + goto yy2214; + if (yych <= 0xBF) + goto yy2213; + goto yy2214; + yy2217: + yych = *++p; + if (yych <= 0x8F) + goto yy2214; + if (yych <= 0xBF) + goto yy2216; + goto yy2214; + yy2218: + yych = *++p; + if (yych <= 0x7F) + goto yy2214; + if (yych <= 0xBF) + goto yy2216; + goto yy2214; + yy2219: + yych = *++p; + if (yych <= 0x7F) + goto yy2214; + if (yych <= 0x8F) + goto yy2216; + goto yy2214; + yy2220: + yych = *++p; + if (yych <= 0x7F) + goto yy2214; + if (yych <= 0x9F) + goto yy2213; + goto yy2214; + yy2221: + yych = *++p; + if (yych <= 'W') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2257; + goto yy2214; + } else { + if (yych <= 'X') + goto yy2256; + if (yych == 'x') + goto yy2256; + goto yy2214; + } + yy2222: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy2214; + if (yych >= ':') + goto yy2214; + } else { + if (yych <= 'Z') + goto yy2223; + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + yy2223: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2226; + if (yych <= ':') + goto yy2214; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + goto yy2226; + } else { + if (yych <= '`') + goto yy2214; + if (yych <= 'z') + goto yy2226; + goto yy2214; + } + } + yy2224: + ++p; + { return (bufsize_t)(p - start); } + yy2226: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2227; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2227: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2228; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2228: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2229; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2229: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2230; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2230: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2231; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2231: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2232; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2232: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2233; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2233: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2234; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2234: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2235; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2235: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2236; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2236: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2237; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2237: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2238; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2238: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2239; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2239: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2240; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2240: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2241; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2241: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2242; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2242: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2243; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2243: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2244; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2244: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2245; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2245: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2246; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2246: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2247; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2247: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2248; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2248: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2249; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2249: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2250; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2250: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2251; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2251: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2252; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2252: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2253; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2253: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2254; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2254: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2255; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= '{') + goto yy2214; + } + } + yy2255: + yych = *++p; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2256: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2264; + goto yy2214; + } else { + if (yych <= 'F') + goto yy2264; + if (yych <= '`') + goto yy2214; + if (yych <= 'f') + goto yy2264; + goto yy2214; + } + yy2257: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2258; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2258: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2259; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2259: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2260; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2260: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2261; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2261: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2262; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2262: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2263; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2263: + yych = *++p; + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2255; + if (yych == ';') + goto yy2224; + goto yy2214; + yy2264: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2265; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2265: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2266; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2266: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2267; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2267: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2268; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2268: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2269; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2269: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2270; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + } else { + if (yych <= '`') + goto yy2214; + if (yych >= 'g') + goto yy2214; + } + } + yy2270: + ++p; + if ((yych = *p) <= ';') { + if (yych <= '/') + goto yy2214; + if (yych <= '9') + goto yy2255; + if (yych <= ':') + goto yy2214; + goto yy2224; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy2214; + goto yy2255; + } else { + if (yych <= '`') + goto yy2214; + if (yych <= 'f') + goto yy2255; + goto yy2214; + } + } + } } // 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 = *(marker = p); - if (yych <= 'f') { - if (yych <= 'I') { - if (yych <= 'C') { - if (yych != '\n') goto yy2278; - } else { - if (yych <= 'D') goto yy2274; - if (yych == 'F') goto yy2277; - goto yy2278; - } - } else { - if (yych <= 'V') { - if (yych <= 'J') goto yy2275; - if (yych <= 'U') goto yy2278; - goto yy2276; - } else { - if (yych == 'd') goto yy2274; - if (yych <= 'e') goto yy2278; - goto yy2277; - } - } - } else { - if (yych <= 0xDF) { - if (yych <= 'u') { - if (yych == 'j') goto yy2275; - goto yy2278; - } else { - if (yych <= 'v') goto yy2276; - if (yych <= 0x7F) goto yy2278; - if (yych >= 0xC2) goto yy2279; - } - } else { - if (yych <= 0xEF) { - if (yych <= 0xE0) goto yy2281; - if (yych == 0xED) goto yy2286; - goto yy2282; - } else { - if (yych <= 0xF0) goto yy2283; - if (yych <= 0xF3) goto yy2284; - if (yych <= 0xF4) goto yy2285; - } - } - } -yy2273: - { return 0; } -yy2274: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'A') goto yy2308; - if (yych == 'a') goto yy2308; - goto yy2273; -yy2275: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'A') goto yy2299; - if (yych == 'a') goto yy2299; - goto yy2273; -yy2276: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'B') goto yy2292; - if (yych == 'b') goto yy2292; - goto yy2273; -yy2277: - yyaccept = 0; - yych = *(marker = ++p); - if (yych == 'I') goto yy2287; - if (yych == 'i') goto yy2287; - goto yy2273; -yy2278: - yych = *++p; - goto yy2273; -yy2279: - yych = *++p; - if (yych <= 0x7F) goto yy2280; - if (yych <= 0xBF) goto yy2278; -yy2280: - p = marker; - if (yyaccept == 0) { - goto yy2273; - } else { - goto yy2291; - } -yy2281: - yych = *++p; - if (yych <= 0x9F) goto yy2280; - if (yych <= 0xBF) goto yy2279; - goto yy2280; -yy2282: - yych = *++p; - if (yych <= 0x7F) goto yy2280; - if (yych <= 0xBF) goto yy2279; - goto yy2280; -yy2283: - yych = *++p; - if (yych <= 0x8F) goto yy2280; - if (yych <= 0xBF) goto yy2282; - goto yy2280; -yy2284: - yych = *++p; - if (yych <= 0x7F) goto yy2280; - if (yych <= 0xBF) goto yy2282; - goto yy2280; -yy2285: - yych = *++p; - if (yych <= 0x7F) goto yy2280; - if (yych <= 0x8F) goto yy2282; - goto yy2280; -yy2286: - yych = *++p; - if (yych <= 0x7F) goto yy2280; - if (yych <= 0x9F) goto yy2279; - goto yy2280; -yy2287: - yych = *++p; - if (yych == 'L') goto yy2288; - if (yych != 'l') goto yy2280; -yy2288: - yych = *++p; - if (yych == 'E') goto yy2289; - if (yych != 'e') goto yy2280; -yy2289: - yych = *++p; - if (yych != ':') goto yy2280; -yy2290: - ++p; -yy2291: - { return (bufsize_t)(p - start); } -yy2292: - yych = *++p; - if (yych == 'S') goto yy2293; - if (yych != 's') goto yy2280; -yy2293: - yych = *++p; - if (yych == 'C') goto yy2294; - if (yych != 'c') goto yy2280; -yy2294: - yych = *++p; - if (yych == 'R') goto yy2295; - if (yych != 'r') goto yy2280; -yy2295: - yych = *++p; - if (yych == 'I') goto yy2296; - if (yych != 'i') goto yy2280; -yy2296: - yych = *++p; - if (yych == 'P') goto yy2297; - if (yych != 'p') goto yy2280; -yy2297: - yych = *++p; - if (yych == 'T') goto yy2298; - if (yych != 't') goto yy2280; -yy2298: - yych = *++p; - if (yych == ':') goto yy2290; - goto yy2280; -yy2299: - yych = *++p; - if (yych == 'V') goto yy2300; - if (yych != 'v') goto yy2280; -yy2300: - yych = *++p; - if (yych == 'A') goto yy2301; - if (yych != 'a') goto yy2280; -yy2301: - yych = *++p; - if (yych == 'S') goto yy2302; - if (yych != 's') goto yy2280; -yy2302: - yych = *++p; - if (yych == 'C') goto yy2303; - if (yych != 'c') goto yy2280; -yy2303: - yych = *++p; - if (yych == 'R') goto yy2304; - if (yych != 'r') goto yy2280; -yy2304: - yych = *++p; - if (yych == 'I') goto yy2305; - if (yych != 'i') goto yy2280; -yy2305: - yych = *++p; - if (yych == 'P') goto yy2306; - if (yych != 'p') goto yy2280; -yy2306: - yych = *++p; - if (yych == 'T') goto yy2307; - if (yych != 't') goto yy2280; -yy2307: - yych = *++p; - if (yych == ':') goto yy2290; - goto yy2280; -yy2308: - yych = *++p; - if (yych == 'T') goto yy2309; - if (yych != 't') goto yy2280; -yy2309: - yych = *++p; - if (yych == 'A') goto yy2310; - if (yych != 'a') goto yy2280; -yy2310: - yych = *++p; - if (yych != ':') goto yy2280; - yyaccept = 1; - yych = *(marker = ++p); - if (yych == 'I') goto yy2312; - if (yych != 'i') goto yy2291; -yy2312: - yych = *++p; - if (yych == 'M') goto yy2313; - if (yych != 'm') goto yy2280; -yy2313: - yych = *++p; - if (yych == 'A') goto yy2314; - if (yych != 'a') goto yy2280; -yy2314: - yych = *++p; - if (yych == 'G') goto yy2315; - if (yych != 'g') goto yy2280; -yy2315: - yych = *++p; - if (yych == 'E') goto yy2316; - if (yych != 'e') goto yy2280; -yy2316: - yych = *++p; - if (yych != '/') goto yy2280; - yych = *++p; - if (yych <= 'W') { - if (yych <= 'J') { - if (yych == 'G') goto yy2319; - if (yych <= 'I') goto yy2280; - goto yy2320; - } else { - if (yych == 'P') goto yy2318; - if (yych <= 'V') goto yy2280; - goto yy2321; - } - } else { - if (yych <= 'j') { - if (yych == 'g') goto yy2319; - if (yych <= 'i') goto yy2280; - goto yy2320; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy2280; - } else { - if (yych == 'w') goto yy2321; - goto yy2280; - } - } - } -yy2318: - yych = *++p; - if (yych == 'N') goto yy2329; - if (yych == 'n') goto yy2329; - goto yy2280; -yy2319: - yych = *++p; - if (yych == 'I') goto yy2328; - if (yych == 'i') goto yy2328; - goto yy2280; -yy2320: - yych = *++p; - if (yych == 'P') goto yy2326; - if (yych == 'p') goto yy2326; - goto yy2280; -yy2321: - yych = *++p; - if (yych == 'E') goto yy2322; - if (yych != 'e') goto yy2280; -yy2322: - yych = *++p; - if (yych == 'B') goto yy2323; - if (yych != 'b') goto yy2280; -yy2323: - yych = *++p; - if (yych == 'P') goto yy2324; - if (yych != 'p') goto yy2280; -yy2324: - ++p; - { return 0; } -yy2326: - yych = *++p; - if (yych == 'E') goto yy2327; - if (yych != 'e') goto yy2280; -yy2327: - yych = *++p; - if (yych == 'G') goto yy2324; - if (yych == 'g') goto yy2324; - goto yy2280; -yy2328: - yych = *++p; - if (yych == 'F') goto yy2324; - if (yych == 'f') goto yy2324; - goto yy2280; -yy2329: - ++p; - if ((yych = *p) == 'G') goto yy2324; - if (yych == 'g') goto yy2324; - goto yy2280; + { + unsigned char yych; + unsigned int yyaccept = 0; + yych = *(marker = p); + if (yych <= 'f') { + if (yych <= 'I') { + if (yych <= 'C') { + if (yych != '\n') + goto yy2278; + } else { + if (yych <= 'D') + goto yy2274; + if (yych == 'F') + goto yy2277; + goto yy2278; + } + } else { + if (yych <= 'V') { + if (yych <= 'J') + goto yy2275; + if (yych <= 'U') + goto yy2278; + goto yy2276; + } else { + if (yych == 'd') + goto yy2274; + if (yych <= 'e') + goto yy2278; + goto yy2277; + } + } + } else { + if (yych <= 0xDF) { + if (yych <= 'u') { + if (yych == 'j') + goto yy2275; + goto yy2278; + } else { + if (yych <= 'v') + goto yy2276; + if (yych <= 0x7F) + goto yy2278; + if (yych >= 0xC2) + goto yy2279; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy2281; + if (yych == 0xED) + goto yy2286; + goto yy2282; + } else { + if (yych <= 0xF0) + goto yy2283; + if (yych <= 0xF3) + goto yy2284; + if (yych <= 0xF4) + goto yy2285; + } + } + } + yy2273 : { return 0; } + yy2274: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy2308; + if (yych == 'a') + goto yy2308; + goto yy2273; + yy2275: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy2299; + if (yych == 'a') + goto yy2299; + goto yy2273; + yy2276: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'B') + goto yy2292; + if (yych == 'b') + goto yy2292; + goto yy2273; + yy2277: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'I') + goto yy2287; + if (yych == 'i') + goto yy2287; + goto yy2273; + yy2278: + yych = *++p; + goto yy2273; + yy2279: + yych = *++p; + if (yych <= 0x7F) + goto yy2280; + if (yych <= 0xBF) + goto yy2278; + yy2280: + p = marker; + if (yyaccept == 0) { + goto yy2273; + } else { + goto yy2291; + } + yy2281: + yych = *++p; + if (yych <= 0x9F) + goto yy2280; + if (yych <= 0xBF) + goto yy2279; + goto yy2280; + yy2282: + yych = *++p; + if (yych <= 0x7F) + goto yy2280; + if (yych <= 0xBF) + goto yy2279; + goto yy2280; + yy2283: + yych = *++p; + if (yych <= 0x8F) + goto yy2280; + if (yych <= 0xBF) + goto yy2282; + goto yy2280; + yy2284: + yych = *++p; + if (yych <= 0x7F) + goto yy2280; + if (yych <= 0xBF) + goto yy2282; + goto yy2280; + yy2285: + yych = *++p; + if (yych <= 0x7F) + goto yy2280; + if (yych <= 0x8F) + goto yy2282; + goto yy2280; + yy2286: + yych = *++p; + if (yych <= 0x7F) + goto yy2280; + if (yych <= 0x9F) + goto yy2279; + goto yy2280; + yy2287: + yych = *++p; + if (yych == 'L') + goto yy2288; + if (yych != 'l') + goto yy2280; + yy2288: + yych = *++p; + if (yych == 'E') + goto yy2289; + if (yych != 'e') + goto yy2280; + yy2289: + yych = *++p; + if (yych != ':') + goto yy2280; + yy2290: + ++p; + yy2291 : { return (bufsize_t)(p - start); } + yy2292: + yych = *++p; + if (yych == 'S') + goto yy2293; + if (yych != 's') + goto yy2280; + yy2293: + yych = *++p; + if (yych == 'C') + goto yy2294; + if (yych != 'c') + goto yy2280; + yy2294: + yych = *++p; + if (yych == 'R') + goto yy2295; + if (yych != 'r') + goto yy2280; + yy2295: + yych = *++p; + if (yych == 'I') + goto yy2296; + if (yych != 'i') + goto yy2280; + yy2296: + yych = *++p; + if (yych == 'P') + goto yy2297; + if (yych != 'p') + goto yy2280; + yy2297: + yych = *++p; + if (yych == 'T') + goto yy2298; + if (yych != 't') + goto yy2280; + yy2298: + yych = *++p; + if (yych == ':') + goto yy2290; + goto yy2280; + yy2299: + yych = *++p; + if (yych == 'V') + goto yy2300; + if (yych != 'v') + goto yy2280; + yy2300: + yych = *++p; + if (yych == 'A') + goto yy2301; + if (yych != 'a') + goto yy2280; + yy2301: + yych = *++p; + if (yych == 'S') + goto yy2302; + if (yych != 's') + goto yy2280; + yy2302: + yych = *++p; + if (yych == 'C') + goto yy2303; + if (yych != 'c') + goto yy2280; + yy2303: + yych = *++p; + if (yych == 'R') + goto yy2304; + if (yych != 'r') + goto yy2280; + yy2304: + yych = *++p; + if (yych == 'I') + goto yy2305; + if (yych != 'i') + goto yy2280; + yy2305: + yych = *++p; + if (yych == 'P') + goto yy2306; + if (yych != 'p') + goto yy2280; + yy2306: + yych = *++p; + if (yych == 'T') + goto yy2307; + if (yych != 't') + goto yy2280; + yy2307: + yych = *++p; + if (yych == ':') + goto yy2290; + goto yy2280; + yy2308: + yych = *++p; + if (yych == 'T') + goto yy2309; + if (yych != 't') + goto yy2280; + yy2309: + yych = *++p; + if (yych == 'A') + goto yy2310; + if (yych != 'a') + goto yy2280; + yy2310: + yych = *++p; + if (yych != ':') + goto yy2280; + yyaccept = 1; + yych = *(marker = ++p); + if (yych == 'I') + goto yy2312; + if (yych != 'i') + goto yy2291; + yy2312: + yych = *++p; + if (yych == 'M') + goto yy2313; + if (yych != 'm') + goto yy2280; + yy2313: + yych = *++p; + if (yych == 'A') + goto yy2314; + if (yych != 'a') + goto yy2280; + yy2314: + yych = *++p; + if (yych == 'G') + goto yy2315; + if (yych != 'g') + goto yy2280; + yy2315: + yych = *++p; + if (yych == 'E') + goto yy2316; + if (yych != 'e') + goto yy2280; + yy2316: + yych = *++p; + if (yych != '/') + goto yy2280; + yych = *++p; + if (yych <= 'W') { + if (yych <= 'J') { + if (yych == 'G') + goto yy2319; + if (yych <= 'I') + goto yy2280; + goto yy2320; + } else { + if (yych == 'P') + goto yy2318; + if (yych <= 'V') + goto yy2280; + goto yy2321; + } + } else { + if (yych <= 'j') { + if (yych == 'g') + goto yy2319; + if (yych <= 'i') + goto yy2280; + goto yy2320; + } else { + if (yych <= 'p') { + if (yych <= 'o') + goto yy2280; + } else { + if (yych == 'w') + goto yy2321; + goto yy2280; + } + } + } + yy2318: + yych = *++p; + if (yych == 'N') + goto yy2329; + if (yych == 'n') + goto yy2329; + goto yy2280; + yy2319: + yych = *++p; + if (yych == 'I') + goto yy2328; + if (yych == 'i') + goto yy2328; + goto yy2280; + yy2320: + yych = *++p; + if (yych == 'P') + goto yy2326; + if (yych == 'p') + goto yy2326; + goto yy2280; + yy2321: + yych = *++p; + if (yych == 'E') + goto yy2322; + if (yych != 'e') + goto yy2280; + yy2322: + yych = *++p; + if (yych == 'B') + goto yy2323; + if (yych != 'b') + goto yy2280; + yy2323: + yych = *++p; + if (yych == 'P') + goto yy2324; + if (yych != 'p') + goto yy2280; + yy2324: + ++p; + { return 0; } + yy2326: + yych = *++p; + if (yych == 'E') + goto yy2327; + if (yych != 'e') + goto yy2280; + yy2327: + yych = *++p; + if (yych == 'G') + goto yy2324; + if (yych == 'g') + goto yy2324; + goto yy2280; + yy2328: + yych = *++p; + if (yych == 'F') + goto yy2324; + if (yych == 'f') + goto yy2324; + goto yy2280; + yy2329: + ++p; + if ((yych = *p) == 'G') + goto yy2324; + if (yych == 'g') + goto yy2324; + goto yy2280; + } } - -} - diff --git a/src/scanners.h b/src/scanners.h index a6a71bf..4616f9f 100644 --- a/src/scanners.h +++ b/src/scanners.h @@ -5,7 +5,8 @@ extern "C" { #endif -bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset); +bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, + bufsize_t offset); bufsize_t _scan_scheme(const unsigned char *p); bufsize_t _scan_autolink_uri(const unsigned char *p); bufsize_t _scan_autolink_email(const unsigned char *p); @@ -6,452 +6,309 @@ #include "utf8.h" static const int8_t utf8proc_utf8class[256] = { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static void encode_unknown(cmark_strbuf *buf) -{ - static const uint8_t repl[] = {239, 191, 189}; - cmark_strbuf_put(buf, repl, 3); + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0}; + +static void encode_unknown(cmark_strbuf *buf) { + static const uint8_t repl[] = {239, 191, 189}; + cmark_strbuf_put(buf, repl, 3); } -static int utf8proc_charlen(const uint8_t *str, bufsize_t str_len) -{ - int length, i; +static int utf8proc_charlen(const uint8_t *str, bufsize_t str_len) { + int length, i; - if (!str_len) - return 0; + if (!str_len) + return 0; - length = utf8proc_utf8class[str[0]]; + length = utf8proc_utf8class[str[0]]; - if (!length) - return -1; + if (!length) + return -1; - if (str_len >= 0 && (bufsize_t)length > str_len) - return -str_len; + if (str_len >= 0 && (bufsize_t)length > str_len) + return -str_len; - for (i = 1; i < length; i++) { - if ((str[i] & 0xC0) != 0x80) - return -i; - } + for (i = 1; i < length; i++) { + if ((str[i] & 0xC0) != 0x80) + return -i; + } - return length; + return length; } // Validate a single UTF-8 character according to RFC 3629. -static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) -{ - int length = utf8proc_utf8class[str[0]]; - - if (!length) - return -1; - - if ((bufsize_t)length > str_len) - return -str_len; - - switch (length) { - case 2: - if ((str[1] & 0xC0) != 0x80) - return -1; - if (str[0] < 0xC2) { - // Overlong - return -length; - } - break; - - case 3: - if ((str[1] & 0xC0) != 0x80) - return -1; - if ((str[2] & 0xC0) != 0x80) - return -2; - if (str[0] == 0xE0) { - if (str[1] < 0xA0) { - // Overlong - return -length; - } - } else if (str[0] == 0xED) { - if (str[1] >= 0xA0) { - // Surrogate - return -length; - } - } - break; - - case 4: - if ((str[1] & 0xC0) != 0x80) - return -1; - if ((str[2] & 0xC0) != 0x80) - return -2; - if ((str[3] & 0xC0) != 0x80) - return -3; - if (str[0] == 0xF0) { - if (str[1] < 0x90) { - // Overlong - return -length; - } - } else if (str[0] >= 0xF4) { - if (str[0] > 0xF4 || str[1] >= 0x90) { - // Above 0x10FFFF - return -length; - } - } - break; - } - - return length; +static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) { + int length = utf8proc_utf8class[str[0]]; + + if (!length) + return -1; + + if ((bufsize_t)length > str_len) + return -str_len; + + switch (length) { + case 2: + if ((str[1] & 0xC0) != 0x80) + return -1; + if (str[0] < 0xC2) { + // Overlong + return -length; + } + break; + + case 3: + if ((str[1] & 0xC0) != 0x80) + return -1; + if ((str[2] & 0xC0) != 0x80) + return -2; + if (str[0] == 0xE0) { + if (str[1] < 0xA0) { + // Overlong + return -length; + } + } else if (str[0] == 0xED) { + if (str[1] >= 0xA0) { + // Surrogate + return -length; + } + } + break; + + case 4: + if ((str[1] & 0xC0) != 0x80) + return -1; + if ((str[2] & 0xC0) != 0x80) + return -2; + if ((str[3] & 0xC0) != 0x80) + return -3; + if (str[0] == 0xF0) { + if (str[1] < 0x90) { + // Overlong + return -length; + } + } else if (str[0] >= 0xF4) { + if (str[0] > 0xF4 || str[1] >= 0x90) { + // Above 0x10FFFF + return -length; + } + } + break; + } + + return length; } -void utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size) -{ - bufsize_t i = 0; - - while (i < size) { - bufsize_t org = i; - int charlen = 0; - - while (i < size) { - if (line[i] < 0x80 && line[i] != 0) { - i++; - } else if (line[i] >= 0x80) { - charlen = utf8proc_valid(line + i, size - i); - if (charlen < 0) { - charlen = -charlen; - break; - } - i += charlen; - } else if (line[i] == 0) { - // ASCII NUL is technically valid but rejected - // for security reasons. - charlen = 1; - break; - } - } - - if (i > org) { - cmark_strbuf_put(ob, line + org, i - org); - } - - if (i >= size) { - break; - } else { - // Invalid UTF-8 - encode_unknown(ob); - i += charlen; - } - } +void utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size) { + bufsize_t i = 0; + + while (i < size) { + bufsize_t org = i; + int charlen = 0; + + while (i < size) { + if (line[i] < 0x80 && line[i] != 0) { + i++; + } else if (line[i] >= 0x80) { + charlen = utf8proc_valid(line + i, size - i); + if (charlen < 0) { + charlen = -charlen; + break; + } + i += charlen; + } else if (line[i] == 0) { + // ASCII NUL is technically valid but rejected + // for security reasons. + charlen = 1; + break; + } + } + + if (i > org) { + cmark_strbuf_put(ob, line + org, i - org); + } + + if (i >= size) { + break; + } else { + // Invalid UTF-8 + encode_unknown(ob); + i += charlen; + } + } } -int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst) -{ - int length; - int32_t uc = -1; - - *dst = -1; - length = utf8proc_charlen(str, str_len); - if (length < 0) - return -1; - - switch (length) { - case 1: - uc = str[0]; - break; - case 2: - uc = ((str[0] & 0x1F) << 6) + (str[1] & 0x3F); - if (uc < 0x80) uc = -1; - break; - case 3: - uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) << 6) - + (str[2] & 0x3F); - if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000)) uc = -1; - break; - case 4: - uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) - + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F); - if (uc < 0x10000 || uc >= 0x110000) uc = -1; - break; - } - - if (uc < 0) - return -1; - - *dst = uc; - return length; +int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst) { + int length; + int32_t uc = -1; + + *dst = -1; + length = utf8proc_charlen(str, str_len); + if (length < 0) + return -1; + + switch (length) { + case 1: + uc = str[0]; + break; + case 2: + uc = ((str[0] & 0x1F) << 6) + (str[1] & 0x3F); + if (uc < 0x80) + uc = -1; + break; + case 3: + uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) << 6) + (str[2] & 0x3F); + if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000)) + uc = -1; + break; + case 4: + uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) + + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F); + if (uc < 0x10000 || uc >= 0x110000) + uc = -1; + break; + } + + if (uc < 0) + return -1; + + *dst = uc; + return length; } -void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) -{ - uint8_t dst[4]; - bufsize_t len = 0; - - assert(uc >= 0); - - if (uc < 0x80) { - dst[0] = uc; - len = 1; - } else if (uc < 0x800) { - dst[0] = 0xC0 + (uc >> 6); - dst[1] = 0x80 + (uc & 0x3F); - len = 2; - } else if (uc == 0xFFFF) { - dst[0] = 0xFF; - len = 1; - } else if (uc == 0xFFFE) { - dst[0] = 0xFE; - len = 1; - } else if (uc < 0x10000) { - dst[0] = 0xE0 + (uc >> 12); - dst[1] = 0x80 + ((uc >> 6) & 0x3F); - dst[2] = 0x80 + (uc & 0x3F); - len = 3; - } else if (uc < 0x110000) { - dst[0] = 0xF0 + (uc >> 18); - dst[1] = 0x80 + ((uc >> 12) & 0x3F); - dst[2] = 0x80 + ((uc >> 6) & 0x3F); - dst[3] = 0x80 + (uc & 0x3F); - len = 4; - } else { - encode_unknown(buf); - return; - } - - cmark_strbuf_put(buf, dst, len); +void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) { + uint8_t dst[4]; + bufsize_t len = 0; + + assert(uc >= 0); + + if (uc < 0x80) { + dst[0] = uc; + len = 1; + } else if (uc < 0x800) { + dst[0] = 0xC0 + (uc >> 6); + dst[1] = 0x80 + (uc & 0x3F); + len = 2; + } else if (uc == 0xFFFF) { + dst[0] = 0xFF; + len = 1; + } else if (uc == 0xFFFE) { + dst[0] = 0xFE; + len = 1; + } else if (uc < 0x10000) { + dst[0] = 0xE0 + (uc >> 12); + dst[1] = 0x80 + ((uc >> 6) & 0x3F); + dst[2] = 0x80 + (uc & 0x3F); + len = 3; + } else if (uc < 0x110000) { + dst[0] = 0xF0 + (uc >> 18); + dst[1] = 0x80 + ((uc >> 12) & 0x3F); + dst[2] = 0x80 + ((uc >> 6) & 0x3F); + dst[3] = 0x80 + (uc & 0x3F); + len = 4; + } else { + encode_unknown(buf); + return; + } + + cmark_strbuf_put(buf, dst, len); } -void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len) -{ - int32_t c; +void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len) { + int32_t c; -#define bufpush(x) \ - utf8proc_encode_char(x, dest) +#define bufpush(x) utf8proc_encode_char(x, dest) - while (len > 0) { - bufsize_t char_len = utf8proc_iterate(str, len, &c); + while (len > 0) { + bufsize_t char_len = utf8proc_iterate(str, len, &c); - if (char_len >= 0) { + if (char_len >= 0) { #include "case_fold_switch.inc" - } else { - encode_unknown(dest); - char_len = -char_len; - } - - str += char_len; - len -= char_len; - } + } else { + encode_unknown(dest); + char_len = -char_len; + } + + str += char_len; + len -= char_len; + } } // matches anything in the Zs class, plus LF, CR, TAB, FF. -int utf8proc_is_space(int32_t uc) -{ - return (uc == 9 || - uc == 10 || - uc == 12 || - uc == 13 || - uc == 32 || - uc == 160 || - uc == 5760 || - (uc >= 8192 && uc <= 8202) || - uc == 8239 || - uc == 8287 || - uc == 12288); +int utf8proc_is_space(int32_t uc) { + return (uc == 9 || uc == 10 || uc == 12 || uc == 13 || uc == 32 || + uc == 160 || uc == 5760 || (uc >= 8192 && uc <= 8202) || uc == 8239 || + uc == 8287 || uc == 12288); } // matches anything in the P[cdefios] classes. -int utf8proc_is_punctuation(int32_t uc) -{ - return ((uc < 128 && cmark_ispunct((char)uc)) || - uc == 161 || - uc == 167 || - uc == 171 || - uc == 182 || - uc == 183 || - uc == 187 || - uc == 191 || - uc == 894 || - uc == 903 || - (uc >= 1370 && uc <= 1375) || - uc == 1417 || - uc == 1418 || - uc == 1470 || - uc == 1472 || - uc == 1475 || - uc == 1478 || - uc == 1523 || - uc == 1524 || - uc == 1545 || - uc == 1546 || - uc == 1548 || - uc == 1549 || - uc == 1563 || - uc == 1566 || - uc == 1567 || - (uc >= 1642 && uc <= 1645) || - uc == 1748 || - (uc >= 1792 && uc <= 1805) || - (uc >= 2039 && uc <= 2041) || - (uc >= 2096 && uc <= 2110) || - uc == 2142 || - uc == 2404 || - uc == 2405 || - uc == 2416 || - uc == 2800 || - uc == 3572 || - uc == 3663 || - uc == 3674 || - uc == 3675 || - (uc >= 3844 && uc <= 3858) || - uc == 3860 || - (uc >= 3898 && uc <= 3901) || - uc == 3973 || - (uc >= 4048 && uc <= 4052) || - uc == 4057 || - uc == 4058 || - (uc >= 4170 && uc <= 4175) || - uc == 4347 || - (uc >= 4960 && uc <= 4968) || - uc == 5120 || - uc == 5741 || - uc == 5742 || - uc == 5787 || - uc == 5788 || - (uc >= 5867 && uc <= 5869) || - uc == 5941 || - uc == 5942 || - (uc >= 6100 && uc <= 6102) || - (uc >= 6104 && uc <= 6106) || - (uc >= 6144 && uc <= 6154) || - uc == 6468 || - uc == 6469 || - uc == 6686 || - uc == 6687 || - (uc >= 6816 && uc <= 6822) || - (uc >= 6824 && uc <= 6829) || - (uc >= 7002 && uc <= 7008) || - (uc >= 7164 && uc <= 7167) || - (uc >= 7227 && uc <= 7231) || - uc == 7294 || - uc == 7295 || - (uc >= 7360 && uc <= 7367) || - uc == 7379 || - (uc >= 8208 && uc <= 8231) || - (uc >= 8240 && uc <= 8259) || - (uc >= 8261 && uc <= 8273) || - (uc >= 8275 && uc <= 8286) || - uc == 8317 || - uc == 8318 || - uc == 8333 || - uc == 8334 || - (uc >= 8968 && uc <= 8971) || - uc == 9001 || - uc == 9002 || - (uc >= 10088 && uc <= 10101) || - uc == 10181 || - uc == 10182 || - (uc >= 10214 && uc <= 10223) || - (uc >= 10627 && uc <= 10648) || - (uc >= 10712 && uc <= 10715) || - uc == 10748 || - uc == 10749 || - (uc >= 11513 && uc <= 11516) || - uc == 11518 || - uc == 11519 || - uc == 11632 || - (uc >= 11776 && uc <= 11822) || - (uc >= 11824 && uc <= 11842) || - (uc >= 12289 && uc <= 12291) || - (uc >= 12296 && uc <= 12305) || - (uc >= 12308 && uc <= 12319) || - uc == 12336 || - uc == 12349 || - uc == 12448 || - uc == 12539 || - uc == 42238 || - uc == 42239 || - (uc >= 42509 && uc <= 42511) || - uc == 42611 || - uc == 42622 || - (uc >= 42738 && uc <= 42743) || - (uc >= 43124 && uc <= 43127) || - uc == 43214 || - uc == 43215 || - (uc >= 43256 && uc <= 43258) || - uc == 43310 || - uc == 43311 || - uc == 43359 || - (uc >= 43457 && uc <= 43469) || - uc == 43486 || - uc == 43487 || - (uc >= 43612 && uc <= 43615) || - uc == 43742 || - uc == 43743 || - uc == 43760 || - uc == 43761 || - uc == 44011 || - uc == 64830 || - uc == 64831 || - (uc >= 65040 && uc <= 65049) || - (uc >= 65072 && uc <= 65106) || - (uc >= 65108 && uc <= 65121) || - uc == 65123 || - uc == 65128 || - uc == 65130 || - uc == 65131 || - (uc >= 65281 && uc <= 65283) || - (uc >= 65285 && uc <= 65290) || - (uc >= 65292 && uc <= 65295) || - uc == 65306 || - uc == 65307 || - uc == 65311 || - uc == 65312 || - (uc >= 65339 && uc <= 65341) || - uc == 65343 || - uc == 65371 || - uc == 65373 || - (uc >= 65375 && uc <= 65381) || - (uc >= 65792 && uc <= 65794) || - uc == 66463 || - uc == 66512 || - uc == 66927 || - uc == 67671 || - uc == 67871 || - uc == 67903 || - (uc >= 68176 && uc <= 68184) || - uc == 68223 || - (uc >= 68336 && uc <= 68342) || - (uc >= 68409 && uc <= 68415) || - (uc >= 68505 && uc <= 68508) || - (uc >= 69703 && uc <= 69709) || - uc == 69819 || - uc == 69820 || - (uc >= 69822 && uc <= 69825) || - (uc >= 69952 && uc <= 69955) || - uc == 70004 || - uc == 70005 || - (uc >= 70085 && uc <= 70088) || - uc == 70093 || - (uc >= 70200 && uc <= 70205) || - uc == 70854 || - (uc >= 71105 && uc <= 71113) || - (uc >= 71233 && uc <= 71235) || - (uc >= 74864 && uc <= 74868) || - uc == 92782 || - uc == 92783 || - uc == 92917 || - (uc >= 92983 && uc <= 92987) || - uc == 92996 || - uc == 113823); +int utf8proc_is_punctuation(int32_t uc) { + return ( + (uc < 128 && cmark_ispunct((char)uc)) || uc == 161 || uc == 167 || + uc == 171 || uc == 182 || uc == 183 || uc == 187 || uc == 191 || + uc == 894 || uc == 903 || (uc >= 1370 && uc <= 1375) || uc == 1417 || + uc == 1418 || uc == 1470 || uc == 1472 || uc == 1475 || uc == 1478 || + uc == 1523 || uc == 1524 || uc == 1545 || uc == 1546 || uc == 1548 || + uc == 1549 || uc == 1563 || uc == 1566 || uc == 1567 || + (uc >= 1642 && uc <= 1645) || uc == 1748 || (uc >= 1792 && uc <= 1805) || + (uc >= 2039 && uc <= 2041) || (uc >= 2096 && uc <= 2110) || uc == 2142 || + uc == 2404 || uc == 2405 || uc == 2416 || uc == 2800 || uc == 3572 || + uc == 3663 || uc == 3674 || uc == 3675 || (uc >= 3844 && uc <= 3858) || + uc == 3860 || (uc >= 3898 && uc <= 3901) || uc == 3973 || + (uc >= 4048 && uc <= 4052) || uc == 4057 || uc == 4058 || + (uc >= 4170 && uc <= 4175) || uc == 4347 || (uc >= 4960 && uc <= 4968) || + uc == 5120 || uc == 5741 || uc == 5742 || uc == 5787 || uc == 5788 || + (uc >= 5867 && uc <= 5869) || uc == 5941 || uc == 5942 || + (uc >= 6100 && uc <= 6102) || (uc >= 6104 && uc <= 6106) || + (uc >= 6144 && uc <= 6154) || uc == 6468 || uc == 6469 || uc == 6686 || + uc == 6687 || (uc >= 6816 && uc <= 6822) || (uc >= 6824 && uc <= 6829) || + (uc >= 7002 && uc <= 7008) || (uc >= 7164 && uc <= 7167) || + (uc >= 7227 && uc <= 7231) || uc == 7294 || uc == 7295 || + (uc >= 7360 && uc <= 7367) || uc == 7379 || (uc >= 8208 && uc <= 8231) || + (uc >= 8240 && uc <= 8259) || (uc >= 8261 && uc <= 8273) || + (uc >= 8275 && uc <= 8286) || uc == 8317 || uc == 8318 || uc == 8333 || + uc == 8334 || (uc >= 8968 && uc <= 8971) || uc == 9001 || uc == 9002 || + (uc >= 10088 && uc <= 10101) || uc == 10181 || uc == 10182 || + (uc >= 10214 && uc <= 10223) || (uc >= 10627 && uc <= 10648) || + (uc >= 10712 && uc <= 10715) || uc == 10748 || uc == 10749 || + (uc >= 11513 && uc <= 11516) || uc == 11518 || uc == 11519 || + uc == 11632 || (uc >= 11776 && uc <= 11822) || + (uc >= 11824 && uc <= 11842) || (uc >= 12289 && uc <= 12291) || + (uc >= 12296 && uc <= 12305) || (uc >= 12308 && uc <= 12319) || + uc == 12336 || uc == 12349 || uc == 12448 || uc == 12539 || uc == 42238 || + uc == 42239 || (uc >= 42509 && uc <= 42511) || uc == 42611 || + uc == 42622 || (uc >= 42738 && uc <= 42743) || + (uc >= 43124 && uc <= 43127) || uc == 43214 || uc == 43215 || + (uc >= 43256 && uc <= 43258) || uc == 43310 || uc == 43311 || + uc == 43359 || (uc >= 43457 && uc <= 43469) || uc == 43486 || + uc == 43487 || (uc >= 43612 && uc <= 43615) || uc == 43742 || + uc == 43743 || uc == 43760 || uc == 43761 || uc == 44011 || uc == 64830 || + uc == 64831 || (uc >= 65040 && uc <= 65049) || + (uc >= 65072 && uc <= 65106) || (uc >= 65108 && uc <= 65121) || + uc == 65123 || uc == 65128 || uc == 65130 || uc == 65131 || + (uc >= 65281 && uc <= 65283) || (uc >= 65285 && uc <= 65290) || + (uc >= 65292 && uc <= 65295) || uc == 65306 || uc == 65307 || + uc == 65311 || uc == 65312 || (uc >= 65339 && uc <= 65341) || + uc == 65343 || uc == 65371 || uc == 65373 || + (uc >= 65375 && uc <= 65381) || (uc >= 65792 && uc <= 65794) || + uc == 66463 || uc == 66512 || uc == 66927 || uc == 67671 || uc == 67871 || + uc == 67903 || (uc >= 68176 && uc <= 68184) || uc == 68223 || + (uc >= 68336 && uc <= 68342) || (uc >= 68409 && uc <= 68415) || + (uc >= 68505 && uc <= 68508) || (uc >= 69703 && uc <= 69709) || + uc == 69819 || uc == 69820 || (uc >= 69822 && uc <= 69825) || + (uc >= 69952 && uc <= 69955) || uc == 70004 || uc == 70005 || + (uc >= 70085 && uc <= 70088) || uc == 70093 || + (uc >= 70200 && uc <= 70205) || uc == 70854 || + (uc >= 71105 && uc <= 71113) || (uc >= 71233 && uc <= 71235) || + (uc >= 74864 && uc <= 74868) || uc == 92782 || uc == 92783 || + uc == 92917 || (uc >= 92983 && uc <= 92987) || uc == 92996 || + uc == 113823); } @@ -11,163 +11,142 @@ // Functions to convert cmark_nodes to XML strings. -static void escape_xml(cmark_strbuf *dest, const unsigned char *source, bufsize_t length) -{ - houdini_escape_html0(dest, source, length, 0); +static void escape_xml(cmark_strbuf *dest, const unsigned char *source, + bufsize_t length) { + houdini_escape_html0(dest, source, length, 0); } struct render_state { - cmark_strbuf* xml; - int indent; + cmark_strbuf *xml; + int indent; }; -static inline void indent(struct render_state *state) -{ - int i; - for (i = 0; i < state->indent; i++) { - cmark_strbuf_putc(state->xml, ' '); - } +static inline void indent(struct render_state *state) { + int i; + for (i = 0; i < state->indent; i++) { + cmark_strbuf_putc(state->xml, ' '); + } } -static int -S_render_node(cmark_node *node, cmark_event_type ev_type, - struct render_state *state, int options) -{ - cmark_strbuf *xml = state->xml; - bool literal = false; - cmark_delim_type delim; - bool entering = (ev_type == CMARK_EVENT_ENTER); - char buffer[100]; - - if (entering) { - indent(state); - cmark_strbuf_putc(xml, '<'); - cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); - - if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) { - sprintf(buffer, " sourcepos=\"%d:%d-%d:%d\"", - node->start_line, - node->start_column, - node->end_line, - node->end_column); - cmark_strbuf_puts(xml, buffer); - } - - literal = false; - - switch (node->type) { - case CMARK_NODE_TEXT: - case CMARK_NODE_CODE: - case CMARK_NODE_HTML: - case CMARK_NODE_INLINE_HTML: - cmark_strbuf_puts(xml, ">"); - escape_xml(xml, node->as.literal.data, - node->as.literal.len); - cmark_strbuf_puts(xml, "</"); - cmark_strbuf_puts(xml, - cmark_node_get_type_string(node)); - literal = true; - break; - case CMARK_NODE_LIST: - switch (cmark_node_get_list_type(node)) { - case CMARK_ORDERED_LIST: - cmark_strbuf_puts(xml, " type=\"ordered\""); - sprintf(buffer," start=\"%d\"", - cmark_node_get_list_start(node)); - cmark_strbuf_puts(xml, buffer); - delim = cmark_node_get_list_delim(node); - if (delim == CMARK_PAREN_DELIM) { - cmark_strbuf_puts(xml, - " delim=\"paren\""); - } else if (delim == CMARK_PERIOD_DELIM) { - cmark_strbuf_puts(xml, - " delim=\"period\""); - } - break; - case CMARK_BULLET_LIST: - cmark_strbuf_puts(xml, " type=\"bullet\""); - break; - default: - break; - } - sprintf(buffer, " tight=\"%s\"", - (cmark_node_get_list_tight(node) ? - "true" : "false")); - cmark_strbuf_puts(xml, buffer); - break; - case CMARK_NODE_HEADER: - sprintf(buffer, " level=\"%d\"", - node->as.header.level); - cmark_strbuf_puts(xml, buffer); - break; - case CMARK_NODE_CODE_BLOCK: - if (node->as.code.info.len > 0) { - cmark_strbuf_puts(xml, " info=\""); - escape_xml(xml, node->as.code.info.data, - node->as.code.info.len); - cmark_strbuf_putc(xml, '"'); - } - cmark_strbuf_puts(xml, ">"); - escape_xml(xml, node->as.code.literal.data, - node->as.code.literal.len); - cmark_strbuf_puts(xml, "</"); - cmark_strbuf_puts(xml, - cmark_node_get_type_string(node)); - literal = true; - break; - case CMARK_NODE_LINK: - case CMARK_NODE_IMAGE: - cmark_strbuf_puts(xml, " destination=\""); - escape_xml(xml, node->as.link.url.data, - node->as.link.url.len); - cmark_strbuf_putc(xml, '"'); - cmark_strbuf_puts(xml, " title=\""); - escape_xml(xml, node->as.link.title.data, - node->as.link.title.len); - cmark_strbuf_putc(xml, '"'); - break; - default: - break; - } - if (node->first_child) { - state->indent += 2; - } else if (!literal) { - cmark_strbuf_puts(xml, " /"); - } - cmark_strbuf_puts(xml, ">\n"); - - - } else if (node->first_child) { - state->indent -= 2; - indent(state); - cmark_strbuf_puts(xml, "</"); - cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); - cmark_strbuf_puts(xml, ">\n"); - } - - return 1; +static int S_render_node(cmark_node *node, cmark_event_type ev_type, + struct render_state *state, int options) { + cmark_strbuf *xml = state->xml; + bool literal = false; + cmark_delim_type delim; + bool entering = (ev_type == CMARK_EVENT_ENTER); + char buffer[100]; + + if (entering) { + indent(state); + cmark_strbuf_putc(xml, '<'); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + + if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) { + sprintf(buffer, " sourcepos=\"%d:%d-%d:%d\"", node->start_line, + node->start_column, node->end_line, node->end_column); + cmark_strbuf_puts(xml, buffer); + } + + literal = false; + + switch (node->type) { + case CMARK_NODE_TEXT: + case CMARK_NODE_CODE: + case CMARK_NODE_HTML: + case CMARK_NODE_INLINE_HTML: + cmark_strbuf_puts(xml, ">"); + escape_xml(xml, node->as.literal.data, node->as.literal.len); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + literal = true; + break; + case CMARK_NODE_LIST: + switch (cmark_node_get_list_type(node)) { + case CMARK_ORDERED_LIST: + cmark_strbuf_puts(xml, " type=\"ordered\""); + sprintf(buffer, " start=\"%d\"", cmark_node_get_list_start(node)); + cmark_strbuf_puts(xml, buffer); + delim = cmark_node_get_list_delim(node); + if (delim == CMARK_PAREN_DELIM) { + cmark_strbuf_puts(xml, " delim=\"paren\""); + } else if (delim == CMARK_PERIOD_DELIM) { + cmark_strbuf_puts(xml, " delim=\"period\""); + } + break; + case CMARK_BULLET_LIST: + cmark_strbuf_puts(xml, " type=\"bullet\""); + break; + default: + break; + } + sprintf(buffer, " tight=\"%s\"", + (cmark_node_get_list_tight(node) ? "true" : "false")); + cmark_strbuf_puts(xml, buffer); + break; + case CMARK_NODE_HEADER: + sprintf(buffer, " level=\"%d\"", node->as.header.level); + cmark_strbuf_puts(xml, buffer); + break; + case CMARK_NODE_CODE_BLOCK: + if (node->as.code.info.len > 0) { + cmark_strbuf_puts(xml, " info=\""); + escape_xml(xml, node->as.code.info.data, node->as.code.info.len); + cmark_strbuf_putc(xml, '"'); + } + cmark_strbuf_puts(xml, ">"); + escape_xml(xml, node->as.code.literal.data, node->as.code.literal.len); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + literal = true; + break; + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + cmark_strbuf_puts(xml, " destination=\""); + escape_xml(xml, node->as.link.url.data, node->as.link.url.len); + cmark_strbuf_putc(xml, '"'); + cmark_strbuf_puts(xml, " title=\""); + escape_xml(xml, node->as.link.title.data, node->as.link.title.len); + cmark_strbuf_putc(xml, '"'); + break; + default: + break; + } + if (node->first_child) { + state->indent += 2; + } else if (!literal) { + cmark_strbuf_puts(xml, " /"); + } + cmark_strbuf_puts(xml, ">\n"); + + } else if (node->first_child) { + state->indent -= 2; + indent(state); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + cmark_strbuf_puts(xml, ">\n"); + } + + return 1; } -char *cmark_render_xml(cmark_node *root, int options) -{ - char *result; - cmark_strbuf xml = GH_BUF_INIT; - cmark_event_type ev_type; - cmark_node *cur; - struct render_state state = { &xml, 0 }; - - cmark_iter *iter = cmark_iter_new(root); - - cmark_strbuf_puts(state.xml, - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - cmark_strbuf_puts(state.xml, - "<!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n"); - while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { - cur = cmark_iter_get_node(iter); - S_render_node(cur, ev_type, &state, options); - } - result = (char *)cmark_strbuf_detach(&xml); - - cmark_iter_free(iter); - return result; +char *cmark_render_xml(cmark_node *root, int options) { + char *result; + cmark_strbuf xml = GH_BUF_INIT; + cmark_event_type ev_type; + cmark_node *cur; + struct render_state state = {&xml, 0}; + + cmark_iter *iter = cmark_iter_new(root); + + cmark_strbuf_puts(state.xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + cmark_strbuf_puts(state.xml, + "<!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n"); + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + S_render_node(cur, ev_type, &state, options); + } + result = (char *)cmark_strbuf_detach(&xml); + + cmark_iter_free(iter); + return result; } |