diff options
| author | Yuki Izumi <kivikakk@github.com> | 2016-12-01 20:52:42 +1100 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2016-12-01 10:52:42 +0100 | 
| commit | a9da6782761e4d3ac7dfd3193fa43b73824afef4 (patch) | |
| tree | c0dcc68162fc0ea0bc2998be0d052b8cdcc802da | |
| parent | ea68f8830dcea3c21b91b02bf3bede8789961acd (diff) | |
Allow balanced nested parens in link destinations (#166)
| -rw-r--r-- | src/inlines.c | 87 | ||||
| -rw-r--r-- | src/scanners.c | 5126 | ||||
| -rw-r--r-- | src/scanners.h | 2 | ||||
| -rw-r--r-- | src/scanners.re | 15 | ||||
| -rw-r--r-- | test/spec.txt | 27 | 
5 files changed, 1593 insertions, 3664 deletions
| diff --git a/src/inlines.c b/src/inlines.c index f1c863f..c9cccfe 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -823,7 +823,44 @@ noMatch:    subj->pos = startpos; // rewind    return 0;  } +static bufsize_t manual_scan_link_url(cmark_chunk *input, bufsize_t offset) { +  bufsize_t i = offset; +  size_t nb_p = 0; + +  if (i < input->len && input->data[i] == '<') { +    ++i; +    while (i < input->len) { +      if (input->data[i] == '>') { +        ++i; +        break; +      } else if (input->data[i] == '\\') +        i += 2; +      else if (cmark_isspace(input->data[i])) +        return -1; +      else +        ++i; +    } +  } else { +    while (i < input->len) { +      if (input->data[i] == '\\') +        i += 2; +      else if (input->data[i] == '(') { +        ++nb_p; ++i; +      } else if (input->data[i] == ')') { +        if (nb_p == 0) +          break; +        --nb_p; ++i; +      } else if (cmark_isspace(input->data[i])) +        break; +      else +        ++i; +    } +  } +  if (i >= input->len) +    return -1; +  return i - offset; +}  // Return a link, an image, or a literal close bracket.  static cmark_node *handle_close_bracket(subject *subj) {    bufsize_t initial_pos, after_link_text_pos; @@ -865,7 +902,7 @@ static cmark_node *handle_close_bracket(subject *subj) {    // 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)) { +      ((n = manual_scan_link_url(&subj->input, subj->pos + 1 + sps)) > -1)) {      // try to parse an explicit link:      starturl = subj->pos + 1 + sps; // after ( @@ -996,31 +1033,31 @@ static cmark_node *handle_newline(subject *subj) {  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}; +    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, +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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; @@ -1171,8 +1208,8 @@ bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_strbuf *input,    // parse link url:    spnl(&subj); -  matchlen = scan_link_url(&subj.input, subj.pos); -  if (matchlen) { +  matchlen = manual_scan_link_url(&subj.input, subj.pos); +  if (matchlen > 0) {      url = cmark_chunk_dup(&subj.input, subj.pos, matchlen);      subj.pos += matchlen;    } else { diff --git a/src/scanners.c b/src/scanners.c index 21a433d..e929d21 100644 --- a/src/scanners.c +++ b/src/scanners.c @@ -1,7 +1,7 @@  /* Generated by re2c 0.15.3 */ -#include "scanners.h" -#include "chunk.h"  #include <stdlib.h> +#include "chunk.h" +#include "scanners.h"  bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,                     bufsize_t offset) { @@ -15233,2090 +15233,6 @@ bufsize_t _scan_html_block_end_5(const unsigned char *p) {    }  } -// 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, 0,   8,   128, 128, 8, -        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, -        128, 128, 128, 128, 8,   224, 224, 224, 224, 224, 224, 224, 128, 128, -        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, -        224, 224, 224, 224, 32,  224, 32,  224, 224, 224, 224, 224, 224, 224, -        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, -        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 yy952; -          goto yy968; -        } else { -          if (yych <= '\r') -            goto yy954; -          if (yych <= 0x1F) -            goto yy968; -          goto yy954; -        } -      } else { -        if (yych <= ')') { -          if (yych <= '\'') -            goto yy956; -          if (yych <= '(') -            goto yy966; -          goto yy968; -        } else { -          if (yych == '<') -            goto yy955; -          goto yy956; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy965; -          if (yych <= 0x7F) -            goto yy956; -        } else { -          if (yych <= 0xDF) -            goto yy957; -          if (yych <= 0xE0) -            goto yy959; -          goto yy960; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy964; -          if (yych <= 0xEF) -            goto yy960; -          goto yy961; -        } else { -          if (yych <= 0xF3) -            goto yy962; -          if (yych <= 0xF4) -            goto yy963; -        } -      } -    } -  yy951 : { return (bufsize_t)(p - start); } -  yy952: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -  yy953: -    if (yybm[0 + yych] & 8) { -      goto yy952; -    } -    if (yych <= 0x7F) { -      if (yych <= ')') { -        if (yych <= 0x1F) -          goto yy951; -        if (yych <= '\'') -          goto yy980; -        if (yych <= '(') -          goto yy971; -        goto yy951; -      } else { -        if (yych <= '<') { -          if (yych <= ';') -            goto yy980; -          goto yy1016; -        } else { -          if (yych == '\\') -            goto yy982; -          goto yy980; -        } -      } -    } else { -      if (yych <= 0xED) { -        if (yych <= 0xDF) { -          if (yych <= 0xC1) -            goto yy951; -          goto yy983; -        } else { -          if (yych <= 0xE0) -            goto yy984; -          if (yych <= 0xEC) -            goto yy985; -          goto yy989; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xEF) -            goto yy985; -          goto yy986; -        } else { -          if (yych <= 0xF3) -            goto yy987; -          if (yych <= 0xF4) -            goto yy988; -          goto yy951; -        } -      } -    } -  yy954: -    yyaccept = 0; -    yych = *(marker = ++p); -    goto yy953; -  yy955: -    yyaccept = 0; -    yych = *(marker = ++p); -    if (yybm[0 + yych] & 64) { -      goto yy1016; -    } -    if (yych <= '>') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy951; -          goto yy1029; -        } else { -          if (yych <= '\n') -            goto yy951; -          if (yych <= '\f') -            goto yy1029; -          goto yy951; -        } -      } else { -        if (yych <= '(') { -          if (yych <= 0x1F) -            goto yy1029; -          if (yych <= ' ') -            goto yy951; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1029; -          if (yych <= '<') -            goto yy980; -          goto yy1018; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy1015; -          goto yy951; -        } else { -          if (yych <= 0xDF) -            goto yy1020; -          if (yych <= 0xE0) -            goto yy1021; -          goto yy1022; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1026; -          if (yych <= 0xEF) -            goto yy1022; -          goto yy1023; -        } else { -          if (yych <= 0xF3) -            goto yy1024; -          if (yych <= 0xF4) -            goto yy1025; -          goto yy951; -        } -      } -    } -  yy956: -    yyaccept = 0; -    yych = *(marker = ++p); -    goto yy981; -  yy957: -    yych = *++p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy956; -  yy958: -    p = marker; -    if (yyaccept <= 1) { -      if (yyaccept == 0) { -        goto yy951; -      } else { -        goto yy967; -      } -    } else { -      goto yy1019; -    } -  yy959: -    yych = *++p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy957; -    goto yy958; -  yy960: -    yych = *++p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy957; -    goto yy958; -  yy961: -    yych = *++p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy960; -    goto yy958; -  yy962: -    yych = *++p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy960; -    goto yy958; -  yy963: -    yych = *++p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy960; -    goto yy958; -  yy964: -    yych = *++p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy957; -    goto yy958; -  yy965: -    yyaccept = 0; -    yych = *(marker = ++p); -    if (yych <= 0xDF) { -      if (yych <= 0x1F) { -        if (yych <= 0x08) -          goto yy980; -        if (yych <= '\r') -          goto yy951; -        goto yy980; -      } else { -        if (yych <= ' ') -          goto yy951; -        if (yych <= 0x7F) -          goto yy980; -        if (yych <= 0xC1) -          goto yy951; -        goto yy990; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych <= 0xE0) -          goto yy991; -        if (yych == 0xED) -          goto yy996; -        goto yy992; -      } else { -        if (yych <= 0xF0) -          goto yy993; -        if (yych <= 0xF3) -          goto yy994; -        if (yych <= 0xF4) -          goto yy995; -        goto yy951; -      } -    } -  yy966: -    yyaccept = 1; -    yych = *(marker = ++p); -    if (yych <= '(') { -      if (yych <= ' ') -        goto yy967; -      if (yych <= '\'') -        goto yy972; -    } else { -      if (yych <= 0x7F) -        goto yy972; -      if (yych <= 0xC1) -        goto yy967; -      if (yych <= 0xF4) -        goto yy972; -    } -  yy967 : { return 0; } -  yy968: -    yych = *++p; -    goto yy967; -  yy969: -    ++p; -    yych = *p; -    if (yybm[0 + yych] & 16) { -      goto yy969; -    } -    if (yych <= 0xE0) { -      if (yych <= ')') { -        if (yych <= ' ') -          goto yy958; -        if (yych >= ')') -          goto yy997; -      } else { -        if (yych <= 0x7F) -          goto yy971; -        if (yych <= 0xC1) -          goto yy958; -        if (yych <= 0xDF) -          goto yy973; -        goto yy974; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych == 0xED) -          goto yy979; -        goto yy975; -      } else { -        if (yych <= 0xF0) -          goto yy976; -        if (yych <= 0xF3) -          goto yy977; -        if (yych <= 0xF4) -          goto yy978; -        goto yy958; -      } -    } -  yy971: -    ++p; -    yych = *p; -  yy972: -    if (yybm[0 + yych] & 32) { -      goto yy971; -    } -    if (yych <= 0xE0) { -      if (yych <= '\\') { -        if (yych <= '(') -          goto yy958; -        if (yych <= ')') -          goto yy980; -        goto yy969; -      } else { -        if (yych <= 0xC1) -          goto yy958; -        if (yych >= 0xE0) -          goto yy974; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych == 0xED) -          goto yy979; -        goto yy975; -      } else { -        if (yych <= 0xF0) -          goto yy976; -        if (yych <= 0xF3) -          goto yy977; -        if (yych <= 0xF4) -          goto yy978; -        goto yy958; -      } -    } -  yy973: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy971; -    goto yy958; -  yy974: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy973; -    goto yy958; -  yy975: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy973; -    goto yy958; -  yy976: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy975; -    goto yy958; -  yy977: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy975; -    goto yy958; -  yy978: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy975; -    goto yy958; -  yy979: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy973; -    goto yy958; -  yy980: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -  yy981: -    if (yych <= 0xC1) { -      if (yych <= ')') { -        if (yych <= ' ') -          goto yy951; -        if (yych <= '\'') -          goto yy980; -        if (yych <= '(') -          goto yy971; -        goto yy951; -      } else { -        if (yych == '\\') -          goto yy982; -        if (yych <= 0x7F) -          goto yy980; -        goto yy951; -      } -    } else { -      if (yych <= 0xED) { -        if (yych <= 0xDF) -          goto yy983; -        if (yych <= 0xE0) -          goto yy984; -        if (yych <= 0xEC) -          goto yy985; -        goto yy989; -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xEF) -            goto yy985; -          goto yy986; -        } else { -          if (yych <= 0xF3) -            goto yy987; -          if (yych <= 0xF4) -            goto yy988; -          goto yy951; -        } -      } -    } -  yy982: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= 0xDF) { -      if (yych <= 0x1F) { -        if (yych <= 0x08) -          goto yy980; -        if (yych <= '\r') -          goto yy951; -        goto yy980; -      } else { -        if (yych <= ' ') -          goto yy951; -        if (yych <= 0x7F) -          goto yy980; -        if (yych <= 0xC1) -          goto yy951; -        goto yy990; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych <= 0xE0) -          goto yy991; -        if (yych == 0xED) -          goto yy996; -        goto yy992; -      } else { -        if (yych <= 0xF0) -          goto yy993; -        if (yych <= 0xF3) -          goto yy994; -        if (yych <= 0xF4) -          goto yy995; -        goto yy951; -      } -    } -  yy983: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy980; -    goto yy958; -  yy984: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy983; -    goto yy958; -  yy985: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy983; -    goto yy958; -  yy986: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy985; -    goto yy958; -  yy987: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy985; -    goto yy958; -  yy988: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy985; -    goto yy958; -  yy989: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy983; -    goto yy958; -  yy990: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy980; -    goto yy958; -  yy991: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy990; -    goto yy958; -  yy992: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy990; -    goto yy958; -  yy993: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy992; -    goto yy958; -  yy994: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy992; -    goto yy958; -  yy995: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy992; -    goto yy958; -  yy996: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy990; -    goto yy958; -  yy997: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -  yy998: -    if (yych <= 0xC1) { -      if (yych <= ')') { -        if (yych <= ' ') -          goto yy951; -        if (yych <= '\'') -          goto yy997; -        if (yych <= '(') -          goto yy971; -        goto yy980; -      } else { -        if (yych == '\\') -          goto yy999; -        if (yych <= 0x7F) -          goto yy997; -        goto yy951; -      } -    } else { -      if (yych <= 0xED) { -        if (yych <= 0xDF) -          goto yy1000; -        if (yych <= 0xE0) -          goto yy1001; -        if (yych <= 0xEC) -          goto yy1002; -        goto yy1006; -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xEF) -            goto yy1002; -          goto yy1003; -        } else { -          if (yych <= 0xF3) -            goto yy1004; -          if (yych <= 0xF4) -            goto yy1005; -          goto yy951; -        } -      } -    } -  yy999: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= 0xC1) { -      if (yych <= ' ') { -        if (yych <= 0x08) -          goto yy980; -        if (yych <= '\r') -          goto yy951; -        if (yych <= 0x1F) -          goto yy980; -        goto yy951; -      } else { -        if (yych == '\\') -          goto yy1007; -        if (yych <= 0x7F) -          goto yy997; -        goto yy951; -      } -    } else { -      if (yych <= 0xED) { -        if (yych <= 0xDF) -          goto yy1008; -        if (yych <= 0xE0) -          goto yy1009; -        if (yych <= 0xEC) -          goto yy1010; -        goto yy1014; -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xEF) -            goto yy1010; -          goto yy1011; -        } else { -          if (yych <= 0xF3) -            goto yy1012; -          if (yych <= 0xF4) -            goto yy1013; -          goto yy951; -        } -      } -    } -  yy1000: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy997; -    goto yy958; -  yy1001: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1000; -    goto yy958; -  yy1002: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1000; -    goto yy958; -  yy1003: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1002; -    goto yy958; -  yy1004: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1002; -    goto yy958; -  yy1005: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1002; -    goto yy958; -  yy1006: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1000; -    goto yy958; -  yy1007: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= 0xDF) { -      if (yych <= '[') { -        if (yych <= ' ') -          goto yy951; -        if (yych == '(') -          goto yy971; -        goto yy997; -      } else { -        if (yych <= '\\') -          goto yy999; -        if (yych <= 0x7F) -          goto yy997; -        if (yych <= 0xC1) -          goto yy951; -        goto yy1000; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych <= 0xE0) -          goto yy1001; -        if (yych == 0xED) -          goto yy1006; -        goto yy1002; -      } else { -        if (yych <= 0xF0) -          goto yy1003; -        if (yych <= 0xF3) -          goto yy1004; -        if (yych <= 0xF4) -          goto yy1005; -        goto yy951; -      } -    } -  yy1008: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy997; -    goto yy958; -  yy1009: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1008; -    goto yy958; -  yy1010: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1008; -    goto yy958; -  yy1011: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1010; -    goto yy958; -  yy1012: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1010; -    goto yy958; -  yy1013: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1010; -    goto yy958; -  yy1014: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1008; -    goto yy958; -  yy1015: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= '\\') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy980; -        } else { -          if (yych <= '\n') -            goto yy951; -          if (yych <= '\f') -            goto yy1029; -          goto yy951; -        } -      } else { -        if (yych <= '=') { -          if (yych == ' ') -            goto yy951; -        } else { -          if (yych <= '>') -            goto yy1073; -          if (yych >= '\\') -            goto yy1074; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych >= 0x80) -            goto yy951; -        } else { -          if (yych <= 0xDF) -            goto yy1075; -          if (yych <= 0xE0) -            goto yy1076; -          goto yy1077; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1081; -          if (yych <= 0xEF) -            goto yy1077; -          goto yy1078; -        } else { -          if (yych <= 0xF3) -            goto yy1079; -          if (yych <= 0xF4) -            goto yy1080; -          goto yy951; -        } -      } -    } -  yy1016: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yybm[0 + yych] & 64) { -      goto yy1016; -    } -    if (yych <= '>') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy951; -          goto yy1029; -        } else { -          if (yych <= '\n') -            goto yy951; -          if (yych <= '\f') -            goto yy1029; -          goto yy951; -        } -      } else { -        if (yych <= '(') { -          if (yych <= 0x1F) -            goto yy1029; -          if (yych <= ' ') -            goto yy951; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1029; -          if (yych <= '<') -            goto yy980; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy1015; -          goto yy951; -        } else { -          if (yych <= 0xDF) -            goto yy1020; -          if (yych <= 0xE0) -            goto yy1021; -          goto yy1022; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1026; -          if (yych <= 0xEF) -            goto yy1022; -          goto yy1023; -        } else { -          if (yych <= 0xF3) -            goto yy1024; -          if (yych <= 0xF4) -            goto yy1025; -          goto yy951; -        } -      } -    } -  yy1018: -    yyaccept = 2; -    yych = *(marker = ++p); -    if (yych <= ')') { -      if (yych <= ' ') -        goto yy1019; -      if (yych <= '(') -        goto yy981; -    } else { -      if (yych <= 0x7F) -        goto yy981; -      if (yych <= 0xC1) -        goto yy1019; -      if (yych <= 0xF4) -        goto yy981; -    } -  yy1019 : { return (bufsize_t)(p - start); } -  yy1020: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1016; -    goto yy958; -  yy1021: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1020; -    goto yy958; -  yy1022: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1020; -    goto yy958; -  yy1023: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1022; -    goto yy958; -  yy1024: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1022; -    goto yy958; -  yy1025: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1022; -    goto yy958; -  yy1026: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1020; -    goto yy958; -  yy1027: -    ++p; -    yych = *p; -    if (yych <= '=') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy958; -          if (yych >= '\t') -            goto yy958; -        } else { -          if (yych == '\r') -            goto yy958; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy958; -          if (yych <= '\'') -            goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1016; -          if (yych == '<') -            goto yy971; -          goto yy1027; -        } -      } -    } else { -      if (yych <= 0xE0) { -        if (yych <= '\\') { -          if (yych <= '>') -            goto yy1042; -          if (yych <= '[') -            goto yy1027; -          goto yy1043; -        } else { -          if (yych <= 0x7F) -            goto yy1027; -          if (yych <= 0xC1) -            goto yy958; -          if (yych <= 0xDF) -            goto yy1045; -          goto yy1046; -        } -      } else { -        if (yych <= 0xEF) { -          if (yych == 0xED) -            goto yy1051; -          goto yy1047; -        } else { -          if (yych <= 0xF0) -            goto yy1048; -          if (yych <= 0xF3) -            goto yy1049; -          if (yych <= 0xF4) -            goto yy1050; -          goto yy958; -        } -      } -    } -  yy1029: -    ++p; -    yych = *p; -    if (yybm[0 + yych] & 128) { -      goto yy1029; -    } -    if (yych <= 0xE0) { -      if (yych <= '\\') { -        if (yych <= '<') -          goto yy958; -        if (yych >= '?') -          goto yy1032; -      } else { -        if (yych <= 0xC1) -          goto yy958; -        if (yych <= 0xDF) -          goto yy1034; -        goto yy1035; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych == 0xED) -          goto yy1040; -        goto yy1036; -      } else { -        if (yych <= 0xF0) -          goto yy1037; -        if (yych <= 0xF3) -          goto yy1038; -        if (yych <= 0xF4) -          goto yy1039; -        goto yy958; -      } -    } -  yy1031: -    yych = *++p; -    goto yy1019; -  yy1032: -    ++p; -    yych = *p; -    if (yych <= '\\') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy958; -          goto yy1029; -        } else { -          if (yych <= '\n') -            goto yy958; -          if (yych <= '\f') -            goto yy1029; -          goto yy958; -        } -      } else { -        if (yych <= '=') { -          if (yych == ' ') -            goto yy958; -          goto yy1029; -        } else { -          if (yych <= '>') -            goto yy1041; -          if (yych <= '[') -            goto yy1029; -          goto yy1032; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= 0x7F) -            goto yy1029; -          goto yy958; -        } else { -          if (yych <= 0xDF) -            goto yy1034; -          if (yych <= 0xE0) -            goto yy1035; -          goto yy1036; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1040; -          if (yych <= 0xEF) -            goto yy1036; -          goto yy1037; -        } else { -          if (yych <= 0xF3) -            goto yy1038; -          if (yych <= 0xF4) -            goto yy1039; -          goto yy958; -        } -      } -    } -  yy1034: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1029; -    goto yy958; -  yy1035: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1034; -    goto yy958; -  yy1036: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1034; -    goto yy958; -  yy1037: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1036; -    goto yy958; -  yy1038: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1036; -    goto yy958; -  yy1039: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1036; -    goto yy958; -  yy1040: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1034; -    goto yy958; -  yy1041: -    yyaccept = 2; -    marker = ++p; -    yych = *p; -    if (yybm[0 + yych] & 128) { -      goto yy1029; -    } -    if (yych <= 0xE0) { -      if (yych <= '\\') { -        if (yych <= '<') -          goto yy1019; -        if (yych <= '>') -          goto yy1031; -        goto yy1032; -      } else { -        if (yych <= 0xC1) -          goto yy1019; -        if (yych <= 0xDF) -          goto yy1034; -        goto yy1035; -      } -    } else { -      if (yych <= 0xEF) { -        if (yych == 0xED) -          goto yy1040; -        goto yy1036; -      } else { -        if (yych <= 0xF0) -          goto yy1037; -        if (yych <= 0xF3) -          goto yy1038; -        if (yych <= 0xF4) -          goto yy1039; -        goto yy1019; -      } -    } -  yy1042: -    yyaccept = 2; -    yych = *(marker = ++p); -    if (yych <= '(') { -      if (yych <= ' ') -        goto yy1019; -      if (yych <= '\'') -        goto yy972; -      goto yy1019; -    } else { -      if (yych <= 0x7F) -        goto yy972; -      if (yych <= 0xC1) -        goto yy1019; -      if (yych <= 0xF4) -        goto yy972; -      goto yy1019; -    } -  yy1043: -    ++p; -    yych = *p; -    if (yych <= '[') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy958; -          if (yych <= 0x08) -            goto yy1029; -          goto yy958; -        } else { -          if (yych == '\r') -            goto yy958; -          goto yy1029; -        } -      } else { -        if (yych <= ')') { -          if (yych <= ' ') -            goto yy958; -          if (yych <= '(') -            goto yy1027; -          goto yy1052; -        } else { -          if (yych == '>') -            goto yy1054; -          goto yy1027; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy1043; -          if (yych <= 0x7F) -            goto yy1027; -          goto yy958; -        } else { -          if (yych <= 0xDF) -            goto yy1045; -          if (yych <= 0xE0) -            goto yy1046; -          goto yy1047; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1051; -          if (yych <= 0xEF) -            goto yy1047; -          goto yy1048; -        } else { -          if (yych <= 0xF3) -            goto yy1049; -          if (yych <= 0xF4) -            goto yy1050; -          goto yy958; -        } -      } -    } -  yy1045: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1027; -    goto yy958; -  yy1046: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1045; -    goto yy958; -  yy1047: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1045; -    goto yy958; -  yy1048: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1047; -    goto yy958; -  yy1049: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1047; -    goto yy958; -  yy1050: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1047; -    goto yy958; -  yy1051: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1045; -    goto yy958; -  yy1052: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= '=') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy951; -          if (yych <= 0x08) -            goto yy1029; -          goto yy951; -        } else { -          if (yych == '\r') -            goto yy951; -          goto yy1029; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy951; -          if (yych <= '\'') -            goto yy1052; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1016; -          if (yych == '<') -            goto yy997; -          goto yy1052; -        } -      } -    } else { -      if (yych <= 0xE0) { -        if (yych <= '\\') { -          if (yych <= '>') -            goto yy1055; -          if (yych <= '[') -            goto yy1052; -          goto yy1056; -        } else { -          if (yych <= 0x7F) -            goto yy1052; -          if (yych <= 0xC1) -            goto yy951; -          if (yych <= 0xDF) -            goto yy1057; -          goto yy1058; -        } -      } else { -        if (yych <= 0xEF) { -          if (yych == 0xED) -            goto yy1063; -          goto yy1059; -        } else { -          if (yych <= 0xF0) -            goto yy1060; -          if (yych <= 0xF3) -            goto yy1061; -          if (yych <= 0xF4) -            goto yy1062; -          goto yy951; -        } -      } -    } -  yy1054: -    yyaccept = 2; -    marker = ++p; -    yych = *p; -    if (yych <= '=') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy1019; -          if (yych <= 0x08) -            goto yy1029; -          goto yy1019; -        } else { -          if (yych == '\r') -            goto yy1019; -          goto yy1029; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy1019; -          if (yych <= '\'') -            goto yy1027; -          goto yy1029; -        } else { -          if (yych <= ')') -            goto yy1016; -          if (yych == '<') -            goto yy971; -          goto yy1027; -        } -      } -    } else { -      if (yych <= 0xE0) { -        if (yych <= '\\') { -          if (yych <= '>') -            goto yy1042; -          if (yych <= '[') -            goto yy1027; -          goto yy1043; -        } else { -          if (yych <= 0x7F) -            goto yy1027; -          if (yych <= 0xC1) -            goto yy1019; -          if (yych <= 0xDF) -            goto yy1045; -          goto yy1046; -        } -      } else { -        if (yych <= 0xEF) { -          if (yych == 0xED) -            goto yy1051; -          goto yy1047; -        } else { -          if (yych <= 0xF0) -            goto yy1048; -          if (yych <= 0xF3) -            goto yy1049; -          if (yych <= 0xF4) -            goto yy1050; -          goto yy1019; -        } -      } -    } -  yy1055: -    yyaccept = 2; -    yych = *(marker = ++p); -    if (yych <= ' ') -      goto yy1019; -    if (yych <= 0x7F) -      goto yy998; -    if (yych <= 0xC1) -      goto yy1019; -    if (yych <= 0xF4) -      goto yy998; -    goto yy1019; -  yy1056: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= '\\') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy980; -          goto yy1016; -        } else { -          if (yych <= '\n') -            goto yy951; -          if (yych <= '\f') -            goto yy1029; -          goto yy951; -        } -      } else { -        if (yych <= '=') { -          if (yych <= 0x1F) -            goto yy1016; -          if (yych <= ' ') -            goto yy951; -          goto yy1052; -        } else { -          if (yych <= '>') -            goto yy1064; -          if (yych <= '[') -            goto yy1052; -          goto yy1065; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= 0x7F) -            goto yy1052; -          goto yy951; -        } else { -          if (yych <= 0xDF) -            goto yy1066; -          if (yych <= 0xE0) -            goto yy1067; -          goto yy1068; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1072; -          if (yych <= 0xEF) -            goto yy1068; -          goto yy1069; -        } else { -          if (yych <= 0xF3) -            goto yy1070; -          if (yych <= 0xF4) -            goto yy1071; -          goto yy951; -        } -      } -    } -  yy1057: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1052; -    goto yy958; -  yy1058: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1057; -    goto yy958; -  yy1059: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1057; -    goto yy958; -  yy1060: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1059; -    goto yy958; -  yy1061: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1059; -    goto yy958; -  yy1062: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1059; -    goto yy958; -  yy1063: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1057; -    goto yy958; -  yy1064: -    yyaccept = 2; -    marker = ++p; -    yych = *p; -    if (yych <= '=') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy1019; -          if (yych <= 0x08) -            goto yy1029; -          goto yy1019; -        } else { -          if (yych == '\r') -            goto yy1019; -          goto yy1029; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy1019; -          if (yych <= '\'') -            goto yy1052; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1016; -          if (yych == '<') -            goto yy997; -          goto yy1052; -        } -      } -    } else { -      if (yych <= 0xE0) { -        if (yych <= '\\') { -          if (yych <= '>') -            goto yy1055; -          if (yych <= '[') -            goto yy1052; -          goto yy1056; -        } else { -          if (yych <= 0x7F) -            goto yy1052; -          if (yych <= 0xC1) -            goto yy1019; -          if (yych <= 0xDF) -            goto yy1057; -          goto yy1058; -        } -      } else { -        if (yych <= 0xEF) { -          if (yych == 0xED) -            goto yy1063; -          goto yy1059; -        } else { -          if (yych <= 0xF0) -            goto yy1060; -          if (yych <= 0xF3) -            goto yy1061; -          if (yych <= 0xF4) -            goto yy1062; -          goto yy1019; -        } -      } -    } -  yy1065: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= '[') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy951; -          if (yych <= 0x08) -            goto yy1029; -          goto yy951; -        } else { -          if (yych == '\r') -            goto yy951; -          goto yy1029; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy951; -          if (yych <= '\'') -            goto yy1052; -          goto yy1027; -        } else { -          if (yych == '>') -            goto yy1064; -          goto yy1052; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy1056; -          if (yych <= 0x7F) -            goto yy1052; -          goto yy951; -        } else { -          if (yych <= 0xDF) -            goto yy1057; -          if (yych <= 0xE0) -            goto yy1058; -          goto yy1059; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1063; -          if (yych <= 0xEF) -            goto yy1059; -          goto yy1060; -        } else { -          if (yych <= 0xF3) -            goto yy1061; -          if (yych <= 0xF4) -            goto yy1062; -          goto yy951; -        } -      } -    } -  yy1066: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1052; -    goto yy958; -  yy1067: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1066; -    goto yy958; -  yy1068: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1066; -    goto yy958; -  yy1069: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1068; -    goto yy958; -  yy1070: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1068; -    goto yy958; -  yy1071: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1068; -    goto yy958; -  yy1072: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1066; -    goto yy958; -  yy1073: -    yyaccept = 2; -    marker = ++p; -    yych = *p; -    if (yybm[0 + yych] & 64) { -      goto yy1016; -    } -    if (yych <= '>') { -      if (yych <= '\r') { -        if (yych <= 0x08) { -          if (yych <= 0x00) -            goto yy1019; -          goto yy1029; -        } else { -          if (yych <= '\n') -            goto yy1019; -          if (yych <= '\f') -            goto yy1029; -          goto yy1019; -        } -      } else { -        if (yych <= '(') { -          if (yych <= 0x1F) -            goto yy1029; -          if (yych <= ' ') -            goto yy1019; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1029; -          if (yych <= '<') -            goto yy980; -          goto yy1018; -        } -      } -    } else { -      if (yych <= 0xEC) { -        if (yych <= 0xC1) { -          if (yych <= '\\') -            goto yy1015; -          goto yy1019; -        } else { -          if (yych <= 0xDF) -            goto yy1020; -          if (yych <= 0xE0) -            goto yy1021; -          goto yy1022; -        } -      } else { -        if (yych <= 0xF0) { -          if (yych <= 0xED) -            goto yy1026; -          if (yych <= 0xEF) -            goto yy1022; -          goto yy1023; -        } else { -          if (yych <= 0xF3) -            goto yy1024; -          if (yych <= 0xF4) -            goto yy1025; -          goto yy1019; -        } -      } -    } -  yy1074: -    yyaccept = 0; -    marker = ++p; -    yych = *p; -    if (yych <= '>') { -      if (yych <= 0x1F) { -        if (yych <= '\n') { -          if (yych <= 0x00) -            goto yy951; -          if (yych <= 0x08) -            goto yy1029; -          goto yy951; -        } else { -          if (yych == '\r') -            goto yy951; -          goto yy1029; -        } -      } else { -        if (yych <= '(') { -          if (yych <= ' ') -            goto yy951; -          if (yych <= '\'') -            goto yy1016; -          goto yy1027; -        } else { -          if (yych <= ')') -            goto yy1029; -          if (yych <= '=') -            goto yy1016; -          goto yy1073; -        } -      } -    } else { -      if (yych <= 0xE0) { -        if (yych <= 0x7F) { -          if (yych == '\\') -            goto yy1015; -          goto yy1016; -        } else { -          if (yych <= 0xC1) -            goto yy951; -          if (yych <= 0xDF) -            goto yy1020; -          goto yy1021; -        } -      } else { -        if (yych <= 0xEF) { -          if (yych == 0xED) -            goto yy1026; -          goto yy1022; -        } else { -          if (yych <= 0xF0) -            goto yy1023; -          if (yych <= 0xF3) -            goto yy1024; -          if (yych <= 0xF4) -            goto yy1025; -          goto yy951; -        } -      } -    } -  yy1075: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1016; -    goto yy958; -  yy1076: -    ++p; -    yych = *p; -    if (yych <= 0x9F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1075; -    goto yy958; -  yy1077: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1075; -    goto yy958; -  yy1078: -    ++p; -    yych = *p; -    if (yych <= 0x8F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1077; -    goto yy958; -  yy1079: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0xBF) -      goto yy1077; -    goto yy958; -  yy1080: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x8F) -      goto yy1077; -    goto yy958; -  yy1081: -    ++p; -    yych = *p; -    if (yych <= 0x7F) -      goto yy958; -    if (yych <= 0x9F) -      goto yy1075; -    goto yy958; -  } -} -  // 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). @@ -17352,640 +15268,640 @@ bufsize_t _scan_link_title(const unsigned char *p) {      if (yych <= 0xC1) {        if (yych <= '"') {          if (yych == '\n') -          goto yy1084; +          goto yy951;          if (yych <= '!') -          goto yy1088; -        goto yy1085; +          goto yy955; +        goto yy952;        } else {          if (yych <= '\'') {            if (yych <= '&') -            goto yy1088; -          goto yy1086; +            goto yy955; +          goto yy953;          } else {            if (yych <= '(') -            goto yy1087; +            goto yy954;            if (yych <= 0x7F) -            goto yy1088; +            goto yy955;          }        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) -          goto yy1089; +          goto yy956;          if (yych <= 0xE0) -          goto yy1091; +          goto yy958;          if (yych <= 0xEC) -          goto yy1092; -        goto yy1096; +          goto yy959; +        goto yy963;        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1092; -          goto yy1093; +            goto yy959; +          goto yy960;          } else {            if (yych <= 0xF3) -            goto yy1094; +            goto yy961;            if (yych <= 0xF4) -            goto yy1095; +            goto yy962;          }        }      } -  yy1084 : { return 0; } -  yy1085: +  yy951 : { return 0; } +  yy952:      yyaccept = 0;      yych = *(marker = ++p);      if (yych <= 0x00) -      goto yy1084; +      goto yy951;      if (yych <= 0x7F) -      goto yy1128; +      goto yy995;      if (yych <= 0xC1) -      goto yy1084; +      goto yy951;      if (yych <= 0xF4) -      goto yy1128; -    goto yy1084; -  yy1086: +      goto yy995; +    goto yy951; +  yy953:      yyaccept = 0;      yych = *(marker = ++p);      if (yych <= 0x00) -      goto yy1084; +      goto yy951;      if (yych <= 0x7F) -      goto yy1114; +      goto yy981;      if (yych <= 0xC1) -      goto yy1084; +      goto yy951;      if (yych <= 0xF4) -      goto yy1114; -    goto yy1084; -  yy1087: +      goto yy981; +    goto yy951; +  yy954:      yyaccept = 0;      yych = *(marker = ++p);      if (yych <= 0x00) -      goto yy1084; +      goto yy951;      if (yych <= 0x7F) -      goto yy1100; +      goto yy967;      if (yych <= 0xC1) -      goto yy1084; +      goto yy951;      if (yych <= 0xF4) -      goto yy1100; -    goto yy1084; -  yy1088: +      goto yy967; +    goto yy951; +  yy955:      yych = *++p; -    goto yy1084; -  yy1089: +    goto yy951; +  yy956:      yych = *++p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1088; -  yy1090: +      goto yy955; +  yy957:      p = marker;      if (yyaccept <= 1) {        if (yyaccept == 0) { -        goto yy1084; +        goto yy951;        } else { -        goto yy1109; +        goto yy976;        }      } else {        if (yyaccept == 2) { -        goto yy1123; +        goto yy990;        } else { -        goto yy1137; +        goto yy1004;        }      } -  yy1091: +  yy958:      yych = *++p;      if (yych <= 0x9F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1089; -    goto yy1090; -  yy1092: +      goto yy956; +    goto yy957; +  yy959:      yych = *++p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1089; -    goto yy1090; -  yy1093: +      goto yy956; +    goto yy957; +  yy960:      yych = *++p;      if (yych <= 0x8F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1092; -    goto yy1090; -  yy1094: +      goto yy959; +    goto yy957; +  yy961:      yych = *++p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1092; -    goto yy1090; -  yy1095: +      goto yy959; +    goto yy957; +  yy962:      yych = *++p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x8F) -      goto yy1092; -    goto yy1090; -  yy1096: +      goto yy959; +    goto yy957; +  yy963:      yych = *++p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x9F) -      goto yy1089; -    goto yy1090; -  yy1097: +      goto yy956; +    goto yy957; +  yy964:      ++p;      yych = *p;      if (yybm[0 + yych] & 32) { -      goto yy1099; +      goto yy966;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= ')') -          goto yy1110; -        goto yy1097; +          goto yy977; +        goto yy964;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych <= 0xDF) -          goto yy1101; -        goto yy1102; +          goto yy968; +        goto yy969;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1107; -        goto yy1103; +          goto yy974; +        goto yy970;        } else {          if (yych <= 0xF0) -          goto yy1104; +          goto yy971;          if (yych <= 0xF3) -          goto yy1105; +          goto yy972;          if (yych <= 0xF4) -          goto yy1106; -        goto yy1090; +          goto yy973; +        goto yy957;        }      } -  yy1099: +  yy966:      ++p;      yych = *p; -  yy1100: +  yy967:      if (yybm[0 + yych] & 32) { -      goto yy1099; +      goto yy966;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= ')') -          goto yy1108; -        goto yy1097; +          goto yy975; +        goto yy964;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych >= 0xE0) -          goto yy1102; +          goto yy969;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1107; -        goto yy1103; +          goto yy974; +        goto yy970;        } else {          if (yych <= 0xF0) -          goto yy1104; +          goto yy971;          if (yych <= 0xF3) -          goto yy1105; +          goto yy972;          if (yych <= 0xF4) -          goto yy1106; -        goto yy1090; +          goto yy973; +        goto yy957;        }      } -  yy1101: +  yy968:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1099; -    goto yy1090; -  yy1102: +      goto yy966; +    goto yy957; +  yy969:      ++p;      yych = *p;      if (yych <= 0x9F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1101; -    goto yy1090; -  yy1103: +      goto yy968; +    goto yy957; +  yy970:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1101; -    goto yy1090; -  yy1104: +      goto yy968; +    goto yy957; +  yy971:      ++p;      yych = *p;      if (yych <= 0x8F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1103; -    goto yy1090; -  yy1105: +      goto yy970; +    goto yy957; +  yy972:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1103; -    goto yy1090; -  yy1106: +      goto yy970; +    goto yy957; +  yy973:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x8F) -      goto yy1103; -    goto yy1090; -  yy1107: +      goto yy970; +    goto yy957; +  yy974:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x9F) -      goto yy1101; -    goto yy1090; -  yy1108: +      goto yy968; +    goto yy957; +  yy975:      ++p; -  yy1109 : { return (bufsize_t)(p - start); } -  yy1110: +  yy976 : { return (bufsize_t)(p - start); } +  yy977:      yyaccept = 1;      marker = ++p;      yych = *p;      if (yybm[0 + yych] & 32) { -      goto yy1099; +      goto yy966;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1109; +          goto yy976;          if (yych <= ')') -          goto yy1108; -        goto yy1097; +          goto yy975; +        goto yy964;        } else {          if (yych <= 0xC1) -          goto yy1109; +          goto yy976;          if (yych <= 0xDF) -          goto yy1101; -        goto yy1102; +          goto yy968; +        goto yy969;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1107; -        goto yy1103; +          goto yy974; +        goto yy970;        } else {          if (yych <= 0xF0) -          goto yy1104; +          goto yy971;          if (yych <= 0xF3) -          goto yy1105; +          goto yy972;          if (yych <= 0xF4) -          goto yy1106; -        goto yy1109; +          goto yy973; +        goto yy976;        }      } -  yy1111: +  yy978:      ++p;      yych = *p;      if (yybm[0 + yych] & 64) { -      goto yy1113; +      goto yy980;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= '\'') -          goto yy1124; -        goto yy1111; +          goto yy991; +        goto yy978;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych <= 0xDF) -          goto yy1115; -        goto yy1116; +          goto yy982; +        goto yy983;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1121; -        goto yy1117; +          goto yy988; +        goto yy984;        } else {          if (yych <= 0xF0) -          goto yy1118; +          goto yy985;          if (yych <= 0xF3) -          goto yy1119; +          goto yy986;          if (yych <= 0xF4) -          goto yy1120; -        goto yy1090; +          goto yy987; +        goto yy957;        }      } -  yy1113: +  yy980:      ++p;      yych = *p; -  yy1114: +  yy981:      if (yybm[0 + yych] & 64) { -      goto yy1113; +      goto yy980;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= '\'') -          goto yy1122; -        goto yy1111; +          goto yy989; +        goto yy978;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych >= 0xE0) -          goto yy1116; +          goto yy983;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1121; -        goto yy1117; +          goto yy988; +        goto yy984;        } else {          if (yych <= 0xF0) -          goto yy1118; +          goto yy985;          if (yych <= 0xF3) -          goto yy1119; +          goto yy986;          if (yych <= 0xF4) -          goto yy1120; -        goto yy1090; +          goto yy987; +        goto yy957;        }      } -  yy1115: +  yy982:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1113; -    goto yy1090; -  yy1116: +      goto yy980; +    goto yy957; +  yy983:      ++p;      yych = *p;      if (yych <= 0x9F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1115; -    goto yy1090; -  yy1117: +      goto yy982; +    goto yy957; +  yy984:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1115; -    goto yy1090; -  yy1118: +      goto yy982; +    goto yy957; +  yy985:      ++p;      yych = *p;      if (yych <= 0x8F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1117; -    goto yy1090; -  yy1119: +      goto yy984; +    goto yy957; +  yy986:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1117; -    goto yy1090; -  yy1120: +      goto yy984; +    goto yy957; +  yy987:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x8F) -      goto yy1117; -    goto yy1090; -  yy1121: +      goto yy984; +    goto yy957; +  yy988:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x9F) -      goto yy1115; -    goto yy1090; -  yy1122: +      goto yy982; +    goto yy957; +  yy989:      ++p; -  yy1123 : { return (bufsize_t)(p - start); } -  yy1124: +  yy990 : { return (bufsize_t)(p - start); } +  yy991:      yyaccept = 2;      marker = ++p;      yych = *p;      if (yybm[0 + yych] & 64) { -      goto yy1113; +      goto yy980;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1123; +          goto yy990;          if (yych <= '\'') -          goto yy1122; -        goto yy1111; +          goto yy989; +        goto yy978;        } else {          if (yych <= 0xC1) -          goto yy1123; +          goto yy990;          if (yych <= 0xDF) -          goto yy1115; -        goto yy1116; +          goto yy982; +        goto yy983;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1121; -        goto yy1117; +          goto yy988; +        goto yy984;        } else {          if (yych <= 0xF0) -          goto yy1118; +          goto yy985;          if (yych <= 0xF3) -          goto yy1119; +          goto yy986;          if (yych <= 0xF4) -          goto yy1120; -        goto yy1123; +          goto yy987; +        goto yy990;        }      } -  yy1125: +  yy992:      ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1127; +      goto yy994;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= '"') -          goto yy1138; -        goto yy1125; +          goto yy1005; +        goto yy992;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych <= 0xDF) -          goto yy1129; -        goto yy1130; +          goto yy996; +        goto yy997;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1135; -        goto yy1131; +          goto yy1002; +        goto yy998;        } else {          if (yych <= 0xF0) -          goto yy1132; +          goto yy999;          if (yych <= 0xF3) -          goto yy1133; +          goto yy1000;          if (yych <= 0xF4) -          goto yy1134; -        goto yy1090; +          goto yy1001; +        goto yy957;        }      } -  yy1127: +  yy994:      ++p;      yych = *p; -  yy1128: +  yy995:      if (yybm[0 + yych] & 128) { -      goto yy1127; +      goto yy994;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1090; +          goto yy957;          if (yych <= '"') -          goto yy1136; -        goto yy1125; +          goto yy1003; +        goto yy992;        } else {          if (yych <= 0xC1) -          goto yy1090; +          goto yy957;          if (yych >= 0xE0) -          goto yy1130; +          goto yy997;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1135; -        goto yy1131; +          goto yy1002; +        goto yy998;        } else {          if (yych <= 0xF0) -          goto yy1132; +          goto yy999;          if (yych <= 0xF3) -          goto yy1133; +          goto yy1000;          if (yych <= 0xF4) -          goto yy1134; -        goto yy1090; +          goto yy1001; +        goto yy957;        }      } -  yy1129: +  yy996:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1127; -    goto yy1090; -  yy1130: +      goto yy994; +    goto yy957; +  yy997:      ++p;      yych = *p;      if (yych <= 0x9F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1129; -    goto yy1090; -  yy1131: +      goto yy996; +    goto yy957; +  yy998:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1129; -    goto yy1090; -  yy1132: +      goto yy996; +    goto yy957; +  yy999:      ++p;      yych = *p;      if (yych <= 0x8F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1131; -    goto yy1090; -  yy1133: +      goto yy998; +    goto yy957; +  yy1000:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0xBF) -      goto yy1131; -    goto yy1090; -  yy1134: +      goto yy998; +    goto yy957; +  yy1001:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x8F) -      goto yy1131; -    goto yy1090; -  yy1135: +      goto yy998; +    goto yy957; +  yy1002:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1090; +      goto yy957;      if (yych <= 0x9F) -      goto yy1129; -    goto yy1090; -  yy1136: +      goto yy996; +    goto yy957; +  yy1003:      ++p; -  yy1137 : { return (bufsize_t)(p - start); } -  yy1138: +  yy1004 : { return (bufsize_t)(p - start); } +  yy1005:      yyaccept = 3;      marker = ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1127; +      goto yy994;      }      if (yych <= 0xE0) {        if (yych <= '\\') {          if (yych <= 0x00) -          goto yy1137; +          goto yy1004;          if (yych <= '"') -          goto yy1136; -        goto yy1125; +          goto yy1003; +        goto yy992;        } else {          if (yych <= 0xC1) -          goto yy1137; +          goto yy1004;          if (yych <= 0xDF) -          goto yy1129; -        goto yy1130; +          goto yy996; +        goto yy997;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1135; -        goto yy1131; +          goto yy1002; +        goto yy998;        } else {          if (yych <= 0xF0) -          goto yy1132; +          goto yy999;          if (yych <= 0xF3) -          goto yy1133; +          goto yy1000;          if (yych <= 0xF4) -          goto yy1134; -        goto yy1137; +          goto yy1001; +        goto yy1004;        }      }    } @@ -18017,104 +15933,104 @@ bufsize_t _scan_spacechars(const unsigned char *p) {      if (yych <= 0xC1) {        if (yych <= '\r') {          if (yych <= 0x08) -          goto yy1145; +          goto yy1012;          if (yych == '\n') -          goto yy1143; -        goto yy1142; +          goto yy1010; +        goto yy1009;        } else {          if (yych == ' ') -          goto yy1142; +          goto yy1009;          if (yych <= 0x7F) -          goto yy1145; +          goto yy1012;        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) -          goto yy1147; +          goto yy1014;          if (yych <= 0xE0) -          goto yy1149; +          goto yy1016;          if (yych <= 0xEC) -          goto yy1150; -        goto yy1154; +          goto yy1017; +        goto yy1021;        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1150; -          goto yy1151; +            goto yy1017; +          goto yy1018;          } else {            if (yych <= 0xF3) -            goto yy1152; +            goto yy1019;            if (yych <= 0xF4) -            goto yy1153; +            goto yy1020;          }        }      } -  yy1141 : { return (bufsize_t)(p - start); } -  yy1142: +  yy1008 : { return (bufsize_t)(p - start); } +  yy1009:      yych = *++p; -    goto yy1144; -  yy1143: +    goto yy1011; +  yy1010:      ++p;      yych = *p; -  yy1144: +  yy1011:      if (yybm[0 + yych] & 128) { -      goto yy1143; +      goto yy1010;      } -    goto yy1141; -  yy1145: +    goto yy1008; +  yy1012:      ++p;      { return 0; } -  yy1147: +  yy1014:      yych = *++p;      if (yych <= 0x7F) -      goto yy1148; +      goto yy1015;      if (yych <= 0xBF) -      goto yy1145; -  yy1148: +      goto yy1012; +  yy1015:      p = marker; -    goto yy1141; -  yy1149: +    goto yy1008; +  yy1016:      yych = *++p;      if (yych <= 0x9F) -      goto yy1148; +      goto yy1015;      if (yych <= 0xBF) -      goto yy1147; -    goto yy1148; -  yy1150: +      goto yy1014; +    goto yy1015; +  yy1017:      yych = *++p;      if (yych <= 0x7F) -      goto yy1148; +      goto yy1015;      if (yych <= 0xBF) -      goto yy1147; -    goto yy1148; -  yy1151: +      goto yy1014; +    goto yy1015; +  yy1018:      yych = *++p;      if (yych <= 0x8F) -      goto yy1148; +      goto yy1015;      if (yych <= 0xBF) -      goto yy1150; -    goto yy1148; -  yy1152: +      goto yy1017; +    goto yy1015; +  yy1019:      yych = *++p;      if (yych <= 0x7F) -      goto yy1148; +      goto yy1015;      if (yych <= 0xBF) -      goto yy1150; -    goto yy1148; -  yy1153: +      goto yy1017; +    goto yy1015; +  yy1020:      yych = *++p;      if (yych <= 0x7F) -      goto yy1148; +      goto yy1015;      if (yych <= 0x8F) -      goto yy1150; -    goto yy1148; -  yy1154: +      goto yy1017; +    goto yy1015; +  yy1021:      ++p;      if ((yych = *p) <= 0x7F) -      goto yy1148; +      goto yy1015;      if (yych <= 0x9F) -      goto yy1147; -    goto yy1148; +      goto yy1014; +    goto yy1015;    }  } @@ -18143,190 +16059,190 @@ bufsize_t _scan_atx_heading_start(const unsigned char *p) {      if (yych <= 0xDF) {        if (yych <= '"') {          if (yych != '\n') -          goto yy1159; +          goto yy1026;        } else {          if (yych <= '#') -          goto yy1158; +          goto yy1025;          if (yych <= 0x7F) -          goto yy1159; +          goto yy1026;          if (yych >= 0xC2) -          goto yy1160; +          goto yy1027;        }      } else {        if (yych <= 0xEF) {          if (yych <= 0xE0) -          goto yy1162; +          goto yy1029;          if (yych == 0xED) -          goto yy1167; -        goto yy1163; +          goto yy1034; +        goto yy1030;        } else {          if (yych <= 0xF0) -          goto yy1164; +          goto yy1031;          if (yych <= 0xF3) -          goto yy1165; +          goto yy1032;          if (yych <= 0xF4) -          goto yy1166; +          goto yy1033;        }      } -  yy1157 : { return 0; } -  yy1158: +  yy1024 : { return 0; } +  yy1025:      yych = *(marker = ++p);      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1157; +        goto yy1024;        if (yych <= '\n') -        goto yy1168; -      goto yy1157; +        goto yy1035; +      goto yy1024;      } else {        if (yych <= '\r') -        goto yy1168; +        goto yy1035;        if (yych == '#') -        goto yy1172; -      goto yy1157; +        goto yy1039; +      goto yy1024;      } -  yy1159: +  yy1026:      yych = *++p; -    goto yy1157; -  yy1160: +    goto yy1024; +  yy1027:      yych = *++p;      if (yych <= 0x7F) -      goto yy1161; +      goto yy1028;      if (yych <= 0xBF) -      goto yy1159; -  yy1161: +      goto yy1026; +  yy1028:      p = marker; -    goto yy1157; -  yy1162: +    goto yy1024; +  yy1029:      yych = *++p;      if (yych <= 0x9F) -      goto yy1161; +      goto yy1028;      if (yych <= 0xBF) -      goto yy1160; -    goto yy1161; -  yy1163: +      goto yy1027; +    goto yy1028; +  yy1030:      yych = *++p;      if (yych <= 0x7F) -      goto yy1161; +      goto yy1028;      if (yych <= 0xBF) -      goto yy1160; -    goto yy1161; -  yy1164: +      goto yy1027; +    goto yy1028; +  yy1031:      yych = *++p;      if (yych <= 0x8F) -      goto yy1161; +      goto yy1028;      if (yych <= 0xBF) -      goto yy1163; -    goto yy1161; -  yy1165: +      goto yy1030; +    goto yy1028; +  yy1032:      yych = *++p;      if (yych <= 0x7F) -      goto yy1161; +      goto yy1028;      if (yych <= 0xBF) -      goto yy1163; -    goto yy1161; -  yy1166: +      goto yy1030; +    goto yy1028; +  yy1033:      yych = *++p;      if (yych <= 0x7F) -      goto yy1161; +      goto yy1028;      if (yych <= 0x8F) -      goto yy1163; -    goto yy1161; -  yy1167: +      goto yy1030; +    goto yy1028; +  yy1034:      yych = *++p;      if (yych <= 0x7F) -      goto yy1161; +      goto yy1028;      if (yych <= 0x9F) -      goto yy1160; -    goto yy1161; -  yy1168: +      goto yy1027; +    goto yy1028; +  yy1035:      ++p; -  yy1169 : { return (bufsize_t)(p - start); } -  yy1170: +  yy1036 : { return (bufsize_t)(p - start); } +  yy1037:      ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      } -    goto yy1169; -  yy1172: +    goto yy1036; +  yy1039:      yych = *++p;      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1161; +        goto yy1028;        if (yych <= '\n') -        goto yy1168; -      goto yy1161; +        goto yy1035; +      goto yy1028;      } else {        if (yych <= '\r') -        goto yy1168; +        goto yy1035;        if (yych != '#') -        goto yy1161; +        goto yy1028;      }      yych = *++p;      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1161; +        goto yy1028;        if (yych <= '\n') -        goto yy1168; -      goto yy1161; +        goto yy1035; +      goto yy1028;      } else {        if (yych <= '\r') -        goto yy1168; +        goto yy1035;        if (yych != '#') -        goto yy1161; +        goto yy1028;      }      yych = *++p;      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1161; +        goto yy1028;        if (yych <= '\n') -        goto yy1168; -      goto yy1161; +        goto yy1035; +      goto yy1028;      } else {        if (yych <= '\r') -        goto yy1168; +        goto yy1035;        if (yych != '#') -        goto yy1161; +        goto yy1028;      }      yych = *++p;      if (yybm[0 + yych] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1161; +        goto yy1028;        if (yych <= '\n') -        goto yy1168; -      goto yy1161; +        goto yy1035; +      goto yy1028;      } else {        if (yych <= '\r') -        goto yy1168; +        goto yy1035;        if (yych != '#') -        goto yy1161; +        goto yy1028;      }      ++p;      if (yybm[0 + (yych = *p)] & 128) { -      goto yy1170; +      goto yy1037;      }      if (yych <= 0x08) -      goto yy1161; +      goto yy1028;      if (yych <= '\n') -      goto yy1168; +      goto yy1035;      if (yych == '\r') -      goto yy1168; -    goto yy1161; +      goto yy1035; +    goto yy1028;    }  } @@ -18355,205 +16271,205 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {      if (yych <= 0xC1) {        if (yych <= '-') {          if (yych == '\n') -          goto yy1179; +          goto yy1046;          if (yych <= ',') -          goto yy1182; -        goto yy1181; +          goto yy1049; +        goto yy1048;        } else {          if (yych == '=') -          goto yy1180; +          goto yy1047;          if (yych <= 0x7F) -          goto yy1182; +          goto yy1049;        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) -          goto yy1183; +          goto yy1050;          if (yych <= 0xE0) -          goto yy1185; +          goto yy1052;          if (yych <= 0xEC) -          goto yy1186; -        goto yy1190; +          goto yy1053; +        goto yy1057;        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1186; -          goto yy1187; +            goto yy1053; +          goto yy1054;          } else {            if (yych <= 0xF3) -            goto yy1188; +            goto yy1055;            if (yych <= 0xF4) -            goto yy1189; +            goto yy1056;          }        }      } -  yy1179 : { return 0; } -  yy1180: +  yy1046 : { return 0; } +  yy1047:      yych = *(marker = ++p);      if (yybm[0 + yych] & 128) { -      goto yy1201; +      goto yy1068;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1179; +        goto yy1046;        if (yych <= '\n') -        goto yy1198; -      goto yy1179; +        goto yy1065; +      goto yy1046;      } else {        if (yych <= '\r') -        goto yy1198; +        goto yy1065;        if (yych == ' ') -        goto yy1198; -      goto yy1179; +        goto yy1065; +      goto yy1046;      } -  yy1181: +  yy1048:      yych = *(marker = ++p);      if (yybm[0 + yych] & 64) { -      goto yy1195; +      goto yy1062;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1179; +        goto yy1046;        if (yych <= '\n') -        goto yy1192; -      goto yy1179; +        goto yy1059; +      goto yy1046;      } else {        if (yych <= '\r') -        goto yy1192; +        goto yy1059;        if (yych == ' ') -        goto yy1192; -      goto yy1179; +        goto yy1059; +      goto yy1046;      } -  yy1182: +  yy1049:      yych = *++p; -    goto yy1179; -  yy1183: +    goto yy1046; +  yy1050:      yych = *++p;      if (yych <= 0x7F) -      goto yy1184; +      goto yy1051;      if (yych <= 0xBF) -      goto yy1182; -  yy1184: +      goto yy1049; +  yy1051:      p = marker; -    goto yy1179; -  yy1185: +    goto yy1046; +  yy1052:      yych = *++p;      if (yych <= 0x9F) -      goto yy1184; +      goto yy1051;      if (yych <= 0xBF) -      goto yy1183; -    goto yy1184; -  yy1186: +      goto yy1050; +    goto yy1051; +  yy1053:      yych = *++p;      if (yych <= 0x7F) -      goto yy1184; +      goto yy1051;      if (yych <= 0xBF) -      goto yy1183; -    goto yy1184; -  yy1187: +      goto yy1050; +    goto yy1051; +  yy1054:      yych = *++p;      if (yych <= 0x8F) -      goto yy1184; +      goto yy1051;      if (yych <= 0xBF) -      goto yy1186; -    goto yy1184; -  yy1188: +      goto yy1053; +    goto yy1051; +  yy1055:      yych = *++p;      if (yych <= 0x7F) -      goto yy1184; +      goto yy1051;      if (yych <= 0xBF) -      goto yy1186; -    goto yy1184; -  yy1189: +      goto yy1053; +    goto yy1051; +  yy1056:      yych = *++p;      if (yych <= 0x7F) -      goto yy1184; +      goto yy1051;      if (yych <= 0x8F) -      goto yy1186; -    goto yy1184; -  yy1190: +      goto yy1053; +    goto yy1051; +  yy1057:      yych = *++p;      if (yych <= 0x7F) -      goto yy1184; +      goto yy1051;      if (yych <= 0x9F) -      goto yy1183; -    goto yy1184; -  yy1191: +      goto yy1050; +    goto yy1051; +  yy1058:      ++p;      yych = *p; -  yy1192: +  yy1059:      if (yybm[0 + yych] & 32) { -      goto yy1191; +      goto yy1058;      }      if (yych <= 0x08) -      goto yy1184; +      goto yy1051;      if (yych <= '\n') -      goto yy1193; +      goto yy1060;      if (yych != '\r') -      goto yy1184; -  yy1193: +      goto yy1051; +  yy1060:      ++p;      { return 2; } -  yy1195: +  yy1062:      ++p;      yych = *p;      if (yybm[0 + yych] & 32) { -      goto yy1191; +      goto yy1058;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1184; +        goto yy1051;        if (yych <= '\n') -        goto yy1193; -      goto yy1184; +        goto yy1060; +      goto yy1051;      } else {        if (yych <= '\r') -        goto yy1193; +        goto yy1060;        if (yych == '-') -        goto yy1195; -      goto yy1184; +        goto yy1062; +      goto yy1051;      } -  yy1197: +  yy1064:      ++p;      yych = *p; -  yy1198: +  yy1065:      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1184; +        goto yy1051;        if (yych <= '\t') -        goto yy1197; +        goto yy1064;        if (yych >= '\v') -        goto yy1184; +        goto yy1051;      } else {        if (yych <= '\r') -        goto yy1199; +        goto yy1066;        if (yych == ' ') -        goto yy1197; -      goto yy1184; +        goto yy1064; +      goto yy1051;      } -  yy1199: +  yy1066:      ++p;      { return 1; } -  yy1201: +  yy1068:      ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1201; +      goto yy1068;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1184; +        goto yy1051;        if (yych <= '\t') -        goto yy1197; +        goto yy1064;        if (yych <= '\n') -        goto yy1199; -      goto yy1184; +        goto yy1066; +      goto yy1051;      } else {        if (yych <= '\r') -        goto yy1199; +        goto yy1066;        if (yych == ' ') -        goto yy1197; -      goto yy1184; +        goto yy1064; +      goto yy1051;      }    }  } @@ -18586,331 +16502,331 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {      if (yych <= 0x7F) {        if (yych <= '*') {          if (yych == '\n') -          goto yy1205; +          goto yy1072;          if (yych <= ')') -          goto yy1209; -        goto yy1206; +          goto yy1076; +        goto yy1073;        } else {          if (yych <= '-') {            if (yych <= ',') -            goto yy1209; -          goto yy1208; +            goto yy1076; +          goto yy1075;          } else {            if (yych == '_') -            goto yy1207; -          goto yy1209; +            goto yy1074; +          goto yy1076;          }        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) {            if (yych >= 0xC2) -            goto yy1210; +            goto yy1077;          } else {            if (yych <= 0xE0) -            goto yy1212; +            goto yy1079;            if (yych <= 0xEC) -            goto yy1213; -          goto yy1217; +            goto yy1080; +          goto yy1084;          }        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1213; -          goto yy1214; +            goto yy1080; +          goto yy1081;          } else {            if (yych <= 0xF3) -            goto yy1215; +            goto yy1082;            if (yych <= 0xF4) -            goto yy1216; +            goto yy1083;          }        }      } -  yy1205 : { return 0; } -  yy1206: +  yy1072 : { return 0; } +  yy1073:      yych = *(marker = ++p);      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1238; -      goto yy1205; +        goto yy1105; +      goto yy1072;      } else {        if (yych <= ' ') -        goto yy1238; +        goto yy1105;        if (yych == '*') -        goto yy1240; -      goto yy1205; +        goto yy1107; +      goto yy1072;      } -  yy1207: +  yy1074:      yych = *(marker = ++p);      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1228; -      goto yy1205; +        goto yy1095; +      goto yy1072;      } else {        if (yych <= ' ') -        goto yy1228; +        goto yy1095;        if (yych == '_') -        goto yy1230; -      goto yy1205; +        goto yy1097; +      goto yy1072;      } -  yy1208: +  yy1075:      yych = *(marker = ++p);      if (yybm[0 + yych] & 16) { -      goto yy1218; +      goto yy1085;      }      if (yych == '-') -      goto yy1220; -    goto yy1205; -  yy1209: +      goto yy1087; +    goto yy1072; +  yy1076:      yych = *++p; -    goto yy1205; -  yy1210: +    goto yy1072; +  yy1077:      yych = *++p;      if (yych <= 0x7F) -      goto yy1211; +      goto yy1078;      if (yych <= 0xBF) -      goto yy1209; -  yy1211: +      goto yy1076; +  yy1078:      p = marker; -    goto yy1205; -  yy1212: +    goto yy1072; +  yy1079:      yych = *++p;      if (yych <= 0x9F) -      goto yy1211; +      goto yy1078;      if (yych <= 0xBF) -      goto yy1210; -    goto yy1211; -  yy1213: +      goto yy1077; +    goto yy1078; +  yy1080:      yych = *++p;      if (yych <= 0x7F) -      goto yy1211; +      goto yy1078;      if (yych <= 0xBF) -      goto yy1210; -    goto yy1211; -  yy1214: +      goto yy1077; +    goto yy1078; +  yy1081:      yych = *++p;      if (yych <= 0x8F) -      goto yy1211; +      goto yy1078;      if (yych <= 0xBF) -      goto yy1213; -    goto yy1211; -  yy1215: +      goto yy1080; +    goto yy1078; +  yy1082:      yych = *++p;      if (yych <= 0x7F) -      goto yy1211; +      goto yy1078;      if (yych <= 0xBF) -      goto yy1213; -    goto yy1211; -  yy1216: +      goto yy1080; +    goto yy1078; +  yy1083:      yych = *++p;      if (yych <= 0x7F) -      goto yy1211; +      goto yy1078;      if (yych <= 0x8F) -      goto yy1213; -    goto yy1211; -  yy1217: +      goto yy1080; +    goto yy1078; +  yy1084:      yych = *++p;      if (yych <= 0x7F) -      goto yy1211; +      goto yy1078;      if (yych <= 0x9F) -      goto yy1210; -    goto yy1211; -  yy1218: +      goto yy1077; +    goto yy1078; +  yy1085:      ++p;      yych = *p;      if (yybm[0 + yych] & 16) { -      goto yy1218; +      goto yy1085;      }      if (yych != '-') -      goto yy1211; -  yy1220: +      goto yy1078; +  yy1087:      ++p;      yych = *p;      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1220; -      goto yy1211; +        goto yy1087; +      goto yy1078;      } else {        if (yych <= ' ') -        goto yy1220; +        goto yy1087;        if (yych != '-') -        goto yy1211; +        goto yy1078;      } -  yy1222: +  yy1089:      ++p;      yych = *p;      if (yych <= '\r') {        if (yych <= '\t') {          if (yych <= 0x08) -          goto yy1211; -        goto yy1222; +          goto yy1078; +        goto yy1089;        } else {          if (yych <= '\n') -          goto yy1224; +          goto yy1091;          if (yych <= '\f') -          goto yy1211; +          goto yy1078;        }      } else {        if (yych <= ' ') {          if (yych <= 0x1F) -          goto yy1211; -        goto yy1222; +          goto yy1078; +        goto yy1089;        } else {          if (yych == '-') -          goto yy1226; -        goto yy1211; +          goto yy1093; +        goto yy1078;        }      } -  yy1224: +  yy1091:      ++p;      { return (bufsize_t)(p - start); } -  yy1226: +  yy1093:      ++p;      yych = *p;      if (yybm[0 + yych] & 32) { -      goto yy1226; +      goto yy1093;      }      if (yych <= 0x08) -      goto yy1211; +      goto yy1078;      if (yych <= '\n') -      goto yy1224; +      goto yy1091;      if (yych == '\r') -      goto yy1224; -    goto yy1211; -  yy1228: +      goto yy1091; +    goto yy1078; +  yy1095:      ++p;      yych = *p;      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1228; -      goto yy1211; +        goto yy1095; +      goto yy1078;      } else {        if (yych <= ' ') -        goto yy1228; +        goto yy1095;        if (yych != '_') -        goto yy1211; +        goto yy1078;      } -  yy1230: +  yy1097:      ++p;      yych = *p;      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1230; -      goto yy1211; +        goto yy1097; +      goto yy1078;      } else {        if (yych <= ' ') -        goto yy1230; +        goto yy1097;        if (yych != '_') -        goto yy1211; +        goto yy1078;      } -  yy1232: +  yy1099:      ++p;      yych = *p;      if (yych <= '\r') {        if (yych <= '\t') {          if (yych <= 0x08) -          goto yy1211; -        goto yy1232; +          goto yy1078; +        goto yy1099;        } else {          if (yych <= '\n') -          goto yy1234; +          goto yy1101;          if (yych <= '\f') -          goto yy1211; +          goto yy1078;        }      } else {        if (yych <= ' ') {          if (yych <= 0x1F) -          goto yy1211; -        goto yy1232; +          goto yy1078; +        goto yy1099;        } else {          if (yych == '_') -          goto yy1236; -        goto yy1211; +          goto yy1103; +        goto yy1078;        }      } -  yy1234: +  yy1101:      ++p;      { return (bufsize_t)(p - start); } -  yy1236: +  yy1103:      ++p;      yych = *p;      if (yybm[0 + yych] & 64) { -      goto yy1236; +      goto yy1103;      }      if (yych <= 0x08) -      goto yy1211; +      goto yy1078;      if (yych <= '\n') -      goto yy1234; +      goto yy1101;      if (yych == '\r') -      goto yy1234; -    goto yy1211; -  yy1238: +      goto yy1101; +    goto yy1078; +  yy1105:      ++p;      yych = *p;      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1238; -      goto yy1211; +        goto yy1105; +      goto yy1078;      } else {        if (yych <= ' ') -        goto yy1238; +        goto yy1105;        if (yych != '*') -        goto yy1211; +        goto yy1078;      } -  yy1240: +  yy1107:      ++p;      yych = *p;      if (yych <= 0x1F) {        if (yych == '\t') -        goto yy1240; -      goto yy1211; +        goto yy1107; +      goto yy1078;      } else {        if (yych <= ' ') -        goto yy1240; +        goto yy1107;        if (yych != '*') -        goto yy1211; +        goto yy1078;      } -  yy1242: +  yy1109:      ++p;      yych = *p;      if (yych <= '\r') {        if (yych <= '\t') {          if (yych <= 0x08) -          goto yy1211; -        goto yy1242; +          goto yy1078; +        goto yy1109;        } else {          if (yych <= '\n') -          goto yy1244; +          goto yy1111;          if (yych <= '\f') -          goto yy1211; +          goto yy1078;        }      } else {        if (yych <= ' ') {          if (yych <= 0x1F) -          goto yy1211; -        goto yy1242; +          goto yy1078; +        goto yy1109;        } else {          if (yych == '*') -          goto yy1246; -        goto yy1211; +          goto yy1113; +        goto yy1078;        }      } -  yy1244: +  yy1111:      ++p;      { return (bufsize_t)(p - start); } -  yy1246: +  yy1113:      ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1246; +      goto yy1113;      }      if (yych <= 0x08) -      goto yy1211; +      goto yy1078;      if (yych <= '\n') -      goto yy1244; +      goto yy1111;      if (yych == '\r') -      goto yy1244; -    goto yy1211; +      goto yy1111; +    goto yy1078;    }  } @@ -18946,374 +16862,374 @@ bufsize_t _scan_open_code_fence(const unsigned char *p) {      if (yych <= 0xC1) {        if (yych <= '`') {          if (yych == '\n') -          goto yy1250; +          goto yy1117;          if (yych <= '_') -          goto yy1253; -        goto yy1251; +          goto yy1120; +        goto yy1118;        } else {          if (yych == '~') -          goto yy1252; +          goto yy1119;          if (yych <= 0x7F) -          goto yy1253; +          goto yy1120;        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) -          goto yy1254; +          goto yy1121;          if (yych <= 0xE0) -          goto yy1256; +          goto yy1123;          if (yych <= 0xEC) -          goto yy1257; -        goto yy1261; +          goto yy1124; +        goto yy1128;        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1257; -          goto yy1258; +            goto yy1124; +          goto yy1125;          } else {            if (yych <= 0xF3) -            goto yy1259; +            goto yy1126;            if (yych <= 0xF4) -            goto yy1260; +            goto yy1127;          }        }      } -  yy1250 : { return 0; } -  yy1251: +  yy1117 : { return 0; } +  yy1118:      yych = *(marker = ++p);      if (yych == '`') -      goto yy1276; -    goto yy1250; -  yy1252: +      goto yy1143; +    goto yy1117; +  yy1119:      yych = *(marker = ++p);      if (yych == '~') -      goto yy1262; -    goto yy1250; -  yy1253: +      goto yy1129; +    goto yy1117; +  yy1120:      yych = *++p; -    goto yy1250; -  yy1254: +    goto yy1117; +  yy1121:      yych = *++p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1253; -  yy1255: +      goto yy1120; +  yy1122:      p = marker; -    goto yy1250; -  yy1256: +    goto yy1117; +  yy1123:      yych = *++p;      if (yych <= 0x9F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1254; -    goto yy1255; -  yy1257: +      goto yy1121; +    goto yy1122; +  yy1124:      yych = *++p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1254; -    goto yy1255; -  yy1258: +      goto yy1121; +    goto yy1122; +  yy1125:      yych = *++p;      if (yych <= 0x8F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1257; -    goto yy1255; -  yy1259: +      goto yy1124; +    goto yy1122; +  yy1126:      yych = *++p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1257; -    goto yy1255; -  yy1260: +      goto yy1124; +    goto yy1122; +  yy1127:      yych = *++p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x8F) -      goto yy1257; -    goto yy1255; -  yy1261: +      goto yy1124; +    goto yy1122; +  yy1128:      yych = *++p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x9F) -      goto yy1254; -    goto yy1255; -  yy1262: +      goto yy1121; +    goto yy1122; +  yy1129:      yych = *++p;      if (yybm[0 + yych] & 16) { -      goto yy1263; +      goto yy1130;      } -    goto yy1255; -  yy1263: +    goto yy1122; +  yy1130:      ++p;      yych = *p;      marker = p;      if (yybm[0 + yych] & 32) { -      goto yy1265; +      goto yy1132;      }      if (yych <= 0xE0) {        if (yych <= '~') {          if (yych <= 0x00) -          goto yy1255; +          goto yy1122;          if (yych <= '\r') -          goto yy1274; -        goto yy1263; +          goto yy1141; +        goto yy1130;        } else {          if (yych <= 0xC1) -          goto yy1255; +          goto yy1122;          if (yych <= 0xDF) -          goto yy1267; -        goto yy1268; +          goto yy1134; +        goto yy1135;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1273; -        goto yy1269; +          goto yy1140; +        goto yy1136;        } else {          if (yych <= 0xF0) -          goto yy1270; +          goto yy1137;          if (yych <= 0xF3) -          goto yy1271; +          goto yy1138;          if (yych <= 0xF4) -          goto yy1272; -        goto yy1255; +          goto yy1139; +        goto yy1122;        }      } -  yy1265: +  yy1132:      ++p;      yych = *p;      if (yybm[0 + yych] & 32) { -      goto yy1265; +      goto yy1132;      }      if (yych <= 0xEC) {        if (yych <= 0xC1) {          if (yych <= 0x00) -          goto yy1255; +          goto yy1122;          if (yych <= '\r') -          goto yy1274; -        goto yy1255; +          goto yy1141; +        goto yy1122;        } else {          if (yych <= 0xDF) -          goto yy1267; +          goto yy1134;          if (yych <= 0xE0) -          goto yy1268; -        goto yy1269; +          goto yy1135; +        goto yy1136;        }      } else {        if (yych <= 0xF0) {          if (yych <= 0xED) -          goto yy1273; +          goto yy1140;          if (yych <= 0xEF) -          goto yy1269; -        goto yy1270; +          goto yy1136; +        goto yy1137;        } else {          if (yych <= 0xF3) -          goto yy1271; +          goto yy1138;          if (yych <= 0xF4) -          goto yy1272; -        goto yy1255; +          goto yy1139; +        goto yy1122;        }      } -  yy1267: +  yy1134:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1265; -    goto yy1255; -  yy1268: +      goto yy1132; +    goto yy1122; +  yy1135:      ++p;      yych = *p;      if (yych <= 0x9F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1267; -    goto yy1255; -  yy1269: +      goto yy1134; +    goto yy1122; +  yy1136:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1267; -    goto yy1255; -  yy1270: +      goto yy1134; +    goto yy1122; +  yy1137:      ++p;      yych = *p;      if (yych <= 0x8F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1269; -    goto yy1255; -  yy1271: +      goto yy1136; +    goto yy1122; +  yy1138:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1269; -    goto yy1255; -  yy1272: +      goto yy1136; +    goto yy1122; +  yy1139:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x8F) -      goto yy1269; -    goto yy1255; -  yy1273: +      goto yy1136; +    goto yy1122; +  yy1140:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x9F) -      goto yy1267; -    goto yy1255; -  yy1274: +      goto yy1134; +    goto yy1122; +  yy1141:      ++p;      p = marker;      { return (bufsize_t)(p - start); } -  yy1276: +  yy1143:      yych = *++p;      if (yybm[0 + yych] & 64) { -      goto yy1277; +      goto yy1144;      } -    goto yy1255; -  yy1277: +    goto yy1122; +  yy1144:      ++p;      yych = *p;      marker = p;      if (yybm[0 + yych] & 128) { -      goto yy1279; +      goto yy1146;      }      if (yych <= 0xE0) {        if (yych <= '`') {          if (yych <= 0x00) -          goto yy1255; +          goto yy1122;          if (yych <= '\r') -          goto yy1288; -        goto yy1277; +          goto yy1155; +        goto yy1144;        } else {          if (yych <= 0xC1) -          goto yy1255; +          goto yy1122;          if (yych <= 0xDF) -          goto yy1281; -        goto yy1282; +          goto yy1148; +        goto yy1149;        }      } else {        if (yych <= 0xEF) {          if (yych == 0xED) -          goto yy1287; -        goto yy1283; +          goto yy1154; +        goto yy1150;        } else {          if (yych <= 0xF0) -          goto yy1284; +          goto yy1151;          if (yych <= 0xF3) -          goto yy1285; +          goto yy1152;          if (yych <= 0xF4) -          goto yy1286; -        goto yy1255; +          goto yy1153; +        goto yy1122;        }      } -  yy1279: +  yy1146:      ++p;      yych = *p;      if (yybm[0 + yych] & 128) { -      goto yy1279; +      goto yy1146;      }      if (yych <= 0xEC) {        if (yych <= 0xC1) {          if (yych <= 0x00) -          goto yy1255; +          goto yy1122;          if (yych <= '\r') -          goto yy1288; -        goto yy1255; +          goto yy1155; +        goto yy1122;        } else {          if (yych <= 0xDF) -          goto yy1281; +          goto yy1148;          if (yych <= 0xE0) -          goto yy1282; -        goto yy1283; +          goto yy1149; +        goto yy1150;        }      } else {        if (yych <= 0xF0) {          if (yych <= 0xED) -          goto yy1287; +          goto yy1154;          if (yych <= 0xEF) -          goto yy1283; -        goto yy1284; +          goto yy1150; +        goto yy1151;        } else {          if (yych <= 0xF3) -          goto yy1285; +          goto yy1152;          if (yych <= 0xF4) -          goto yy1286; -        goto yy1255; +          goto yy1153; +        goto yy1122;        }      } -  yy1281: +  yy1148:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1279; -    goto yy1255; -  yy1282: +      goto yy1146; +    goto yy1122; +  yy1149:      ++p;      yych = *p;      if (yych <= 0x9F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1281; -    goto yy1255; -  yy1283: +      goto yy1148; +    goto yy1122; +  yy1150:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1281; -    goto yy1255; -  yy1284: +      goto yy1148; +    goto yy1122; +  yy1151:      ++p;      yych = *p;      if (yych <= 0x8F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1283; -    goto yy1255; -  yy1285: +      goto yy1150; +    goto yy1122; +  yy1152:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0xBF) -      goto yy1283; -    goto yy1255; -  yy1286: +      goto yy1150; +    goto yy1122; +  yy1153:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x8F) -      goto yy1283; -    goto yy1255; -  yy1287: +      goto yy1150; +    goto yy1122; +  yy1154:      ++p;      yych = *p;      if (yych <= 0x7F) -      goto yy1255; +      goto yy1122;      if (yych <= 0x9F) -      goto yy1281; -    goto yy1255; -  yy1288: +      goto yy1148; +    goto yy1122; +  yy1155:      ++p;      p = marker;      { return (bufsize_t)(p - start); } @@ -19345,190 +17261,190 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) {      if (yych <= 0xC1) {        if (yych <= '`') {          if (yych == '\n') -          goto yy1292; +          goto yy1159;          if (yych <= '_') -          goto yy1295; -        goto yy1293; +          goto yy1162; +        goto yy1160;        } else {          if (yych == '~') -          goto yy1294; +          goto yy1161;          if (yych <= 0x7F) -          goto yy1295; +          goto yy1162;        }      } else {        if (yych <= 0xED) {          if (yych <= 0xDF) -          goto yy1296; +          goto yy1163;          if (yych <= 0xE0) -          goto yy1298; +          goto yy1165;          if (yych <= 0xEC) -          goto yy1299; -        goto yy1303; +          goto yy1166; +        goto yy1170;        } else {          if (yych <= 0xF0) {            if (yych <= 0xEF) -            goto yy1299; -          goto yy1300; +            goto yy1166; +          goto yy1167;          } else {            if (yych <= 0xF3) -            goto yy1301; +            goto yy1168;            if (yych <= 0xF4) -            goto yy1302; +            goto yy1169;          }        }      } -  yy1292 : { return 0; } -  yy1293: +  yy1159 : { return 0; } +  yy1160:      yych = *(marker = ++p);      if (yych == '`') -      goto yy1311; -    goto yy1292; -  yy1294: +      goto yy1178; +    goto yy1159; +  yy1161:      yych = *(marker = ++p);      if (yych == '~') -      goto yy1304; -    goto yy1292; -  yy1295: +      goto yy1171; +    goto yy1159; +  yy1162:      yych = *++p; -    goto yy1292; -  yy1296: +    goto yy1159; +  yy1163:      yych = *++p;      if (yych <= 0x7F) -      goto yy1297; +      goto yy1164;      if (yych <= 0xBF) -      goto yy1295; -  yy1297: +      goto yy1162; +  yy1164:      p = marker; -    goto yy1292; -  yy1298: +    goto yy1159; +  yy1165:      yych = *++p;      if (yych <= 0x9F) -      goto yy1297; +      goto yy1164;      if (yych <= 0xBF) -      goto yy1296; -    goto yy1297; -  yy1299: +      goto yy1163; +    goto yy1164; +  yy1166:      yych = *++p;      if (yych <= 0x7F) -      goto yy1297; +      goto yy1164;      if (yych <= 0xBF) -      goto yy1296; -    goto yy1297; -  yy1300: +      goto yy1163; +    goto yy1164; +  yy1167:      yych = *++p;      if (yych <= 0x8F) -      goto yy1297; +      goto yy1164;      if (yych <= 0xBF) -      goto yy1299; -    goto yy1297; -  yy1301: +      goto yy1166; +    goto yy1164; +  yy1168:      yych = *++p;      if (yych <= 0x7F) -      goto yy1297; +      goto yy1164;      if (yych <= 0xBF) -      goto yy1299; -    goto yy1297; -  yy1302: +      goto yy1166; +    goto yy1164; +  yy1169:      yych = *++p;      if (yych <= 0x7F) -      goto yy1297; +      goto yy1164;      if (yych <= 0x8F) -      goto yy1299; -    goto yy1297; -  yy1303: +      goto yy1166; +    goto yy1164; +  yy1170:      yych = *++p;      if (yych <= 0x7F) -      goto yy1297; +      goto yy1164;      if (yych <= 0x9F) -      goto yy1296; -    goto yy1297; -  yy1304: +      goto yy1163; +    goto yy1164; +  yy1171:      yych = *++p;      if (yybm[0 + yych] & 32) { -      goto yy1305; +      goto yy1172;      } -    goto yy1297; -  yy1305: +    goto yy1164; +  yy1172:      ++p;      yych = *p;      marker = p;      if (yybm[0 + yych] & 64) { -      goto yy1307; +      goto yy1174;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1297; +        goto yy1164;        if (yych <= '\n') -        goto yy1309; -      goto yy1297; +        goto yy1176; +      goto yy1164;      } else {        if (yych <= '\r') -        goto yy1309; +        goto yy1176;        if (yych == '~') -        goto yy1305; -      goto yy1297; +        goto yy1172; +      goto yy1164;      } -  yy1307: +  yy1174:      ++p;      yych = *p;      if (yybm[0 + yych] & 64) { -      goto yy1307; +      goto yy1174;      }      if (yych <= 0x08) -      goto yy1297; +      goto yy1164;      if (yych <= '\n') -      goto yy1309; +      goto yy1176;      if (yych != '\r') -      goto yy1297; -  yy1309: +      goto yy1164; +  yy1176:      ++p;      p = marker;      { return (bufsize_t)(p - start); } -  yy1311: +  yy1178:      yych = *++p;      if (yybm[0 + yych] & 128) { -      goto yy1312; +      goto yy1179;      } -    goto yy1297; -  yy1312: +    goto yy1164; +  yy1179:      ++p;      yych = *p;      marker = p;      if (yybm[0 + yych] & 128) { -      goto yy1312; +      goto yy1179;      }      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1297; +        goto yy1164;        if (yych <= '\t') -        goto yy1314; +        goto yy1181;        if (yych <= '\n') -        goto yy1316; -      goto yy1297; +        goto yy1183; +      goto yy1164;      } else {        if (yych <= '\r') -        goto yy1316; +        goto yy1183;        if (yych != ' ') -        goto yy1297; +        goto yy1164;      } -  yy1314: +  yy1181:      ++p;      yych = *p;      if (yych <= '\f') {        if (yych <= 0x08) -        goto yy1297; +        goto yy1164;        if (yych <= '\t') -        goto yy1314; +        goto yy1181;        if (yych >= '\v') -        goto yy1297; +        goto yy1164;      } else {        if (yych <= '\r') -        goto yy1316; +        goto yy1183;        if (yych == ' ') -        goto yy1314; -      goto yy1297; +        goto yy1181; +      goto yy1164;      } -  yy1316: +  yy1183:      ++p;      p = marker;      { return (bufsize_t)(p - start); } @@ -19547,997 +17463,997 @@ bufsize_t _scan_entity(const unsigned char *p) {      if (yych <= 0xDF) {        if (yych <= '%') {          if (yych != '\n') -          goto yy1322; +          goto yy1189;        } else {          if (yych <= '&') -          goto yy1321; +          goto yy1188;          if (yych <= 0x7F) -          goto yy1322; +          goto yy1189;          if (yych >= 0xC2) -          goto yy1323; +          goto yy1190;        }      } else {        if (yych <= 0xEF) {          if (yych <= 0xE0) -          goto yy1325; +          goto yy1192;          if (yych == 0xED) -          goto yy1330; -        goto yy1326; +          goto yy1197; +        goto yy1193;        } else {          if (yych <= 0xF0) -          goto yy1327; +          goto yy1194;          if (yych <= 0xF3) -          goto yy1328; +          goto yy1195;          if (yych <= 0xF4) -          goto yy1329; +          goto yy1196;        }      } -  yy1320 : { return 0; } -  yy1321: +  yy1187 : { return 0; } +  yy1188:      yych = *(marker = ++p);      if (yych <= '@') {        if (yych == '#') -        goto yy1331; -      goto yy1320; +        goto yy1198; +      goto yy1187;      } else {        if (yych <= 'Z') -        goto yy1332; +        goto yy1199;        if (yych <= '`') -        goto yy1320; +        goto yy1187;        if (yych <= 'z') -        goto yy1332; -      goto yy1320; +        goto yy1199; +      goto yy1187;      } -  yy1322: +  yy1189:      yych = *++p; -    goto yy1320; -  yy1323: +    goto yy1187; +  yy1190:      yych = *++p;      if (yych <= 0x7F) -      goto yy1324; +      goto yy1191;      if (yych <= 0xBF) -      goto yy1322; -  yy1324: +      goto yy1189; +  yy1191:      p = marker; -    goto yy1320; -  yy1325: +    goto yy1187; +  yy1192:      yych = *++p;      if (yych <= 0x9F) -      goto yy1324; +      goto yy1191;      if (yych <= 0xBF) -      goto yy1323; -    goto yy1324; -  yy1326: +      goto yy1190; +    goto yy1191; +  yy1193:      yych = *++p;      if (yych <= 0x7F) -      goto yy1324; +      goto yy1191;      if (yych <= 0xBF) -      goto yy1323; -    goto yy1324; -  yy1327: +      goto yy1190; +    goto yy1191; +  yy1194:      yych = *++p;      if (yych <= 0x8F) -      goto yy1324; +      goto yy1191;      if (yych <= 0xBF) -      goto yy1326; -    goto yy1324; -  yy1328: +      goto yy1193; +    goto yy1191; +  yy1195:      yych = *++p;      if (yych <= 0x7F) -      goto yy1324; +      goto yy1191;      if (yych <= 0xBF) -      goto yy1326; -    goto yy1324; -  yy1329: +      goto yy1193; +    goto yy1191; +  yy1196:      yych = *++p;      if (yych <= 0x7F) -      goto yy1324; +      goto yy1191;      if (yych <= 0x8F) -      goto yy1326; -    goto yy1324; -  yy1330: +      goto yy1193; +    goto yy1191; +  yy1197:      yych = *++p;      if (yych <= 0x7F) -      goto yy1324; +      goto yy1191;      if (yych <= 0x9F) -      goto yy1323; -    goto yy1324; -  yy1331: +      goto yy1190; +    goto yy1191; +  yy1198:      yych = *++p;      if (yych <= 'W') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1367; -      goto yy1324; +        goto yy1234; +      goto yy1191;      } else {        if (yych <= 'X') -        goto yy1366; +        goto yy1233;        if (yych == 'x') -        goto yy1366; -      goto yy1324; +        goto yy1233; +      goto yy1191;      } -  yy1332: +  yy1199:      yych = *++p;      if (yych <= '@') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych >= ':') -        goto yy1324; +        goto yy1191;      } else {        if (yych <= 'Z') -        goto yy1333; +        goto yy1200;        if (yych <= '`') -        goto yy1324; +        goto yy1191;        if (yych >= '{') -        goto yy1324; +        goto yy1191;      } -  yy1333: +  yy1200:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1336; +        goto yy1203;        if (yych <= ':') -        goto yy1324; +        goto yy1191;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; -        goto yy1336; +          goto yy1191; +        goto yy1203;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych <= 'z') -          goto yy1336; -        goto yy1324; +          goto yy1203; +        goto yy1191;        }      } -  yy1334: +  yy1201:      ++p;      { return (bufsize_t)(p - start); } -  yy1336: +  yy1203:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1337; +        goto yy1204;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1337: +  yy1204:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1338; +        goto yy1205;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1338: +  yy1205:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1339; +        goto yy1206;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1339: +  yy1206:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1340; +        goto yy1207;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1340: +  yy1207:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1341; +        goto yy1208;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1341: +  yy1208:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1342; +        goto yy1209;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1342: +  yy1209:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1343; +        goto yy1210;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1343: +  yy1210:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1344; +        goto yy1211;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1344: +  yy1211:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1345; +        goto yy1212;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1345: +  yy1212:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1346; +        goto yy1213;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1346: +  yy1213:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1347; +        goto yy1214;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1347: +  yy1214:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1348; +        goto yy1215;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1348: +  yy1215:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1349; +        goto yy1216;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1349: +  yy1216:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1350; +        goto yy1217;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1350: +  yy1217:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1351; +        goto yy1218;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1351: +  yy1218:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1352; +        goto yy1219;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1352: +  yy1219:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1353; +        goto yy1220;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1353: +  yy1220:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1354; +        goto yy1221;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1354: +  yy1221:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1355; +        goto yy1222;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1355: +  yy1222:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1356; +        goto yy1223;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1356: +  yy1223:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1357; +        goto yy1224;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1357: +  yy1224:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1358; +        goto yy1225;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1358: +  yy1225:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1359; +        goto yy1226;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1359: +  yy1226:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1360; +        goto yy1227;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1360: +  yy1227:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1361; +        goto yy1228;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1361: +  yy1228:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1362; +        goto yy1229;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1362: +  yy1229:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1363; +        goto yy1230;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1363: +  yy1230:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1364; +        goto yy1231;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1364: +  yy1231:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1365; +        goto yy1232;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'Z') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= '{') -          goto yy1324; +          goto yy1191;        }      } -  yy1365: +  yy1232:      yych = *++p;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1366: +      goto yy1201; +    goto yy1191; +  yy1233:      yych = *++p;      if (yych <= '@') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1374; -      goto yy1324; +        goto yy1241; +      goto yy1191;      } else {        if (yych <= 'F') -        goto yy1374; +        goto yy1241;        if (yych <= '`') -        goto yy1324; +        goto yy1191;        if (yych <= 'f') -        goto yy1374; -      goto yy1324; +        goto yy1241; +      goto yy1191;      } -  yy1367: +  yy1234:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1368; +      goto yy1235;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1368: +      goto yy1201; +    goto yy1191; +  yy1235:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1369; +      goto yy1236;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1369: +      goto yy1201; +    goto yy1191; +  yy1236:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1370; +      goto yy1237;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1370: +      goto yy1201; +    goto yy1191; +  yy1237:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1371; +      goto yy1238;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1371: +      goto yy1201; +    goto yy1191; +  yy1238:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1372; +      goto yy1239;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1372: +      goto yy1201; +    goto yy1191; +  yy1239:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1373; +      goto yy1240;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1373: +      goto yy1201; +    goto yy1191; +  yy1240:      yych = *++p;      if (yych <= '/') -      goto yy1324; +      goto yy1191;      if (yych <= '9') -      goto yy1365; +      goto yy1232;      if (yych == ';') -      goto yy1334; -    goto yy1324; -  yy1374: +      goto yy1201; +    goto yy1191; +  yy1241:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1375; +        goto yy1242;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1375: +  yy1242:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1376; +        goto yy1243;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1376: +  yy1243:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1377; +        goto yy1244;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1377: +  yy1244:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1378; +        goto yy1245;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1378: +  yy1245:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1379; +        goto yy1246;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1379: +  yy1246:      yych = *++p;      if (yych <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1380; +        goto yy1247;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; +          goto yy1191;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych >= 'g') -          goto yy1324; +          goto yy1191;        }      } -  yy1380: +  yy1247:      ++p;      if ((yych = *p) <= ';') {        if (yych <= '/') -        goto yy1324; +        goto yy1191;        if (yych <= '9') -        goto yy1365; +        goto yy1232;        if (yych <= ':') -        goto yy1324; -      goto yy1334; +        goto yy1191; +      goto yy1201;      } else {        if (yych <= 'F') {          if (yych <= '@') -          goto yy1324; -        goto yy1365; +          goto yy1191; +        goto yy1232;        } else {          if (yych <= '`') -          goto yy1324; +          goto yy1191;          if (yych <= 'f') -          goto yy1365; -        goto yy1324; +          goto yy1232; +        goto yy1191;        }      }    } @@ -20557,415 +18473,415 @@ bufsize_t _scan_dangerous_url(const unsigned char *p) {        if (yych <= 'I') {          if (yych <= 'C') {            if (yych != '\n') -            goto yy1388; +            goto yy1255;          } else {            if (yych <= 'D') -            goto yy1384; +            goto yy1251;            if (yych == 'F') -            goto yy1387; -          goto yy1388; +            goto yy1254; +          goto yy1255;          }        } else {          if (yych <= 'V') {            if (yych <= 'J') -            goto yy1385; +            goto yy1252;            if (yych <= 'U') -            goto yy1388; -          goto yy1386; +            goto yy1255; +          goto yy1253;          } else {            if (yych == 'd') -            goto yy1384; +            goto yy1251;            if (yych <= 'e') -            goto yy1388; -          goto yy1387; +            goto yy1255; +          goto yy1254;          }        }      } else {        if (yych <= 0xDF) {          if (yych <= 'u') {            if (yych == 'j') -            goto yy1385; -          goto yy1388; +            goto yy1252; +          goto yy1255;          } else {            if (yych <= 'v') -            goto yy1386; +            goto yy1253;            if (yych <= 0x7F) -            goto yy1388; +            goto yy1255;            if (yych >= 0xC2) -            goto yy1389; +            goto yy1256;          }        } else {          if (yych <= 0xEF) {            if (yych <= 0xE0) -            goto yy1391; +            goto yy1258;            if (yych == 0xED) -            goto yy1396; -          goto yy1392; +            goto yy1263; +          goto yy1259;          } else {            if (yych <= 0xF0) -            goto yy1393; +            goto yy1260;            if (yych <= 0xF3) -            goto yy1394; +            goto yy1261;            if (yych <= 0xF4) -            goto yy1395; +            goto yy1262;          }        }      } -  yy1383 : { return 0; } -  yy1384: +  yy1250 : { return 0; } +  yy1251:      yyaccept = 0;      yych = *(marker = ++p);      if (yych == 'A') -      goto yy1418; +      goto yy1285;      if (yych == 'a') -      goto yy1418; -    goto yy1383; -  yy1385: +      goto yy1285; +    goto yy1250; +  yy1252:      yyaccept = 0;      yych = *(marker = ++p);      if (yych == 'A') -      goto yy1409; +      goto yy1276;      if (yych == 'a') -      goto yy1409; -    goto yy1383; -  yy1386: +      goto yy1276; +    goto yy1250; +  yy1253:      yyaccept = 0;      yych = *(marker = ++p);      if (yych == 'B') -      goto yy1402; +      goto yy1269;      if (yych == 'b') -      goto yy1402; -    goto yy1383; -  yy1387: +      goto yy1269; +    goto yy1250; +  yy1254:      yyaccept = 0;      yych = *(marker = ++p);      if (yych == 'I') -      goto yy1397; +      goto yy1264;      if (yych == 'i') -      goto yy1397; -    goto yy1383; -  yy1388: +      goto yy1264; +    goto yy1250; +  yy1255:      yych = *++p; -    goto yy1383; -  yy1389: +    goto yy1250; +  yy1256:      yych = *++p;      if (yych <= 0x7F) -      goto yy1390; +      goto yy1257;      if (yych <= 0xBF) -      goto yy1388; -  yy1390: +      goto yy1255; +  yy1257:      p = marker;      if (yyaccept == 0) { -      goto yy1383; +      goto yy1250;      } else { -      goto yy1401; +      goto yy1268;      } -  yy1391: +  yy1258:      yych = *++p;      if (yych <= 0x9F) -      goto yy1390; +      goto yy1257;      if (yych <= 0xBF) -      goto yy1389; -    goto yy1390; -  yy1392: +      goto yy1256; +    goto yy1257; +  yy1259:      yych = *++p;      if (yych <= 0x7F) -      goto yy1390; +      goto yy1257;      if (yych <= 0xBF) -      goto yy1389; -    goto yy1390; -  yy1393: +      goto yy1256; +    goto yy1257; +  yy1260:      yych = *++p;      if (yych <= 0x8F) -      goto yy1390; +      goto yy1257;      if (yych <= 0xBF) -      goto yy1392; -    goto yy1390; -  yy1394: +      goto yy1259; +    goto yy1257; +  yy1261:      yych = *++p;      if (yych <= 0x7F) -      goto yy1390; +      goto yy1257;      if (yych <= 0xBF) -      goto yy1392; -    goto yy1390; -  yy1395: +      goto yy1259; +    goto yy1257; +  yy1262:      yych = *++p;      if (yych <= 0x7F) -      goto yy1390; +      goto yy1257;      if (yych <= 0x8F) -      goto yy1392; -    goto yy1390; -  yy1396: +      goto yy1259; +    goto yy1257; +  yy1263:      yych = *++p;      if (yych <= 0x7F) -      goto yy1390; +      goto yy1257;      if (yych <= 0x9F) -      goto yy1389; -    goto yy1390; -  yy1397: +      goto yy1256; +    goto yy1257; +  yy1264:      yych = *++p;      if (yych == 'L') -      goto yy1398; +      goto yy1265;      if (yych != 'l') -      goto yy1390; -  yy1398: +      goto yy1257; +  yy1265:      yych = *++p;      if (yych == 'E') -      goto yy1399; +      goto yy1266;      if (yych != 'e') -      goto yy1390; -  yy1399: +      goto yy1257; +  yy1266:      yych = *++p;      if (yych != ':') -      goto yy1390; -  yy1400: +      goto yy1257; +  yy1267:      ++p; -  yy1401 : { return (bufsize_t)(p - start); } -  yy1402: +  yy1268 : { return (bufsize_t)(p - start); } +  yy1269:      yych = *++p;      if (yych == 'S') -      goto yy1403; +      goto yy1270;      if (yych != 's') -      goto yy1390; -  yy1403: +      goto yy1257; +  yy1270:      yych = *++p;      if (yych == 'C') -      goto yy1404; +      goto yy1271;      if (yych != 'c') -      goto yy1390; -  yy1404: +      goto yy1257; +  yy1271:      yych = *++p;      if (yych == 'R') -      goto yy1405; +      goto yy1272;      if (yych != 'r') -      goto yy1390; -  yy1405: +      goto yy1257; +  yy1272:      yych = *++p;      if (yych == 'I') -      goto yy1406; +      goto yy1273;      if (yych != 'i') -      goto yy1390; -  yy1406: +      goto yy1257; +  yy1273:      yych = *++p;      if (yych == 'P') -      goto yy1407; +      goto yy1274;      if (yych != 'p') -      goto yy1390; -  yy1407: +      goto yy1257; +  yy1274:      yych = *++p;      if (yych == 'T') -      goto yy1408; +      goto yy1275;      if (yych != 't') -      goto yy1390; -  yy1408: +      goto yy1257; +  yy1275:      yych = *++p;      if (yych == ':') -      goto yy1400; -    goto yy1390; -  yy1409: +      goto yy1267; +    goto yy1257; +  yy1276:      yych = *++p;      if (yych == 'V') -      goto yy1410; +      goto yy1277;      if (yych != 'v') -      goto yy1390; -  yy1410: +      goto yy1257; +  yy1277:      yych = *++p;      if (yych == 'A') -      goto yy1411; +      goto yy1278;      if (yych != 'a') -      goto yy1390; -  yy1411: +      goto yy1257; +  yy1278:      yych = *++p;      if (yych == 'S') -      goto yy1412; +      goto yy1279;      if (yych != 's') -      goto yy1390; -  yy1412: +      goto yy1257; +  yy1279:      yych = *++p;      if (yych == 'C') -      goto yy1413; +      goto yy1280;      if (yych != 'c') -      goto yy1390; -  yy1413: +      goto yy1257; +  yy1280:      yych = *++p;      if (yych == 'R') -      goto yy1414; +      goto yy1281;      if (yych != 'r') -      goto yy1390; -  yy1414: +      goto yy1257; +  yy1281:      yych = *++p;      if (yych == 'I') -      goto yy1415; +      goto yy1282;      if (yych != 'i') -      goto yy1390; -  yy1415: +      goto yy1257; +  yy1282:      yych = *++p;      if (yych == 'P') -      goto yy1416; +      goto yy1283;      if (yych != 'p') -      goto yy1390; -  yy1416: +      goto yy1257; +  yy1283:      yych = *++p;      if (yych == 'T') -      goto yy1417; +      goto yy1284;      if (yych != 't') -      goto yy1390; -  yy1417: +      goto yy1257; +  yy1284:      yych = *++p;      if (yych == ':') -      goto yy1400; -    goto yy1390; -  yy1418: +      goto yy1267; +    goto yy1257; +  yy1285:      yych = *++p;      if (yych == 'T') -      goto yy1419; +      goto yy1286;      if (yych != 't') -      goto yy1390; -  yy1419: +      goto yy1257; +  yy1286:      yych = *++p;      if (yych == 'A') -      goto yy1420; +      goto yy1287;      if (yych != 'a') -      goto yy1390; -  yy1420: +      goto yy1257; +  yy1287:      yych = *++p;      if (yych != ':') -      goto yy1390; +      goto yy1257;      yyaccept = 1;      yych = *(marker = ++p);      if (yych == 'I') -      goto yy1422; +      goto yy1289;      if (yych != 'i') -      goto yy1401; -  yy1422: +      goto yy1268; +  yy1289:      yych = *++p;      if (yych == 'M') -      goto yy1423; +      goto yy1290;      if (yych != 'm') -      goto yy1390; -  yy1423: +      goto yy1257; +  yy1290:      yych = *++p;      if (yych == 'A') -      goto yy1424; +      goto yy1291;      if (yych != 'a') -      goto yy1390; -  yy1424: +      goto yy1257; +  yy1291:      yych = *++p;      if (yych == 'G') -      goto yy1425; +      goto yy1292;      if (yych != 'g') -      goto yy1390; -  yy1425: +      goto yy1257; +  yy1292:      yych = *++p;      if (yych == 'E') -      goto yy1426; +      goto yy1293;      if (yych != 'e') -      goto yy1390; -  yy1426: +      goto yy1257; +  yy1293:      yych = *++p;      if (yych != '/') -      goto yy1390; +      goto yy1257;      yych = *++p;      if (yych <= 'W') {        if (yych <= 'J') {          if (yych == 'G') -          goto yy1429; +          goto yy1296;          if (yych <= 'I') -          goto yy1390; -        goto yy1430; +          goto yy1257; +        goto yy1297;        } else {          if (yych == 'P') -          goto yy1428; +          goto yy1295;          if (yych <= 'V') -          goto yy1390; -        goto yy1431; +          goto yy1257; +        goto yy1298;        }      } else {        if (yych <= 'j') {          if (yych == 'g') -          goto yy1429; +          goto yy1296;          if (yych <= 'i') -          goto yy1390; -        goto yy1430; +          goto yy1257; +        goto yy1297;        } else {          if (yych <= 'p') {            if (yych <= 'o') -            goto yy1390; +            goto yy1257;          } else {            if (yych == 'w') -            goto yy1431; -          goto yy1390; +            goto yy1298; +          goto yy1257;          }        }      } -  yy1428: +  yy1295:      yych = *++p;      if (yych == 'N') -      goto yy1439; +      goto yy1306;      if (yych == 'n') -      goto yy1439; -    goto yy1390; -  yy1429: +      goto yy1306; +    goto yy1257; +  yy1296:      yych = *++p;      if (yych == 'I') -      goto yy1438; +      goto yy1305;      if (yych == 'i') -      goto yy1438; -    goto yy1390; -  yy1430: +      goto yy1305; +    goto yy1257; +  yy1297:      yych = *++p;      if (yych == 'P') -      goto yy1436; +      goto yy1303;      if (yych == 'p') -      goto yy1436; -    goto yy1390; -  yy1431: +      goto yy1303; +    goto yy1257; +  yy1298:      yych = *++p;      if (yych == 'E') -      goto yy1432; +      goto yy1299;      if (yych != 'e') -      goto yy1390; -  yy1432: +      goto yy1257; +  yy1299:      yych = *++p;      if (yych == 'B') -      goto yy1433; +      goto yy1300;      if (yych != 'b') -      goto yy1390; -  yy1433: +      goto yy1257; +  yy1300:      yych = *++p;      if (yych == 'P') -      goto yy1434; +      goto yy1301;      if (yych != 'p') -      goto yy1390; -  yy1434: +      goto yy1257; +  yy1301:      ++p;      { return 0; } -  yy1436: +  yy1303:      yych = *++p;      if (yych == 'E') -      goto yy1437; +      goto yy1304;      if (yych != 'e') -      goto yy1390; -  yy1437: +      goto yy1257; +  yy1304:      yych = *++p;      if (yych == 'G') -      goto yy1434; +      goto yy1301;      if (yych == 'g') -      goto yy1434; -    goto yy1390; -  yy1438: +      goto yy1301; +    goto yy1257; +  yy1305:      yych = *++p;      if (yych == 'F') -      goto yy1434; +      goto yy1301;      if (yych == 'f') -      goto yy1434; -    goto yy1390; -  yy1439: +      goto yy1301; +    goto yy1257; +  yy1306:      ++p;      if ((yych = *p) == 'G') -      goto yy1434; +      goto yy1301;      if (yych == 'g') -      goto yy1434; -    goto yy1390; +      goto yy1301; +    goto yy1257;    }  } diff --git a/src/scanners.h b/src/scanners.h index 5e3cbe7..207f91a 100644 --- a/src/scanners.h +++ b/src/scanners.h @@ -18,7 +18,6 @@ bufsize_t _scan_html_block_end_2(const unsigned char *p);  bufsize_t _scan_html_block_end_3(const unsigned char *p);  bufsize_t _scan_html_block_end_4(const unsigned char *p);  bufsize_t _scan_html_block_end_5(const unsigned char *p); -bufsize_t _scan_link_url(const unsigned char *p);  bufsize_t _scan_link_title(const unsigned char *p);  bufsize_t _scan_spacechars(const unsigned char *p);  bufsize_t _scan_atx_heading_start(const unsigned char *p); @@ -40,7 +39,6 @@ bufsize_t _scan_dangerous_url(const unsigned char *p);  #define scan_html_block_end_3(c, n) _scan_at(&_scan_html_block_end_3, c, n)  #define scan_html_block_end_4(c, n) _scan_at(&_scan_html_block_end_4, c, n)  #define scan_html_block_end_5(c, n) _scan_at(&_scan_html_block_end_5, c, n) -#define scan_link_url(c, n) _scan_at(&_scan_link_url, c, n)  #define scan_link_title(c, n) _scan_at(&_scan_link_title, c, n)  #define scan_spacechars(c, n) _scan_at(&_scan_spacechars, c, n)  #define scan_atx_heading_start(c, n) _scan_at(&_scan_atx_heading_start, c, n) diff --git a/src/scanners.re b/src/scanners.re index 77d30cd..02b393a 100644 --- a/src/scanners.re +++ b/src/scanners.re @@ -205,21 +205,6 @@ bufsize_t _scan_html_block_end_5(const unsigned char *p)  */  } -// 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; -/*!re2c -  [ \r\n]* [<] ([^<> \t\r\n\\\x00] | escaped_char | [\\])* [>] { return (bufsize_t)(p - start); } -  [ \r\n]* (reg_char+ | escaped_char | [\\] [^() \t\v\f\r\n] | in_parens_nosp)* [\\]? { return (bufsize_t)(p - start); } -  .? { return 0; } -*/ -} -  // 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). diff --git a/test/spec.txt b/test/spec.txt index c66f93b..c49e85b 100644 --- a/test/spec.txt +++ b/test/spec.txt @@ -7148,8 +7148,7 @@ A [link destination](@) consists of either  - a nonempty sequence of characters that does not include    ASCII space or control characters, and includes parentheses    only if (a) they are backslash-escaped or (b) they are part of -  a balanced pair of unescaped parentheses that is not itself -  inside a balanced pair of unescaped parentheses. +  a balanced pair of unescaped parentheses.  A [link title](@)  consists of either @@ -7255,35 +7254,29 @@ Parentheses inside the link destination may be escaped:  <p><a href="(foo)">link</a></p>  ```````````````````````````````` -One level of balanced parentheses is allowed without escaping: - -```````````````````````````````` example -[link]((foo)and(bar)) -. -<p><a href="(foo)and(bar)">link</a></p> -```````````````````````````````` - -However, if you have parentheses within parentheses, you need to escape -or use the `<...>` form: +Any number parentheses are allowed without escaping, as long as they are +balanced:  ```````````````````````````````` example  [link](foo(and(bar)))  . -<p>[link](foo(and(bar)))</p> +<p><a href="foo(and(bar))">link</a></p>  ```````````````````````````````` +However, if you have unbalanced parentheses, you need to escape or use the +`<...>` form:  ```````````````````````````````` example -[link](foo(and\(bar\))) +[link](foo\(and\(bar\))  . -<p><a href="foo(and(bar))">link</a></p> +<p><a href="foo(and(bar)">link</a></p>  ````````````````````````````````  ```````````````````````````````` example -[link](<foo(and(bar))>) +[link](<foo(and(bar)>)  . -<p><a href="foo(and(bar))">link</a></p> +<p><a href="foo(and(bar)">link</a></p>  ```````````````````````````````` | 
