cmark 0.4.0.1 → 0.4.1
raw patch · 37 files changed
+33391/−27270 lines, 37 filesdep ~HUnitPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: HUnit
API changes (from Hackage documentation)
Files
- README.md +19/−10
- cbits/bench.h +8/−8
- cbits/blocks.c +1002/−1031
- cbits/buffer.c +202/−277
- cbits/buffer.h +19/−21
- cbits/chunk.h +76/−80
- cbits/cmark.c +9/−17
- cbits/cmark.h +109/−153
- cbits/cmark_ctype.c +24/−35
- cbits/cmark_version.h +2/−2
- cbits/commonmark.c +364/−399
- cbits/config.h +6/−6
- cbits/houdini.h +21/−15
- cbits/houdini_href_e.c +50/−57
- cbits/houdini_html_e.c +36/−51
- cbits/houdini_html_u.c +105/−110
- cbits/html.c +257/−275
- cbits/inlines.c +1153/−1226
- cbits/inlines.h +4/−2
- cbits/iterator.c +88/−118
- cbits/iterator.h +5/−5
- cbits/latex.c +350/−372
- cbits/man.c +189/−203
- cbits/node.c +758/−851
- cbits/node.h +41/−42
- cbits/parser.h +14/−14
- cbits/references.c +92/−102
- cbits/references.h +10/−8
- cbits/render.c +130/−153
- cbits/render.h +22/−41
- cbits/scanners.c +27834/−21042
- cbits/scanners.h +2/−1
- cbits/utf8.c +257/−400
- cbits/utf8.h +6/−6
- cbits/xml.c +120/−135
- changelog +5/−0
- cmark.cabal +2/−2
README.md view
@@ -3,19 +3,21 @@ This package provides Haskell bindings for [libcmark], the reference parser for [CommonMark], a fully specified variant of Markdown.-It includes sources for [libcmark] (version 0.20.0, implementing-version 0.20 of the spec) and does not require prior installation of+It includes sources for [libcmark] (version 0.22.0, implementing+version 0.22 of the spec) and does not require prior installation of the C library. cmark provides the following advantages over existing Markdown libraries for Haskell: - - **Speed:** Conversion speed is on par with the [sundown] library.- We were unable to measure precisely against [sundown], which- raised a malloc error when compiled into our benchmark suite.- Relative to other implementations: cmark was 82 times faster than- [cheapskate], 59 times faster than [markdown], 105 times faster- than [pandoc], and 2.8 times faster than [discount].+ - **Speed:** cmark can render a Markdown version of *War and Peace* in+ the blink of an eye. Conversion speed is on par with the+ [sundown] library, though we were unable to benchmark precisely,+ because [sundown] raised a malloc error when compiled into our+ benchmark suite. Relative to other Haskell Markdown libraries:+ cmark was 82 times faster than [cheapskate], 59 times faster than+ [markdown], 105 times faster than [pandoc], and 3 times faster+ than [discount]. - **Memory footprint:** Memory footprint is on par with [sundown]. On one sample, the library uses a fourth the memory that [markdown]@@ -24,7 +26,8 @@ - **Robustness:** cmark can handle whatever is thrown at it, without the exponential blowups in parsing time that sometimes afflict other libraries. (The input `bench/full-sample.md`,- for example, causes both [pandoc] and [markdown] to grind to a halt.)+ for example, causes both [pandoc] and [markdown] to grind to a+ halt.) [libcmark] has been extensively fuzz-tested. - **Accuracy:** cmark passes the CommonMark spec's suite of over 500 conformance tests.@@ -35,6 +38,10 @@ example, one could use this library for server-side rendering and [commonmark.js] for client-side previewing. + - **Multiple renderers.** Output in HTML, groff man, LaTeX, CommonMark,+ and a custom XML format is supported. And it is easy to write new+ renderers to support other formats.+ - **Ease of installation:** cmark is portable and has minimal dependencies. @@ -45,7 +52,9 @@ tree that can be processed further using Haskell. **A note on security:** This library does not attempt to sanitize-HTML output. We recommend using [xss-sanitize] to filter the output.+HTML output. We recommend using [xss-sanitize] to filter the output,+or enabling `optSafe` to filter out all raw HTML and potentially+dangerous URLs. **A note on stability:** There is a good chance the API will change significantly after this early release.
cbits/bench.h view
@@ -9,15 +9,15 @@ 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()
cbits/blocks.c view
@@ -19,1035 +19,1006 @@ #define peek_at(i, n) (i)->data[n] -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;-}--// Create a root document node.-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;-}--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);--// 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 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 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];-- 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];-- if (!S_is_line_end_char(c))- continue;-- 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;-}--// 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 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;-}---// 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);-}--// 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);-}--// 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 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);-- 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_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);-- 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);-}--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;-- 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--;-- // Check for a be a space before the final #s:- if (n != orig_n && n >= 0 && peek_at(ch, n) == ' ') {- 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_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;- }-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);--}--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);-- if (parser->options & CMARK_OPT_NORMALIZE) {- cmark_consolidate_text_nodes(parser->root);- }-- cmark_strbuf_free(parser->curline);--#if CMARK_DEBUG_NODES- if (cmark_node_check(parser->root, stderr)) {- abort();- }-#endif- return parser->root;+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;+}++// Create a root document node.+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;+}++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);++// 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 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 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];++ 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];++ if (!S_is_line_end_char(c))+ continue;++ 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;+}++// 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 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;+}++// 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);+}++// 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);+}++// 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 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);++ 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_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);++ 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);+}++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)) {+ 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;+ // skip over line ending characters:+ if (buffer < end && *buffer == '\r')+ buffer++;+ if (buffer < end && *buffer == '\n')+ buffer++;+ }+}++static void chop_trailing_hashtags(cmark_chunk *ch) {+ bufsize_t n, orig_n;++ 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--;++ // 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_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) {+ cmark_utf8proc_check(parser->curline, buffer, bytes);+ } else {+ cmark_strbuf_put(parser->curline, buffer, bytes);+ }+ // ensure line ends with a newline:+ if (bytes == 0 || !S_is_line_end_char(parser->curline->ptr[bytes - 1])) {+ cmark_strbuf_putc(parser->curline, '\n');+ }+ 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 && container->first_child != NULL) {+ // if container->first_child is NULL, then the opening line+ // of the list item was blank after the list marker; in this+ // case, we are done with the list item.+ 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 = (int8_t)(parser->first_nonspace - parser->offset);+ container->as.code.info = cmark_chunk_literal("");+ S_advance_offset(parser, &input,+ parser->first_nonspace + matched - parser->offset,+ 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);+ 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_HRULE &&+ !(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);+}++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);++ if (parser->options & CMARK_OPT_NORMALIZE) {+ cmark_consolidate_text_nodes(parser->root);+ }++ cmark_strbuf_free(parser->curline);++#if CMARK_DEBUG_NODES+ if (cmark_node_check(parser->root, stderr)) {+ abort();+ }+#endif+ return parser->root; }
cbits/buffer.c view
@@ -16,371 +16,296 @@ 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;+void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) {+ unsigned char *new_ptr; - if (buf->asize == 0) {- new_ptr = NULL;- } else {- new_ptr = buf->ptr;- }+ if (target_size < buf->asize)+ return; - /* 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;+ if (buf->asize == 0) {+ new_ptr = NULL;+ } else {+ new_ptr = buf->ptr;+ } - /* Account for terminating null byte. */- new_size += 1;+ /* 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; - /* round allocation up to multiple of 8 */- new_size = (new_size + 7) & ~7;+ /* Account for terminating null byte. */+ new_size += 1; - 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;- }+ /* round allocation up to multiple of 8 */+ new_size = (new_size + 7) & ~7; - new_ptr = (unsigned char *)realloc(new_ptr, new_size);+ 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;+ } - if (!new_ptr) {- perror("realloc in cmark_strbuf_grow");- abort();- }+ new_ptr = (unsigned char *)realloc(new_ptr, new_size); - buf->asize = (bufsize_t)new_size;- buf->ptr = new_ptr;-}+ if (!new_ptr) {+ perror("realloc in cmark_strbuf_grow");+ abort();+ } -bufsize_t cmark_strbuf_len(const cmark_strbuf *buf)-{- return buf->size;+ buf->asize = (bufsize_t)new_size;+ buf->ptr = new_ptr; } -void cmark_strbuf_free(cmark_strbuf *buf)-{- if (!buf) return;-- if (buf->ptr != cmark_strbuf__initbuf)- free(buf->ptr);+bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) { return buf->size; } - cmark_strbuf_init(buf, 0);-}+void cmark_strbuf_free(cmark_strbuf *buf) {+ if (!buf)+ return; -void cmark_strbuf_clear(cmark_strbuf *buf)-{- buf->size = 0;+ if (buf->ptr != cmark_strbuf__initbuf)+ free(buf->ptr); - if (buf->asize > 0)- buf->ptr[0] = '\0';+ cmark_strbuf_init(buf, 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_clear(cmark_strbuf *buf) {+ 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);+ if (buf->asize > 0)+ buf->ptr[0] = '\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_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_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';+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_puts(cmark_strbuf *buf, const char *string)-{- cmark_strbuf_put(buf, (const unsigned char *)string,- cmark_strbuf_safe_strlen(string));+void cmark_strbuf_putc(cmark_strbuf *buf, int c) {+ S_strbuf_grow_by(buf, 1);+ buf->ptr[buf->size++] = (unsigned char)(c & 0xFF);+ buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_vprintf(cmark_strbuf *buf, const char *format, va_list ap)-{- size_t expected_size = strlen(format);- if (expected_size <= SIZE_MAX / 2)- expected_size *= 2;- S_strbuf_grow_by(buf, expected_size);-- while (1) {- va_list args;- va_copy(args, ap);-- int len = vsnprintf(- (char *)buf->ptr + buf->size,- buf->asize - buf->size,- format, args- );-#ifndef HAVE_C99_SNPRINTF- // Assume we're on Windows.- if (len < 0) {- len = _vscprintf(format, args);- }-#endif-- va_end(args);-- if (len < 0) {- perror("vsnprintf in cmark_strbuf_vprintf");- abort();- }-- if ((size_t)len < (size_t)(buf->asize - buf->size)) {- buf->size += len;- break;- }+void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data,+ bufsize_t len) {+ if (len <= 0)+ return; - S_strbuf_grow_by(buf, len);- }+ S_strbuf_grow_by(buf, len);+ memmove(buf->ptr + buf->size, data, len);+ buf->size += len;+ buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_printf(cmark_strbuf *buf, const char *format, ...)-{- va_list ap;-- va_start(ap, format);- cmark_strbuf_vprintf(buf, format, ap);- va_end(ap);+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);+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';- }+ 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;+void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) {+ bool last_char_was_space = false;+ bufsize_t r, w; - default:- s->ptr[w++] = s->ptr[r];- last_char_was_space = false;- }- }+ for (r = 0, w = 0; r < s->size; ++r) {+ if (cmark_isspace(s->ptr[r])) {+ if (!last_char_was_space) {+ s->ptr[w++] = ' ';+ last_char_was_space = true;+ }+ } else {+ s->ptr[w++] = s->ptr[r];+ last_char_was_space = false;+ }+ } - cmark_strbuf_truncate(s, w);+ 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); }
cbits/buffer.h view
@@ -14,13 +14,14 @@ 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,23 +45,22 @@ 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 CMARK_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_printf(cmark_strbuf *buf, const char *format, ...)- CMARK_ATTRIBUTE((format (printf, 2, 3)));-void cmark_strbuf_vprintf(cmark_strbuf *buf, const char *format, va_list ap); void cmark_strbuf_clear(cmark_strbuf *buf); bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos);@@ -75,17 +75,15 @@ /* 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 CMARK_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 CMARK_INLINE bufsize_t cmark_strbuf_safe_strlen(const char *str) {+ return cmark_strbuf_check_bufsize(strlen(str)); } #ifdef __cplusplus
cbits/chunk.h view
@@ -7,115 +7,111 @@ #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 CMARK_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 CMARK_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 CMARK_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 CMARK_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 CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,+ bufsize_t offset) {+ const unsigned char *p =+ (unsigned char *)memchr(ch->data + offset, c, ch->len - offset);+ return p ? (bufsize_t)(p - ch->data) : ch->len; } -static inline const char *cmark_chunk_to_cstr(cmark_chunk *c)-{- unsigned char *str;+static CMARK_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;+ 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;+ 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 CMARK_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 CMARK_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 CMARK_INLINE+cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,+ bufsize_t len) {+ cmark_chunk c = {ch->data + pos, len, 0};+ return c; } -static inline cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf)-{- cmark_chunk c;+static CMARK_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
cbits/cmark.c view
@@ -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; }-
cbits/cmark.h view
@@ -30,49 +30,48 @@ */ typedef enum {- /* Error status */- CMARK_NODE_NONE,+ /* 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,+ /* 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,+ 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,+ /* 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_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_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 @@ * 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 @@ /** 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 @@ * 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 @@ /** 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 @@ /** 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 @@ */ #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
cbits/cmark_ctype.c view
@@ -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; }
cbits/cmark_version.h view
@@ -1,7 +1,7 @@ #ifndef CMARK_VERSION_H #define CMARK_VERSION_H -#define CMARK_VERSION ((0 << 16) | (20 << 8) | 0)-#define CMARK_VERSION_STRING "0.20.0"+#define CMARK_VERSION ((0 << 16) | (22 << 8) | 0)+#define CMARK_VERSION_STRING "0.22.0" #endif
cbits/commonmark.c view
@@ -20,443 +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;- 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 == '\\')));+static inline void outc(cmark_renderer *renderer, cmark_escaping escape,+ int32_t c, unsigned char nextc) {+ bool needs_escaping = false;+ char encoded[20]; - if (needs_escaping) {- if (isspace(c)) {- // use percent encoding for spaces- cmark_strbuf_printf(renderer->buffer, "%%%2x", c);- renderer->column += 3;- } else {- cmark_render_ascii(renderer, "\\");- cmark_render_code_point(renderer, c);- }- } else {- cmark_render_code_point(renderer, c);- }+ 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;+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;- }+ if (node->type != CMARK_NODE_LINK) {+ return false;+ } - url = &node->as.link.url;- if (url->len == 0 || scan_scheme(url, 0) == 0) {- 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;- }+ 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);+ 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;- cmark_strbuf listmarker = GH_BUF_INIT;- char *emph_delim;- bufsize_t marker_width;+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));- }+ // 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;+ 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_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_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- cmark_strbuf_printf(&listmarker,- "%d%s%s", list_number,- list_delim == CMARK_PAREN_DELIM ?- ")" : ".",- list_number < 10 ? " " : " ");- marker_width = listmarker.size;- }- if (entering) {- if (cmark_node_get_list_type(node->parent) ==- CMARK_BULLET_LIST) {- LIT("* ");- cmark_strbuf_puts(renderer->prefix, " ");- } else {- LIT((char *)listmarker.ptr);- for (i = marker_width; i--;) {- cmark_strbuf_putc(renderer->prefix, ' ');- }- }- } else {- cmark_strbuf_truncate(renderer->prefix,- renderer->prefix->size -- marker_width);- CR();- }- cmark_strbuf_free(&listmarker);- 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_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_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_HTML:+ BLANKLINE();+ OUT(cmark_node_get_literal(node), false, LITERAL);+ BLANKLINE();+ break; - case CMARK_NODE_HRULE:- BLANKLINE();- LIT("-----");- BLANKLINE();- break;+ case CMARK_NODE_HRULE:+ BLANKLINE();+ LIT("-----");+ BLANKLINE();+ break; - case CMARK_NODE_PARAGRAPH:- if (!entering) {- 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_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_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_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_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_INLINE_HTML:+ OUT(cmark_node_get_literal(node), false, LITERAL);+ break; - case CMARK_NODE_STRONG:- if (entering) {- LIT("**");- } else {- LIT("**");- }- 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_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_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(";- 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;+ case CMARK_NODE_IMAGE:+ if (entering) {+ 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;- }+ default:+ assert(false);+ break;+ } - return 1;+ 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); }
cbits/config.h view
@@ -16,10 +16,10 @@ #define CMARK_ATTRIBUTE(list) #endif -#define HAVE_VA_COPY--#ifndef HAVE_VA_COPY- #define va_copy(dest, src) ((dest) = (src))+#ifndef CMARK_INLINE+ #if defined(_MSC_VER) && !defined(__cplusplus)+ #define CMARK_INLINE __inline+ #else+ #define CMARK_INLINE inline+ #endif #endif--#define HAVE_C99_SNPRINTF
cbits/houdini.h view
@@ -10,33 +10,39 @@ #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 }
cbits/houdini_href_e.c view
@@ -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; }
cbits/houdini_html_e.c view
@@ -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); }
cbits/houdini_html_u.c view
@@ -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;+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 (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 (_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;- }- }+ if (codepoint >= 0x110000) {+ // Keep counting digits but+ // avoid integer overflow.+ codepoint = 0x110000;+ }+ } - num_digits = i - 1;- }+ 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);+ 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;- }- }+ if (codepoint >= 0x110000) {+ // Keep counting digits but+ // avoid integer overflow.+ codepoint = 0x110000;+ }+ } - num_digits = i - 2;- }+ 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;- }- }+ if (num_digits >= 1 && num_digits <= 8 && i < size && src[i] == ';') {+ if (codepoint == 0 || (codepoint >= 0xD800 && codepoint < 0xE000) ||+ codepoint >= 0x110000) {+ codepoint = 0xFFFD;+ }+ cmark_utf8proc_encode_char(codepoint, ob);+ return i + 1;+ }+ } - else {- if (size > CMARK_ENTITY_MAX_LENGTH)- size = CMARK_ENTITY_MAX_LENGTH;+ 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;+ 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 (src[i] == ';') {+ const unsigned char *entity = S_lookup_entity(src, i); - if (entity != NULL) {- cmark_strbuf_puts(ob, (const char *)entity);- return i + 1;- }+ if (entity != NULL) {+ cmark_strbuf_puts(ob, (const char *)entity);+ return i + 1;+ } - break;- }- }- }+ break;+ }+ }+ } - return 0;+ 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); }
cbits/html.c view
@@ -12,322 +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)-{- if (CMARK_OPT_SOURCEPOS & options) {- cmark_strbuf_printf(html, " 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));- }+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;-- bool entering = (ev_type == CMARK_EVENT_ENTER);-- if (state->plain == node) { // back at original node- state->plain = NULL;- }+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]; - 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;+ bool entering = (ev_type == CMARK_EVENT_ENTER); - case CMARK_NODE_LINEBREAK:- case CMARK_NODE_SOFTBREAK:- cmark_strbuf_putc(html, ' ');- break;+ if (state->plain == node) { // back at original node+ state->plain = NULL;+ } - default:- break;- }- return 1;- }+ 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; - switch (node->type) {- case CMARK_NODE_DOCUMENT:- break;+ case CMARK_NODE_LINEBREAK:+ case CMARK_NODE_SOFTBREAK:+ cmark_strbuf_putc(html, ' ');+ 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;+ default:+ break;+ }+ return 1;+ } - case CMARK_NODE_LIST: {- cmark_list_type list_type = node->as.list.list_type;- int start = node->as.list.start;+ switch (node->type) {+ case CMARK_NODE_DOCUMENT:+ break; - 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 {- cmark_strbuf_printf(html,- "<ol start=\"%d\"",- start);- 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_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_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_LIST: {+ cmark_list_type list_type = node->as.list.list_type;+ int start = node->as.list.start; - 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;+ 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_CODE_BLOCK:- cr(html);+ 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; - 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;- }+ case CMARK_NODE_HEADER:+ if (entering) {+ cr(html);+ start_header[2] = (char)('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] = (char)('0' + node->as.header.level);+ cmark_strbuf_puts(html, end_header);+ cmark_strbuf_puts(html, ">\n");+ }+ break; - 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, "\">");- }+ case CMARK_NODE_CODE_BLOCK:+ cr(html); - escape_html(html, node->as.code.literal.data,- node->as.code.literal.len);- cmark_strbuf_puts(html, "</code></pre>\n");- break;+ 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;+ } - 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;+ 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, "\">");+ } - case CMARK_NODE_HRULE:- cr(html);- cmark_strbuf_puts(html, "<hr");- S_render_sourcepos(node, html, options);- cmark_strbuf_puts(html, " />\n");- break;+ escape_html(html, node->as.code.literal.data, node->as.code.literal.len);+ cmark_strbuf_puts(html, "</code></pre>\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_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_TEXT:- escape_html(html, node->as.literal.data, node->as.literal.len);- 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_LINEBREAK:- cmark_strbuf_puts(html, "<br />\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_SOFTBREAK:- if (options & CMARK_OPT_HARDBREAKS) {- cmark_strbuf_puts(html, "<br />\n");- } else {- cmark_strbuf_putc(html, '\n');- }- break;+ case CMARK_NODE_TEXT:+ escape_html(html, node->as.literal.data, node->as.literal.len);+ 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_LINEBREAK:+ cmark_strbuf_puts(html, "<br />\n");+ 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_SOFTBREAK:+ if (options & CMARK_OPT_HARDBREAKS) {+ cmark_strbuf_puts(html, "<br />\n");+ } else {+ cmark_strbuf_putc(html, '\n');+ }+ break; - case CMARK_NODE_STRONG:- if (entering) {- cmark_strbuf_puts(html, "<strong>");- } else {- cmark_strbuf_puts(html, "</strong>");- }- 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_EMPH:- if (entering) {- cmark_strbuf_puts(html, "<em>");- } else {- cmark_strbuf_puts(html, "</em>");- }- 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_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);+ case CMARK_NODE_STRONG:+ if (entering) {+ cmark_strbuf_puts(html, "<strong>");+ } else {+ cmark_strbuf_puts(html, "</strong>");+ }+ break; - }- 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_EMPH:+ if (entering) {+ cmark_strbuf_puts(html, "<em>");+ } else {+ cmark_strbuf_puts(html, "</em>");+ }+ 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);+ 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; - }- 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);- }+ 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;+ cmark_strbuf_puts(html, "\" />");+ }+ break; - default:- assert(false);- break;- }+ default:+ assert(false);+ break;+ } - // cmark_strbuf_putc(html, 'x');- return 1;+ // 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);+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);+ 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;+ cmark_iter_free(iter);+ return result; }
cbits/inlines.c view
@@ -13,1230 +13,1157 @@ #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";-static const char *LEFTDOUBLEQUOTE = "\xE2\x80\x9C";-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)-#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)-#define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)-#define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)-#define make_emph() make_simple(CMARK_NODE_EMPH)-#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;-} delimiter;--typedef struct {- 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 delimiter*-S_insert_emph(subject *subj, delimiter *opener, delimiter *closer);--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);--static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email)-{- cmark_strbuf buf = GH_BUF_INIT;-- cmark_chunk_trim(url);-- if (url->len == 0) {- cmark_chunk result = CMARK_CHUNK_EMPTY;- return result;- }-- if (is_email)- cmark_strbuf_puts(&buf, "mailto:");-- houdini_unescape_html_f(&buf, url->data, url->len);- return cmark_chunk_buf_detach(&buf);-}--static inline cmark_node *make_link(cmark_node *label, cmark_chunk *url, cmark_chunk *title)-{- cmark_node* e = (cmark_node *)calloc(1, sizeof(*e));- if(e != NULL) {- e->type = CMARK_NODE_LINK;- e->first_child = label;- e->last_child = label;- e->as.link.url = *url;- e->as.link.title = *title;- e->next = NULL;- label->parent = e;- }- return e;-}--static inline cmark_node* make_autolink(cmark_node* label, cmark_chunk url, int is_email)-{- cmark_chunk clean_url = cmark_clean_autolink(&url, is_email);- cmark_chunk title = CMARK_CHUNK_EMPTY;- return make_link(label, &clean_url, &title);-}--// 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;-}--// 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;-}--// 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;-- 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;-}--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;-}--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_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);-}--// 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_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;-- while ((c = peek_char(subj)) && (*f)(c)) {- advance(subj);- len++;- }-- return cmark_chunk_dup(&subj->input, startpos, len);-}--// Try to process a backtick code span that began with a-// span of ticks of length openticklength length (already-// 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);-}--// 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));- }-}--// 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 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;- }-}-*/--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;-}--// 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;-}--// 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));-}--// 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 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 ? NODE_EMPH : 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("\\"));- }-}--// 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;-- advance(subj);-- len = houdini_unescape_ent(&ent,- subj->input.data + subj->pos,- subj->input.len - subj->pos- );-- if (len == 0)- return make_str(cmark_chunk_literal("&"));-- subj->pos += len;- return make_str(cmark_chunk_buf_detach(&ent));-}--// Like make_str, but parses entities.-// Returns an inline sequence consisting of str and entity elements.-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);- }-}--// 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_trim(url);-- 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);- }-- 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(- make_str_with_entities(&contents),- 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(- make_str_with_entities(&contents),- 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;- }--noMatch:- 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;- }--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("]"));--match:- inl = opener->inl_text;- inl->type = is_image ? NODE_IMAGE : 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 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;-}--// 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);-- while (!is_eof(&subj) && parse_inline(&subj, parent, options)) ;-- 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);- }-}--// 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;+static const char *EMDASH = "\xE2\x80\x94";+static const char *ENDASH = "\xE2\x80\x93";+static const char *ELLIPSES = "\xE2\x80\xA6";+static const char *LEFTDOUBLEQUOTE = "\xE2\x80\x9C";+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)+#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)+#define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)+#define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)+#define make_emph() make_simple(CMARK_NODE_EMPH)+#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;+} delimiter;++typedef struct {+ 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 delimiter *S_insert_emph(subject *subj, delimiter *opener,+ delimiter *closer);++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;+}++// 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;+}++// 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);+ }+}++// 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;++ 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;+}++static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email) {+ cmark_strbuf buf = GH_BUF_INIT;++ cmark_chunk_trim(url);++ if (url->len == 0) {+ cmark_chunk result = CMARK_CHUNK_EMPTY;+ return result;+ }++ if (is_email)+ cmark_strbuf_puts(&buf, "mailto:");++ 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 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;+}++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_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);+}++// 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_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;++ while ((c = peek_char(subj)) && (*f)(c)) {+ advance(subj);+ len++;+ }++ return cmark_chunk_dup(&subj->input, startpos, len);+}++// Try to process a backtick code span that began with a+// span of ticks of length openticklength length (already+// 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);+}++// 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));+ }+}++// 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 = cmark_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 = cmark_utf8proc_iterate(subj->input.data + subj->pos,+ subj->input.len - subj->pos, &after_char);+ if (len == -1) {+ after_char = 10;+ }+ left_flanking = numdelims > 0 && !cmark_utf8proc_is_space(after_char) &&+ !(cmark_utf8proc_is_punctuation(after_char) &&+ !cmark_utf8proc_is_space(before_char) &&+ !cmark_utf8proc_is_punctuation(before_char));+ right_flanking =+ numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&+ !(cmark_utf8proc_is_punctuation(before_char) &&+ !cmark_utf8proc_is_space(after_char) && !cmark_utf8proc_is_punctuation(after_char));+ if (c == '_') {+ *can_open = left_flanking &&+ (!right_flanking || cmark_utf8proc_is_punctuation(before_char));+ *can_close = right_flanking &&+ (!left_flanking || cmark_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;+ }+}+*/++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;+}++// 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;+}++// 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));+}++// 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 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;+}++// 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("\\"));+ }+}++// 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;++ advance(subj);++ len = houdini_unescape_ent(&ent, subj->input.data + subj->pos,+ subj->input.len - subj->pos);++ if (len == 0)+ return make_str(cmark_chunk_literal("&"));++ 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_trim(url);++ 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);+ }++ 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("<"));+}++// 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;+ }++noMatch:+ 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;+ }++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("]"));++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;+}++// Parse a hard or soft linebreak, returning an inline.+// Assumes the subject has a cr or newline at the current position.+static cmark_node *handle_newline(subject *subj) {+ bufsize_t nlpos = subj->pos;+ // skip over cr, crlf, or lf:+ if (peek_at(subj, subj->pos) == '\r') {+ advance(subj);+ }+ if (peek_at(subj, subj->pos) == '\n') {+ 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;+}++// 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) != 0);+ break;+ case '-':+ new_inl = handle_hyphen(subj, (options & CMARK_OPT_SMART) != 0);+ break;+ case '.':+ new_inl = handle_period(subj, (options & CMARK_OPT_SMART) != 0);+ 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);++ while (!is_eof(&subj) && parse_inline(&subj, parent, options))+ ;++ 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);+ }+}++// 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; }
cbits/inlines.h view
@@ -8,9 +8,11 @@ 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 }
cbits/iterator.c view
@@ -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);+ (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;+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) != 0; } -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;+cmark_event_type cmark_iter_next(cmark_iter *iter) {+ cmark_event_type ev_type = iter->next.ev_type;+ cmark_node *node = iter->next.node; - if (ev_type == CMARK_EVENT_DONE) {- return ev_type;- }+ iter->cur.ev_type = ev_type;+ iter->cur.node = node; - /* 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;- }+ if (ev_type == CMARK_EVENT_DONE) {+ return ev_type;+ } - 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;+ } -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);+ return ev_type; } -cmark_node*-cmark_iter_get_node(cmark_iter *iter)-{- return iter->cur.node;+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_event_type-cmark_iter_get_event_type(cmark_iter *iter)-{- return iter->cur.ev_type;-}+cmark_node *cmark_iter_get_node(cmark_iter *iter) { return iter->cur.node; } -cmark_node*-cmark_iter_get_root(cmark_iter *iter)-{- return iter->root;+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;+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);- }- }+ 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_strbuf_free(&buf);+ cmark_iter_free(iter); }
cbits/iterator.h view
@@ -8,14 +8,14 @@ #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
cbits/latex.c view
@@ -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;- }+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);- }+ 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;+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;+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;- }+ 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);+ 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;- }+ 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;- }+ 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;- }+ 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"- };+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);+ // avoid warning about unused parameter:+ (void)(options); - switch (node->type) {- case CMARK_NODE_DOCUMENT:- break;+ 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_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_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_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_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_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_HTML:+ break; - case CMARK_NODE_HRULE:- BLANKLINE();- LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");- BLANKLINE();- 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_PARAGRAPH:+ if (!entering) {+ BLANKLINE();+ }+ break; - case CMARK_NODE_TEXT:- OUT(cmark_node_get_literal(node), true, NORMAL);- break;+ case CMARK_NODE_TEXT:+ OUT(cmark_node_get_literal(node), true, NORMAL);+ break; - case CMARK_NODE_LINEBREAK:- LIT("\\\\");- CR();- 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_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_CODE:+ LIT("\\texttt{");+ OUT(cmark_node_get_literal(node), false, NORMAL);+ LIT("}");+ break; - case CMARK_NODE_INLINE_HTML:- break;+ case CMARK_NODE_INLINE_HTML:+ break; - case CMARK_NODE_STRONG:- if (entering) {- LIT("\\textbf{");- } else {- LIT("}");- }- 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_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("}");- }+ 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;+ 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;+ 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;- }+ default:+ assert(false);+ break;+ } - return 1;+ 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); }
cbits/man.c view
@@ -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);+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;- }+ 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);- }+ 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);+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);+ // avoid unused parameter error:+ (void)(options); - switch (node->type) {- case CMARK_NODE_DOCUMENT:- break;+ 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_BLOCK_QUOTE:+ if (entering) {+ CR();+ LIT(".RS");+ CR();+ } else {+ CR();+ LIT(".RE");+ CR();+ }+ break; - case CMARK_NODE_LIST:- 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_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_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_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_HTML:+ break; - case CMARK_NODE_HRULE:- CR();- LIT(".PP\n * * * * *");- CR();- 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_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_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_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_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_CODE:+ LIT("\\f[C]");+ OUT(cmark_node_get_literal(node), true, NORMAL);+ LIT("\\f[]");+ break; - case CMARK_NODE_INLINE_HTML:- break;+ case CMARK_NODE_INLINE_HTML:+ break; - case CMARK_NODE_STRONG:- if (entering) {- LIT("\\f[B]");- } else {- LIT("\\f[]");- }- 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_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_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;+ case CMARK_NODE_IMAGE:+ if (entering) {+ LIT("[IMAGE: ");+ } else {+ LIT("]");+ }+ break; - default:- assert(false);- break;- }+ default:+ assert(false);+ break;+ } - return 1;+ 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); }
cbits/node.c view
@@ -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;-}--// 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;-}--// Unlink a node without adjusting its next, prev, and parent pointers.-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;--}--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;-}--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;+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 == 1;+ 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;+ }++ 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;+}++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;+}++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;+ for (;;) {+ 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; }
cbits/node.h view
@@ -13,68 +13,67 @@ #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;+ 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;+ void *user_data; - int start_line;- int start_column;- int end_line;- int end_column;+ int start_line;+ int start_column;+ int end_line;+ int end_column; - cmark_node_type type;+ cmark_node_type type; - bool open;- bool last_line_blank;+ bool open;+ bool last_line_blank; - cmark_strbuf string_content;+ 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;+ 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 }
cbits/parser.h view
@@ -12,20 +12,20 @@ #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
cbits/references.c view
@@ -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);+ cmark_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);+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;+ /* 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;+ 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);- }+ 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;+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 (label->len > MAX_LINK_LABEL_LENGTH)+ return NULL; - if (map == NULL)- return NULL;+ if (map == NULL)+ return NULL; - norm = normalize_reference(label);- if (norm == NULL)- return NULL;+ norm = normalize_reference(label);+ if (norm == NULL)+ return NULL; - hash = refhash(norm);- ref = map->table[hash % REFMAP_SIZE];+ 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;- }+ while (ref) {+ if (ref->hash == hash && !strcmp((char *)ref->label, (char *)norm))+ break;+ ref = ref->next;+ } - free(norm);- return ref;+ 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)); }
cbits/references.h view
@@ -10,25 +10,27 @@ #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 }
cbits/render.c view
@@ -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;+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;+ 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;- }+ 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;- }+ 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++;- }- }+ len = cmark_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;- }+ } 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) {+ // 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;- }+ // 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;- }+ 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) {+ cmark_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);+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- };+ 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);- }- }+ 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');- }+ // 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);+ result = (char *)cmark_strbuf_detach(renderer.buffer); - cmark_iter_free(iter);- cmark_strbuf_free(renderer.prefix);- cmark_strbuf_free(renderer.buffer);+ cmark_iter_free(iter);+ cmark_strbuf_free(renderer.prefix);+ cmark_strbuf_free(renderer.buffer); - return result;+ return result; }
cbits/render.h view
@@ -9,55 +9,36 @@ #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 }
cbits/scanners.c view
@@ -3,21045 +3,27837 @@ #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];-- ptr[c->len] = '\0';- res = scanner(ptr + offset);- ptr[c->len] = lim;-- return res;-}----// Try to match a scheme including colon.-bufsize_t _scan_scheme(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;-- yych = *(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)-{- 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;-}--}--// Try to match email autolink after first <, returning num of chars matched.-bufsize_t _scan_autolink_email(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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)-{- 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;- }- }- }-}--}--// Try to match an HTML block tag start line, returning-// an integer code for the type of block (1-6, matching the spec).-// #7 is handled by a separate function, below.-bufsize_t _scan_html_block_start(const unsigned char *p)-{- const unsigned char *marker = NULL;--{- unsigned char yych;- yych = *(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)-{- 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;- }- }- }-}--}--// Try to match an HTML block end line of type 1-bufsize_t _scan_html_block_end_1(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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)-{- 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); }-}--}--// Try to match an HTML block end line of type 3-bufsize_t _scan_html_block_end_3(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- 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)-{- 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;-}--}--// Try to match an HTML block end line of type 5-bufsize_t _scan_html_block_end_5(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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)-{- 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;-}--}--// Try to match a link title (in single quotes, in double quotes, or-// in parentheses), returning number of chars matched. Allow one-// level of internal nesting (quotes within quotes).-bufsize_t _scan_link_title(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- 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)-{- 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;-}--}--// Match ATX header start.-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;-}--}--// 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)-{- 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;- }-}--}--// 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)-{- 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); }-}--}--// Scan an opening code fence.-bufsize_t _scan_open_code_fence(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- 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)-{- 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); }-}--}--// Scans an entity.-// Returns number of chars matched.-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;- }- }-}--}--// Returns positive value if a URL begins in a way that is potentially-// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.-bufsize_t _scan_dangerous_url(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- yych = *(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;-}--}-+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;++ return res;+}++// Try to match a scheme including colon.+bufsize_t _scan_scheme(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;++ yych = *(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) {+ 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;+ }+}++// Try to match email autolink after first <, returning num of chars matched.+bufsize_t _scan_autolink_email(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ static const unsigned char yybm[] = {+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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) {+ 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;+ }+ }+ }+ }+}++// Try to match an HTML block tag start line, returning+// an integer code for the type of block (1-6, matching the spec).+// #7 is handled by a separate function, below.+bufsize_t _scan_html_block_start(const unsigned char *p) {+ const unsigned char *marker = NULL;++ {+ unsigned char yych;+ yych = *(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 yy1440;+ case '/':+ goto yy1424;+ case '?':+ goto yy1441;+ 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 'I':+ case 'i':+ goto yy1432;+ case 'L':+ case 'l':+ goto yy1433;+ case 'M':+ case 'm':+ goto yy1434;+ case 'N':+ case 'n':+ goto yy1435;+ case 'O':+ case 'o':+ goto yy1436;+ case 'P':+ case 'p':+ goto yy1425;+ case 'S':+ case 's':+ goto yy1437;+ case 'T':+ case 't':+ goto yy1438;+ case 'U':+ case 'u':+ goto yy1439;+ 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 'I':+ case 'i':+ goto yy1432;+ case 'L':+ case 'l':+ goto yy1433;+ case 'M':+ case 'm':+ goto yy1434;+ case 'N':+ case 'n':+ goto yy1435;+ case 'O':+ case 'o':+ goto yy1436;+ case 'P':+ case 'p':+ goto yy1625;+ case 'S':+ case 's':+ goto yy1626;+ case 'T':+ case 't':+ goto yy1438;+ case 'U':+ case 'u':+ goto yy1439;+ default:+ goto yy1417;+ }+ yy1425:+ yych = *++p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ if (yych <= 0x1F)+ goto yy1417;+ goto yy1457;+ } else {+ if (yych == '/')+ goto yy1459;+ if (yych <= '=')+ goto yy1417;+ goto yy1457;+ }+ } else {+ if (yych <= 'R') {+ if (yych == 'A')+ goto yy1622;+ if (yych <= 'Q')+ goto yy1417;+ goto yy1621;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy1417;+ goto yy1622;+ } else {+ if (yych == 'r')+ goto yy1621;+ goto yy1417;+ }+ }+ }+ yy1426:+ yych = *++p;+ if (yych <= 'S') {+ if (yych <= 'D') {+ if (yych <= 'C')+ goto yy1417;+ goto yy1610;+ } else {+ if (yych <= 'Q')+ goto yy1417;+ if (yych <= 'R')+ goto yy1609;+ goto yy1608;+ }+ } else {+ if (yych <= 'q') {+ if (yych == 'd')+ goto yy1610;+ goto yy1417;+ } else {+ if (yych <= 'r')+ goto yy1609;+ if (yych <= 's')+ goto yy1608;+ goto yy1417;+ }+ }+ yy1427:+ yych = *++p;+ if (yych <= 'O') {+ if (yych <= 'K') {+ if (yych == 'A')+ goto yy1594;+ goto yy1417;+ } else {+ if (yych <= 'L')+ goto yy1593;+ if (yych <= 'N')+ goto yy1417;+ goto yy1592;+ }+ } else {+ if (yych <= 'k') {+ if (yych == 'a')+ goto yy1594;+ goto yy1417;+ } else {+ if (yych <= 'l')+ goto yy1593;+ if (yych == 'o')+ goto yy1592;+ goto yy1417;+ }+ }+ yy1428:+ yych = *++p;+ if (yych <= 'O') {+ if (yych <= 'D') {+ if (yych == 'A')+ goto yy1579;+ goto yy1417;+ } else {+ if (yych <= 'E')+ goto yy1578;+ if (yych <= 'N')+ goto yy1417;+ goto yy1577;+ }+ } else {+ if (yych <= 'd') {+ if (yych == 'a')+ goto yy1579;+ goto yy1417;+ } else {+ if (yych <= 'e')+ goto yy1578;+ if (yych == 'o')+ goto yy1577;+ goto yy1417;+ }+ }+ yy1429:+ yych = *++p;+ switch (yych) {+ case 'D':+ case 'L':+ case 'T':+ case 'd':+ case 'l':+ case 't':+ goto yy1456;+ case 'E':+ case 'e':+ goto yy1569;+ case 'I':+ case 'i':+ goto yy1568;+ default:+ goto yy1417;+ }+ yy1430:+ yych = *++p;+ if (yych <= 'R') {+ if (yych <= 'N') {+ if (yych == 'I')+ goto yy1544;+ goto yy1417;+ } else {+ if (yych <= 'O')+ goto yy1543;+ if (yych <= 'Q')+ goto yy1417;+ goto yy1542;+ }+ } else {+ if (yych <= 'n') {+ if (yych == 'i')+ goto yy1544;+ goto yy1417;+ } else {+ if (yych <= 'o')+ goto yy1543;+ if (yych == 'r')+ goto yy1542;+ goto yy1417;+ }+ }+ yy1431:+ yych = *++p;+ if (yych <= 'S') {+ if (yych <= 'D') {+ if (yych == '1')+ goto yy1456;+ goto yy1417;+ } else {+ if (yych <= 'E')+ goto yy1537;+ if (yych == 'R')+ goto yy1456;+ goto yy1417;+ }+ } else {+ if (yych <= 'q') {+ if (yych <= 'T')+ goto yy1536;+ if (yych == 'e')+ goto yy1537;+ goto yy1417;+ } else {+ if (yych <= 'r')+ goto yy1456;+ if (yych == 't')+ goto yy1536;+ goto yy1417;+ }+ }+ yy1432:+ yych = *++p;+ if (yych == 'F')+ goto yy1532;+ if (yych == 'f')+ goto yy1532;+ goto yy1417;+ yy1433:+ yych = *++p;+ if (yych <= 'I') {+ if (yych == 'E')+ goto yy1527;+ if (yych <= 'H')+ goto yy1417;+ goto yy1526;+ } else {+ if (yych <= 'e') {+ if (yych <= 'd')+ goto yy1417;+ goto yy1527;+ } else {+ if (yych == 'i')+ goto yy1526;+ goto yy1417;+ }+ }+ yy1434:+ yych = *++p;+ if (yych <= 'E') {+ if (yych == 'A')+ goto yy1518;+ if (yych <= 'D')+ goto yy1417;+ goto yy1517;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy1417;+ goto yy1518;+ } else {+ if (yych == 'e')+ goto yy1517;+ goto yy1417;+ }+ }+ yy1435:+ yych = *++p;+ if (yych <= 'O') {+ if (yych == 'A')+ goto yy1511;+ if (yych <= 'N')+ goto yy1417;+ goto yy1510;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy1417;+ goto yy1511;+ } else {+ if (yych == 'o')+ goto yy1510;+ goto yy1417;+ }+ }+ yy1436:+ yych = *++p;+ if (yych <= 'P') {+ if (yych == 'L')+ goto yy1456;+ if (yych <= 'O')+ goto yy1417;+ goto yy1502;+ } else {+ if (yych <= 'l') {+ if (yych <= 'k')+ goto yy1417;+ goto yy1456;+ } else {+ if (yych == 'p')+ goto yy1502;+ goto yy1417;+ }+ }+ yy1437:+ yych = *++p;+ if (yych <= 'U') {+ if (yych <= 'E') {+ if (yych == 'C')+ goto yy1479;+ if (yych <= 'D')+ goto yy1417;+ goto yy1482;+ } else {+ if (yych <= 'O') {+ if (yych <= 'N')+ goto yy1417;+ goto yy1481;+ } else {+ if (yych <= 'S')+ goto yy1417;+ if (yych <= 'T')+ goto yy1478;+ goto yy1480;+ }+ }+ } else {+ if (yych <= 'n') {+ if (yych <= 'c') {+ if (yych <= 'b')+ goto yy1417;+ goto yy1479;+ } else {+ if (yych == 'e')+ goto yy1482;+ goto yy1417;+ }+ } else {+ if (yych <= 's') {+ if (yych <= 'o')+ goto yy1481;+ goto yy1417;+ } else {+ if (yych <= 't')+ goto yy1478;+ if (yych <= 'u')+ goto yy1480;+ goto yy1417;+ }+ }+ }+ yy1438:+ yych = *++p;+ switch (yych) {+ case 'A':+ case 'a':+ goto yy1465;+ case 'B':+ case 'b':+ goto yy1464;+ case 'D':+ case 'd':+ goto yy1456;+ case 'F':+ case 'f':+ goto yy1463;+ case 'H':+ case 'h':+ goto yy1462;+ case 'I':+ case 'i':+ goto yy1461;+ case 'R':+ case 'r':+ goto yy1460;+ default:+ goto yy1417;+ }+ yy1439:+ yych = *++p;+ if (yych == 'L')+ goto yy1456;+ if (yych == 'l')+ goto yy1456;+ goto yy1417;+ yy1440:+ yych = *++p;+ if (yych <= '@') {+ if (yych == '-')+ goto yy1443;+ goto yy1417;+ } else {+ if (yych <= 'Z')+ goto yy1444;+ if (yych <= '[')+ goto yy1446;+ goto yy1417;+ }+ yy1441:+ ++p;+ { return 3; }+ yy1443:+ yych = *++p;+ if (yych == '-')+ goto yy1454;+ goto yy1417;+ yy1444:+ ++p;+ { return 4; }+ yy1446:+ yych = *++p;+ if (yych == 'C')+ goto yy1447;+ if (yych != 'c')+ goto yy1417;+ yy1447:+ yych = *++p;+ if (yych == 'D')+ goto yy1448;+ if (yych != 'd')+ goto yy1417;+ yy1448:+ yych = *++p;+ if (yych == 'A')+ goto yy1449;+ if (yych != 'a')+ goto yy1417;+ yy1449:+ yych = *++p;+ if (yych == 'T')+ goto yy1450;+ if (yych != 't')+ goto yy1417;+ yy1450:+ yych = *++p;+ if (yych == 'A')+ goto yy1451;+ if (yych != 'a')+ goto yy1417;+ yy1451:+ yych = *++p;+ if (yych != '[')+ goto yy1417;+ ++p;+ { return 5; }+ yy1454:+ ++p;+ { return 2; }+ yy1456:+ yych = *++p;+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ if (yych <= 0x1F)+ goto yy1417;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ } else {+ if (yych != '>')+ goto yy1417;+ }+ }+ yy1457:+ ++p;+ { return 6; }+ yy1459:+ yych = *++p;+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ yy1460:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= '@') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'A')+ goto yy1476;+ if (yych == 'a')+ goto yy1476;+ goto yy1417;+ }+ }+ yy1461:+ yych = *++p;+ if (yych == 'T')+ goto yy1474;+ if (yych == 't')+ goto yy1474;+ goto yy1417;+ yy1462:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'D') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'E')+ goto yy1472;+ if (yych == 'e')+ goto yy1472;+ goto yy1417;+ }+ }+ yy1463:+ yych = *++p;+ if (yych == 'O')+ goto yy1470;+ if (yych == 'o')+ goto yy1470;+ goto yy1417;+ yy1464:+ yych = *++p;+ if (yych == 'O')+ goto yy1468;+ if (yych == 'o')+ goto yy1468;+ goto yy1417;+ yy1465:+ yych = *++p;+ if (yych == 'B')+ goto yy1466;+ if (yych != 'b')+ goto yy1417;+ yy1466:+ yych = *++p;+ if (yych == 'L')+ goto yy1467;+ if (yych != 'l')+ goto yy1417;+ yy1467:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1468:+ yych = *++p;+ if (yych == 'D')+ goto yy1469;+ if (yych != 'd')+ goto yy1417;+ yy1469:+ yych = *++p;+ if (yych == 'Y')+ goto yy1456;+ if (yych == 'y')+ goto yy1456;+ goto yy1417;+ yy1470:+ yych = *++p;+ if (yych == 'O')+ goto yy1471;+ if (yych != 'o')+ goto yy1417;+ yy1471:+ yych = *++p;+ if (yych == 'T')+ goto yy1456;+ if (yych == 't')+ goto yy1456;+ goto yy1417;+ yy1472:+ yych = *++p;+ if (yych == 'A')+ goto yy1473;+ if (yych != 'a')+ goto yy1417;+ yy1473:+ yych = *++p;+ if (yych == 'D')+ goto yy1456;+ if (yych == 'd')+ goto yy1456;+ goto yy1417;+ yy1474:+ yych = *++p;+ if (yych == 'L')+ goto yy1475;+ if (yych != 'l')+ goto yy1417;+ yy1475:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1476:+ yych = *++p;+ if (yych == 'C')+ goto yy1477;+ if (yych != 'c')+ goto yy1417;+ yy1477:+ yych = *++p;+ if (yych == 'K')+ goto yy1456;+ if (yych == 'k')+ goto yy1456;+ goto yy1417;+ yy1478:+ yych = *++p;+ if (yych == 'Y')+ goto yy1500;+ if (yych == 'y')+ goto yy1500;+ goto yy1417;+ yy1479:+ yych = *++p;+ if (yych == 'R')+ goto yy1494;+ if (yych == 'r')+ goto yy1494;+ goto yy1417;+ yy1480:+ yych = *++p;+ if (yych == 'M')+ goto yy1490;+ if (yych == 'm')+ goto yy1490;+ goto yy1417;+ yy1481:+ yych = *++p;+ if (yych == 'U')+ goto yy1487;+ if (yych == 'u')+ goto yy1487;+ goto yy1417;+ yy1482:+ yych = *++p;+ if (yych == 'C')+ goto yy1483;+ if (yych != 'c')+ goto yy1417;+ yy1483:+ yych = *++p;+ if (yych == 'T')+ goto yy1484;+ if (yych != 't')+ goto yy1417;+ yy1484:+ yych = *++p;+ if (yych == 'I')+ goto yy1485;+ if (yych != 'i')+ goto yy1417;+ yy1485:+ yych = *++p;+ if (yych == 'O')+ goto yy1486;+ if (yych != 'o')+ goto yy1417;+ yy1486:+ yych = *++p;+ if (yych == 'N')+ goto yy1456;+ if (yych == 'n')+ goto yy1456;+ goto yy1417;+ yy1487:+ yych = *++p;+ if (yych == 'R')+ goto yy1488;+ if (yych != 'r')+ goto yy1417;+ yy1488:+ yych = *++p;+ if (yych == 'C')+ goto yy1489;+ if (yych != 'c')+ goto yy1417;+ yy1489:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1490:+ yych = *++p;+ if (yych == 'M')+ goto yy1491;+ if (yych != 'm')+ goto yy1417;+ yy1491:+ yych = *++p;+ if (yych == 'A')+ goto yy1492;+ if (yych != 'a')+ goto yy1417;+ yy1492:+ yych = *++p;+ if (yych == 'R')+ goto yy1493;+ if (yych != 'r')+ goto yy1417;+ yy1493:+ yych = *++p;+ if (yych == 'Y')+ goto yy1456;+ if (yych == 'y')+ goto yy1456;+ goto yy1417;+ yy1494:+ yych = *++p;+ if (yych == 'I')+ goto yy1495;+ if (yych != 'i')+ goto yy1417;+ yy1495:+ yych = *++p;+ if (yych == 'P')+ goto yy1496;+ if (yych != 'p')+ goto yy1417;+ yy1496:+ yych = *++p;+ if (yych == 'T')+ goto yy1497;+ if (yych != 't')+ goto yy1417;+ yy1497:+ yych = *++p;+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych >= 0x0E)+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1498;+ if (yych != '>')+ goto yy1417;+ }+ yy1498:+ ++p;+ { return 1; }+ yy1500:+ yych = *++p;+ if (yych == 'L')+ goto yy1501;+ if (yych != 'l')+ goto yy1417;+ yy1501:+ yych = *++p;+ if (yych == 'E')+ goto yy1497;+ if (yych == 'e')+ goto yy1497;+ goto yy1417;+ yy1502:+ yych = *++p;+ if (yych == 'T')+ goto yy1503;+ if (yych != 't')+ goto yy1417;+ yy1503:+ yych = *++p;+ if (yych <= 'I') {+ if (yych == 'G')+ goto yy1505;+ if (yych <= 'H')+ goto yy1417;+ } else {+ if (yych <= 'g') {+ if (yych <= 'f')+ goto yy1417;+ goto yy1505;+ } else {+ if (yych != 'i')+ goto yy1417;+ }+ }+ yych = *++p;+ if (yych == 'O')+ goto yy1509;+ if (yych == 'o')+ goto yy1509;+ goto yy1417;+ yy1505:+ yych = *++p;+ if (yych == 'R')+ goto yy1506;+ if (yych != 'r')+ goto yy1417;+ yy1506:+ yych = *++p;+ if (yych == 'O')+ goto yy1507;+ if (yych != 'o')+ goto yy1417;+ yy1507:+ yych = *++p;+ if (yych == 'U')+ goto yy1508;+ if (yych != 'u')+ goto yy1417;+ yy1508:+ yych = *++p;+ if (yych == 'P')+ goto yy1456;+ if (yych == 'p')+ goto yy1456;+ goto yy1417;+ yy1509:+ yych = *++p;+ if (yych == 'N')+ goto yy1456;+ if (yych == 'n')+ goto yy1456;+ goto yy1417;+ yy1510:+ yych = *++p;+ if (yych == 'F')+ goto yy1512;+ if (yych == 'f')+ goto yy1512;+ goto yy1417;+ yy1511:+ yych = *++p;+ if (yych == 'V')+ goto yy1456;+ if (yych == 'v')+ goto yy1456;+ goto yy1417;+ yy1512:+ yych = *++p;+ if (yych == 'R')+ goto yy1513;+ if (yych != 'r')+ goto yy1417;+ yy1513:+ yych = *++p;+ if (yych == 'A')+ goto yy1514;+ if (yych != 'a')+ goto yy1417;+ yy1514:+ yych = *++p;+ if (yych == 'M')+ goto yy1515;+ if (yych != 'm')+ goto yy1417;+ yy1515:+ yych = *++p;+ if (yych == 'E')+ goto yy1516;+ if (yych != 'e')+ goto yy1417;+ yy1516:+ yych = *++p;+ if (yych == 'S')+ goto yy1456;+ if (yych == 's')+ goto yy1456;+ goto yy1417;+ yy1517:+ yych = *++p;+ if (yych <= 'T') {+ if (yych == 'N')+ goto yy1520;+ if (yych <= 'S')+ goto yy1417;+ goto yy1521;+ } else {+ if (yych <= 'n') {+ if (yych <= 'm')+ goto yy1417;+ goto yy1520;+ } else {+ if (yych == 't')+ goto yy1521;+ goto yy1417;+ }+ }+ yy1518:+ yych = *++p;+ if (yych == 'I')+ goto yy1519;+ if (yych != 'i')+ goto yy1417;+ yy1519:+ yych = *++p;+ if (yych == 'N')+ goto yy1456;+ if (yych == 'n')+ goto yy1456;+ goto yy1417;+ yy1520:+ yych = *++p;+ if (yych == 'U')+ goto yy1522;+ if (yych == 'u')+ goto yy1522;+ goto yy1417;+ yy1521:+ yych = *++p;+ if (yych == 'A')+ goto yy1456;+ if (yych == 'a')+ goto yy1456;+ goto yy1417;+ yy1522:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'H') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'I')+ goto yy1523;+ if (yych != 'i')+ goto yy1417;+ }+ }+ yy1523:+ yych = *++p;+ if (yych == 'T')+ goto yy1524;+ if (yych != 't')+ goto yy1417;+ yy1524:+ yych = *++p;+ if (yych == 'E')+ goto yy1525;+ if (yych != 'e')+ goto yy1417;+ yy1525:+ yych = *++p;+ if (yych == 'M')+ goto yy1456;+ if (yych == 'm')+ goto yy1456;+ goto yy1417;+ yy1526:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'M') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'N')+ goto yy1531;+ if (yych == 'n')+ goto yy1531;+ goto yy1417;+ }+ }+ yy1527:+ yych = *++p;+ if (yych == 'G')+ goto yy1528;+ if (yych != 'g')+ goto yy1417;+ yy1528:+ yych = *++p;+ if (yych == 'E')+ goto yy1529;+ if (yych != 'e')+ goto yy1417;+ yy1529:+ yych = *++p;+ if (yych == 'N')+ goto yy1530;+ if (yych != 'n')+ goto yy1417;+ yy1530:+ yych = *++p;+ if (yych == 'D')+ goto yy1456;+ if (yych == 'd')+ goto yy1456;+ goto yy1417;+ yy1531:+ yych = *++p;+ if (yych == 'K')+ goto yy1456;+ if (yych == 'k')+ goto yy1456;+ goto yy1417;+ yy1532:+ yych = *++p;+ if (yych == 'R')+ goto yy1533;+ if (yych != 'r')+ goto yy1417;+ yy1533:+ yych = *++p;+ if (yych == 'A')+ goto yy1534;+ if (yych != 'a')+ goto yy1417;+ yy1534:+ yych = *++p;+ if (yych == 'M')+ goto yy1535;+ if (yych != 'm')+ goto yy1417;+ yy1535:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1536:+ yych = *++p;+ if (yych == 'M')+ goto yy1541;+ if (yych == 'm')+ goto yy1541;+ goto yy1417;+ yy1537:+ yych = *++p;+ if (yych == 'A')+ goto yy1538;+ if (yych != 'a')+ goto yy1417;+ yy1538:+ yych = *++p;+ if (yych == 'D')+ goto yy1539;+ if (yych != 'd')+ goto yy1417;+ yy1539:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'D') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'E')+ goto yy1540;+ if (yych != 'e')+ goto yy1417;+ }+ }+ yy1540:+ yych = *++p;+ if (yych == 'R')+ goto yy1456;+ if (yych == 'r')+ goto yy1456;+ goto yy1417;+ yy1541:+ yych = *++p;+ if (yych == 'L')+ goto yy1456;+ if (yych == 'l')+ goto yy1456;+ goto yy1417;+ yy1542:+ yych = *++p;+ if (yych == 'A')+ goto yy1563;+ if (yych == 'a')+ goto yy1563;+ goto yy1417;+ yy1543:+ yych = *++p;+ if (yych <= 'R') {+ if (yych == 'O')+ goto yy1559;+ if (yych <= 'Q')+ goto yy1417;+ goto yy1560;+ } else {+ if (yych <= 'o') {+ if (yych <= 'n')+ goto yy1417;+ goto yy1559;+ } else {+ if (yych == 'r')+ goto yy1560;+ goto yy1417;+ }+ }+ yy1544:+ yych = *++p;+ if (yych <= 'G') {+ if (yych == 'E')+ goto yy1545;+ if (yych <= 'F')+ goto yy1417;+ goto yy1546;+ } else {+ if (yych <= 'e') {+ if (yych <= 'd')+ goto yy1417;+ } else {+ if (yych == 'g')+ goto yy1546;+ goto yy1417;+ }+ }+ yy1545:+ yych = *++p;+ if (yych == 'L')+ goto yy1555;+ if (yych == 'l')+ goto yy1555;+ goto yy1417;+ yy1546:+ yych = *++p;+ if (yych <= 'U') {+ if (yych == 'C')+ goto yy1548;+ if (yych <= 'T')+ goto yy1417;+ } else {+ if (yych <= 'c') {+ if (yych <= 'b')+ goto yy1417;+ goto yy1548;+ } else {+ if (yych != 'u')+ goto yy1417;+ }+ }+ yych = *++p;+ if (yych == 'R')+ goto yy1554;+ if (yych == 'r')+ goto yy1554;+ goto yy1417;+ yy1548:+ yych = *++p;+ if (yych == 'A')+ goto yy1549;+ if (yych != 'a')+ goto yy1417;+ yy1549:+ yych = *++p;+ if (yych == 'P')+ goto yy1550;+ if (yych != 'p')+ goto yy1417;+ yy1550:+ yych = *++p;+ if (yych == 'T')+ goto yy1551;+ if (yych != 't')+ goto yy1417;+ yy1551:+ yych = *++p;+ if (yych == 'I')+ goto yy1552;+ if (yych != 'i')+ goto yy1417;+ yy1552:+ yych = *++p;+ if (yych == 'O')+ goto yy1553;+ if (yych != 'o')+ goto yy1417;+ yy1553:+ yych = *++p;+ if (yych == 'N')+ goto yy1456;+ if (yych == 'n')+ goto yy1456;+ goto yy1417;+ yy1554:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1555:+ yych = *++p;+ if (yych == 'D')+ goto yy1556;+ if (yych != 'd')+ goto yy1417;+ yy1556:+ yych = *++p;+ if (yych == 'S')+ goto yy1557;+ if (yych != 's')+ goto yy1417;+ yy1557:+ yych = *++p;+ if (yych == 'E')+ goto yy1558;+ if (yych != 'e')+ goto yy1417;+ yy1558:+ yych = *++p;+ if (yych == 'T')+ goto yy1456;+ if (yych == 't')+ goto yy1456;+ goto yy1417;+ yy1559:+ yych = *++p;+ if (yych == 'T')+ goto yy1561;+ if (yych == 't')+ goto yy1561;+ goto yy1417;+ yy1560:+ yych = *++p;+ if (yych == 'M')+ goto yy1456;+ if (yych == 'm')+ goto yy1456;+ goto yy1417;+ yy1561:+ yych = *++p;+ if (yych == 'E')+ goto yy1562;+ if (yych != 'e')+ goto yy1417;+ yy1562:+ yych = *++p;+ if (yych == 'R')+ goto yy1456;+ if (yych == 'r')+ goto yy1456;+ goto yy1417;+ yy1563:+ yych = *++p;+ if (yych == 'M')+ goto yy1564;+ if (yych != 'm')+ goto yy1417;+ yy1564:+ yych = *++p;+ if (yych == 'E')+ goto yy1565;+ if (yych != 'e')+ goto yy1417;+ yy1565:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'R') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'S')+ goto yy1566;+ if (yych != 's')+ goto yy1417;+ }+ }+ yy1566:+ yych = *++p;+ if (yych == 'E')+ goto yy1567;+ if (yych != 'e')+ goto yy1417;+ yy1567:+ yych = *++p;+ if (yych == 'T')+ goto yy1456;+ if (yych == 't')+ goto yy1456;+ goto yy1417;+ yy1568:+ yych = *++p;+ if (yych <= 'V') {+ if (yych <= 'Q') {+ if (yych == 'A')+ goto yy1574;+ goto yy1417;+ } else {+ if (yych <= 'R')+ goto yy1456;+ if (yych <= 'U')+ goto yy1417;+ goto yy1456;+ }+ } else {+ if (yych <= 'q') {+ if (yych == 'a')+ goto yy1574;+ goto yy1417;+ } else {+ if (yych <= 'r')+ goto yy1456;+ if (yych == 'v')+ goto yy1456;+ goto yy1417;+ }+ }+ yy1569:+ yych = *++p;+ if (yych == 'T')+ goto yy1570;+ if (yych != 't')+ goto yy1417;+ yy1570:+ yych = *++p;+ if (yych == 'A')+ goto yy1571;+ if (yych != 'a')+ goto yy1417;+ yy1571:+ yych = *++p;+ if (yych == 'I')+ goto yy1572;+ if (yych != 'i')+ goto yy1417;+ yy1572:+ yych = *++p;+ if (yych == 'L')+ goto yy1573;+ if (yych != 'l')+ goto yy1417;+ yy1573:+ yych = *++p;+ if (yych == 'S')+ goto yy1456;+ if (yych == 's')+ goto yy1456;+ goto yy1417;+ yy1574:+ yych = *++p;+ if (yych == 'L')+ goto yy1575;+ if (yych != 'l')+ goto yy1417;+ yy1575:+ yych = *++p;+ if (yych == 'O')+ goto yy1576;+ if (yych != 'o')+ goto yy1417;+ yy1576:+ yych = *++p;+ if (yych == 'G')+ goto yy1456;+ if (yych == 'g')+ goto yy1456;+ goto yy1417;+ yy1577:+ yych = *++p;+ if (yych == 'L')+ goto yy1587;+ if (yych == 'l')+ goto yy1587;+ goto yy1417;+ yy1578:+ yych = *++p;+ if (yych == 'N')+ goto yy1584;+ if (yych == 'n')+ goto yy1584;+ goto yy1417;+ yy1579:+ yych = *++p;+ if (yych == 'P')+ goto yy1580;+ if (yych != 'p')+ goto yy1417;+ yy1580:+ yych = *++p;+ if (yych == 'T')+ goto yy1581;+ if (yych != 't')+ goto yy1417;+ yy1581:+ yych = *++p;+ if (yych == 'I')+ goto yy1582;+ if (yych != 'i')+ goto yy1417;+ yy1582:+ yych = *++p;+ if (yych == 'O')+ goto yy1583;+ if (yych != 'o')+ goto yy1417;+ yy1583:+ yych = *++p;+ if (yych == 'N')+ goto yy1456;+ if (yych == 'n')+ goto yy1456;+ goto yy1417;+ yy1584:+ yych = *++p;+ if (yych == 'T')+ goto yy1585;+ if (yych != 't')+ goto yy1417;+ yy1585:+ yych = *++p;+ if (yych == 'E')+ goto yy1586;+ if (yych != 'e')+ goto yy1417;+ yy1586:+ yych = *++p;+ if (yych == 'R')+ goto yy1456;+ if (yych == 'r')+ goto yy1456;+ goto yy1417;+ yy1587:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'F') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'G')+ goto yy1588;+ if (yych != 'g')+ goto yy1417;+ }+ }+ yy1588:+ yych = *++p;+ if (yych == 'R')+ goto yy1589;+ if (yych != 'r')+ goto yy1417;+ yy1589:+ yych = *++p;+ if (yych == 'O')+ goto yy1590;+ if (yych != 'o')+ goto yy1417;+ yy1590:+ yych = *++p;+ if (yych == 'U')+ goto yy1591;+ if (yych != 'u')+ goto yy1417;+ yy1591:+ yych = *++p;+ if (yych == 'P')+ goto yy1456;+ if (yych == 'p')+ goto yy1456;+ goto yy1417;+ yy1592:+ yych = *++p;+ if (yych == 'D')+ goto yy1607;+ if (yych == 'd')+ goto yy1607;+ goto yy1417;+ yy1593:+ yych = *++p;+ if (yych == 'O')+ goto yy1600;+ if (yych == 'o')+ goto yy1600;+ goto yy1417;+ yy1594:+ yych = *++p;+ if (yych == 'S')+ goto yy1595;+ if (yych != 's')+ goto yy1417;+ yy1595:+ yych = *++p;+ if (yych == 'E')+ goto yy1596;+ if (yych != 'e')+ goto yy1417;+ yy1596:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= 'E') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'F')+ goto yy1597;+ if (yych != 'f')+ goto yy1417;+ }+ }+ yy1597:+ yych = *++p;+ if (yych == 'O')+ goto yy1598;+ if (yych != 'o')+ goto yy1417;+ yy1598:+ yych = *++p;+ if (yych == 'N')+ goto yy1599;+ if (yych != 'n')+ goto yy1417;+ yy1599:+ yych = *++p;+ if (yych == 'T')+ goto yy1456;+ if (yych == 't')+ goto yy1456;+ goto yy1417;+ yy1600:+ yych = *++p;+ if (yych == 'C')+ goto yy1601;+ if (yych != 'c')+ goto yy1417;+ yy1601:+ yych = *++p;+ if (yych == 'K')+ goto yy1602;+ if (yych != 'k')+ goto yy1417;+ yy1602:+ yych = *++p;+ if (yych == 'Q')+ goto yy1603;+ if (yych != 'q')+ goto yy1417;+ yy1603:+ yych = *++p;+ if (yych == 'U')+ goto yy1604;+ if (yych != 'u')+ goto yy1417;+ yy1604:+ yych = *++p;+ if (yych == 'O')+ goto yy1605;+ if (yych != 'o')+ goto yy1417;+ yy1605:+ yych = *++p;+ if (yych == 'T')+ goto yy1606;+ if (yych != 't')+ goto yy1417;+ yy1606:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1607:+ yych = *++p;+ if (yych == 'Y')+ goto yy1456;+ if (yych == 'y')+ goto yy1456;+ goto yy1417;+ yy1608:+ yych = *++p;+ if (yych == 'I')+ goto yy1619;+ if (yych == 'i')+ goto yy1619;+ goto yy1417;+ yy1609:+ yych = *++p;+ if (yych == 'T')+ goto yy1615;+ if (yych == 't')+ goto yy1615;+ goto yy1417;+ yy1610:+ yych = *++p;+ if (yych == 'D')+ goto yy1611;+ if (yych != 'd')+ goto yy1417;+ yy1611:+ yych = *++p;+ if (yych == 'R')+ goto yy1612;+ if (yych != 'r')+ goto yy1417;+ yy1612:+ yych = *++p;+ if (yych == 'E')+ goto yy1613;+ if (yych != 'e')+ goto yy1417;+ yy1613:+ yych = *++p;+ if (yych == 'S')+ goto yy1614;+ if (yych != 's')+ goto yy1417;+ yy1614:+ yych = *++p;+ if (yych == 'S')+ goto yy1456;+ if (yych == 's')+ goto yy1456;+ goto yy1417;+ yy1615:+ yych = *++p;+ if (yych == 'I')+ goto yy1616;+ if (yych != 'i')+ goto yy1417;+ yy1616:+ yych = *++p;+ if (yych == 'C')+ goto yy1617;+ if (yych != 'c')+ goto yy1417;+ yy1617:+ yych = *++p;+ if (yych == 'L')+ goto yy1618;+ if (yych != 'l')+ goto yy1417;+ yy1618:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1619:+ yych = *++p;+ if (yych == 'D')+ goto yy1620;+ if (yych != 'd')+ goto yy1417;+ yy1620:+ yych = *++p;+ if (yych == 'E')+ goto yy1456;+ if (yych == 'e')+ goto yy1456;+ goto yy1417;+ yy1621:+ yych = *++p;+ if (yych == 'E')+ goto yy1497;+ if (yych == 'e')+ goto yy1497;+ goto yy1417;+ yy1622:+ yych = *++p;+ if (yych == 'R')+ goto yy1623;+ if (yych != 'r')+ goto yy1417;+ yy1623:+ yych = *++p;+ if (yych == 'A')+ goto yy1624;+ if (yych != 'a')+ goto yy1417;+ yy1624:+ yych = *++p;+ if (yych == 'M')+ goto yy1456;+ if (yych == 'm')+ goto yy1456;+ goto yy1417;+ yy1625:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy1417;+ if (yych <= '\r')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= ' ')+ goto yy1457;+ if (yych <= '.')+ goto yy1417;+ goto yy1459;+ }+ } else {+ if (yych <= '@') {+ if (yych == '>')+ goto yy1457;+ goto yy1417;+ } else {+ if (yych <= 'A')+ goto yy1622;+ if (yych == 'a')+ goto yy1622;+ goto yy1417;+ }+ }+ yy1626:+ ++p;+ if ((yych = *p) <= 'U') {+ if (yych <= 'N') {+ if (yych == 'E')+ goto yy1482;+ goto yy1417;+ } else {+ if (yych <= 'O')+ goto yy1481;+ if (yych <= 'T')+ goto yy1417;+ goto yy1480;+ }+ } else {+ if (yych <= 'n') {+ if (yych == 'e')+ goto yy1482;+ goto yy1417;+ } else {+ if (yych <= 'o')+ goto yy1481;+ if (yych == 'u')+ goto yy1480;+ 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) {+ 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 yy1631;+ } else {+ if (yych <= '<')+ goto yy1630;+ if (yych <= 0x7F)+ goto yy1631;+ if (yych >= 0xC2)+ goto yy1632;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1634;+ if (yych == 0xED)+ goto yy1639;+ goto yy1635;+ } else {+ if (yych <= 0xF0)+ goto yy1636;+ if (yych <= 0xF3)+ goto yy1637;+ if (yych <= 0xF4)+ goto yy1638;+ }+ }+ yy1629 : { return 0; }+ yy1630:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '@') {+ if (yych == '/')+ goto yy1642;+ goto yy1629;+ } else {+ if (yych <= 'Z')+ goto yy1640;+ if (yych <= '`')+ goto yy1629;+ if (yych <= 'z')+ goto yy1640;+ goto yy1629;+ }+ yy1631:+ yych = *++p;+ goto yy1629;+ yy1632:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1631;+ yy1633:+ p = marker;+ if (yyaccept == 0) {+ goto yy1629;+ } else {+ goto yy1651;+ }+ yy1634:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1632;+ goto yy1633;+ yy1635:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1632;+ goto yy1633;+ yy1636:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1635;+ goto yy1633;+ yy1637:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1635;+ goto yy1633;+ yy1638:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x8F)+ goto yy1635;+ goto yy1633;+ yy1639:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x9F)+ goto yy1632;+ goto yy1633;+ yy1640:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 1) {+ goto yy1640;+ }+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1633;+ if (yych <= '\r')+ goto yy1653;+ if (yych <= 0x1F)+ goto yy1633;+ goto yy1653;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy1633;+ goto yy1655;+ } else {+ if (yych == '>')+ goto yy1647;+ goto yy1633;+ }+ }+ yy1642:+ yych = *++p;+ if (yych <= '@')+ goto yy1633;+ if (yych <= 'Z')+ goto yy1643;+ if (yych <= '`')+ goto yy1633;+ if (yych >= '{')+ goto yy1633;+ yy1643:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 2) {+ goto yy1645;+ }+ if (yych <= '=') {+ if (yych <= '-') {+ if (yych <= ',')+ goto yy1633;+ goto yy1643;+ } else {+ if (yych <= '/')+ goto yy1633;+ if (yych <= '9')+ goto yy1643;+ goto yy1633;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy1647;+ if (yych <= '@')+ goto yy1633;+ goto yy1643;+ } else {+ if (yych <= '`')+ goto yy1633;+ if (yych <= 'z')+ goto yy1643;+ goto yy1633;+ }+ }+ yy1645:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 2) {+ goto yy1645;+ }+ if (yych != '>')+ goto yy1633;+ yy1647:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 4) {+ goto yy1647;+ }+ if (yych <= 0x08)+ goto yy1633;+ if (yych <= '\n')+ goto yy1649;+ if (yych <= '\v')+ goto yy1633;+ if (yych <= '\r')+ goto yy1652;+ goto yy1633;+ yy1649:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 4) {+ goto yy1647;+ }+ if (yych <= 0x08)+ goto yy1651;+ if (yych <= '\n')+ goto yy1649;+ if (yych <= '\v')+ goto yy1651;+ if (yych <= '\r')+ goto yy1652;+ yy1651 : { return 7; }+ yy1652:+ yych = *++p;+ goto yy1651;+ yy1653:+ ++p;+ yych = *p;+ if (yych <= ':') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1633;+ if (yych <= '\r')+ goto yy1653;+ if (yych <= 0x1F)+ goto yy1633;+ goto yy1653;+ } else {+ if (yych == '/')+ goto yy1655;+ if (yych <= '9')+ goto yy1633;+ goto yy1656;+ }+ } else {+ if (yych <= 'Z') {+ if (yych == '>')+ goto yy1647;+ if (yych <= '@')+ goto yy1633;+ goto yy1656;+ } else {+ if (yych <= '_') {+ if (yych <= '^')+ goto yy1633;+ goto yy1656;+ } else {+ if (yych <= '`')+ goto yy1633;+ if (yych <= 'z')+ goto yy1656;+ goto yy1633;+ }+ }+ }+ yy1655:+ yych = *++p;+ if (yych == '>')+ goto yy1647;+ goto yy1633;+ yy1656:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 16) {+ goto yy1656;+ }+ if (yych <= ',') {+ if (yych <= '\r') {+ if (yych <= 0x08)+ goto yy1633;+ } else {+ if (yych != ' ')+ goto yy1633;+ }+ } else {+ if (yych <= '<') {+ if (yych <= '/')+ goto yy1655;+ goto yy1633;+ } else {+ if (yych <= '=')+ goto yy1660;+ if (yych <= '>')+ goto yy1647;+ goto yy1633;+ }+ }+ yy1658:+ ++p;+ yych = *p;+ if (yych <= '<') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1633;+ if (yych <= '\r')+ goto yy1658;+ if (yych <= 0x1F)+ goto yy1633;+ goto yy1658;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy1633;+ goto yy1655;+ } else {+ if (yych == ':')+ goto yy1656;+ goto yy1633;+ }+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '=')+ goto yy1660;+ if (yych <= '>')+ goto yy1647;+ if (yych <= '@')+ goto yy1633;+ goto yy1656;+ } else {+ if (yych <= '_') {+ if (yych <= '^')+ goto yy1633;+ goto yy1656;+ } else {+ if (yych <= '`')+ goto yy1633;+ if (yych <= 'z')+ goto yy1656;+ goto yy1633;+ }+ }+ }+ yy1660:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy1662;+ }+ if (yych <= 0xE0) {+ if (yych <= '"') {+ if (yych <= 0x00)+ goto yy1633;+ if (yych >= '!')+ goto yy1673;+ } else {+ if (yych <= '\'')+ goto yy1671;+ if (yych <= 0xC1)+ goto yy1633;+ if (yych <= 0xDF)+ goto yy1664;+ goto yy1665;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy1662;+ }+ if (yych <= 0xDF) {+ if (yych <= '\'') {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= ' ')+ goto yy1696;+ if (yych <= '"')+ goto yy1673;+ goto yy1671;+ } else {+ if (yych == '>')+ goto yy1647;+ if (yych <= 0xC1)+ goto yy1633;+ goto yy1664;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1665;+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ yy1662:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy1662;+ }+ if (yych <= 0xE0) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= ' ')+ goto yy1690;+ goto yy1633;+ } else {+ if (yych <= '>')+ goto yy1647;+ if (yych <= 0xC1)+ goto yy1633;+ if (yych >= 0xE0)+ goto yy1665;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ yy1664:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1662;+ goto yy1633;+ yy1665:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1664;+ goto yy1633;+ yy1666:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1664;+ goto yy1633;+ yy1667:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1666;+ goto yy1633;+ yy1668:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1666;+ goto yy1633;+ yy1669:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x8F)+ goto yy1666;+ goto yy1633;+ yy1670:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x9F)+ goto yy1664;+ goto yy1633;+ yy1671:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1671;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= '\'')+ goto yy1682;+ goto yy1633;+ } else {+ if (yych <= 0xDF)+ goto yy1683;+ if (yych <= 0xE0)+ goto yy1684;+ goto yy1685;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1689;+ if (yych <= 0xEF)+ goto yy1685;+ goto yy1686;+ } else {+ if (yych <= 0xF3)+ goto yy1687;+ if (yych <= 0xF4)+ goto yy1688;+ goto yy1633;+ }+ }+ yy1673:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1673;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= '"')+ goto yy1682;+ goto yy1633;+ } else {+ if (yych <= 0xDF)+ goto yy1675;+ if (yych <= 0xE0)+ goto yy1676;+ goto yy1677;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1681;+ if (yych <= 0xEF)+ goto yy1677;+ goto yy1678;+ } else {+ if (yych <= 0xF3)+ goto yy1679;+ if (yych <= 0xF4)+ goto yy1680;+ goto yy1633;+ }+ }+ yy1675:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1673;+ goto yy1633;+ yy1676:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1675;+ goto yy1633;+ yy1677:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1675;+ goto yy1633;+ yy1678:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1677;+ goto yy1633;+ yy1679:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1677;+ goto yy1633;+ yy1680:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x8F)+ goto yy1677;+ goto yy1633;+ yy1681:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x9F)+ goto yy1675;+ goto yy1633;+ yy1682:+ ++p;+ yych = *p;+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy1633;+ if (yych <= '\r')+ goto yy1653;+ if (yych <= 0x1F)+ goto yy1633;+ goto yy1653;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy1633;+ goto yy1655;+ } else {+ if (yych == '>')+ goto yy1647;+ goto yy1633;+ }+ }+ yy1683:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1671;+ goto yy1633;+ yy1684:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1683;+ goto yy1633;+ yy1685:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1683;+ goto yy1633;+ yy1686:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1685;+ goto yy1633;+ yy1687:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0xBF)+ goto yy1685;+ goto yy1633;+ yy1688:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x8F)+ goto yy1685;+ goto yy1633;+ yy1689:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1633;+ if (yych <= 0x9F)+ goto yy1683;+ goto yy1633;+ yy1690:+ ++p;+ yych = *p;+ if (yych <= '@') {+ if (yych <= '"') {+ if (yych <= '\r') {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= 0x08)+ goto yy1662;+ goto yy1690;+ } else {+ if (yych == ' ')+ goto yy1690;+ if (yych <= '!')+ goto yy1662;+ goto yy1633;+ }+ } else {+ if (yych <= ':') {+ if (yych == '\'')+ goto yy1633;+ if (yych <= '9')+ goto yy1662;+ } else {+ if (yych <= ';')+ goto yy1662;+ if (yych <= '=')+ goto yy1633;+ if (yych <= '>')+ goto yy1647;+ goto yy1662;+ }+ }+ } else {+ if (yych <= 0xDF) {+ if (yych <= '`') {+ if (yych <= 'Z')+ goto yy1692;+ if (yych <= '^')+ goto yy1662;+ if (yych >= '`')+ goto yy1633;+ } else {+ if (yych <= 'z')+ goto yy1692;+ if (yych <= 0x7F)+ goto yy1662;+ if (yych <= 0xC1)+ goto yy1633;+ goto yy1664;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1665;+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ }+ yy1692:+ ++p;+ yych = *p;+ if (yych <= '>') {+ if (yych <= '&') {+ if (yych <= 0x1F) {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= 0x08)+ goto yy1662;+ if (yych >= 0x0E)+ goto yy1662;+ } else {+ if (yych <= ' ')+ goto yy1694;+ if (yych == '"')+ goto yy1633;+ goto yy1662;+ }+ } else {+ if (yych <= '/') {+ if (yych <= '\'')+ goto yy1633;+ if (yych <= ',')+ goto yy1662;+ if (yych <= '.')+ goto yy1692;+ goto yy1662;+ } else {+ if (yych <= ';') {+ if (yych <= ':')+ goto yy1692;+ goto yy1662;+ } else {+ if (yych <= '<')+ goto yy1633;+ if (yych <= '=')+ goto yy1660;+ goto yy1647;+ }+ }+ }+ } else {+ if (yych <= 0xC1) {+ if (yych <= '_') {+ if (yych <= '@')+ goto yy1662;+ if (yych <= 'Z')+ goto yy1692;+ if (yych <= '^')+ goto yy1662;+ goto yy1692;+ } else {+ if (yych <= '`')+ goto yy1633;+ if (yych <= 'z')+ goto yy1692;+ if (yych <= 0x7F)+ goto yy1662;+ goto yy1633;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1664;+ if (yych <= 0xE0)+ goto yy1665;+ if (yych <= 0xEC)+ goto yy1666;+ goto yy1670;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1666;+ goto yy1667;+ } else {+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ }+ }+ yy1694:+ ++p;+ yych = *p;+ if (yych <= '@') {+ if (yych <= '&') {+ if (yych <= 0x1F) {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= 0x08)+ goto yy1662;+ if (yych <= '\r')+ goto yy1694;+ goto yy1662;+ } else {+ if (yych <= ' ')+ goto yy1694;+ if (yych == '"')+ goto yy1633;+ goto yy1662;+ }+ } else {+ if (yych <= ';') {+ if (yych <= '\'')+ goto yy1633;+ if (yych == ':')+ goto yy1692;+ goto yy1662;+ } else {+ if (yych <= '<')+ goto yy1633;+ if (yych <= '=')+ goto yy1660;+ if (yych <= '>')+ goto yy1647;+ goto yy1662;+ }+ }+ } else {+ if (yych <= 0xDF) {+ if (yych <= '`') {+ if (yych <= 'Z')+ goto yy1692;+ if (yych <= '^')+ goto yy1662;+ if (yych <= '_')+ goto yy1692;+ goto yy1633;+ } else {+ if (yych <= 'z')+ goto yy1692;+ if (yych <= 0x7F)+ goto yy1662;+ if (yych <= 0xC1)+ goto yy1633;+ goto yy1664;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1665;+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ }+ yy1696:+ ++p;+ yych = *p;+ if (yych <= '@') {+ if (yych <= '"') {+ if (yych <= '\r') {+ if (yych <= 0x00)+ goto yy1633;+ if (yych <= 0x08)+ goto yy1662;+ goto yy1696;+ } else {+ if (yych == ' ')+ goto yy1696;+ if (yych <= '!')+ goto yy1662;+ goto yy1673;+ }+ } else {+ if (yych <= ':') {+ if (yych == '\'')+ goto yy1671;+ if (yych <= '9')+ goto yy1662;+ goto yy1692;+ } else {+ if (yych <= ';')+ goto yy1662;+ if (yych <= '=')+ goto yy1633;+ if (yych <= '>')+ goto yy1647;+ goto yy1662;+ }+ }+ } else {+ if (yych <= 0xDF) {+ if (yych <= '`') {+ if (yych <= 'Z')+ goto yy1692;+ if (yych <= '^')+ goto yy1662;+ if (yych <= '_')+ goto yy1692;+ goto yy1633;+ } else {+ if (yych <= 'z')+ goto yy1692;+ if (yych <= 0x7F)+ goto yy1662;+ if (yych <= 0xC1)+ goto yy1633;+ goto yy1664;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1665;+ if (yych == 0xED)+ goto yy1670;+ goto yy1666;+ } else {+ if (yych <= 0xF0)+ goto yy1667;+ if (yych <= 0xF3)+ goto yy1668;+ if (yych <= 0xF4)+ goto yy1669;+ goto yy1633;+ }+ }+ }+ }+}++// Try to match an HTML block end line of type 1+bufsize_t _scan_html_block_end_1(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ static const unsigned char yybm[] = {+ 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 yy1701;+ } else {+ if (yych <= '<')+ goto yy1702;+ if (yych <= 0x7F)+ goto yy1701;+ if (yych >= 0xC2)+ goto yy1703;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1705;+ if (yych == 0xED)+ goto yy1710;+ goto yy1706;+ } else {+ if (yych <= 0xF0)+ goto yy1707;+ if (yych <= 0xF3)+ goto yy1708;+ if (yych <= 0xF4)+ goto yy1709;+ }+ }+ yy1700 : { return 0; }+ yy1701:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1700;+ goto yy1715;+ } else {+ if (yych <= 0xC1)+ goto yy1700;+ if (yych <= 0xF4)+ goto yy1715;+ goto yy1700;+ }+ yy1702:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '/') {+ if (yych == '\n')+ goto yy1700;+ if (yych <= '.')+ goto yy1715;+ goto yy1711;+ } else {+ if (yych <= 0x7F)+ goto yy1715;+ if (yych <= 0xC1)+ goto yy1700;+ if (yych <= 0xF4)+ goto yy1715;+ goto yy1700;+ }+ yy1703:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1701;+ yy1704:+ p = marker;+ if (yyaccept == 0) {+ goto yy1700;+ } else {+ goto yy1732;+ }+ yy1705:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1703;+ goto yy1704;+ yy1706:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1703;+ goto yy1704;+ yy1707:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1706;+ goto yy1704;+ yy1708:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1706;+ goto yy1704;+ yy1709:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0x8F)+ goto yy1706;+ goto yy1704;+ yy1710:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0x9F)+ goto yy1703;+ goto yy1704;+ yy1711:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 's') {+ if (yych <= 'R') {+ if (yych <= '\n') {+ if (yych <= '\t')+ goto yy1714;+ goto yy1704;+ } else {+ if (yych == 'P')+ goto yy1723;+ goto yy1714;+ }+ } else {+ if (yych <= 'o') {+ if (yych <= 'S')+ goto yy1724;+ goto yy1714;+ } else {+ if (yych <= 'p')+ goto yy1723;+ if (yych <= 'r')+ goto yy1714;+ goto yy1724;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ } else {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ goto yy1718;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1722;+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1712:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xDF) {+ if (yych <= '.') {+ if (yych == '\n')+ goto yy1704;+ } else {+ if (yych <= '/')+ goto yy1711;+ if (yych <= 0x7F)+ goto yy1714;+ if (yych <= 0xC1)+ goto yy1704;+ goto yy1716;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1717;+ if (yych == 0xED)+ goto yy1722;+ goto yy1718;+ } else {+ if (yych <= 0xF0)+ goto yy1719;+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ yy1714:+ ++p;+ yych = *p;+ yy1715:+ if (yybm[0 + yych] & 128) {+ goto yy1714;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1704;+ if (yych <= '<')+ goto yy1712;+ goto yy1704;+ } else {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ goto yy1718;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1722;+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ yy1716:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1714;+ goto yy1704;+ yy1717:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1716;+ goto yy1704;+ yy1718:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1716;+ goto yy1704;+ yy1719:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1718;+ goto yy1704;+ yy1720:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0xBF)+ goto yy1718;+ goto yy1704;+ yy1721:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0x8F)+ goto yy1718;+ goto yy1704;+ yy1722:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1704;+ if (yych <= 0x9F)+ goto yy1716;+ goto yy1704;+ yy1723:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'R') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'Q')+ goto yy1714;+ goto yy1735;+ } else {+ if (yych == 'r')+ goto yy1735;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1724:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 't') {+ if (yych <= 'S') {+ if (yych <= '\n') {+ if (yych <= '\t')+ goto yy1714;+ goto yy1704;+ } else {+ if (yych == 'C')+ goto yy1726;+ goto yy1714;+ }+ } else {+ if (yych <= 'b') {+ if (yych >= 'U')+ goto yy1714;+ } else {+ if (yych <= 'c')+ goto yy1726;+ if (yych <= 's')+ goto yy1714;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ } else {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ goto yy1718;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1722;+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'Y') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'X')+ goto yy1714;+ goto yy1733;+ } else {+ if (yych == 'y')+ goto yy1733;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1726:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'R') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'Q')+ goto yy1714;+ } else {+ if (yych == 'r')+ goto yy1727;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1727:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'I') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'H')+ goto yy1714;+ } else {+ if (yych == 'i')+ goto yy1728;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1728:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'P') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'O')+ goto yy1714;+ } else {+ if (yych == 'p')+ goto yy1729;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1729:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'T') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'S')+ goto yy1714;+ } else {+ if (yych == 't')+ goto yy1730;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1730:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych == '\n')+ goto yy1704;+ goto yy1714;+ } else {+ if (yych <= '>')+ goto yy1731;+ if (yych <= 0x7F)+ goto yy1714;+ if (yych <= 0xC1)+ goto yy1704;+ goto yy1716;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1717;+ if (yych == 0xED)+ goto yy1722;+ goto yy1718;+ } else {+ if (yych <= 0xF0)+ goto yy1719;+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ yy1731:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1714;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1732;+ if (yych <= '<')+ goto yy1712;+ } else {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ goto yy1718;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1722;+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ }+ }+ yy1732 : { return (bufsize_t)(p - start); }+ yy1733:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'L') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'K')+ goto yy1714;+ } else {+ if (yych == 'l')+ goto yy1734;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1734:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'E') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'D')+ goto yy1714;+ goto yy1730;+ } else {+ if (yych == 'e')+ goto yy1730;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ yy1735:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1712;+ }+ if (yych <= 0xC1) {+ if (yych <= 'E') {+ if (yych == '\n')+ goto yy1704;+ if (yych <= 'D')+ goto yy1714;+ goto yy1730;+ } else {+ if (yych == 'e')+ goto yy1730;+ if (yych <= 0x7F)+ goto yy1714;+ goto yy1704;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1716;+ if (yych <= 0xE0)+ goto yy1717;+ if (yych <= 0xEC)+ goto yy1718;+ goto yy1722;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1718;+ goto yy1719;+ } else {+ if (yych <= 0xF3)+ goto yy1720;+ if (yych <= 0xF4)+ goto yy1721;+ goto yy1704;+ }+ }+ }+ }+}++// Try to match an HTML block end line of type 2+bufsize_t _scan_html_block_end_2(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ static const unsigned char yybm[] = {+ 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 yy1739;+ } else {+ if (yych <= '-')+ goto yy1740;+ if (yych <= 0x7F)+ goto yy1739;+ if (yych >= 0xC2)+ goto yy1741;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1743;+ if (yych == 0xED)+ goto yy1748;+ goto yy1744;+ } else {+ if (yych <= 0xF0)+ goto yy1745;+ if (yych <= 0xF3)+ goto yy1746;+ if (yych <= 0xF4)+ goto yy1747;+ }+ }+ yy1738 : { return 0; }+ yy1739:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1738;+ goto yy1752;+ } else {+ if (yych <= 0xC1)+ goto yy1738;+ if (yych <= 0xF4)+ goto yy1752;+ goto yy1738;+ }+ yy1740:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy1749;+ }+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1738;+ goto yy1752;+ } else {+ if (yych <= 0xC1)+ goto yy1738;+ if (yych <= 0xF4)+ goto yy1752;+ goto yy1738;+ }+ yy1741:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1739;+ yy1742:+ p = marker;+ if (yyaccept == 0) {+ goto yy1738;+ } else {+ goto yy1762;+ }+ yy1743:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1741;+ goto yy1742;+ yy1744:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1741;+ goto yy1742;+ yy1745:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1744;+ goto yy1742;+ yy1746:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1744;+ goto yy1742;+ yy1747:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0x8F)+ goto yy1744;+ goto yy1742;+ yy1748:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0x9F)+ goto yy1741;+ goto yy1742;+ yy1749:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1749;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych == '\n')+ goto yy1742;+ } else {+ if (yych <= '>')+ goto yy1761;+ if (yych <= 0x7F)+ goto yy1751;+ if (yych <= 0xC1)+ goto yy1742;+ goto yy1753;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1754;+ if (yych == 0xED)+ goto yy1759;+ goto yy1755;+ } else {+ if (yych <= 0xF0)+ goto yy1756;+ if (yych <= 0xF3)+ goto yy1757;+ if (yych <= 0xF4)+ goto yy1758;+ goto yy1742;+ }+ }+ yy1751:+ ++p;+ yych = *p;+ yy1752:+ if (yybm[0 + yych] & 128) {+ goto yy1751;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1742;+ if (yych <= '-')+ goto yy1760;+ goto yy1742;+ } else {+ if (yych <= 0xDF)+ goto yy1753;+ if (yych <= 0xE0)+ goto yy1754;+ goto yy1755;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1759;+ if (yych <= 0xEF)+ goto yy1755;+ goto yy1756;+ } else {+ if (yych <= 0xF3)+ goto yy1757;+ if (yych <= 0xF4)+ goto yy1758;+ goto yy1742;+ }+ }+ yy1753:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1751;+ goto yy1742;+ yy1754:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1753;+ goto yy1742;+ yy1755:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1753;+ goto yy1742;+ yy1756:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1755;+ goto yy1742;+ yy1757:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0xBF)+ goto yy1755;+ goto yy1742;+ yy1758:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0x8F)+ goto yy1755;+ goto yy1742;+ yy1759:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1742;+ if (yych <= 0x9F)+ goto yy1753;+ goto yy1742;+ yy1760:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1751;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1742;+ if (yych <= '-')+ goto yy1749;+ goto yy1742;+ } else {+ if (yych <= 0xDF)+ goto yy1753;+ if (yych <= 0xE0)+ goto yy1754;+ goto yy1755;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1759;+ if (yych <= 0xEF)+ goto yy1755;+ goto yy1756;+ } else {+ if (yych <= 0xF3)+ goto yy1757;+ if (yych <= 0xF4)+ goto yy1758;+ goto yy1742;+ }+ }+ yy1761:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1751;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1762;+ if (yych <= '-')+ goto yy1760;+ } else {+ if (yych <= 0xDF)+ goto yy1753;+ if (yych <= 0xE0)+ goto yy1754;+ goto yy1755;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1759;+ if (yych <= 0xEF)+ goto yy1755;+ goto yy1756;+ } else {+ if (yych <= 0xF3)+ goto yy1757;+ if (yych <= 0xF4)+ goto yy1758;+ }+ }+ yy1762 : { 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) {+ 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 yy1766;+ } else {+ if (yych <= '?')+ goto yy1767;+ if (yych <= 0x7F)+ goto yy1766;+ if (yych >= 0xC2)+ goto yy1768;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1770;+ if (yych == 0xED)+ goto yy1775;+ goto yy1771;+ } else {+ if (yych <= 0xF0)+ goto yy1772;+ if (yych <= 0xF3)+ goto yy1773;+ if (yych <= 0xF4)+ goto yy1774;+ }+ }+ yy1765 : { return 0; }+ yy1766:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1765;+ goto yy1781;+ } else {+ if (yych <= 0xC1)+ goto yy1765;+ if (yych <= 0xF4)+ goto yy1781;+ goto yy1765;+ }+ yy1767:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '>') {+ if (yych == '\n')+ goto yy1765;+ if (yych <= '=')+ goto yy1781;+ goto yy1776;+ } else {+ if (yych <= 0x7F)+ goto yy1781;+ if (yych <= 0xC1)+ goto yy1765;+ if (yych <= 0xF4)+ goto yy1781;+ goto yy1765;+ }+ yy1768:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1766;+ yy1769:+ p = marker;+ if (yyaccept == 0) {+ goto yy1765;+ } else {+ goto yy1777;+ }+ yy1770:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1768;+ goto yy1769;+ yy1771:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1768;+ goto yy1769;+ yy1772:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1771;+ goto yy1769;+ yy1773:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1771;+ goto yy1769;+ yy1774:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0x8F)+ goto yy1771;+ goto yy1769;+ yy1775:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0x9F)+ goto yy1768;+ goto yy1769;+ yy1776:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1780;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1777;+ if (yych <= '?')+ goto yy1778;+ } else {+ if (yych <= 0xDF)+ goto yy1782;+ if (yych <= 0xE0)+ goto yy1783;+ goto yy1784;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1788;+ if (yych <= 0xEF)+ goto yy1784;+ goto yy1785;+ } else {+ if (yych <= 0xF3)+ goto yy1786;+ if (yych <= 0xF4)+ goto yy1787;+ }+ }+ yy1777 : { return (bufsize_t)(p - start); }+ yy1778:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1778;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych == '\n')+ goto yy1769;+ } else {+ if (yych <= '>')+ goto yy1776;+ if (yych <= 0x7F)+ goto yy1780;+ if (yych <= 0xC1)+ goto yy1769;+ goto yy1782;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1783;+ if (yych == 0xED)+ goto yy1788;+ goto yy1784;+ } else {+ if (yych <= 0xF0)+ goto yy1785;+ if (yych <= 0xF3)+ goto yy1786;+ if (yych <= 0xF4)+ goto yy1787;+ goto yy1769;+ }+ }+ yy1780:+ ++p;+ yych = *p;+ yy1781:+ if (yybm[0 + yych] & 128) {+ goto yy1780;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1769;+ if (yych <= '?')+ goto yy1778;+ goto yy1769;+ } else {+ if (yych <= 0xDF)+ goto yy1782;+ if (yych <= 0xE0)+ goto yy1783;+ goto yy1784;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1788;+ if (yych <= 0xEF)+ goto yy1784;+ goto yy1785;+ } else {+ if (yych <= 0xF3)+ goto yy1786;+ if (yych <= 0xF4)+ goto yy1787;+ goto yy1769;+ }+ }+ yy1782:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1780;+ goto yy1769;+ yy1783:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1782;+ goto yy1769;+ yy1784:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1782;+ goto yy1769;+ yy1785:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1784;+ goto yy1769;+ yy1786:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0xBF)+ goto yy1784;+ goto yy1769;+ yy1787:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0x8F)+ goto yy1784;+ goto yy1769;+ yy1788:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1769;+ if (yych <= 0x9F)+ goto yy1782;+ goto yy1769;+ }+}++// Try to match an HTML block end line of type 4+bufsize_t _scan_html_block_end_4(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ static const unsigned char yybm[] = {+ 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 yy1792;+ } else {+ if (yych <= '>')+ goto yy1793;+ if (yych <= 0x7F)+ goto yy1792;+ if (yych >= 0xC2)+ goto yy1795;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1797;+ if (yych == 0xED)+ goto yy1802;+ goto yy1798;+ } else {+ if (yych <= 0xF0)+ goto yy1799;+ if (yych <= 0xF3)+ goto yy1800;+ if (yych <= 0xF4)+ goto yy1801;+ }+ }+ yy1791 : { return 0; }+ yy1792:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1791;+ goto yy1806;+ } else {+ if (yych <= 0xC1)+ goto yy1791;+ if (yych <= 0xF4)+ goto yy1806;+ goto yy1791;+ }+ yy1793:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych != '\n')+ goto yy1806;+ } else {+ if (yych <= 0xC1)+ goto yy1794;+ if (yych <= 0xF4)+ goto yy1806;+ }+ yy1794 : { return (bufsize_t)(p - start); }+ yy1795:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1792;+ yy1796:+ p = marker;+ if (yyaccept == 0) {+ goto yy1791;+ } else {+ goto yy1794;+ }+ yy1797:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1795;+ goto yy1796;+ yy1798:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1795;+ goto yy1796;+ yy1799:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1798;+ goto yy1796;+ yy1800:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1798;+ goto yy1796;+ yy1801:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0x8F)+ goto yy1798;+ goto yy1796;+ yy1802:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0x9F)+ goto yy1795;+ goto yy1796;+ yy1803:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1805;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1794;+ if (yych <= '>')+ goto yy1803;+ goto yy1794;+ } else {+ if (yych <= 0xDF)+ goto yy1807;+ if (yych <= 0xE0)+ goto yy1808;+ goto yy1809;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1813;+ if (yych <= 0xEF)+ goto yy1809;+ goto yy1810;+ } else {+ if (yych <= 0xF3)+ goto yy1811;+ if (yych <= 0xF4)+ goto yy1812;+ goto yy1794;+ }+ }+ yy1805:+ ++p;+ yych = *p;+ yy1806:+ if (yybm[0 + yych] & 128) {+ goto yy1805;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1796;+ if (yych <= '>')+ goto yy1803;+ goto yy1796;+ } else {+ if (yych <= 0xDF)+ goto yy1807;+ if (yych <= 0xE0)+ goto yy1808;+ goto yy1809;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1813;+ if (yych <= 0xEF)+ goto yy1809;+ goto yy1810;+ } else {+ if (yych <= 0xF3)+ goto yy1811;+ if (yych <= 0xF4)+ goto yy1812;+ goto yy1796;+ }+ }+ yy1807:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1805;+ goto yy1796;+ yy1808:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1807;+ goto yy1796;+ yy1809:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1807;+ goto yy1796;+ yy1810:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1809;+ goto yy1796;+ yy1811:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0xBF)+ goto yy1809;+ goto yy1796;+ yy1812:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0x8F)+ goto yy1809;+ goto yy1796;+ yy1813:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1796;+ if (yych <= 0x9F)+ goto yy1807;+ goto yy1796;+ }+}++// Try to match an HTML block end line of type 5+bufsize_t _scan_html_block_end_5(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ static const unsigned char yybm[] = {+ 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 yy1817;+ } else {+ if (yych <= ']')+ goto yy1818;+ if (yych <= 0x7F)+ goto yy1817;+ if (yych >= 0xC2)+ goto yy1819;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1821;+ if (yych == 0xED)+ goto yy1826;+ goto yy1822;+ } else {+ if (yych <= 0xF0)+ goto yy1823;+ if (yych <= 0xF3)+ goto yy1824;+ if (yych <= 0xF4)+ goto yy1825;+ }+ }+ yy1816 : { return 0; }+ yy1817:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1816;+ goto yy1830;+ } else {+ if (yych <= 0xC1)+ goto yy1816;+ if (yych <= 0xF4)+ goto yy1830;+ goto yy1816;+ }+ yy1818:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy1827;+ }+ if (yych <= 0x7F) {+ if (yych == '\n')+ goto yy1816;+ goto yy1830;+ } else {+ if (yych <= 0xC1)+ goto yy1816;+ if (yych <= 0xF4)+ goto yy1830;+ goto yy1816;+ }+ yy1819:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1817;+ yy1820:+ p = marker;+ if (yyaccept == 0) {+ goto yy1816;+ } else {+ goto yy1840;+ }+ yy1821:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1819;+ goto yy1820;+ yy1822:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1819;+ goto yy1820;+ yy1823:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1822;+ goto yy1820;+ yy1824:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1822;+ goto yy1820;+ yy1825:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0x8F)+ goto yy1822;+ goto yy1820;+ yy1826:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0x9F)+ goto yy1819;+ goto yy1820;+ yy1827:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1827;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych == '\n')+ goto yy1820;+ } else {+ if (yych <= '>')+ goto yy1839;+ if (yych <= 0x7F)+ goto yy1829;+ if (yych <= 0xC1)+ goto yy1820;+ goto yy1831;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1832;+ if (yych == 0xED)+ goto yy1837;+ goto yy1833;+ } else {+ if (yych <= 0xF0)+ goto yy1834;+ if (yych <= 0xF3)+ goto yy1835;+ if (yych <= 0xF4)+ goto yy1836;+ goto yy1820;+ }+ }+ yy1829:+ ++p;+ yych = *p;+ yy1830:+ if (yybm[0 + yych] & 128) {+ goto yy1829;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1820;+ if (yych <= ']')+ goto yy1838;+ goto yy1820;+ } else {+ if (yych <= 0xDF)+ goto yy1831;+ if (yych <= 0xE0)+ goto yy1832;+ goto yy1833;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1837;+ if (yych <= 0xEF)+ goto yy1833;+ goto yy1834;+ } else {+ if (yych <= 0xF3)+ goto yy1835;+ if (yych <= 0xF4)+ goto yy1836;+ goto yy1820;+ }+ }+ yy1831:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1829;+ goto yy1820;+ yy1832:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1831;+ goto yy1820;+ yy1833:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1831;+ goto yy1820;+ yy1834:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1833;+ goto yy1820;+ yy1835:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0xBF)+ goto yy1833;+ goto yy1820;+ yy1836:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0x8F)+ goto yy1833;+ goto yy1820;+ yy1837:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1820;+ if (yych <= 0x9F)+ goto yy1831;+ goto yy1820;+ yy1838:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1829;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1820;+ if (yych <= ']')+ goto yy1827;+ goto yy1820;+ } else {+ if (yych <= 0xDF)+ goto yy1831;+ if (yych <= 0xE0)+ goto yy1832;+ goto yy1833;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1837;+ if (yych <= 0xEF)+ goto yy1833;+ goto yy1834;+ } else {+ if (yych <= 0xF3)+ goto yy1835;+ if (yych <= 0xF4)+ goto yy1836;+ goto yy1820;+ }+ }+ yy1839:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1829;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy1840;+ if (yych <= ']')+ goto yy1838;+ } else {+ if (yych <= 0xDF)+ goto yy1831;+ if (yych <= 0xE0)+ goto yy1832;+ goto yy1833;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1837;+ if (yych <= 0xEF)+ goto yy1833;+ goto yy1834;+ } else {+ if (yych <= 0xF3)+ goto yy1835;+ if (yych <= 0xF4)+ goto yy1836;+ }+ }+ yy1840 : { 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) {+ 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 yy1844;+ goto yy1860;+ } else {+ if (yych <= '\r')+ goto yy1846;+ if (yych <= 0x1F)+ goto yy1860;+ goto yy1846;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1848;+ if (yych <= '(')+ goto yy1859;+ goto yy1860;+ } else {+ if (yych == '<')+ goto yy1847;+ goto yy1848;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1857;+ if (yych <= 0x7F)+ goto yy1848;+ } else {+ if (yych <= 0xDF)+ goto yy1849;+ if (yych <= 0xE0)+ goto yy1851;+ goto yy1852;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1856;+ if (yych <= 0xEF)+ goto yy1852;+ goto yy1853;+ } else {+ if (yych <= 0xF3)+ goto yy1854;+ if (yych <= 0xF4)+ goto yy1855;+ }+ }+ }+ yy1843 : { return (bufsize_t)(p - start); }+ yy1844:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ yy1845:+ if (yybm[0 + yych] & 8) {+ goto yy1844;+ }+ if (yych <= 0x7F) {+ if (yych <= ')') {+ if (yych <= 0x1F)+ goto yy1843;+ if (yych <= '\'')+ goto yy1872;+ if (yych <= '(')+ goto yy1863;+ goto yy1843;+ } else {+ if (yych <= '<') {+ if (yych <= ';')+ goto yy1872;+ goto yy1907;+ } else {+ if (yych == '\\')+ goto yy1881;+ goto yy1872;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF) {+ if (yych <= 0xC1)+ goto yy1843;+ goto yy1874;+ } else {+ if (yych <= 0xE0)+ goto yy1875;+ if (yych <= 0xEC)+ goto yy1876;+ goto yy1880;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1876;+ goto yy1877;+ } else {+ if (yych <= 0xF3)+ goto yy1878;+ if (yych <= 0xF4)+ goto yy1879;+ goto yy1843;+ }+ }+ }+ yy1846:+ yyaccept = 0;+ yych = *(marker = ++p);+ goto yy1845;+ yy1847:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy1907;+ }+ if (yych <= '>') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1843;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1843;+ if (yych <= '\f')+ goto yy1921;+ goto yy1843;+ }+ } else {+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1921;+ goto yy1919;+ } else {+ if (yych <= ')')+ goto yy1921;+ if (yych <= '<')+ goto yy1872;+ goto yy1909;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1918;+ goto yy1843;+ } else {+ if (yych <= 0xDF)+ goto yy1911;+ if (yych <= 0xE0)+ goto yy1912;+ goto yy1913;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1917;+ if (yych <= 0xEF)+ goto yy1913;+ goto yy1914;+ } else {+ if (yych <= 0xF3)+ goto yy1915;+ if (yych <= 0xF4)+ goto yy1916;+ goto yy1843;+ }+ }+ }+ yy1848:+ yyaccept = 0;+ yych = *(marker = ++p);+ goto yy1873;+ yy1849:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1848;+ yy1850:+ p = marker;+ if (yyaccept <= 1) {+ if (yyaccept == 0) {+ goto yy1843;+ } else {+ goto yy1858;+ }+ } else {+ goto yy1910;+ }+ yy1851:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1849;+ goto yy1850;+ yy1852:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1849;+ goto yy1850;+ yy1853:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1852;+ goto yy1850;+ yy1854:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1852;+ goto yy1850;+ yy1855:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1852;+ goto yy1850;+ yy1856:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1849;+ goto yy1850;+ yy1857:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy1872;+ } else {+ if (yych <= 0xDF)+ goto yy1882;+ if (yych <= 0xE0)+ goto yy1883;+ goto yy1884;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1888;+ if (yych <= 0xEF)+ goto yy1884;+ goto yy1885;+ } else {+ if (yych <= 0xF3)+ goto yy1886;+ if (yych <= 0xF4)+ goto yy1887;+ }+ }+ yy1858 : { return 0; }+ yy1859:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1858;+ if (yych <= '\'')+ goto yy1864;+ goto yy1858;+ } else {+ if (yych <= 0x7F)+ goto yy1864;+ if (yych <= 0xC1)+ goto yy1858;+ if (yych <= 0xF4)+ goto yy1864;+ goto yy1858;+ }+ yy1860:+ yych = *++p;+ goto yy1858;+ yy1861:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 16) {+ goto yy1861;+ }+ if (yych <= 0xE0) {+ if (yych <= ')') {+ if (yych <= ' ')+ goto yy1850;+ if (yych >= ')')+ goto yy1889;+ } else {+ if (yych <= 0x7F)+ goto yy1863;+ if (yych <= 0xC1)+ goto yy1850;+ if (yych <= 0xDF)+ goto yy1865;+ goto yy1866;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1871;+ goto yy1867;+ } else {+ if (yych <= 0xF0)+ goto yy1868;+ if (yych <= 0xF3)+ goto yy1869;+ if (yych <= 0xF4)+ goto yy1870;+ goto yy1850;+ }+ }+ yy1863:+ ++p;+ yych = *p;+ yy1864:+ if (yybm[0 + yych] & 32) {+ goto yy1863;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= '(')+ goto yy1850;+ if (yych <= ')')+ goto yy1872;+ goto yy1861;+ } else {+ if (yych <= 0xC1)+ goto yy1850;+ if (yych >= 0xE0)+ goto yy1866;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1871;+ goto yy1867;+ } else {+ if (yych <= 0xF0)+ goto yy1868;+ if (yych <= 0xF3)+ goto yy1869;+ if (yych <= 0xF4)+ goto yy1870;+ goto yy1850;+ }+ }+ yy1865:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1863;+ goto yy1850;+ yy1866:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1865;+ goto yy1850;+ yy1867:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1865;+ goto yy1850;+ yy1868:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1867;+ goto yy1850;+ yy1869:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1867;+ goto yy1850;+ yy1870:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1867;+ goto yy1850;+ yy1871:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1865;+ goto yy1850;+ yy1872:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ yy1873:+ if (yych <= 0xC1) {+ if (yych <= ')') {+ if (yych <= ' ')+ goto yy1843;+ if (yych <= '\'')+ goto yy1872;+ if (yych <= '(')+ goto yy1863;+ goto yy1843;+ } else {+ if (yych == '\\')+ goto yy1881;+ if (yych <= 0x7F)+ goto yy1872;+ goto yy1843;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1874;+ if (yych <= 0xE0)+ goto yy1875;+ if (yych <= 0xEC)+ goto yy1876;+ goto yy1880;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1876;+ goto yy1877;+ } else {+ if (yych <= 0xF3)+ goto yy1878;+ if (yych <= 0xF4)+ goto yy1879;+ goto yy1843;+ }+ }+ }+ yy1874:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1872;+ goto yy1850;+ yy1875:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1874;+ goto yy1850;+ yy1876:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1874;+ goto yy1850;+ yy1877:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1876;+ goto yy1850;+ yy1878:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1876;+ goto yy1850;+ yy1879:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1876;+ goto yy1850;+ yy1880:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1874;+ goto yy1850;+ yy1881:+ ++p;+ yych = *p;+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy1872;+ goto yy1850;+ } else {+ if (yych <= 0xDF)+ goto yy1882;+ if (yych <= 0xE0)+ goto yy1883;+ goto yy1884;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1888;+ if (yych <= 0xEF)+ goto yy1884;+ goto yy1885;+ } else {+ if (yych <= 0xF3)+ goto yy1886;+ if (yych <= 0xF4)+ goto yy1887;+ goto yy1850;+ }+ }+ yy1882:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1872;+ goto yy1850;+ yy1883:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1882;+ goto yy1850;+ yy1884:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1882;+ goto yy1850;+ yy1885:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1884;+ goto yy1850;+ yy1886:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1884;+ goto yy1850;+ yy1887:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1884;+ goto yy1850;+ yy1888:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1882;+ goto yy1850;+ yy1889:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ yy1890:+ if (yych <= 0xC1) {+ if (yych <= ')') {+ if (yych <= ' ')+ goto yy1843;+ if (yych <= '\'')+ goto yy1889;+ if (yych <= '(')+ goto yy1863;+ goto yy1872;+ } else {+ if (yych == '\\')+ goto yy1898;+ if (yych <= 0x7F)+ goto yy1889;+ goto yy1843;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1891;+ if (yych <= 0xE0)+ goto yy1892;+ if (yych <= 0xEC)+ goto yy1893;+ goto yy1897;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1893;+ goto yy1894;+ } else {+ if (yych <= 0xF3)+ goto yy1895;+ if (yych <= 0xF4)+ goto yy1896;+ goto yy1843;+ }+ }+ }+ yy1891:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1889;+ goto yy1850;+ yy1892:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1891;+ goto yy1850;+ yy1893:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1891;+ goto yy1850;+ yy1894:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1893;+ goto yy1850;+ yy1895:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1893;+ goto yy1850;+ yy1896:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1893;+ goto yy1850;+ yy1897:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1891;+ goto yy1850;+ yy1898:+ ++p;+ yych = *p;+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= ' ')+ goto yy1872;+ if (yych <= '[')+ goto yy1889;+ } else {+ if (yych <= 0x7F)+ goto yy1889;+ if (yych <= 0xC1)+ goto yy1850;+ if (yych <= 0xDF)+ goto yy1900;+ goto yy1901;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1906;+ goto yy1902;+ } else {+ if (yych <= 0xF0)+ goto yy1903;+ if (yych <= 0xF3)+ goto yy1904;+ if (yych <= 0xF4)+ goto yy1905;+ goto yy1850;+ }+ }+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ if (yych <= 0xDF) {+ if (yych <= '[') {+ if (yych <= ' ')+ goto yy1843;+ if (yych == '(')+ goto yy1863;+ goto yy1889;+ } else {+ if (yych <= '\\')+ goto yy1898;+ if (yych <= 0x7F)+ goto yy1889;+ if (yych <= 0xC1)+ goto yy1843;+ goto yy1891;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy1892;+ if (yych == 0xED)+ goto yy1897;+ goto yy1893;+ } else {+ if (yych <= 0xF0)+ goto yy1894;+ if (yych <= 0xF3)+ goto yy1895;+ if (yych <= 0xF4)+ goto yy1896;+ goto yy1843;+ }+ }+ yy1900:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1889;+ goto yy1850;+ yy1901:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1900;+ goto yy1850;+ yy1902:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1900;+ goto yy1850;+ yy1903:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1902;+ goto yy1850;+ yy1904:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1902;+ goto yy1850;+ yy1905:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1902;+ goto yy1850;+ yy1906:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1900;+ goto yy1850;+ yy1907:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1907;+ }+ if (yych <= '>') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1843;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1843;+ if (yych <= '\f')+ goto yy1921;+ goto yy1843;+ }+ } else {+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1921;+ goto yy1919;+ } else {+ if (yych <= ')')+ goto yy1921;+ if (yych <= '<')+ goto yy1872;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1918;+ goto yy1843;+ } else {+ if (yych <= 0xDF)+ goto yy1911;+ if (yych <= 0xE0)+ goto yy1912;+ goto yy1913;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1917;+ if (yych <= 0xEF)+ goto yy1913;+ goto yy1914;+ } else {+ if (yych <= 0xF3)+ goto yy1915;+ if (yych <= 0xF4)+ goto yy1916;+ goto yy1843;+ }+ }+ }+ yy1909:+ yyaccept = 2;+ yych = *(marker = ++p);+ if (yych <= ')') {+ if (yych <= ' ')+ goto yy1910;+ if (yych <= '(')+ goto yy1873;+ } else {+ if (yych <= 0x7F)+ goto yy1873;+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xF4)+ goto yy1873;+ }+ yy1910 : { return (bufsize_t)(p - start); }+ yy1911:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1907;+ goto yy1850;+ yy1912:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1911;+ goto yy1850;+ yy1913:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1911;+ goto yy1850;+ yy1914:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1913;+ goto yy1850;+ yy1915:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1913;+ goto yy1850;+ yy1916:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1913;+ goto yy1850;+ yy1917:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1911;+ goto yy1850;+ yy1918:+ ++p;+ yych = *p;+ if (yych <= 0x7F) {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1872;+ goto yy1907;+ } else {+ if (yych <= '\n')+ goto yy1872;+ if (yych <= '\f')+ goto yy1907;+ goto yy1872;+ }+ } else {+ if (yych <= '>') {+ if (yych <= '=')+ goto yy1907;+ goto yy1965;+ } else {+ if (yych == '\\')+ goto yy1966;+ goto yy1907;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF) {+ if (yych <= 0xC1)+ goto yy1850;+ goto yy1967;+ } else {+ if (yych <= 0xE0)+ goto yy1968;+ if (yych <= 0xEC)+ goto yy1969;+ goto yy1973;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1969;+ goto yy1970;+ } else {+ if (yych <= 0xF3)+ goto yy1971;+ if (yych <= 0xF4)+ goto yy1972;+ goto yy1850;+ }+ }+ }+ yy1919:+ ++p;+ yych = *p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy1850;+ if (yych >= '\n')+ goto yy1850;+ } else {+ if (yych == '\r')+ goto yy1850;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1919;+ if (yych >= ')')+ goto yy1907;+ } else {+ if (yych == '<')+ goto yy1863;+ if (yych <= '=')+ goto yy1919;+ goto yy1934;+ }+ }+ } else {+ if (yych <= 0xE0) {+ if (yych <= 0x7F) {+ if (yych == '\\')+ goto yy1935;+ goto yy1919;+ } else {+ if (yych <= 0xC1)+ goto yy1850;+ if (yych <= 0xDF)+ goto yy1937;+ goto yy1938;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1943;+ goto yy1939;+ } else {+ if (yych <= 0xF0)+ goto yy1940;+ if (yych <= 0xF3)+ goto yy1941;+ if (yych <= 0xF4)+ goto yy1942;+ goto yy1850;+ }+ }+ }+ yy1921:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1921;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= '<')+ goto yy1850;+ if (yych >= '?')+ goto yy1924;+ } else {+ if (yych <= 0xC1)+ goto yy1850;+ if (yych <= 0xDF)+ goto yy1926;+ goto yy1927;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1932;+ goto yy1928;+ } else {+ if (yych <= 0xF0)+ goto yy1929;+ if (yych <= 0xF3)+ goto yy1930;+ if (yych <= 0xF4)+ goto yy1931;+ goto yy1850;+ }+ }+ yy1923:+ yych = *++p;+ goto yy1910;+ yy1924:+ ++p;+ yych = *p;+ if (yych <= 0x7F) {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1850;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1850;+ if (yych <= '\f')+ goto yy1921;+ goto yy1850;+ }+ } else {+ if (yych <= '>') {+ if (yych <= '=')+ goto yy1921;+ goto yy1933;+ } else {+ if (yych == '\\')+ goto yy1924;+ goto yy1921;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF) {+ if (yych <= 0xC1)+ goto yy1850;+ } else {+ if (yych <= 0xE0)+ goto yy1927;+ if (yych <= 0xEC)+ goto yy1928;+ goto yy1932;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1928;+ goto yy1929;+ } else {+ if (yych <= 0xF3)+ goto yy1930;+ if (yych <= 0xF4)+ goto yy1931;+ goto yy1850;+ }+ }+ }+ yy1926:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1921;+ goto yy1850;+ yy1927:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1926;+ goto yy1850;+ yy1928:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1926;+ goto yy1850;+ yy1929:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1928;+ goto yy1850;+ yy1930:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1928;+ goto yy1850;+ yy1931:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1928;+ goto yy1850;+ yy1932:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1926;+ goto yy1850;+ yy1933:+ yyaccept = 2;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy1921;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= '<')+ goto yy1910;+ if (yych <= '>')+ goto yy1923;+ goto yy1924;+ } else {+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xDF)+ goto yy1926;+ goto yy1927;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1932;+ goto yy1928;+ } else {+ if (yych <= 0xF0)+ goto yy1929;+ if (yych <= 0xF3)+ goto yy1930;+ if (yych <= 0xF4)+ goto yy1931;+ goto yy1910;+ }+ }+ yy1934:+ yyaccept = 2;+ yych = *(marker = ++p);+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1910;+ if (yych <= '\'')+ goto yy1864;+ goto yy1910;+ } else {+ if (yych <= 0x7F)+ goto yy1864;+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xF4)+ goto yy1864;+ goto yy1910;+ }+ yy1935:+ ++p;+ yych = *p;+ if (yych <= '[') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1850;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1850;+ if (yych <= '\f')+ goto yy1921;+ goto yy1850;+ }+ } else {+ if (yych <= ')') {+ if (yych <= ' ')+ goto yy1921;+ if (yych <= '(')+ goto yy1919;+ goto yy1944;+ } else {+ if (yych == '>')+ goto yy1946;+ goto yy1919;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1935;+ if (yych <= 0x7F)+ goto yy1919;+ goto yy1850;+ } else {+ if (yych <= 0xDF)+ goto yy1937;+ if (yych <= 0xE0)+ goto yy1938;+ goto yy1939;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1943;+ if (yych <= 0xEF)+ goto yy1939;+ goto yy1940;+ } else {+ if (yych <= 0xF3)+ goto yy1941;+ if (yych <= 0xF4)+ goto yy1942;+ goto yy1850;+ }+ }+ }+ yy1937:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1919;+ goto yy1850;+ yy1938:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1937;+ goto yy1850;+ yy1939:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1937;+ goto yy1850;+ yy1940:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1939;+ goto yy1850;+ yy1941:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1939;+ goto yy1850;+ yy1942:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1939;+ goto yy1850;+ yy1943:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1937;+ goto yy1850;+ yy1944:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy1843;+ if (yych <= '\t')+ goto yy1921;+ goto yy1843;+ } else {+ if (yych == '\r')+ goto yy1843;+ goto yy1921;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1944;+ if (yych <= '(')+ goto yy1919;+ goto yy1907;+ } else {+ if (yych == '<')+ goto yy1889;+ if (yych <= '=')+ goto yy1944;+ goto yy1947;+ }+ }+ } else {+ if (yych <= 0xE0) {+ if (yych <= 0x7F) {+ if (yych == '\\')+ goto yy1948;+ goto yy1944;+ } else {+ if (yych <= 0xC1)+ goto yy1843;+ if (yych <= 0xDF)+ goto yy1949;+ goto yy1950;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1955;+ goto yy1951;+ } else {+ if (yych <= 0xF0)+ goto yy1952;+ if (yych <= 0xF3)+ goto yy1953;+ if (yych <= 0xF4)+ goto yy1954;+ goto yy1843;+ }+ }+ }+ yy1946:+ yyaccept = 2;+ marker = ++p;+ yych = *p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy1910;+ if (yych <= '\t')+ goto yy1921;+ goto yy1910;+ } else {+ if (yych == '\r')+ goto yy1910;+ goto yy1921;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1919;+ if (yych <= '(')+ goto yy1921;+ goto yy1907;+ } else {+ if (yych == '<')+ goto yy1863;+ if (yych <= '=')+ goto yy1919;+ goto yy1934;+ }+ }+ } else {+ if (yych <= 0xE0) {+ if (yych <= 0x7F) {+ if (yych == '\\')+ goto yy1935;+ goto yy1919;+ } else {+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xDF)+ goto yy1937;+ goto yy1938;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1943;+ goto yy1939;+ } else {+ if (yych <= 0xF0)+ goto yy1940;+ if (yych <= 0xF3)+ goto yy1941;+ if (yych <= 0xF4)+ goto yy1942;+ goto yy1910;+ }+ }+ }+ yy1947:+ yyaccept = 2;+ yych = *(marker = ++p);+ if (yych <= ' ')+ goto yy1910;+ if (yych <= 0x7F)+ goto yy1890;+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xF4)+ goto yy1890;+ goto yy1910;+ yy1948:+ ++p;+ yych = *p;+ if (yych <= '\\') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1872;+ goto yy1907;+ } else {+ if (yych <= '\n')+ goto yy1872;+ if (yych <= '\f')+ goto yy1907;+ goto yy1872;+ }+ } else {+ if (yych <= '=') {+ if (yych <= ' ')+ goto yy1907;+ goto yy1944;+ } else {+ if (yych <= '>')+ goto yy1956;+ if (yych <= '[')+ goto yy1944;+ goto yy1957;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy1944;+ goto yy1850;+ } else {+ if (yych <= 0xDF)+ goto yy1958;+ if (yych <= 0xE0)+ goto yy1959;+ goto yy1960;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1964;+ if (yych <= 0xEF)+ goto yy1960;+ goto yy1961;+ } else {+ if (yych <= 0xF3)+ goto yy1962;+ if (yych <= 0xF4)+ goto yy1963;+ goto yy1850;+ }+ }+ }+ yy1949:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1944;+ goto yy1850;+ yy1950:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1949;+ goto yy1850;+ yy1951:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1949;+ goto yy1850;+ yy1952:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1951;+ goto yy1850;+ yy1953:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1951;+ goto yy1850;+ yy1954:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1951;+ goto yy1850;+ yy1955:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1949;+ goto yy1850;+ yy1956:+ yyaccept = 2;+ marker = ++p;+ yych = *p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy1910;+ if (yych <= '\t')+ goto yy1921;+ goto yy1910;+ } else {+ if (yych == '\r')+ goto yy1910;+ goto yy1921;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1944;+ if (yych <= '(')+ goto yy1919;+ goto yy1907;+ } else {+ if (yych == '<')+ goto yy1889;+ if (yych <= '=')+ goto yy1944;+ goto yy1947;+ }+ }+ } else {+ if (yych <= 0xE0) {+ if (yych <= 0x7F) {+ if (yych == '\\')+ goto yy1948;+ goto yy1944;+ } else {+ if (yych <= 0xC1)+ goto yy1910;+ if (yych <= 0xDF)+ goto yy1949;+ goto yy1950;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1955;+ goto yy1951;+ } else {+ if (yych <= 0xF0)+ goto yy1952;+ if (yych <= 0xF3)+ goto yy1953;+ if (yych <= 0xF4)+ goto yy1954;+ goto yy1910;+ }+ }+ }+ yy1957:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ if (yych <= '[') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1843;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1843;+ if (yych <= '\f')+ goto yy1921;+ goto yy1843;+ }+ } else {+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1921;+ if (yych <= '\'')+ goto yy1944;+ goto yy1919;+ } else {+ if (yych == '>')+ goto yy1956;+ goto yy1944;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1948;+ if (yych <= 0x7F)+ goto yy1944;+ goto yy1843;+ } else {+ if (yych <= 0xDF)+ goto yy1949;+ if (yych <= 0xE0)+ goto yy1950;+ goto yy1951;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1955;+ if (yych <= 0xEF)+ goto yy1951;+ goto yy1952;+ } else {+ if (yych <= 0xF3)+ goto yy1953;+ if (yych <= 0xF4)+ goto yy1954;+ goto yy1843;+ }+ }+ }+ yy1958:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1944;+ goto yy1850;+ yy1959:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1958;+ goto yy1850;+ yy1960:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1958;+ goto yy1850;+ yy1961:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1960;+ goto yy1850;+ yy1962:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1960;+ goto yy1850;+ yy1963:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1960;+ goto yy1850;+ yy1964:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1958;+ goto yy1850;+ yy1965:+ yyaccept = 2;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy1907;+ }+ if (yych <= '>') {+ if (yych <= '\r') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy1910;+ goto yy1921;+ } else {+ if (yych <= '\n')+ goto yy1910;+ if (yych <= '\f')+ goto yy1921;+ goto yy1910;+ }+ } else {+ if (yych <= '(') {+ if (yych <= ' ')+ goto yy1921;+ goto yy1919;+ } else {+ if (yych <= ')')+ goto yy1921;+ if (yych <= '<')+ goto yy1872;+ goto yy1909;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1918;+ goto yy1910;+ } else {+ if (yych <= 0xDF)+ goto yy1911;+ if (yych <= 0xE0)+ goto yy1912;+ goto yy1913;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1917;+ if (yych <= 0xEF)+ goto yy1913;+ goto yy1914;+ } else {+ if (yych <= 0xF3)+ goto yy1915;+ if (yych <= 0xF4)+ goto yy1916;+ goto yy1910;+ }+ }+ }+ yy1966:+ yyaccept = 0;+ marker = ++p;+ yych = *p;+ if (yych <= '[') {+ if (yych <= ' ') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy1843;+ if (yych <= '\t')+ goto yy1921;+ goto yy1843;+ } else {+ if (yych == '\r')+ goto yy1843;+ goto yy1921;+ }+ } else {+ if (yych <= ')') {+ if (yych <= '\'')+ goto yy1907;+ if (yych <= '(')+ goto yy1919;+ goto yy1921;+ } else {+ if (yych == '>')+ goto yy1965;+ goto yy1907;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\\')+ goto yy1918;+ if (yych <= 0x7F)+ goto yy1907;+ goto yy1843;+ } else {+ if (yych <= 0xDF)+ goto yy1911;+ if (yych <= 0xE0)+ goto yy1912;+ goto yy1913;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy1917;+ if (yych <= 0xEF)+ goto yy1913;+ goto yy1914;+ } else {+ if (yych <= 0xF3)+ goto yy1915;+ if (yych <= 0xF4)+ goto yy1916;+ goto yy1843;+ }+ }+ }+ yy1967:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1907;+ goto yy1850;+ yy1968:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1967;+ goto yy1850;+ yy1969:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1967;+ goto yy1850;+ yy1970:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1969;+ goto yy1850;+ yy1971:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0xBF)+ goto yy1969;+ goto yy1850;+ yy1972:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x8F)+ goto yy1969;+ goto yy1850;+ yy1973:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1850;+ if (yych <= 0x9F)+ goto yy1967;+ goto yy1850;+ }+}++// Try to match a link title (in single quotes, in double quotes, or+// in parentheses), returning number of chars matched. Allow one+// level of internal nesting (quotes within quotes).+bufsize_t _scan_link_title(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ 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 yy1976;+ if (yych <= '!')+ goto yy1980;+ goto yy1977;+ } else {+ if (yych <= '\'') {+ if (yych <= '&')+ goto yy1980;+ goto yy1978;+ } else {+ if (yych <= '(')+ goto yy1979;+ if (yych <= 0x7F)+ goto yy1980;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy1981;+ if (yych <= 0xE0)+ goto yy1983;+ if (yych <= 0xEC)+ goto yy1984;+ goto yy1988;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy1984;+ goto yy1985;+ } else {+ if (yych <= 0xF3)+ goto yy1986;+ if (yych <= 0xF4)+ goto yy1987;+ }+ }+ }+ yy1976 : { return 0; }+ yy1977:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x00)+ goto yy1976;+ if (yych <= 0x7F)+ goto yy2020;+ if (yych <= 0xC1)+ goto yy1976;+ if (yych <= 0xF4)+ goto yy2020;+ goto yy1976;+ yy1978:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x00)+ goto yy1976;+ if (yych <= 0x7F)+ goto yy2006;+ if (yych <= 0xC1)+ goto yy1976;+ if (yych <= 0xF4)+ goto yy2006;+ goto yy1976;+ yy1979:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x00)+ goto yy1976;+ if (yych <= 0x7F)+ goto yy1992;+ if (yych <= 0xC1)+ goto yy1976;+ if (yych <= 0xF4)+ goto yy1992;+ goto yy1976;+ yy1980:+ yych = *++p;+ goto yy1976;+ yy1981:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1980;+ yy1982:+ p = marker;+ if (yyaccept <= 1) {+ if (yyaccept == 0) {+ goto yy1976;+ } else {+ goto yy2001;+ }+ } else {+ if (yyaccept == 2) {+ goto yy2015;+ } else {+ goto yy2029;+ }+ }+ yy1983:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1981;+ goto yy1982;+ yy1984:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1981;+ goto yy1982;+ yy1985:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1984;+ goto yy1982;+ yy1986:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1984;+ goto yy1982;+ yy1987:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x8F)+ goto yy1984;+ goto yy1982;+ yy1988:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x9F)+ goto yy1981;+ goto yy1982;+ yy1989:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy1991;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= ')')+ goto yy2002;+ goto yy1989;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych <= 0xDF)+ goto yy1993;+ goto yy1994;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1999;+ goto yy1995;+ } else {+ if (yych <= 0xF0)+ goto yy1996;+ if (yych <= 0xF3)+ goto yy1997;+ if (yych <= 0xF4)+ goto yy1998;+ goto yy1982;+ }+ }+ yy1991:+ ++p;+ yych = *p;+ yy1992:+ if (yybm[0 + yych] & 32) {+ goto yy1991;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= ')')+ goto yy2000;+ goto yy1989;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych >= 0xE0)+ goto yy1994;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1999;+ goto yy1995;+ } else {+ if (yych <= 0xF0)+ goto yy1996;+ if (yych <= 0xF3)+ goto yy1997;+ if (yych <= 0xF4)+ goto yy1998;+ goto yy1982;+ }+ }+ yy1993:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1991;+ goto yy1982;+ yy1994:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1993;+ goto yy1982;+ yy1995:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1993;+ goto yy1982;+ yy1996:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1995;+ goto yy1982;+ yy1997:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy1995;+ goto yy1982;+ yy1998:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x8F)+ goto yy1995;+ goto yy1982;+ yy1999:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x9F)+ goto yy1993;+ goto yy1982;+ yy2000:+ ++p;+ yy2001 : { return (bufsize_t)(p - start); }+ yy2002:+ yyaccept = 1;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy1991;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy2001;+ if (yych <= ')')+ goto yy2000;+ goto yy1989;+ } else {+ if (yych <= 0xC1)+ goto yy2001;+ if (yych <= 0xDF)+ goto yy1993;+ goto yy1994;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy1999;+ goto yy1995;+ } else {+ if (yych <= 0xF0)+ goto yy1996;+ if (yych <= 0xF3)+ goto yy1997;+ if (yych <= 0xF4)+ goto yy1998;+ goto yy2001;+ }+ }+ yy2003:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy2005;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= '\'')+ goto yy2016;+ goto yy2003;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych <= 0xDF)+ goto yy2007;+ goto yy2008;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2013;+ goto yy2009;+ } else {+ if (yych <= 0xF0)+ goto yy2010;+ if (yych <= 0xF3)+ goto yy2011;+ if (yych <= 0xF4)+ goto yy2012;+ goto yy1982;+ }+ }+ yy2005:+ ++p;+ yych = *p;+ yy2006:+ if (yybm[0 + yych] & 64) {+ goto yy2005;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= '\'')+ goto yy2014;+ goto yy2003;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych >= 0xE0)+ goto yy2008;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2013;+ goto yy2009;+ } else {+ if (yych <= 0xF0)+ goto yy2010;+ if (yych <= 0xF3)+ goto yy2011;+ if (yych <= 0xF4)+ goto yy2012;+ goto yy1982;+ }+ }+ yy2007:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2005;+ goto yy1982;+ yy2008:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2007;+ goto yy1982;+ yy2009:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2007;+ goto yy1982;+ yy2010:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2009;+ goto yy1982;+ yy2011:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2009;+ goto yy1982;+ yy2012:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x8F)+ goto yy2009;+ goto yy1982;+ yy2013:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x9F)+ goto yy2007;+ goto yy1982;+ yy2014:+ ++p;+ yy2015 : { return (bufsize_t)(p - start); }+ yy2016:+ yyaccept = 2;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy2005;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy2015;+ if (yych <= '\'')+ goto yy2014;+ goto yy2003;+ } else {+ if (yych <= 0xC1)+ goto yy2015;+ if (yych <= 0xDF)+ goto yy2007;+ goto yy2008;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2013;+ goto yy2009;+ } else {+ if (yych <= 0xF0)+ goto yy2010;+ if (yych <= 0xF3)+ goto yy2011;+ if (yych <= 0xF4)+ goto yy2012;+ goto yy2015;+ }+ }+ yy2017:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2019;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= '"')+ goto yy2030;+ goto yy2017;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych <= 0xDF)+ goto yy2021;+ goto yy2022;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2027;+ goto yy2023;+ } else {+ if (yych <= 0xF0)+ goto yy2024;+ if (yych <= 0xF3)+ goto yy2025;+ if (yych <= 0xF4)+ goto yy2026;+ goto yy1982;+ }+ }+ yy2019:+ ++p;+ yych = *p;+ yy2020:+ if (yybm[0 + yych] & 128) {+ goto yy2019;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy1982;+ if (yych <= '"')+ goto yy2028;+ goto yy2017;+ } else {+ if (yych <= 0xC1)+ goto yy1982;+ if (yych >= 0xE0)+ goto yy2022;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2027;+ goto yy2023;+ } else {+ if (yych <= 0xF0)+ goto yy2024;+ if (yych <= 0xF3)+ goto yy2025;+ if (yych <= 0xF4)+ goto yy2026;+ goto yy1982;+ }+ }+ yy2021:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2019;+ goto yy1982;+ yy2022:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2021;+ goto yy1982;+ yy2023:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2021;+ goto yy1982;+ yy2024:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2023;+ goto yy1982;+ yy2025:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0xBF)+ goto yy2023;+ goto yy1982;+ yy2026:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x8F)+ goto yy2023;+ goto yy1982;+ yy2027:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy1982;+ if (yych <= 0x9F)+ goto yy2021;+ goto yy1982;+ yy2028:+ ++p;+ yy2029 : { return (bufsize_t)(p - start); }+ yy2030:+ yyaccept = 3;+ marker = ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2019;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy2029;+ if (yych <= '"')+ goto yy2028;+ goto yy2017;+ } else {+ if (yych <= 0xC1)+ goto yy2029;+ if (yych <= 0xDF)+ goto yy2021;+ goto yy2022;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2027;+ goto yy2023;+ } else {+ if (yych <= 0xF0)+ goto yy2024;+ if (yych <= 0xF3)+ goto yy2025;+ if (yych <= 0xF4)+ goto yy2026;+ goto yy2029;+ }+ }+ }+}++// Match space characters, including newlines.+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 yy2037;+ if (yych == '\n')+ goto yy2035;+ goto yy2034;+ } else {+ if (yych == ' ')+ goto yy2034;+ if (yych <= 0x7F)+ goto yy2037;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy2039;+ if (yych <= 0xE0)+ goto yy2041;+ if (yych <= 0xEC)+ goto yy2042;+ goto yy2046;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy2042;+ goto yy2043;+ } else {+ if (yych <= 0xF3)+ goto yy2044;+ if (yych <= 0xF4)+ goto yy2045;+ }+ }+ }+ yy2033 : { return (bufsize_t)(p - start); }+ yy2034:+ yych = *++p;+ goto yy2036;+ yy2035:+ ++p;+ yych = *p;+ yy2036:+ if (yybm[0 + yych] & 128) {+ goto yy2035;+ }+ goto yy2033;+ yy2037:+ ++p;+ { return 0; }+ yy2039:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2040;+ if (yych <= 0xBF)+ goto yy2037;+ yy2040:+ p = marker;+ goto yy2033;+ yy2041:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2040;+ if (yych <= 0xBF)+ goto yy2039;+ goto yy2040;+ yy2042:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2040;+ if (yych <= 0xBF)+ goto yy2039;+ goto yy2040;+ yy2043:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2040;+ if (yych <= 0xBF)+ goto yy2042;+ goto yy2040;+ yy2044:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2040;+ if (yych <= 0xBF)+ goto yy2042;+ goto yy2040;+ yy2045:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2040;+ if (yych <= 0x8F)+ goto yy2042;+ goto yy2040;+ yy2046:+ ++p;+ if ((yych = *p) <= 0x7F)+ goto yy2040;+ if (yych <= 0x9F)+ goto yy2039;+ goto yy2040;+ }+}++// Match ATX header start.+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 yy2051;+ } else {+ if (yych <= '#')+ goto yy2050;+ if (yych <= 0x7F)+ goto yy2051;+ if (yych >= 0xC2)+ goto yy2052;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy2054;+ if (yych == 0xED)+ goto yy2059;+ goto yy2055;+ } else {+ if (yych <= 0xF0)+ goto yy2056;+ if (yych <= 0xF3)+ goto yy2057;+ if (yych <= 0xF4)+ goto yy2058;+ }+ }+ yy2049 : { return 0; }+ yy2050:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2060;+ goto yy2049;+ } else {+ if (yych <= '\r')+ goto yy2060;+ if (yych == '#')+ goto yy2064;+ goto yy2049;+ }+ yy2051:+ yych = *++p;+ goto yy2049;+ yy2052:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2053;+ if (yych <= 0xBF)+ goto yy2051;+ yy2053:+ p = marker;+ goto yy2049;+ yy2054:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2053;+ if (yych <= 0xBF)+ goto yy2052;+ goto yy2053;+ yy2055:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2053;+ if (yych <= 0xBF)+ goto yy2052;+ goto yy2053;+ yy2056:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2053;+ if (yych <= 0xBF)+ goto yy2055;+ goto yy2053;+ yy2057:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2053;+ if (yych <= 0xBF)+ goto yy2055;+ goto yy2053;+ yy2058:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2053;+ if (yych <= 0x8F)+ goto yy2055;+ goto yy2053;+ yy2059:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2053;+ if (yych <= 0x9F)+ goto yy2052;+ goto yy2053;+ yy2060:+ ++p;+ yy2061 : { return (bufsize_t)(p - start); }+ yy2062:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ goto yy2061;+ yy2064:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2060;+ goto yy2053;+ } else {+ if (yych <= '\r')+ goto yy2060;+ if (yych != '#')+ goto yy2053;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2060;+ goto yy2053;+ } else {+ if (yych <= '\r')+ goto yy2060;+ if (yych != '#')+ goto yy2053;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2060;+ goto yy2053;+ } else {+ if (yych <= '\r')+ goto yy2060;+ if (yych != '#')+ goto yy2053;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy2062;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2060;+ goto yy2053;+ } else {+ if (yych <= '\r')+ goto yy2060;+ if (yych != '#')+ goto yy2053;+ }+ ++p;+ if (yybm[0 + (yych = *p)] & 128) {+ goto yy2062;+ }+ if (yych == '\n')+ goto yy2060;+ if (yych == '\r')+ goto yy2060;+ goto yy2053;+ }+}++// 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) {+ 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 yy2071;+ if (yych <= ',')+ goto yy2074;+ goto yy2073;+ } else {+ if (yych == '=')+ goto yy2072;+ if (yych <= 0x7F)+ goto yy2074;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy2075;+ if (yych <= 0xE0)+ goto yy2077;+ if (yych <= 0xEC)+ goto yy2078;+ goto yy2082;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy2078;+ goto yy2079;+ } else {+ if (yych <= 0xF3)+ goto yy2080;+ if (yych <= 0xF4)+ goto yy2081;+ }+ }+ }+ yy2071 : { return 0; }+ yy2072:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy2093;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2091;+ goto yy2071;+ } else {+ if (yych <= '\r')+ goto yy2091;+ if (yych == ' ')+ goto yy2089;+ goto yy2071;+ }+ yy2073:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 32) {+ goto yy2083;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2085;+ goto yy2071;+ } else {+ if (yych <= '\r')+ goto yy2085;+ if (yych == '-')+ goto yy2087;+ goto yy2071;+ }+ yy2074:+ yych = *++p;+ goto yy2071;+ yy2075:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2076;+ if (yych <= 0xBF)+ goto yy2074;+ yy2076:+ p = marker;+ goto yy2071;+ yy2077:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2076;+ if (yych <= 0xBF)+ goto yy2075;+ goto yy2076;+ yy2078:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2076;+ if (yych <= 0xBF)+ goto yy2075;+ goto yy2076;+ yy2079:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2076;+ if (yych <= 0xBF)+ goto yy2078;+ goto yy2076;+ yy2080:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2076;+ if (yych <= 0xBF)+ goto yy2078;+ goto yy2076;+ yy2081:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2076;+ if (yych <= 0x8F)+ goto yy2078;+ goto yy2076;+ yy2082:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2076;+ if (yych <= 0x9F)+ goto yy2075;+ goto yy2076;+ yy2083:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy2083;+ }+ if (yych == '\n')+ goto yy2085;+ if (yych != '\r')+ goto yy2076;+ yy2085:+ ++p;+ { return 2; }+ yy2087:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy2083;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2085;+ goto yy2076;+ } else {+ if (yych <= '\r')+ goto yy2085;+ if (yych == '-')+ goto yy2087;+ goto yy2076;+ }+ yy2089:+ ++p;+ yych = *p;+ if (yych <= '\f') {+ if (yych != '\n')+ goto yy2076;+ } else {+ if (yych <= '\r')+ goto yy2091;+ if (yych == ' ')+ goto yy2089;+ goto yy2076;+ }+ yy2091:+ ++p;+ { return 1; }+ yy2093:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2093;+ }+ if (yych <= '\f') {+ if (yych == '\n')+ goto yy2091;+ goto yy2076;+ } else {+ if (yych <= '\r')+ goto yy2091;+ if (yych == ' ')+ goto yy2089;+ goto yy2076;+ }+ }+}++// 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) {+ 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 yy2097;+ if (yych <= ')')+ goto yy2101;+ goto yy2098;+ } else {+ if (yych <= '-') {+ if (yych <= ',')+ goto yy2101;+ goto yy2100;+ } else {+ if (yych == '_')+ goto yy2099;+ goto yy2101;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF) {+ if (yych >= 0xC2)+ goto yy2102;+ } else {+ if (yych <= 0xE0)+ goto yy2104;+ if (yych <= 0xEC)+ goto yy2105;+ goto yy2109;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy2105;+ goto yy2106;+ } else {+ if (yych <= 0xF3)+ goto yy2107;+ if (yych <= 0xF4)+ goto yy2108;+ }+ }+ }+ yy2097 : { return 0; }+ yy2098:+ yych = *(marker = ++p);+ if (yych == ' ')+ goto yy2130;+ if (yych == '*')+ goto yy2132;+ goto yy2097;+ yy2099:+ yych = *(marker = ++p);+ if (yych == ' ')+ goto yy2120;+ if (yych == '_')+ goto yy2122;+ goto yy2097;+ yy2100:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 8) {+ goto yy2110;+ }+ if (yych == '-')+ goto yy2112;+ goto yy2097;+ yy2101:+ yych = *++p;+ goto yy2097;+ yy2102:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2103;+ if (yych <= 0xBF)+ goto yy2101;+ yy2103:+ p = marker;+ goto yy2097;+ yy2104:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2103;+ if (yych <= 0xBF)+ goto yy2102;+ goto yy2103;+ yy2105:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2103;+ if (yych <= 0xBF)+ goto yy2102;+ goto yy2103;+ yy2106:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2103;+ if (yych <= 0xBF)+ goto yy2105;+ goto yy2103;+ yy2107:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2103;+ if (yych <= 0xBF)+ goto yy2105;+ goto yy2103;+ yy2108:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2103;+ if (yych <= 0x8F)+ goto yy2105;+ goto yy2103;+ yy2109:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2103;+ if (yych <= 0x9F)+ goto yy2102;+ goto yy2103;+ yy2110:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 8) {+ goto yy2110;+ }+ if (yych != '-')+ goto yy2103;+ yy2112:+ ++p;+ yych = *p;+ if (yych == ' ')+ goto yy2112;+ if (yych != '-')+ goto yy2103;+ yy2114:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 16) {+ goto yy2114;+ }+ if (yych <= '\n') {+ if (yych <= 0x08)+ goto yy2103;+ if (yych >= '\n')+ goto yy2118;+ } else {+ if (yych == '\r')+ goto yy2118;+ goto yy2103;+ }+ yy2116:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy2116;+ }+ if (yych <= 0x08)+ goto yy2103;+ if (yych <= '\n')+ goto yy2118;+ if (yych != '\r')+ goto yy2103;+ yy2118:+ ++p;+ { return (bufsize_t)(p - start); }+ yy2120:+ ++p;+ yych = *p;+ if (yych == ' ')+ goto yy2120;+ if (yych != '_')+ goto yy2103;+ yy2122:+ ++p;+ yych = *p;+ if (yych == ' ')+ goto yy2122;+ if (yych != '_')+ goto yy2103;+ yy2124:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy2124;+ }+ if (yych <= '\n') {+ if (yych <= 0x08)+ goto yy2103;+ if (yych >= '\n')+ goto yy2128;+ } else {+ if (yych == '\r')+ goto yy2128;+ goto yy2103;+ }+ yy2126:+ ++p;+ yych = *p;+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy2103;+ if (yych <= '\t')+ goto yy2126;+ if (yych >= '\v')+ goto yy2103;+ } else {+ if (yych <= '\r')+ goto yy2128;+ if (yych == ' ')+ goto yy2126;+ goto yy2103;+ }+ yy2128:+ ++p;+ { return (bufsize_t)(p - start); }+ yy2130:+ ++p;+ yych = *p;+ if (yych == ' ')+ goto yy2130;+ if (yych != '*')+ goto yy2103;+ yy2132:+ ++p;+ yych = *p;+ if (yych == ' ')+ goto yy2132;+ if (yych != '*')+ goto yy2103;+ yy2134:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2134;+ }+ if (yych <= '\n') {+ if (yych <= 0x08)+ goto yy2103;+ if (yych >= '\n')+ goto yy2138;+ } else {+ if (yych == '\r')+ goto yy2138;+ goto yy2103;+ }+ yy2136:+ ++p;+ yych = *p;+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy2103;+ if (yych <= '\t')+ goto yy2136;+ if (yych >= '\v')+ goto yy2103;+ } else {+ if (yych <= '\r')+ goto yy2138;+ if (yych == ' ')+ goto yy2136;+ goto yy2103;+ }+ yy2138:+ ++p;+ { return (bufsize_t)(p - start); }+ }+}++// Scan an opening code fence.+bufsize_t _scan_open_code_fence(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ 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 yy2142;+ if (yych <= '_')+ goto yy2145;+ goto yy2143;+ } else {+ if (yych == '~')+ goto yy2144;+ if (yych <= 0x7F)+ goto yy2145;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy2146;+ if (yych <= 0xE0)+ goto yy2148;+ if (yych <= 0xEC)+ goto yy2149;+ goto yy2153;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy2149;+ goto yy2150;+ } else {+ if (yych <= 0xF3)+ goto yy2151;+ if (yych <= 0xF4)+ goto yy2152;+ }+ }+ }+ yy2142 : { return 0; }+ yy2143:+ yych = *(marker = ++p);+ if (yych == '`')+ goto yy2168;+ goto yy2142;+ yy2144:+ yych = *(marker = ++p);+ if (yych == '~')+ goto yy2154;+ goto yy2142;+ yy2145:+ yych = *++p;+ goto yy2142;+ yy2146:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2145;+ yy2147:+ p = marker;+ goto yy2142;+ yy2148:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2146;+ goto yy2147;+ yy2149:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2146;+ goto yy2147;+ yy2150:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2149;+ goto yy2147;+ yy2151:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2149;+ goto yy2147;+ yy2152:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x8F)+ goto yy2149;+ goto yy2147;+ yy2153:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x9F)+ goto yy2146;+ goto yy2147;+ yy2154:+ yych = *++p;+ if (yybm[0 + yych] & 16) {+ goto yy2155;+ }+ goto yy2147;+ yy2155:+ marker = p + 1;+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy2157;+ }+ if (yych <= 0xE0) {+ if (yych <= '~') {+ if (yych <= 0x00)+ goto yy2147;+ if (yych <= '\r')+ goto yy2166;+ goto yy2155;+ } else {+ if (yych <= 0xC1)+ goto yy2147;+ if (yych <= 0xDF)+ goto yy2159;+ goto yy2160;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2165;+ goto yy2161;+ } else {+ if (yych <= 0xF0)+ goto yy2162;+ if (yych <= 0xF3)+ goto yy2163;+ if (yych <= 0xF4)+ goto yy2164;+ goto yy2147;+ }+ }+ yy2157:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 32) {+ goto yy2157;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy2147;+ if (yych <= '\r')+ goto yy2166;+ goto yy2147;+ } else {+ if (yych <= 0xDF)+ goto yy2159;+ if (yych <= 0xE0)+ goto yy2160;+ goto yy2161;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy2165;+ if (yych <= 0xEF)+ goto yy2161;+ goto yy2162;+ } else {+ if (yych <= 0xF3)+ goto yy2163;+ if (yych <= 0xF4)+ goto yy2164;+ goto yy2147;+ }+ }+ yy2159:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2157;+ goto yy2147;+ yy2160:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2159;+ goto yy2147;+ yy2161:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2159;+ goto yy2147;+ yy2162:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2161;+ goto yy2147;+ yy2163:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2161;+ goto yy2147;+ yy2164:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x8F)+ goto yy2161;+ goto yy2147;+ yy2165:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x9F)+ goto yy2159;+ goto yy2147;+ yy2166:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ yy2168:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy2169;+ }+ goto yy2147;+ yy2169:+ marker = p + 1;+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2171;+ }+ if (yych <= 0xE0) {+ if (yych <= '`') {+ if (yych <= 0x00)+ goto yy2147;+ if (yych <= '\r')+ goto yy2180;+ goto yy2169;+ } else {+ if (yych <= 0xC1)+ goto yy2147;+ if (yych <= 0xDF)+ goto yy2173;+ goto yy2174;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy2179;+ goto yy2175;+ } else {+ if (yych <= 0xF0)+ goto yy2176;+ if (yych <= 0xF3)+ goto yy2177;+ if (yych <= 0xF4)+ goto yy2178;+ goto yy2147;+ }+ }+ yy2171:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2171;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy2147;+ if (yych <= '\r')+ goto yy2180;+ goto yy2147;+ } else {+ if (yych <= 0xDF)+ goto yy2173;+ if (yych <= 0xE0)+ goto yy2174;+ goto yy2175;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy2179;+ if (yych <= 0xEF)+ goto yy2175;+ goto yy2176;+ } else {+ if (yych <= 0xF3)+ goto yy2177;+ if (yych <= 0xF4)+ goto yy2178;+ goto yy2147;+ }+ }+ yy2173:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2171;+ goto yy2147;+ yy2174:+ ++p;+ yych = *p;+ if (yych <= 0x9F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2173;+ goto yy2147;+ yy2175:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2173;+ goto yy2147;+ yy2176:+ ++p;+ yych = *p;+ if (yych <= 0x8F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2175;+ goto yy2147;+ yy2177:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0xBF)+ goto yy2175;+ goto yy2147;+ yy2178:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x8F)+ goto yy2175;+ goto yy2147;+ yy2179:+ ++p;+ yych = *p;+ if (yych <= 0x7F)+ goto yy2147;+ if (yych <= 0x9F)+ goto yy2173;+ goto yy2147;+ yy2180:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ }+}++// Scan a closing code fence with length at least len.+bufsize_t _scan_close_code_fence(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ 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 yy2184;+ if (yych <= '_')+ goto yy2187;+ goto yy2185;+ } else {+ if (yych == '~')+ goto yy2186;+ if (yych <= 0x7F)+ goto yy2187;+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy2188;+ if (yych <= 0xE0)+ goto yy2190;+ if (yych <= 0xEC)+ goto yy2191;+ goto yy2195;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy2191;+ goto yy2192;+ } else {+ if (yych <= 0xF3)+ goto yy2193;+ if (yych <= 0xF4)+ goto yy2194;+ }+ }+ }+ yy2184 : { return 0; }+ yy2185:+ yych = *(marker = ++p);+ if (yych == '`')+ goto yy2203;+ goto yy2184;+ yy2186:+ yych = *(marker = ++p);+ if (yych == '~')+ goto yy2196;+ goto yy2184;+ yy2187:+ yych = *++p;+ goto yy2184;+ yy2188:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2189;+ if (yych <= 0xBF)+ goto yy2187;+ yy2189:+ p = marker;+ goto yy2184;+ yy2190:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2189;+ if (yych <= 0xBF)+ goto yy2188;+ goto yy2189;+ yy2191:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2189;+ if (yych <= 0xBF)+ goto yy2188;+ goto yy2189;+ yy2192:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2189;+ if (yych <= 0xBF)+ goto yy2191;+ goto yy2189;+ yy2193:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2189;+ if (yych <= 0xBF)+ goto yy2191;+ goto yy2189;+ yy2194:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2189;+ if (yych <= 0x8F)+ goto yy2191;+ goto yy2189;+ yy2195:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2189;+ if (yych <= 0x9F)+ goto yy2188;+ goto yy2189;+ yy2196:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy2197;+ }+ goto yy2189;+ yy2197:+ marker = p + 1;+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy2199;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy2189;+ if (yych <= '\n')+ goto yy2201;+ goto yy2189;+ } else {+ if (yych <= '\r')+ goto yy2201;+ if (yych == '~')+ goto yy2197;+ goto yy2189;+ }+ yy2199:+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy2199;+ }+ if (yych <= 0x08)+ goto yy2189;+ if (yych <= '\n')+ goto yy2201;+ if (yych != '\r')+ goto yy2189;+ yy2201:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ yy2203:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy2204;+ }+ goto yy2189;+ yy2204:+ marker = p + 1;+ ++p;+ yych = *p;+ if (yybm[0 + yych] & 128) {+ goto yy2204;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy2189;+ if (yych <= '\t')+ goto yy2206;+ if (yych <= '\n')+ goto yy2208;+ goto yy2189;+ } else {+ if (yych <= '\r')+ goto yy2208;+ if (yych != ' ')+ goto yy2189;+ }+ yy2206:+ ++p;+ yych = *p;+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy2189;+ if (yych <= '\t')+ goto yy2206;+ if (yych >= '\v')+ goto yy2189;+ } else {+ if (yych <= '\r')+ goto yy2208;+ if (yych == ' ')+ goto yy2206;+ goto yy2189;+ }+ yy2208:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ }+}++// Scans an entity.+// Returns number of chars matched.+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 yy2214;+ } else {+ if (yych <= '&')+ goto yy2213;+ if (yych <= 0x7F)+ goto yy2214;+ if (yych >= 0xC2)+ goto yy2215;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy2217;+ if (yych == 0xED)+ goto yy2222;+ goto yy2218;+ } else {+ if (yych <= 0xF0)+ goto yy2219;+ if (yych <= 0xF3)+ goto yy2220;+ if (yych <= 0xF4)+ goto yy2221;+ }+ }+ yy2212 : { return 0; }+ yy2213:+ yych = *(marker = ++p);+ if (yych <= '@') {+ if (yych == '#')+ goto yy2223;+ goto yy2212;+ } else {+ if (yych <= 'Z')+ goto yy2224;+ if (yych <= '`')+ goto yy2212;+ if (yych <= 'z')+ goto yy2224;+ goto yy2212;+ }+ yy2214:+ yych = *++p;+ goto yy2212;+ yy2215:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2216;+ if (yych <= 0xBF)+ goto yy2214;+ yy2216:+ p = marker;+ goto yy2212;+ yy2217:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2216;+ if (yych <= 0xBF)+ goto yy2215;+ goto yy2216;+ yy2218:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2216;+ if (yych <= 0xBF)+ goto yy2215;+ goto yy2216;+ yy2219:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2216;+ if (yych <= 0xBF)+ goto yy2218;+ goto yy2216;+ yy2220:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2216;+ if (yych <= 0xBF)+ goto yy2218;+ goto yy2216;+ yy2221:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2216;+ if (yych <= 0x8F)+ goto yy2218;+ goto yy2216;+ yy2222:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2216;+ if (yych <= 0x9F)+ goto yy2215;+ goto yy2216;+ yy2223:+ yych = *++p;+ if (yych <= 'W') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2259;+ goto yy2216;+ } else {+ if (yych <= 'X')+ goto yy2258;+ if (yych == 'x')+ goto yy2258;+ goto yy2216;+ }+ yy2224:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy2216;+ if (yych >= ':')+ goto yy2216;+ } else {+ if (yych <= 'Z')+ goto yy2225;+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ yy2225:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2228;+ if (yych <= ':')+ goto yy2216;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ goto yy2228;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych <= 'z')+ goto yy2228;+ goto yy2216;+ }+ }+ yy2226:+ ++p;+ { return (bufsize_t)(p - start); }+ yy2228:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2229;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2229:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2230;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2230:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2231;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2231:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2232;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2232:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2233;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2233:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2234;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2234:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2235;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2235:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2236;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2236:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2237;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2237:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2238;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2238:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2239;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2239:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2240;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2240:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2241;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2241:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2242;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2242:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2243;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2243:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2244;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2244:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2245;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2245:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2246;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2246:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2247;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2247:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2248;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2248:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2249;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2249:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2250;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2250:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2251;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2251:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2252;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2252:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2253;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2253:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2254;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2254:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2255;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2255:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2256;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2256:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2257;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= '{')+ goto yy2216;+ }+ }+ yy2257:+ yych = *++p;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2258:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2266;+ goto yy2216;+ } else {+ if (yych <= 'F')+ goto yy2266;+ if (yych <= '`')+ goto yy2216;+ if (yych <= 'f')+ goto yy2266;+ goto yy2216;+ }+ yy2259:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2260;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2260:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2261;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2261:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2262;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2262:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2263;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2263:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2264;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2264:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2265;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2265:+ yych = *++p;+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2257;+ if (yych == ';')+ goto yy2226;+ goto yy2216;+ yy2266:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2267;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2267:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2268;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2268:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2269;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2269:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2270;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2270:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2271;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2271:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2272;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych >= 'g')+ goto yy2216;+ }+ }+ yy2272:+ ++p;+ if ((yych = *p) <= ';') {+ if (yych <= '/')+ goto yy2216;+ if (yych <= '9')+ goto yy2257;+ if (yych <= ':')+ goto yy2216;+ goto yy2226;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy2216;+ goto yy2257;+ } else {+ if (yych <= '`')+ goto yy2216;+ if (yych <= 'f')+ goto yy2257;+ goto yy2216;+ }+ }+ }+}++// Returns positive value if a URL begins in a way that is potentially+// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.+bufsize_t _scan_dangerous_url(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ yych = *(marker = p);+ if (yych <= 'f') {+ if (yych <= 'I') {+ if (yych <= 'C') {+ if (yych != '\n')+ goto yy2280;+ } else {+ if (yych <= 'D')+ goto yy2276;+ if (yych == 'F')+ goto yy2279;+ goto yy2280;+ }+ } else {+ if (yych <= 'V') {+ if (yych <= 'J')+ goto yy2277;+ if (yych <= 'U')+ goto yy2280;+ goto yy2278;+ } else {+ if (yych == 'd')+ goto yy2276;+ if (yych <= 'e')+ goto yy2280;+ goto yy2279;+ }+ }+ } else {+ if (yych <= 0xDF) {+ if (yych <= 'u') {+ if (yych == 'j')+ goto yy2277;+ goto yy2280;+ } else {+ if (yych <= 'v')+ goto yy2278;+ if (yych <= 0x7F)+ goto yy2280;+ if (yych >= 0xC2)+ goto yy2281;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy2283;+ if (yych == 0xED)+ goto yy2288;+ goto yy2284;+ } else {+ if (yych <= 0xF0)+ goto yy2285;+ if (yych <= 0xF3)+ goto yy2286;+ if (yych <= 0xF4)+ goto yy2287;+ }+ }+ }+ yy2275 : { return 0; }+ yy2276:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'A')+ goto yy2310;+ if (yych == 'a')+ goto yy2310;+ goto yy2275;+ yy2277:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'A')+ goto yy2301;+ if (yych == 'a')+ goto yy2301;+ goto yy2275;+ yy2278:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'B')+ goto yy2294;+ if (yych == 'b')+ goto yy2294;+ goto yy2275;+ yy2279:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'I')+ goto yy2289;+ if (yych == 'i')+ goto yy2289;+ goto yy2275;+ yy2280:+ yych = *++p;+ goto yy2275;+ yy2281:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2282;+ if (yych <= 0xBF)+ goto yy2280;+ yy2282:+ p = marker;+ if (yyaccept == 0) {+ goto yy2275;+ } else {+ goto yy2293;+ }+ yy2283:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy2282;+ if (yych <= 0xBF)+ goto yy2281;+ goto yy2282;+ yy2284:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2282;+ if (yych <= 0xBF)+ goto yy2281;+ goto yy2282;+ yy2285:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy2282;+ if (yych <= 0xBF)+ goto yy2284;+ goto yy2282;+ yy2286:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2282;+ if (yych <= 0xBF)+ goto yy2284;+ goto yy2282;+ yy2287:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2282;+ if (yych <= 0x8F)+ goto yy2284;+ goto yy2282;+ yy2288:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy2282;+ if (yych <= 0x9F)+ goto yy2281;+ goto yy2282;+ yy2289:+ yych = *++p;+ if (yych == 'L')+ goto yy2290;+ if (yych != 'l')+ goto yy2282;+ yy2290:+ yych = *++p;+ if (yych == 'E')+ goto yy2291;+ if (yych != 'e')+ goto yy2282;+ yy2291:+ yych = *++p;+ if (yych != ':')+ goto yy2282;+ yy2292:+ ++p;+ yy2293 : { return (bufsize_t)(p - start); }+ yy2294:+ yych = *++p;+ if (yych == 'S')+ goto yy2295;+ if (yych != 's')+ goto yy2282;+ yy2295:+ yych = *++p;+ if (yych == 'C')+ goto yy2296;+ if (yych != 'c')+ goto yy2282;+ yy2296:+ yych = *++p;+ if (yych == 'R')+ goto yy2297;+ if (yych != 'r')+ goto yy2282;+ yy2297:+ yych = *++p;+ if (yych == 'I')+ goto yy2298;+ if (yych != 'i')+ goto yy2282;+ yy2298:+ yych = *++p;+ if (yych == 'P')+ goto yy2299;+ if (yych != 'p')+ goto yy2282;+ yy2299:+ yych = *++p;+ if (yych == 'T')+ goto yy2300;+ if (yych != 't')+ goto yy2282;+ yy2300:+ yych = *++p;+ if (yych == ':')+ goto yy2292;+ goto yy2282;+ yy2301:+ yych = *++p;+ if (yych == 'V')+ goto yy2302;+ if (yych != 'v')+ goto yy2282;+ yy2302:+ yych = *++p;+ if (yych == 'A')+ goto yy2303;+ if (yych != 'a')+ goto yy2282;+ yy2303:+ yych = *++p;+ if (yych == 'S')+ goto yy2304;+ if (yych != 's')+ goto yy2282;+ yy2304:+ yych = *++p;+ if (yych == 'C')+ goto yy2305;+ if (yych != 'c')+ goto yy2282;+ yy2305:+ yych = *++p;+ if (yych == 'R')+ goto yy2306;+ if (yych != 'r')+ goto yy2282;+ yy2306:+ yych = *++p;+ if (yych == 'I')+ goto yy2307;+ if (yych != 'i')+ goto yy2282;+ yy2307:+ yych = *++p;+ if (yych == 'P')+ goto yy2308;+ if (yych != 'p')+ goto yy2282;+ yy2308:+ yych = *++p;+ if (yych == 'T')+ goto yy2309;+ if (yych != 't')+ goto yy2282;+ yy2309:+ yych = *++p;+ if (yych == ':')+ goto yy2292;+ goto yy2282;+ yy2310:+ yych = *++p;+ if (yych == 'T')+ goto yy2311;+ if (yych != 't')+ goto yy2282;+ yy2311:+ yych = *++p;+ if (yych == 'A')+ goto yy2312;+ if (yych != 'a')+ goto yy2282;+ yy2312:+ yych = *++p;+ if (yych != ':')+ goto yy2282;+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych == 'I')+ goto yy2314;+ if (yych != 'i')+ goto yy2293;+ yy2314:+ yych = *++p;+ if (yych == 'M')+ goto yy2315;+ if (yych != 'm')+ goto yy2282;+ yy2315:+ yych = *++p;+ if (yych == 'A')+ goto yy2316;+ if (yych != 'a')+ goto yy2282;+ yy2316:+ yych = *++p;+ if (yych == 'G')+ goto yy2317;+ if (yych != 'g')+ goto yy2282;+ yy2317:+ yych = *++p;+ if (yych == 'E')+ goto yy2318;+ if (yych != 'e')+ goto yy2282;+ yy2318:+ yych = *++p;+ if (yych != '/')+ goto yy2282;+ yych = *++p;+ if (yych <= 'W') {+ if (yych <= 'J') {+ if (yych == 'G')+ goto yy2321;+ if (yych <= 'I')+ goto yy2282;+ goto yy2322;+ } else {+ if (yych == 'P')+ goto yy2320;+ if (yych <= 'V')+ goto yy2282;+ goto yy2323;+ }+ } else {+ if (yych <= 'j') {+ if (yych == 'g')+ goto yy2321;+ if (yych <= 'i')+ goto yy2282;+ goto yy2322;+ } else {+ if (yych <= 'p') {+ if (yych <= 'o')+ goto yy2282;+ } else {+ if (yych == 'w')+ goto yy2323;+ goto yy2282;+ }+ }+ }+ yy2320:+ yych = *++p;+ if (yych == 'N')+ goto yy2331;+ if (yych == 'n')+ goto yy2331;+ goto yy2282;+ yy2321:+ yych = *++p;+ if (yych == 'I')+ goto yy2330;+ if (yych == 'i')+ goto yy2330;+ goto yy2282;+ yy2322:+ yych = *++p;+ if (yych == 'P')+ goto yy2328;+ if (yych == 'p')+ goto yy2328;+ goto yy2282;+ yy2323:+ yych = *++p;+ if (yych == 'E')+ goto yy2324;+ if (yych != 'e')+ goto yy2282;+ yy2324:+ yych = *++p;+ if (yych == 'B')+ goto yy2325;+ if (yych != 'b')+ goto yy2282;+ yy2325:+ yych = *++p;+ if (yych == 'P')+ goto yy2326;+ if (yych != 'p')+ goto yy2282;+ yy2326:+ ++p;+ { return 0; }+ yy2328:+ yych = *++p;+ if (yych == 'E')+ goto yy2329;+ if (yych != 'e')+ goto yy2282;+ yy2329:+ yych = *++p;+ if (yych == 'G')+ goto yy2326;+ if (yych == 'g')+ goto yy2326;+ goto yy2282;+ yy2330:+ yych = *++p;+ if (yych == 'F')+ goto yy2326;+ if (yych == 'f')+ goto yy2326;+ goto yy2282;+ yy2331:+ ++p;+ if ((yych = *p) == 'G')+ goto yy2326;+ if (yych == 'g')+ goto yy2326;+ goto yy2282;+ }+}
cbits/scanners.h view
@@ -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);
cbits/utf8.c view
@@ -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-};+ 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 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]];+static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) {+ int length = utf8proc_utf8class[str[0]]; - if (!length)- return -1;+ if (!length)+ return -1; - if ((bufsize_t)length > str_len)- return -str_len;+ 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;+ 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 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;- }+ 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;+ return length; } -void utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size)-{- bufsize_t i = 0;+void cmark_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) {+ 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;- }- }+ 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 > org) {+ cmark_strbuf_put(ob, line + org, i - org);+ } - if (i >= size) {- break;- } else {- // Invalid UTF-8- encode_unknown(ob);- i += charlen;- }- }+ 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;+int cmark_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;+ *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;- }+ 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;+ if (uc < 0)+ return -1; - *dst = uc;- return length;+ *dst = uc;+ return length; } -void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf)-{- uint8_t dst[4];- bufsize_t len = 0;+void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) {+ uint8_t dst[4];+ bufsize_t len = 0; - assert(uc >= 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;- }+ if (uc < 0x80) {+ dst[0] = (uint8_t)(uc);+ len = 1;+ } else if (uc < 0x800) {+ dst[0] = (uint8_t)(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] = (uint8_t)(0xE0 + (uc >> 12));+ dst[1] = 0x80 + ((uc >> 6) & 0x3F);+ dst[2] = 0x80 + (uc & 0x3F);+ len = 3;+ } else if (uc < 0x110000) {+ dst[0] = (uint8_t)(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);+ cmark_strbuf_put(buf, dst, len); } -void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len)-{- int32_t c;+void cmark_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) cmark_utf8proc_encode_char(x, dest) - while (len > 0) {- bufsize_t char_len = utf8proc_iterate(str, len, &c);+ while (len > 0) {+ bufsize_t char_len = cmark_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;- }+ } else {+ encode_unknown(dest);+ char_len = -char_len;+ } - str += char_len;- 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 cmark_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 cmark_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); }
cbits/utf8.h view
@@ -8,12 +8,12 @@ extern "C" { #endif -void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);-void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);-int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);-void utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);-int utf8proc_is_space(int32_t uc);-int utf8proc_is_punctuation(int32_t uc);+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);+void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);+int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);+void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);+int cmark_utf8proc_is_space(int32_t uc);+int cmark_utf8proc_is_punctuation(int32_t uc); #ifdef __cplusplus }
cbits/xml.c view
@@ -11,157 +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);-- if (entering) {- indent(state);- cmark_strbuf_printf(xml, "<%s",- cmark_node_get_type_string(node));+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 (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) {- cmark_strbuf_printf(xml, " sourcepos=\"%d:%d-%d:%d\"",- node->start_line,- node->start_column,- node->end_line,- node->end_column);- }+ if (entering) {+ indent(state);+ cmark_strbuf_putc(xml, '<');+ cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); - literal = false;+ 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);+ } - 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\"");- cmark_strbuf_printf(xml, " start=\"%d\"",- cmark_node_get_list_start(node));- 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;- }- cmark_strbuf_printf(xml, " tight=\"%s\"",- (cmark_node_get_list_tight(node) ?- "true" : "false"));- break;- case CMARK_NODE_HEADER:- cmark_strbuf_printf(xml, " level=\"%d\"",- node->as.header.level);- 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");+ 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_printf(xml, "</%s>\n",- cmark_node_get_type_string(node));- }+ } 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;+ 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 };+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_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_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;+ cmark_iter_free(iter);+ return result; }
changelog view
@@ -1,3 +1,8 @@+cmark 0.4.1 (23 Aug 2015)++ * Updated to libcmark 0.22.0.+ * Bumped version bounds for HUnit.+ cmark 0.4.0.1 (14 Jul 2015) * API changes:
cmark.cabal view
@@ -1,5 +1,5 @@ name: cmark-version: 0.4.0.1+version: 0.4.1 synopsis: Fast, accurate CommonMark (Markdown) parser and renderer description: This package provides Haskell bindings for@@ -98,6 +98,6 @@ type: exitcode-stdio-1.0 main-is: test-cmark.hs hs-source-dirs: test- build-depends: base, cmark, text, HUnit >= 1.2 && < 1.3+ build-depends: base, cmark, text, HUnit >= 1.2 && < 1.4 ghc-options: -Wall -fno-warn-unused-do-bind -threaded default-language: Haskell98