diff options
Diffstat (limited to 'cmark/src/scanners.c')
| -rw-r--r-- | cmark/src/scanners.c | 9415 |
1 files changed, 9415 insertions, 0 deletions
diff --git a/cmark/src/scanners.c b/cmark/src/scanners.c new file mode 100644 index 0000000000..7338c75b76 --- /dev/null +++ b/cmark/src/scanners.c @@ -0,0 +1,9415 @@ +/* Generated by re2c 3.0 */ +#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) { + bufsize_t res; + unsigned char *ptr = (unsigned char *)c->data; + + if (ptr == NULL || offset > c->len) { + return 0; + } else { + unsigned char lim = ptr[c->len]; + + ptr[c->len] = '\0'; + res = scanner(ptr + offset); + ptr[c->len] = lim; + } + + return res; +} + +// Try to match a scheme including colon. +bufsize_t _scan_scheme(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + yych = *p; + if (yych <= '@') + goto yy1; + if (yych <= 'Z') + goto yy3; + if (yych <= '`') + goto yy1; + if (yych <= 'z') + goto yy3; + yy1: + ++p; + yy2 : { return 0; } + yy3: + yych = *(marker = ++p); + if (yych <= '/') { + if (yych <= '+') { + if (yych <= '*') + goto yy2; + } else { + if (yych <= ',') + goto yy2; + if (yych >= '/') + goto yy2; + } + } else { + if (yych <= 'Z') { + if (yych <= '9') + goto yy4; + if (yych <= '@') + goto yy2; + } else { + if (yych <= '`') + goto yy2; + if (yych >= '{') + goto yy2; + } + } + yy4: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy6; + } else { + if (yych != '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych >= 'A') + goto yy6; + } else { + if (yych <= '`') + goto yy5; + if (yych <= 'z') + goto yy6; + } + } + yy5: + p = marker; + goto yy2; + yy6: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy8; + goto yy5; + } else { + if (yych == '/') + goto yy5; + goto yy8; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + goto yy8; + } else { + if (yych <= '`') + goto yy5; + if (yych <= 'z') + goto yy8; + goto yy5; + } + } + yy7: + ++p; + { return (bufsize_t)(p - start); } + yy8: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy5; + } else { + if (yych == '/') + goto yy5; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy7; + if (yych <= '@') + goto yy5; + } else { + if (yych <= '`') + goto yy5; + if (yych >= '{') + goto yy5; + } + } + yych = *++p; + if (yych == ':') + goto yy7; + goto yy5; + } +} + +// Try to match URI autolink after first <, returning number of chars matched. +bufsize_t _scan_autolink_uri(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yych <= '@') + goto yy10; + if (yych <= 'Z') + goto yy12; + if (yych <= '`') + goto yy10; + if (yych <= 'z') + goto yy12; + yy10: + ++p; + yy11 : { return 0; } + yy12: + yych = *(marker = ++p); + if (yych <= '/') { + if (yych <= '+') { + if (yych <= '*') + goto yy11; + } else { + if (yych <= ',') + goto yy11; + if (yych >= '/') + goto yy11; + } + } else { + if (yych <= 'Z') { + if (yych <= '9') + goto yy13; + if (yych <= '@') + goto yy11; + } else { + if (yych <= '`') + goto yy11; + if (yych >= '{') + goto yy11; + } + } + yy13: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy15; + } else { + if (yych != '/') + goto yy15; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych >= 'A') + goto yy15; + } else { + if (yych <= '`') + goto yy14; + if (yych <= 'z') + goto yy15; + } + } + yy14: + p = marker; + goto yy11; + yy15: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy17; + goto yy14; + } else { + if (yych == '/') + goto yy14; + goto yy17; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + goto yy17; + } else { + if (yych <= '`') + goto yy14; + if (yych <= 'z') + goto yy17; + goto yy14; + } + } + yy16: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy16; + } + if (yych <= '<') + goto yy14; + goto yy18; + yy17: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy19; + goto yy14; + } else { + if (yych == '/') + goto yy14; + goto yy19; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + goto yy19; + } else { + if (yych <= '`') + goto yy14; + if (yych <= 'z') + goto yy19; + goto yy14; + } + } + yy18: + ++p; + { return (bufsize_t)(p - start); } + yy19: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy14; + } else { + if (yych == '/') + goto yy14; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy16; + if (yych <= '@') + goto yy14; + } else { + if (yych <= '`') + goto yy14; + if (yych >= '{') + goto yy14; + } + } + yych = *++p; + if (yych == ':') + goto yy16; + goto yy14; + } +} + +// Try to match email autolink after first <, returning num of chars matched. +bufsize_t _scan_autolink_email(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 128, 128, 128, 128, 128, 0, 0, + 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 128, 0, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= '9') { + if (yych <= '\'') { + if (yych == '!') + goto yy23; + if (yych >= '#') + goto yy23; + } else { + if (yych <= ')') + goto yy21; + if (yych != ',') + goto yy23; + } + } else { + if (yych <= '?') { + if (yych == '=') + goto yy23; + if (yych >= '?') + goto yy23; + } else { + if (yych <= 'Z') { + if (yych >= 'A') + goto yy23; + } else { + if (yych <= ']') + goto yy21; + if (yych <= '~') + goto yy23; + } + } + } + yy21: + ++p; + yy22 : { return 0; } + yy23: + yych = *(marker = ++p); + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') + goto yy25; + goto yy22; + } else { + if (yych <= '\'') + goto yy25; + if (yych <= ')') + goto yy22; + if (yych <= '+') + goto yy25; + goto yy22; + } + } else { + if (yych <= '>') { + if (yych <= '9') + goto yy25; + if (yych == '=') + goto yy25; + goto yy22; + } else { + if (yych <= 'Z') + goto yy25; + if (yych <= ']') + goto yy22; + if (yych <= '~') + goto yy25; + goto yy22; + } + } + yy24: + yych = *++p; + yy25: + if (yybm[0 + yych] & 128) { + goto yy24; + } + if (yych <= '>') + goto yy26; + if (yych <= '@') + goto yy27; + yy26: + p = marker; + goto yy22; + yy27: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy26; + if (yych >= ':') + goto yy26; + } else { + if (yych <= 'Z') + goto yy28; + if (yych <= '`') + goto yy26; + if (yych >= '{') + goto yy26; + } + yy28: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy29; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy29; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy29; + goto yy26; + } + } + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy31; + if (yych <= '/') + goto yy26; + goto yy32; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy32; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy32; + goto yy26; + } + } + yy29: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych <= '-') + goto yy31; + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy32; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy32; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy32; + goto yy26; + } + } + yy30: + ++p; + { return (bufsize_t)(p - start); } + yy31: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy33; + if (yych <= '/') + goto yy26; + goto yy34; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy34; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy34; + goto yy26; + } + } + yy32: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy34; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy34; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy34; + goto yy26; + } + } + yy33: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy35; + if (yych <= '/') + goto yy26; + goto yy36; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy36; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy36; + goto yy26; + } + } + yy34: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy36; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy36; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy36; + goto yy26; + } + } + yy35: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy37; + if (yych <= '/') + goto yy26; + goto yy38; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy38; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy38; + goto yy26; + } + } + yy36: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy38; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy38; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy38; + goto yy26; + } + } + yy37: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy39; + if (yych <= '/') + goto yy26; + goto yy40; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy40; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy40; + goto yy26; + } + } + yy38: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy40; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy40; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy40; + goto yy26; + } + } + yy39: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy41; + if (yych <= '/') + goto yy26; + goto yy42; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy42; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy42; + goto yy26; + } + } + yy40: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy42; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy42; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy42; + goto yy26; + } + } + yy41: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy43; + if (yych <= '/') + goto yy26; + goto yy44; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy44; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy44; + goto yy26; + } + } + yy42: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy44; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy44; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy44; + goto yy26; + } + } + yy43: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy45; + if (yych <= '/') + goto yy26; + goto yy46; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy46; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy46; + goto yy26; + } + } + yy44: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy46; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy46; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy46; + goto yy26; + } + } + yy45: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy47; + if (yych <= '/') + goto yy26; + goto yy48; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy48; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy48; + goto yy26; + } + } + yy46: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy48; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy48; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy48; + goto yy26; + } + } + yy47: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy49; + if (yych <= '/') + goto yy26; + goto yy50; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy50; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy50; + goto yy26; + } + } + yy48: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy50; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy50; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy50; + goto yy26; + } + } + yy49: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy51; + if (yych <= '/') + goto yy26; + goto yy52; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy52; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy52; + goto yy26; + } + } + yy50: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy52; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy52; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy52; + goto yy26; + } + } + yy51: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy53; + if (yych <= '/') + goto yy26; + goto yy54; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy54; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy54; + goto yy26; + } + } + yy52: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy54; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy54; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy54; + goto yy26; + } + } + yy53: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy55; + if (yych <= '/') + goto yy26; + goto yy56; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy56; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy56; + goto yy26; + } + } + yy54: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy56; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy56; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy56; + goto yy26; + } + } + yy55: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy57; + if (yych <= '/') + goto yy26; + goto yy58; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy58; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy58; + goto yy26; + } + } + yy56: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy58; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy58; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy58; + goto yy26; + } + } + yy57: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy59; + if (yych <= '/') + goto yy26; + goto yy60; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy60; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy60; + goto yy26; + } + } + yy58: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy60; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy60; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy60; + goto yy26; + } + } + yy59: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy61; + if (yych <= '/') + goto yy26; + goto yy62; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy62; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy62; + goto yy26; + } + } + yy60: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy62; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy62; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy62; + goto yy26; + } + } + yy61: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy63; + if (yych <= '/') + goto yy26; + goto yy64; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy64; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy64; + goto yy26; + } + } + yy62: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy64; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy64; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy64; + goto yy26; + } + } + yy63: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy65; + if (yych <= '/') + goto yy26; + goto yy66; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy66; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy66; + goto yy26; + } + } + yy64: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy66; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy66; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy66; + goto yy26; + } + } + yy65: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy67; + if (yych <= '/') + goto yy26; + goto yy68; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy68; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy68; + goto yy26; + } + } + yy66: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy68; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy68; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy68; + goto yy26; + } + } + yy67: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy69; + if (yych <= '/') + goto yy26; + goto yy70; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy70; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy70; + goto yy26; + } + } + yy68: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy70; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy70; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy70; + goto yy26; + } + } + yy69: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy71; + if (yych <= '/') + goto yy26; + goto yy72; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy72; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy72; + goto yy26; + } + } + yy70: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy72; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy72; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy72; + goto yy26; + } + } + yy71: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy73; + if (yych <= '/') + goto yy26; + goto yy74; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy74; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy74; + goto yy26; + } + } + yy72: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy74; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy74; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy74; + goto yy26; + } + } + yy73: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy75; + if (yych <= '/') + goto yy26; + goto yy76; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy76; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy76; + goto yy26; + } + } + yy74: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy76; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy76; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy76; + goto yy26; + } + } + yy75: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy77; + if (yych <= '/') + goto yy26; + goto yy78; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy78; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy78; + goto yy26; + } + } + yy76: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy78; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy78; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy78; + goto yy26; + } + } + yy77: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy79; + if (yych <= '/') + goto yy26; + goto yy80; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy80; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy80; + goto yy26; + } + } + yy78: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy80; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy80; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy80; + goto yy26; + } + } + yy79: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy81; + if (yych <= '/') + goto yy26; + goto yy82; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy82; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy82; + goto yy26; + } + } + yy80: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy82; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy82; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy82; + goto yy26; + } + } + yy81: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy83; + if (yych <= '/') + goto yy26; + goto yy84; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy84; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy84; + goto yy26; + } + } + yy82: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy84; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy84; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy84; + goto yy26; + } + } + yy83: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy85; + if (yych <= '/') + goto yy26; + goto yy86; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy86; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy86; + goto yy26; + } + } + yy84: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy86; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy86; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy86; + goto yy26; + } + } + yy85: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy87; + if (yych <= '/') + goto yy26; + goto yy88; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy88; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy88; + goto yy26; + } + } + yy86: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy88; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy88; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy88; + goto yy26; + } + } + yy87: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy89; + if (yych <= '/') + goto yy26; + goto yy90; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy90; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy90; + goto yy26; + } + } + yy88: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy90; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy90; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy90; + goto yy26; + } + } + yy89: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy91; + if (yych <= '/') + goto yy26; + goto yy92; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy92; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy92; + goto yy26; + } + } + yy90: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy92; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy92; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy92; + goto yy26; + } + } + yy91: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy93; + if (yych <= '/') + goto yy26; + goto yy94; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy94; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy94; + goto yy26; + } + } + yy92: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy94; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy94; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy94; + goto yy26; + } + } + yy93: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy95; + if (yych <= '/') + goto yy26; + goto yy96; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy96; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy96; + goto yy26; + } + } + yy94: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy96; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy96; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy96; + goto yy26; + } + } + yy95: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy97; + if (yych <= '/') + goto yy26; + goto yy98; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy98; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy98; + goto yy26; + } + } + yy96: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy98; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy98; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy98; + goto yy26; + } + } + yy97: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy99; + if (yych <= '/') + goto yy26; + goto yy100; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy100; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy100; + goto yy26; + } + } + yy98: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy100; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy100; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy100; + goto yy26; + } + } + yy99: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy101; + if (yych <= '/') + goto yy26; + goto yy102; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy102; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy102; + goto yy26; + } + } + yy100: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy102; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy102; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy102; + goto yy26; + } + } + yy101: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy103; + if (yych <= '/') + goto yy26; + goto yy104; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy104; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy104; + goto yy26; + } + } + yy102: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy104; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy104; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy104; + goto yy26; + } + } + yy103: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy105; + if (yych <= '/') + goto yy26; + goto yy106; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy106; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy106; + goto yy26; + } + } + yy104: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy106; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy106; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy106; + goto yy26; + } + } + yy105: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy107; + if (yych <= '/') + goto yy26; + goto yy108; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy108; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy108; + goto yy26; + } + } + yy106: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy108; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy108; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy108; + goto yy26; + } + } + yy107: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy109; + if (yych <= '/') + goto yy26; + goto yy110; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy110; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy110; + goto yy26; + } + } + yy108: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy110; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy110; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy110; + goto yy26; + } + } + yy109: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy111; + if (yych <= '/') + goto yy26; + goto yy112; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy112; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy112; + goto yy26; + } + } + yy110: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy112; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy112; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy112; + goto yy26; + } + } + yy111: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy113; + if (yych <= '/') + goto yy26; + goto yy114; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy114; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy114; + goto yy26; + } + } + yy112: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy114; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy114; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy114; + goto yy26; + } + } + yy113: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy115; + if (yych <= '/') + goto yy26; + goto yy116; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy116; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy116; + goto yy26; + } + } + yy114: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy116; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy116; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy116; + goto yy26; + } + } + yy115: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy117; + if (yych <= '/') + goto yy26; + goto yy118; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy118; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy118; + goto yy26; + } + } + yy116: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy118; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy118; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy118; + goto yy26; + } + } + yy117: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy119; + if (yych <= '/') + goto yy26; + goto yy120; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy120; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy120; + goto yy26; + } + } + yy118: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy120; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy120; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy120; + goto yy26; + } + } + yy119: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy121; + if (yych <= '/') + goto yy26; + goto yy122; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy122; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy122; + goto yy26; + } + } + yy120: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy122; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy122; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy122; + goto yy26; + } + } + yy121: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy123; + if (yych <= '/') + goto yy26; + goto yy124; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy124; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy124; + goto yy26; + } + } + yy122: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy124; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy124; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy124; + goto yy26; + } + } + yy123: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy125; + if (yych <= '/') + goto yy26; + goto yy126; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy126; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy126; + goto yy26; + } + } + yy124: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy126; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy126; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy126; + goto yy26; + } + } + yy125: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy127; + if (yych <= '/') + goto yy26; + goto yy128; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy128; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy128; + goto yy26; + } + } + yy126: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy128; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy128; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy128; + goto yy26; + } + } + yy127: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy129; + if (yych <= '/') + goto yy26; + goto yy130; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy130; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy130; + goto yy26; + } + } + yy128: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy130; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy130; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy130; + goto yy26; + } + } + yy129: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy131; + if (yych <= '/') + goto yy26; + goto yy132; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy132; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy132; + goto yy26; + } + } + yy130: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy132; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy132; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy132; + goto yy26; + } + } + yy131: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy133; + if (yych <= '/') + goto yy26; + goto yy134; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy134; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy134; + goto yy26; + } + } + yy132: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy134; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy134; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy134; + goto yy26; + } + } + yy133: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy135; + if (yych <= '/') + goto yy26; + goto yy136; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy136; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy136; + goto yy26; + } + } + yy134: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy136; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy136; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy136; + goto yy26; + } + } + yy135: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy137; + if (yych <= '/') + goto yy26; + goto yy138; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy138; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy138; + goto yy26; + } + } + yy136: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy138; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy138; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy138; + goto yy26; + } + } + yy137: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy139; + if (yych <= '/') + goto yy26; + goto yy140; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy140; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy140; + goto yy26; + } + } + yy138: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy140; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy140; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy140; + goto yy26; + } + } + yy139: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy141; + if (yych <= '/') + goto yy26; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy142; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy142; + goto yy26; + } + } + yy140: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy142; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy142; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy142; + goto yy26; + } + } + yy141: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy143; + if (yych <= '/') + goto yy26; + goto yy144; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy144; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy144; + goto yy26; + } + } + yy142: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy144; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy144; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy144; + goto yy26; + } + } + yy143: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy145; + if (yych <= '/') + goto yy26; + goto yy146; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy146; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy146; + goto yy26; + } + } + yy144: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy146; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy146; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy146; + goto yy26; + } + } + yy145: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy147; + if (yych <= '/') + goto yy26; + goto yy148; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy148; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy148; + goto yy26; + } + } + yy146: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy148; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy148; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy148; + goto yy26; + } + } + yy147: + yych = *++p; + if (yych <= '9') { + if (yych == '-') + goto yy149; + if (yych <= '/') + goto yy26; + goto yy150; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy26; + goto yy150; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy150; + goto yy26; + } + } + yy148: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy26; + if (yych >= '.') + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy150; + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + goto yy150; + } else { + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy150; + goto yy26; + } + } + yy149: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy26; + if (yych <= '9') + goto yy151; + goto yy26; + } else { + if (yych <= 'Z') + goto yy151; + if (yych <= '`') + goto yy26; + if (yych <= 'z') + goto yy151; + goto yy26; + } + yy150: + yych = *++p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= '-') + goto yy26; + goto yy27; + } else { + if (yych <= '/') + goto yy26; + if (yych >= ':') + goto yy26; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy30; + if (yych <= '@') + goto yy26; + } else { + if (yych <= '`') + goto yy26; + if (yych >= '{') + goto yy26; + } + } + yy151: + yych = *++p; + if (yych == '.') + goto yy27; + if (yych == '>') + goto yy30; + goto yy26; + } +} + +// Try to match an HTML tag after first <, returning num of chars matched. +bufsize_t _scan_html_tag(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 224, 224, 224, 224, 224, 224, 224, 224, 200, 200, 200, 200, 200, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 200, 224, 128, 224, 224, 224, 224, 64, 224, 224, + 224, 224, 224, 244, 240, 224, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 240, 224, 192, 192, 192, 224, 224, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 224, 224, 224, 224, 240, 192, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, + }; + yych = *p; + if (yych <= '@') { + if (yych == '/') + goto yy155; + } else { + if (yych <= 'Z') + goto yy156; + if (yych <= '`') + goto yy153; + if (yych <= 'z') + goto yy156; + } + yy153: + ++p; + yy154 : { return 0; } + yy155: + yych = *(marker = ++p); + if (yych <= '@') + goto yy154; + if (yych <= 'Z') + goto yy157; + if (yych <= '`') + goto yy154; + if (yych <= 'z') + goto yy157; + goto yy154; + yy156: + yych = *(marker = ++p); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy154; + if (yych <= '\r') + goto yy161; + goto yy154; + } else { + if (yych <= ' ') + goto yy161; + if (yych == '-') + goto yy161; + goto yy154; + } + } else { + if (yych <= '@') { + if (yych <= '9') + goto yy161; + if (yych == '>') + goto yy161; + goto yy154; + } else { + if (yych <= 'Z') + goto yy161; + if (yych <= '`') + goto yy154; + if (yych <= 'z') + goto yy161; + goto yy154; + } + } + yy157: + yych = *++p; + if (yybm[0 + yych] & 4) { + goto yy157; + } + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy158; + if (yych <= '\r') + goto yy164; + } else { + if (yych <= ' ') + goto yy164; + if (yych == '>') + goto yy163; + } + yy158: + p = marker; + goto yy154; + yy159: + yych = *++p; + if (yybm[0 + yych] & 8) { + goto yy159; + } + if (yych <= '>') { + if (yych <= '9') { + if (yych == '/') + goto yy162; + goto yy158; + } else { + if (yych <= ':') + goto yy165; + if (yych <= '=') + goto yy158; + goto yy163; + } + } else { + if (yych <= '^') { + if (yych <= '@') + goto yy158; + if (yych <= 'Z') + goto yy165; + goto yy158; + } else { + if (yych == '`') + goto yy158; + if (yych <= 'z') + goto yy165; + goto yy158; + } + } + yy160: + yych = *++p; + yy161: + if (yybm[0 + yych] & 8) { + goto yy159; + } + if (yych <= '=') { + if (yych <= '.') { + if (yych == '-') + goto yy160; + goto yy158; + } else { + if (yych <= '/') + goto yy162; + if (yych <= '9') + goto yy160; + goto yy158; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy163; + if (yych <= '@') + goto yy158; + goto yy160; + } else { + if (yych <= '`') + goto yy158; + if (yych <= 'z') + goto yy160; + goto yy158; + } + } + yy162: + yych = *++p; + if (yych != '>') + goto yy158; + yy163: + ++p; + { return (bufsize_t)(p - start); } + yy164: + yych = *++p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy158; + if (yych <= '\r') + goto yy164; + goto yy158; + } else { + if (yych <= ' ') + goto yy164; + if (yych == '>') + goto yy163; + goto yy158; + } + yy165: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy165; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy158; + } else { + if (yych != ' ') + goto yy158; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy162; + goto yy158; + } else { + if (yych <= '=') + goto yy167; + if (yych <= '>') + goto yy163; + goto yy158; + } + } + yy166: + yych = *++p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy158; + if (yych <= '\r') + goto yy166; + if (yych <= 0x1F) + goto yy158; + goto yy166; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy158; + goto yy162; + } else { + if (yych == ':') + goto yy165; + goto yy158; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy167; + if (yych <= '>') + goto yy163; + if (yych <= '@') + goto yy158; + goto yy165; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy158; + goto yy165; + } else { + if (yych <= '`') + goto yy158; + if (yych <= 'z') + goto yy165; + goto yy158; + } + } + } + yy167: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy168; + } + if (yych <= 0x00) + goto yy158; + if (yych <= ' ') + goto yy167; + if (yych <= '"') + goto yy169; + if (yych <= '\'') + goto yy170; + goto yy158; + yy168: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy168; + } + if (yych <= 0x00) + goto yy158; + if (yych <= ' ') + goto yy159; + if (yych == '>') + goto yy163; + goto yy158; + yy169: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy169; + } + if (yych <= 0x00) + goto yy158; + goto yy171; + yy170: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy170; + } + if (yych <= 0x00) + goto yy158; + yy171: + yych = *++p; + if (yybm[0 + yych] & 8) { + goto yy159; + } + if (yych == '/') + goto yy162; + if (yych == '>') + goto yy163; + goto yy158; + } +} + +bufsize_t _scan_html_comment(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yych == '-') + goto yy174; + ++p; + yy173 : { return 0; } + yy174: + yych = *(marker = ++p); + if (yych != '-') + goto yy173; + yy175: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy175; + } + if (yych >= 0x01) + goto yy177; + yy176: + p = marker; + goto yy173; + yy177: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy175; + } + if (yych <= 0x00) + goto yy176; + yych = *++p; + if (yych <= 0x00) + goto yy176; + if (yych != '>') + goto yy175; + ++p; + { return (bufsize_t)(p - start); } + } +} + +bufsize_t _scan_html_pi(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy180; + } + if (yych >= 0x01) + goto yy182; + ++p; + yy179 : { return 0; } + yy180: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy180; + } + if (yych >= 0x01) + goto yy183; + yy181 : { return (bufsize_t)(p - start); } + yy182: + yych = *++p; + if (yych <= 0x00) + goto yy179; + if (yych == '>') + goto yy179; + goto yy180; + yy183: + yych = *++p; + if (yych <= 0x00) + goto yy184; + if (yych != '>') + goto yy180; + yy184: + p = marker; + goto yy181; + } +} + +bufsize_t _scan_html_declaration(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + (void)marker; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yych <= '@') + goto yy186; + if (yych <= 'Z') + goto yy187; + if (yych <= '`') + goto yy186; + if (yych <= 'z') + goto yy187; + yy186: + ++p; + { return 0; } + yy187: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy187; + } + { return (bufsize_t)(p - start); } + } +} + +bufsize_t _scan_html_cdata(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yych == 'C') + goto yy190; + if (yych == 'c') + goto yy190; + ++p; + yy189 : { return 0; } + yy190: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'D') + goto yy191; + if (yych != 'd') + goto yy189; + yy191: + yych = *++p; + if (yych == 'A') + goto yy193; + if (yych == 'a') + goto yy193; + yy192: + p = marker; + if (yyaccept == 0) { + goto yy189; + } else { + goto yy197; + } + yy193: + yych = *++p; + if (yych == 'T') + goto yy194; + if (yych != 't') + goto yy192; + yy194: + yych = *++p; + if (yych == 'A') + goto yy195; + if (yych != 'a') + goto yy192; + yy195: + yych = *++p; + if (yych != '[') + goto yy192; + yy196: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy196; + } + if (yych >= 0x01) + goto yy198; + yy197 : { return (bufsize_t)(p - start); } + yy198: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy196; + } + if (yych <= 0x00) + goto yy192; + yych = *++p; + if (yych <= 0x00) + goto yy192; + if (yych == '>') + goto yy192; + goto yy196; + } +} + +// Try to match an HTML block tag start line, returning +// an integer code for the type of block (1-6, matching the spec). +// #7 is handled by a separate function, below. +bufsize_t _scan_html_block_start(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + yych = *p; + if (yych == '<') + goto yy201; + ++p; + yy200 : { return 0; } + yy201: + yych = *(marker = ++p); + switch (yych) { + case '!': + goto yy202; + case '/': + goto yy204; + case '?': + goto yy205; + case 'A': + case 'a': + goto yy206; + case 'B': + case 'b': + goto yy207; + case 'C': + case 'c': + goto yy208; + case 'D': + case 'd': + goto yy209; + case 'F': + case 'f': + goto yy210; + case 'H': + case 'h': + goto yy211; + case 'I': + case 'i': + goto yy212; + case 'L': + case 'l': + goto yy213; + case 'M': + case 'm': + goto yy214; + case 'N': + case 'n': + goto yy215; + case 'O': + case 'o': + goto yy216; + case 'P': + case 'p': + goto yy217; + case 'S': + case 's': + goto yy218; + case 'T': + case 't': + goto yy219; + case 'U': + case 'u': + goto yy220; + default: + goto yy200; + } + yy202: + yych = *++p; + if (yych <= 'Z') { + if (yych == '-') + goto yy221; + if (yych >= 'A') + goto yy222; + } else { + if (yych <= '[') + goto yy223; + if (yych <= '`') + goto yy203; + if (yych <= 'z') + goto yy222; + } + yy203: + p = marker; + goto yy200; + yy204: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy206; + case 'B': + case 'b': + goto yy207; + case 'C': + case 'c': + goto yy208; + case 'D': + case 'd': + goto yy209; + case 'F': + case 'f': + goto yy210; + case 'H': + case 'h': + goto yy211; + case 'I': + case 'i': + goto yy212; + case 'L': + case 'l': + goto yy213; + case 'M': + case 'm': + goto yy214; + case 'N': + case 'n': + goto yy215; + case 'O': + case 'o': + goto yy216; + case 'P': + case 'p': + goto yy224; + case 'S': + case 's': + goto yy225; + case 'T': + case 't': + goto yy226; + case 'U': + case 'u': + goto yy220; + default: + goto yy203; + } + yy205: + ++p; + { return 3; } + yy206: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= 'C') + goto yy203; + goto yy227; + } else { + if (yych <= 'Q') + goto yy203; + if (yych <= 'R') + goto yy228; + goto yy229; + } + } else { + if (yych <= 'q') { + if (yych == 'd') + goto yy227; + goto yy203; + } else { + if (yych <= 'r') + goto yy228; + if (yych <= 's') + goto yy229; + goto yy203; + } + } + yy207: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') + goto yy230; + goto yy203; + } else { + if (yych <= 'L') + goto yy231; + if (yych <= 'N') + goto yy203; + goto yy232; + } + } else { + if (yych <= 'k') { + if (yych == 'a') + goto yy230; + goto yy203; + } else { + if (yych <= 'l') + goto yy231; + if (yych == 'o') + goto yy232; + goto yy203; + } + } + yy208: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == 'A') + goto yy233; + goto yy203; + } else { + if (yych <= 'E') + goto yy234; + if (yych <= 'N') + goto yy203; + goto yy235; + } + } else { + if (yych <= 'd') { + if (yych == 'a') + goto yy233; + goto yy203; + } else { + if (yych <= 'e') + goto yy234; + if (yych == 'o') + goto yy235; + goto yy203; + } + } + yy209: + yych = *++p; + switch (yych) { + case 'D': + case 'L': + case 'T': + case 'd': + case 'l': + case 't': + goto yy236; + case 'E': + case 'e': + goto yy237; + case 'I': + case 'i': + goto yy238; + default: + goto yy203; + } + yy210: + yych = *++p; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'I') + goto yy239; + goto yy203; + } else { + if (yych <= 'O') + goto yy240; + if (yych <= 'Q') + goto yy203; + goto yy241; + } + } else { + if (yych <= 'n') { + if (yych == 'i') + goto yy239; + goto yy203; + } else { + if (yych <= 'o') + goto yy240; + if (yych == 'r') + goto yy241; + goto yy203; + } + } + yy211: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= '0') + goto yy203; + if (yych <= '6') + goto yy236; + goto yy203; + } else { + if (yych <= 'E') + goto yy242; + if (yych == 'R') + goto yy236; + goto yy203; + } + } else { + if (yych <= 'q') { + if (yych <= 'T') + goto yy243; + if (yych == 'e') + goto yy242; + goto yy203; + } else { + if (yych <= 'r') + goto yy236; + if (yych == 't') + goto yy243; + goto yy203; + } + } + yy212: + yych = *++p; + if (yych == 'F') + goto yy244; + if (yych == 'f') + goto yy244; + goto yy203; + yy213: + yych = *++p; + if (yych <= 'I') { + if (yych == 'E') + goto yy245; + if (yych <= 'H') + goto yy203; + goto yy246; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy203; + goto yy245; + } else { + if (yych == 'i') + goto yy246; + goto yy203; + } + } + yy214: + yych = *++p; + if (yych <= 'E') { + if (yych == 'A') + goto yy247; + if (yych <= 'D') + goto yy203; + goto yy248; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy203; + goto yy247; + } else { + if (yych == 'e') + goto yy248; + goto yy203; + } + } + yy215: + yych = *++p; + if (yych <= 'O') { + if (yych == 'A') + goto yy249; + if (yych <= 'N') + goto yy203; + goto yy250; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy203; + goto yy249; + } else { + if (yych == 'o') + goto yy250; + goto yy203; + } + } + yy216: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy236; + if (yych <= 'O') + goto yy203; + goto yy251; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy203; + goto yy236; + } else { + if (yych == 'p') + goto yy251; + goto yy203; + } + } + yy217: + yych = *++p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + if (yych <= 0x1F) + goto yy203; + goto yy252; + } else { + if (yych == '/') + goto yy253; + if (yych <= '=') + goto yy203; + goto yy252; + } + } else { + if (yych <= 'R') { + if (yych == 'A') + goto yy254; + if (yych <= 'Q') + goto yy203; + goto yy255; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy203; + goto yy254; + } else { + if (yych == 'r') + goto yy255; + goto yy203; + } + } + } + yy218: + yych = *++p; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'C') + goto yy256; + goto yy203; + } else { + if (yych <= 'E') + goto yy257; + if (yych <= 'S') + goto yy203; + if (yych <= 'T') + goto yy258; + goto yy259; + } + } else { + if (yych <= 'e') { + if (yych == 'c') + goto yy256; + if (yych <= 'd') + goto yy203; + goto yy257; + } else { + if (yych <= 's') + goto yy203; + if (yych <= 't') + goto yy258; + if (yych <= 'u') + goto yy259; + goto yy203; + } + } + yy219: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy260; + case 'B': + case 'b': + goto yy261; + case 'D': + case 'd': + goto yy236; + case 'E': + case 'e': + goto yy262; + case 'F': + case 'f': + goto yy263; + case 'H': + case 'h': + goto yy264; + case 'I': + case 'i': + goto yy265; + case 'R': + case 'r': + goto yy266; + default: + goto yy203; + } + yy220: + yych = *++p; + if (yych == 'L') + goto yy236; + if (yych == 'l') + goto yy236; + goto yy203; + yy221: + yych = *++p; + if (yych == '-') + goto yy267; + goto yy203; + yy222: + ++p; + { return 4; } + yy223: + yych = *++p; + if (yych == 'C') + goto yy268; + if (yych == 'c') + goto yy268; + goto yy203; + yy224: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= '@') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'A') + goto yy254; + if (yych == 'a') + goto yy254; + goto yy203; + } + } + yy225: + yych = *++p; + if (yych <= 'U') { + if (yych == 'E') + goto yy257; + if (yych <= 'T') + goto yy203; + goto yy259; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy203; + goto yy257; + } else { + if (yych == 'u') + goto yy259; + goto yy203; + } + } + yy226: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy260; + case 'B': + case 'b': + goto yy261; + case 'D': + case 'd': + goto yy236; + case 'F': + case 'f': + goto yy263; + case 'H': + case 'h': + goto yy264; + case 'I': + case 'i': + goto yy265; + case 'R': + case 'r': + goto yy266; + default: + goto yy203; + } + yy227: + yych = *++p; + if (yych == 'D') + goto yy269; + if (yych == 'd') + goto yy269; + goto yy203; + yy228: + yych = *++p; + if (yych == 'T') + goto yy270; + if (yych == 't') + goto yy270; + goto yy203; + yy229: + yych = *++p; + if (yych == 'I') + goto yy271; + if (yych == 'i') + goto yy271; + goto yy203; + yy230: + yych = *++p; + if (yych == 'S') + goto yy272; + if (yych == 's') + goto yy272; + goto yy203; + yy231: + yych = *++p; + if (yych == 'O') + goto yy273; + if (yych == 'o') + goto yy273; + goto yy203; + yy232: + yych = *++p; + if (yych == 'D') + goto yy274; + if (yych == 'd') + goto yy274; + goto yy203; + yy233: + yych = *++p; + if (yych == 'P') + goto yy275; + if (yych == 'p') + goto yy275; + goto yy203; + yy234: + yych = *++p; + if (yych == 'N') + goto yy276; + if (yych == 'n') + goto yy276; + goto yy203; + yy235: + yych = *++p; + if (yych == 'L') + goto yy277; + if (yych == 'l') + goto yy277; + goto yy203; + yy236: + yych = *++p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + if (yych <= 0x1F) + goto yy203; + goto yy252; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy203; + goto yy253; + } else { + if (yych == '>') + goto yy252; + goto yy203; + } + } + yy237: + yych = *++p; + if (yych == 'T') + goto yy278; + if (yych == 't') + goto yy278; + goto yy203; + yy238: + yych = *++p; + if (yych <= 'V') { + if (yych <= 'Q') { + if (yych == 'A') + goto yy279; + goto yy203; + } else { + if (yych <= 'R') + goto yy236; + if (yych <= 'U') + goto yy203; + goto yy236; + } + } else { + if (yych <= 'q') { + if (yych == 'a') + goto yy279; + goto yy203; + } else { + if (yych <= 'r') + goto yy236; + if (yych == 'v') + goto yy236; + goto yy203; + } + } + yy239: + yych = *++p; + if (yych <= 'G') { + if (yych == 'E') + goto yy280; + if (yych <= 'F') + goto yy203; + goto yy281; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy203; + goto yy280; + } else { + if (yych == 'g') + goto yy281; + goto yy203; + } + } + yy240: + yych = *++p; + if (yych <= 'R') { + if (yych == 'O') + goto yy276; + if (yych <= 'Q') + goto yy203; + goto yy282; + } else { + if (yych <= 'o') { + if (yych <= 'n') + goto yy203; + goto yy276; + } else { + if (yych == 'r') + goto yy282; + goto yy203; + } + } + yy241: + yych = *++p; + if (yych == 'A') + goto yy283; + if (yych == 'a') + goto yy283; + goto yy203; + yy242: + yych = *++p; + if (yych == 'A') + goto yy284; + if (yych == 'a') + goto yy284; + goto yy203; + yy243: + yych = *++p; + if (yych == 'M') + goto yy220; + if (yych == 'm') + goto yy220; + goto yy203; + yy244: + yych = *++p; + if (yych == 'R') + goto yy285; + if (yych == 'r') + goto yy285; + goto yy203; + yy245: + yych = *++p; + if (yych == 'G') + goto yy286; + if (yych == 'g') + goto yy286; + goto yy203; + yy246: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'M') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'N') + goto yy287; + if (yych == 'n') + goto yy287; + goto yy203; + } + } + yy247: + yych = *++p; + if (yych == 'I') + goto yy288; + if (yych == 'i') + goto yy288; + goto yy203; + yy248: + yych = *++p; + if (yych == 'N') + goto yy289; + if (yych == 'n') + goto yy289; + goto yy203; + yy249: + yych = *++p; + if (yych == 'V') + goto yy236; + if (yych == 'v') + goto yy236; + goto yy203; + yy250: + yych = *++p; + if (yych == 'F') + goto yy290; + if (yych == 'f') + goto yy290; + goto yy203; + yy251: + yych = *++p; + if (yych == 'T') + goto yy291; + if (yych == 't') + goto yy291; + goto yy203; + yy252: + ++p; + { return 6; } + yy253: + yych = *++p; + if (yych == '>') + goto yy252; + goto yy203; + yy254: + yych = *++p; + if (yych == 'R') + goto yy292; + if (yych == 'r') + goto yy292; + goto yy203; + yy255: + yych = *++p; + if (yych == 'E') + goto yy293; + if (yych == 'e') + goto yy293; + goto yy203; + yy256: + yych = *++p; + if (yych == 'R') + goto yy294; + if (yych == 'r') + goto yy294; + goto yy203; + yy257: + yych = *++p; + if (yych <= 'C') { + if (yych == 'A') + goto yy295; + if (yych <= 'B') + goto yy203; + goto yy275; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy203; + goto yy295; + } else { + if (yych == 'c') + goto yy275; + goto yy203; + } + } + yy258: + yych = *++p; + if (yych == 'Y') + goto yy296; + if (yych == 'y') + goto yy296; + goto yy203; + yy259: + yych = *++p; + if (yych == 'M') + goto yy297; + if (yych == 'm') + goto yy297; + goto yy203; + yy260: + yych = *++p; + if (yych == 'B') + goto yy298; + if (yych == 'b') + goto yy298; + goto yy203; + yy261: + yych = *++p; + if (yych == 'O') + goto yy232; + if (yych == 'o') + goto yy232; + goto yy203; + yy262: + yych = *++p; + if (yych == 'X') + goto yy299; + if (yych == 'x') + goto yy299; + goto yy203; + yy263: + yych = *++p; + if (yych == 'O') + goto yy300; + if (yych == 'o') + goto yy300; + goto yy203; + yy264: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'E') + goto yy301; + if (yych == 'e') + goto yy301; + goto yy203; + } + } + yy265: + yych = *++p; + if (yych == 'T') + goto yy298; + if (yych == 't') + goto yy298; + goto yy203; + yy266: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= '@') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'A') + goto yy302; + if (yych == 'a') + goto yy302; + goto yy203; + } + } + yy267: + ++p; + { return 2; } + yy268: + yych = *++p; + if (yych == 'D') + goto yy303; + if (yych == 'd') + goto yy303; + goto yy203; + yy269: + yych = *++p; + if (yych == 'R') + goto yy304; + if (yych == 'r') + goto yy304; + goto yy203; + yy270: + yych = *++p; + if (yych == 'I') + goto yy305; + if (yych == 'i') + goto yy305; + goto yy203; + yy271: + yych = *++p; + if (yych == 'D') + goto yy306; + if (yych == 'd') + goto yy306; + goto yy203; + yy272: + yych = *++p; + if (yych == 'E') + goto yy307; + if (yych == 'e') + goto yy307; + goto yy203; + yy273: + yych = *++p; + if (yych == 'C') + goto yy308; + if (yych == 'c') + goto yy308; + goto yy203; + yy274: + yych = *++p; + if (yych == 'Y') + goto yy236; + if (yych == 'y') + goto yy236; + goto yy203; + yy275: + yych = *++p; + if (yych == 'T') + goto yy309; + if (yych == 't') + goto yy309; + goto yy203; + yy276: + yych = *++p; + if (yych == 'T') + goto yy310; + if (yych == 't') + goto yy310; + goto yy203; + yy277: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'F') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'G') + goto yy311; + if (yych == 'g') + goto yy311; + goto yy203; + } + } + yy278: + yych = *++p; + if (yych == 'A') + goto yy312; + if (yych == 'a') + goto yy312; + goto yy203; + yy279: + yych = *++p; + if (yych == 'L') + goto yy313; + if (yych == 'l') + goto yy313; + goto yy203; + yy280: + yych = *++p; + if (yych == 'L') + goto yy314; + if (yych == 'l') + goto yy314; + goto yy203; + yy281: + yych = *++p; + if (yych <= 'U') { + if (yych == 'C') + goto yy315; + if (yych <= 'T') + goto yy203; + goto yy316; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy203; + goto yy315; + } else { + if (yych == 'u') + goto yy316; + goto yy203; + } + } + yy282: + yych = *++p; + if (yych == 'M') + goto yy236; + if (yych == 'm') + goto yy236; + goto yy203; + yy283: + yych = *++p; + if (yych == 'M') + goto yy317; + if (yych == 'm') + goto yy317; + goto yy203; + yy284: + yych = *++p; + if (yych == 'D') + goto yy318; + if (yych == 'd') + goto yy318; + goto yy203; + yy285: + yych = *++p; + if (yych == 'A') + goto yy319; + if (yych == 'a') + goto yy319; + goto yy203; + yy286: + yych = *++p; + if (yych == 'E') + goto yy320; + if (yych == 'e') + goto yy320; + goto yy203; + yy287: + yych = *++p; + if (yych == 'K') + goto yy236; + if (yych == 'k') + goto yy236; + goto yy203; + yy288: + yych = *++p; + if (yych == 'N') + goto yy236; + if (yych == 'n') + goto yy236; + goto yy203; + yy289: + yych = *++p; + if (yych == 'U') + goto yy321; + if (yych == 'u') + goto yy321; + goto yy203; + yy290: + yych = *++p; + if (yych == 'R') + goto yy322; + if (yych == 'r') + goto yy322; + goto yy203; + yy291: + yych = *++p; + if (yych <= 'I') { + if (yych == 'G') + goto yy311; + if (yych <= 'H') + goto yy203; + goto yy323; + } else { + if (yych <= 'g') { + if (yych <= 'f') + goto yy203; + goto yy311; + } else { + if (yych == 'i') + goto yy323; + goto yy203; + } + } + yy292: + yych = *++p; + if (yych == 'A') + goto yy282; + if (yych == 'a') + goto yy282; + goto yy203; + yy293: + yych = *++p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy324; + goto yy203; + } else { + if (yych <= ' ') + goto yy324; + if (yych == '>') + goto yy324; + goto yy203; + } + yy294: + yych = *++p; + if (yych == 'I') + goto yy325; + if (yych == 'i') + goto yy325; + goto yy203; + yy295: + yych = *++p; + if (yych == 'R') + goto yy326; + if (yych == 'r') + goto yy326; + goto yy203; + yy296: + yych = *++p; + if (yych == 'L') + goto yy255; + if (yych == 'l') + goto yy255; + goto yy203; + yy297: + yych = *++p; + if (yych == 'M') + goto yy327; + if (yych == 'm') + goto yy327; + goto yy203; + yy298: + yych = *++p; + if (yych == 'L') + goto yy306; + if (yych == 'l') + goto yy306; + goto yy203; + yy299: + yych = *++p; + if (yych == 'T') + goto yy328; + if (yych == 't') + goto yy328; + goto yy203; + yy300: + yych = *++p; + if (yych == 'O') + goto yy329; + if (yych == 'o') + goto yy329; + goto yy203; + yy301: + yych = *++p; + if (yych == 'A') + goto yy330; + if (yych == 'a') + goto yy330; + goto yy203; + yy302: + yych = *++p; + if (yych == 'C') + goto yy287; + if (yych == 'c') + goto yy287; + goto yy203; + yy303: + yych = *++p; + if (yych == 'A') + goto yy331; + if (yych == 'a') + goto yy331; + goto yy203; + yy304: + yych = *++p; + if (yych == 'E') + goto yy332; + if (yych == 'e') + goto yy332; + goto yy203; + yy305: + yych = *++p; + if (yych == 'C') + goto yy298; + if (yych == 'c') + goto yy298; + goto yy203; + yy306: + yych = *++p; + if (yych == 'E') + goto yy236; + if (yych == 'e') + goto yy236; + goto yy203; + yy307: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'E') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'F') + goto yy333; + if (yych == 'f') + goto yy333; + goto yy203; + } + } + yy308: + yych = *++p; + if (yych == 'K') + goto yy334; + if (yych == 'k') + goto yy334; + goto yy203; + yy309: + yych = *++p; + if (yych == 'I') + goto yy323; + if (yych == 'i') + goto yy323; + goto yy203; + yy310: + yych = *++p; + if (yych == 'E') + goto yy335; + if (yych == 'e') + goto yy335; + goto yy203; + yy311: + yych = *++p; + if (yych == 'R') + goto yy336; + if (yych == 'r') + goto yy336; + goto yy203; + yy312: + yych = *++p; + if (yych == 'I') + goto yy337; + if (yych == 'i') + goto yy337; + goto yy203; + yy313: + yych = *++p; + if (yych == 'O') + goto yy338; + if (yych == 'o') + goto yy338; + goto yy203; + yy314: + yych = *++p; + if (yych == 'D') + goto yy339; + if (yych == 'd') + goto yy339; + goto yy203; + yy315: + yych = *++p; + if (yych == 'A') + goto yy233; + if (yych == 'a') + goto yy233; + goto yy203; + yy316: + yych = *++p; + if (yych == 'R') + goto yy306; + if (yych == 'r') + goto yy306; + goto yy203; + yy317: + yych = *++p; + if (yych == 'E') + goto yy340; + if (yych == 'e') + goto yy340; + goto yy203; + yy318: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'E') + goto yy335; + if (yych == 'e') + goto yy335; + goto yy203; + } + } + yy319: + yych = *++p; + if (yych == 'M') + goto yy306; + if (yych == 'm') + goto yy306; + goto yy203; + yy320: + yych = *++p; + if (yych == 'N') + goto yy330; + if (yych == 'n') + goto yy330; + goto yy203; + yy321: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'H') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'I') + goto yy341; + if (yych == 'i') + goto yy341; + goto yy203; + } + } + yy322: + yych = *++p; + if (yych == 'A') + goto yy342; + if (yych == 'a') + goto yy342; + goto yy203; + yy323: + yych = *++p; + if (yych == 'O') + goto yy288; + if (yych == 'o') + goto yy288; + goto yy203; + yy324: + ++p; + { return 1; } + yy325: + yych = *++p; + if (yych == 'P') + goto yy343; + if (yych == 'p') + goto yy343; + goto yy203; + yy326: + yych = *++p; + if (yych == 'C') + goto yy344; + if (yych == 'c') + goto yy344; + goto yy203; + yy327: + yych = *++p; + if (yych == 'A') + goto yy345; + if (yych == 'a') + goto yy345; + goto yy203; + yy328: + yych = *++p; + if (yych == 'A') + goto yy346; + if (yych == 'a') + goto yy346; + goto yy203; + yy329: + yych = *++p; + if (yych == 'T') + goto yy236; + if (yych == 't') + goto yy236; + goto yy203; + yy330: + yych = *++p; + if (yych == 'D') + goto yy236; + if (yych == 'd') + goto yy236; + goto yy203; + yy331: + yych = *++p; + if (yych == 'T') + goto yy347; + if (yych == 't') + goto yy347; + goto yy203; + yy332: + yych = *++p; + if (yych == 'S') + goto yy348; + if (yych == 's') + goto yy348; + goto yy203; + yy333: + yych = *++p; + if (yych == 'O') + goto yy349; + if (yych == 'o') + goto yy349; + goto yy203; + yy334: + yych = *++p; + if (yych == 'Q') + goto yy350; + if (yych == 'q') + goto yy350; + goto yy203; + yy335: + yych = *++p; + if (yych == 'R') + goto yy236; + if (yych == 'r') + goto yy236; + goto yy203; + yy336: + yych = *++p; + if (yych == 'O') + goto yy351; + if (yych == 'o') + goto yy351; + goto yy203; + yy337: + yych = *++p; + if (yych == 'L') + goto yy348; + if (yych == 'l') + goto yy348; + goto yy203; + yy338: + yych = *++p; + if (yych == 'G') + goto yy236; + if (yych == 'g') + goto yy236; + goto yy203; + yy339: + yych = *++p; + if (yych == 'S') + goto yy352; + if (yych == 's') + goto yy352; + goto yy203; + yy340: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy203; + if (yych <= '\r') + goto yy252; + goto yy203; + } else { + if (yych <= ' ') + goto yy252; + if (yych <= '.') + goto yy203; + goto yy253; + } + } else { + if (yych <= 'R') { + if (yych == '>') + goto yy252; + goto yy203; + } else { + if (yych <= 'S') + goto yy352; + if (yych == 's') + goto yy352; + goto yy203; + } + } + yy341: + yych = *++p; + if (yych == 'T') + goto yy353; + if (yych == 't') + goto yy353; + goto yy203; + yy342: + yych = *++p; + if (yych == 'M') + goto yy354; + if (yych == 'm') + goto yy354; + goto yy203; + yy343: + yych = *++p; + if (yych == 'T') + goto yy293; + if (yych == 't') + goto yy293; + goto yy203; + yy344: + yych = *++p; + if (yych == 'H') + goto yy236; + if (yych == 'h') + goto yy236; + goto yy203; + yy345: + yych = *++p; + if (yych == 'R') + goto yy274; + if (yych == 'r') + goto yy274; + goto yy203; + yy346: + yych = *++p; + if (yych == 'R') + goto yy355; + if (yych == 'r') + goto yy355; + goto yy203; + yy347: + yych = *++p; + if (yych == 'A') + goto yy356; + if (yych == 'a') + goto yy356; + goto yy203; + yy348: + yych = *++p; + if (yych == 'S') + goto yy236; + if (yych == 's') + goto yy236; + goto yy203; + yy349: + yych = *++p; + if (yych == 'N') + goto yy329; + if (yych == 'n') + goto yy329; + goto yy203; + yy350: + yych = *++p; + if (yych == 'U') + goto yy357; + if (yych == 'u') + goto yy357; + goto yy203; + yy351: + yych = *++p; + if (yych == 'U') + goto yy358; + if (yych == 'u') + goto yy358; + goto yy203; + yy352: + yych = *++p; + if (yych == 'E') + goto yy329; + if (yych == 'e') + goto yy329; + goto yy203; + yy353: + yych = *++p; + if (yych == 'E') + goto yy282; + if (yych == 'e') + goto yy282; + goto yy203; + yy354: + yych = *++p; + if (yych == 'E') + goto yy348; + if (yych == 'e') + goto yy348; + goto yy203; + yy355: + yych = *++p; + if (yych == 'E') + goto yy359; + if (yych == 'e') + goto yy359; + goto yy203; + yy356: + yych = *++p; + if (yych == '[') + goto yy360; + goto yy203; + yy357: + yych = *++p; + if (yych == 'O') + goto yy361; + if (yych == 'o') + goto yy361; + goto yy203; + yy358: + yych = *++p; + if (yych == 'P') + goto yy236; + if (yych == 'p') + goto yy236; + goto yy203; + yy359: + yych = *++p; + if (yych == 'A') + goto yy293; + if (yych == 'a') + goto yy293; + goto yy203; + yy360: + ++p; + { return 5; } + yy361: + yych = *++p; + if (yych == 'T') + goto yy306; + if (yych == 't') + goto yy306; + goto yy203; + } +} + +// Try to match an HTML block tag start line of type 7, returning +// 7 if successful, 0 if not. +bufsize_t _scan_html_block_start_7(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64, 224, 224, + 224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, + }; + yych = *p; + if (yych == '<') + goto yy364; + ++p; + yy363 : { return 0; } + yy364: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '@') { + if (yych != '/') + goto yy363; + } else { + if (yych <= 'Z') + goto yy366; + if (yych <= '`') + goto yy363; + if (yych <= 'z') + goto yy366; + goto yy363; + } + yych = *++p; + if (yych <= '@') + goto yy365; + if (yych <= 'Z') + goto yy367; + if (yych <= '`') + goto yy365; + if (yych <= 'z') + goto yy367; + yy365: + p = marker; + if (yyaccept == 0) { + goto yy363; + } else { + goto yy374; + } + yy366: + yych = *++p; + if (yybm[0 + yych] & 2) { + goto yy368; + } + if (yych <= '=') { + if (yych <= '.') { + if (yych == '-') + goto yy366; + goto yy365; + } else { + if (yych <= '/') + goto yy369; + if (yych <= '9') + goto yy366; + goto yy365; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy370; + if (yych <= '@') + goto yy365; + goto yy366; + } else { + if (yych <= '`') + goto yy365; + if (yych <= 'z') + goto yy366; + goto yy365; + } + } + yy367: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy365; + if (yych <= '\r') + goto yy371; + goto yy365; + } else { + if (yych <= ' ') + goto yy371; + if (yych == '-') + goto yy367; + goto yy365; + } + } else { + if (yych <= '@') { + if (yych <= '9') + goto yy367; + if (yych == '>') + goto yy370; + goto yy365; + } else { + if (yych <= 'Z') + goto yy367; + if (yych <= '`') + goto yy365; + if (yych <= 'z') + goto yy367; + goto yy365; + } + } + yy368: + yych = *++p; + if (yybm[0 + yych] & 2) { + goto yy368; + } + if (yych <= '>') { + if (yych <= '9') { + if (yych != '/') + goto yy365; + } else { + if (yych <= ':') + goto yy372; + if (yych <= '=') + goto yy365; + goto yy370; + } + } else { + if (yych <= '^') { + if (yych <= '@') + goto yy365; + if (yych <= 'Z') + goto yy372; + goto yy365; + } else { + if (yych == '`') + goto yy365; + if (yych <= 'z') + goto yy372; + goto yy365; + } + } + yy369: + yych = *++p; + if (yych != '>') + goto yy365; + yy370: + yych = *++p; + if (yybm[0 + yych] & 4) { + goto yy370; + } + if (yych <= 0x08) + goto yy365; + if (yych <= '\n') + goto yy373; + if (yych <= '\v') + goto yy365; + if (yych <= '\r') + goto yy375; + goto yy365; + yy371: + yych = *++p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy365; + if (yych <= '\r') + goto yy371; + goto yy365; + } else { + if (yych <= ' ') + goto yy371; + if (yych == '>') + goto yy370; + goto yy365; + } + yy372: + yych = *++p; + if (yybm[0 + yych] & 8) { + goto yy372; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy365; + goto yy376; + } else { + if (yych == ' ') + goto yy376; + goto yy365; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy369; + goto yy365; + } else { + if (yych <= '=') + goto yy377; + if (yych <= '>') + goto yy370; + goto yy365; + } + } + yy373: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 4) { + goto yy370; + } + if (yych <= 0x08) + goto yy374; + if (yych <= '\n') + goto yy373; + if (yych <= '\v') + goto yy374; + if (yych <= '\r') + goto yy375; + yy374 : { return 7; } + yy375: + ++p; + goto yy374; + yy376: + yych = *++p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy365; + if (yych <= '\r') + goto yy376; + if (yych <= 0x1F) + goto yy365; + goto yy376; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy365; + goto yy369; + } else { + if (yych == ':') + goto yy372; + goto yy365; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy377; + if (yych <= '>') + goto yy370; + if (yych <= '@') + goto yy365; + goto yy372; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy365; + goto yy372; + } else { + if (yych <= '`') + goto yy365; + if (yych <= 'z') + goto yy372; + goto yy365; + } + } + } + yy377: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy378; + } + if (yych <= 0x00) + goto yy365; + if (yych <= ' ') + goto yy377; + if (yych <= '"') + goto yy379; + if (yych <= '\'') + goto yy380; + goto yy365; + yy378: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy378; + } + if (yych <= 0x00) + goto yy365; + if (yych <= ' ') + goto yy368; + if (yych == '>') + goto yy370; + goto yy365; + yy379: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy379; + } + if (yych <= 0x00) + goto yy365; + goto yy381; + yy380: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy380; + } + if (yych <= 0x00) + goto yy365; + yy381: + yych = *++p; + if (yybm[0 + yych] & 2) { + goto yy368; + } + if (yych == '/') + goto yy369; + if (yych == '>') + goto yy370; + goto yy365; + } +} + +// Try to match an HTML block end line of type 1 +bufsize_t _scan_html_block_end_1(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, + }; + yych = *p; + if (yych <= '\n') { + if (yych <= 0x00) + goto yy383; + if (yych <= '\t') + goto yy385; + } else { + if (yych == '<') + goto yy386; + goto yy385; + } + yy383: + ++p; + yy384 : { return 0; } + yy385: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy384; + if (yych == '\n') + goto yy384; + goto yy388; + yy386: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy384; + if (yych <= '\t') + goto yy388; + goto yy384; + } else { + if (yych == '/') + goto yy391; + goto yy388; + } + yy387: + yych = *++p; + yy388: + if (yybm[0 + yych] & 64) { + goto yy387; + } + if (yych >= '\v') + goto yy390; + yy389: + p = marker; + if (yyaccept == 0) { + goto yy384; + } else { + goto yy404; + } + yy390: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy389; + if (yych <= '\t') + goto yy387; + goto yy389; + } else { + if (yych != '/') + goto yy387; + } + yy391: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'S') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy389; + if (yych <= '\t') + goto yy387; + goto yy389; + } else { + if (yych == 'P') + goto yy392; + if (yych <= 'R') + goto yy387; + goto yy393; + } + } else { + if (yych <= 'p') { + if (yych <= 'T') + goto yy394; + if (yych <= 'o') + goto yy387; + } else { + if (yych <= 'r') + goto yy387; + if (yych <= 's') + goto yy393; + if (yych <= 't') + goto yy394; + goto yy387; + } + } + yy392: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'Q') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'R') + goto yy395; + if (yych == 'r') + goto yy395; + goto yy387; + } + yy393: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'S') { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy389; + if (yych <= '\t') + goto yy387; + goto yy389; + } else { + if (yych == 'C') + goto yy396; + goto yy387; + } + } else { + if (yych <= 'c') { + if (yych <= 'T') + goto yy397; + if (yych <= 'b') + goto yy387; + goto yy396; + } else { + if (yych == 't') + goto yy397; + goto yy387; + } + } + yy394: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'D') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'E') + goto yy398; + if (yych == 'e') + goto yy398; + goto yy387; + } + yy395: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'D') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'E') + goto yy399; + if (yych == 'e') + goto yy399; + goto yy387; + } + yy396: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'Q') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'R') + goto yy400; + if (yych == 'r') + goto yy400; + goto yy387; + } + yy397: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'X') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'Y') + goto yy401; + if (yych == 'y') + goto yy401; + goto yy387; + } + yy398: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'W') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'X') + goto yy402; + if (yych == 'x') + goto yy402; + goto yy387; + } + yy399: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy389; + if (yych <= '\t') + goto yy387; + goto yy389; + } else { + if (yych == '>') + goto yy403; + goto yy387; + } + yy400: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'H') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'I') + goto yy405; + if (yych == 'i') + goto yy405; + goto yy387; + } + yy401: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'K') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'L') + goto yy395; + if (yych == 'l') + goto yy395; + goto yy387; + } + yy402: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'S') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'T') + goto yy406; + if (yych == 't') + goto yy406; + goto yy387; + } + yy403: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy387; + } + if (yych >= '\v') + goto yy390; + yy404 : { return (bufsize_t)(p - start); } + yy405: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'O') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'P') + goto yy407; + if (yych == 'p') + goto yy407; + goto yy387; + } + yy406: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= '@') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'A') + goto yy408; + if (yych == 'a') + goto yy408; + goto yy387; + } + yy407: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'S') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'T') + goto yy399; + if (yych == 't') + goto yy399; + goto yy387; + } + yy408: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'Q') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'R') + goto yy409; + if (yych != 'r') + goto yy387; + } + yy409: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= 'D') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'E') + goto yy410; + if (yych != 'e') + goto yy387; + } + yy410: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy390; + } + if (yych <= '@') { + if (yych <= 0x00) + goto yy389; + if (yych == '\n') + goto yy389; + goto yy387; + } else { + if (yych <= 'A') + goto yy399; + if (yych == 'a') + goto yy399; + goto yy387; + } + } +} + +// Try to match an HTML block end line of type 2 +bufsize_t _scan_html_block_end_2(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, + }; + yych = *p; + if (yych <= '\n') { + if (yych <= 0x00) + goto yy412; + if (yych <= '\t') + goto yy414; + } else { + if (yych == '-') + goto yy415; + goto yy414; + } + yy412: + ++p; + yy413 : { return 0; } + yy414: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy413; + if (yych == '\n') + goto yy413; + goto yy417; + yy415: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy416; + } + if (yych <= '\n') + goto yy413; + goto yy420; + yy416: + yych = *++p; + yy417: + if (yybm[0 + yych] & 64) { + goto yy416; + } + if (yych >= '\v') + goto yy419; + yy418: + p = marker; + if (yyaccept == 0) { + goto yy413; + } else { + goto yy421; + } + yy419: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy416; + } + if (yych <= '\n') + goto yy418; + yy420: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy420; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy418; + if (yych <= '\t') + goto yy416; + goto yy418; + } else { + if (yych != '>') + goto yy416; + } + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy416; + } + if (yych >= '\v') + goto yy419; + yy421 : { return (bufsize_t)(p - start); } + } +} + +// Try to match an HTML block end line of type 3 +bufsize_t _scan_html_block_end_3(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, + }; + yych = *p; + if (yych <= '\n') { + if (yych <= 0x00) + goto yy423; + if (yych <= '\t') + goto yy425; + } else { + if (yych == '?') + goto yy426; + goto yy425; + } + yy423: + ++p; + yy424 : { return 0; } + yy425: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy424; + if (yych == '\n') + goto yy424; + goto yy428; + yy426: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy424; + if (yych <= '\t') + goto yy428; + goto yy424; + } else { + if (yych == '>') + goto yy431; + goto yy428; + } + yy427: + yych = *++p; + yy428: + if (yybm[0 + yych] & 64) { + goto yy427; + } + if (yych >= '\v') + goto yy430; + yy429: + p = marker; + if (yyaccept == 0) { + goto yy424; + } else { + goto yy432; + } + yy430: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy430; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy429; + if (yych <= '\t') + goto yy427; + goto yy429; + } else { + if (yych != '>') + goto yy427; + } + yy431: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy427; + } + if (yych >= '\v') + goto yy430; + yy432 : { return (bufsize_t)(p - start); } + } +} + +// Try to match an HTML block end line of type 4 +bufsize_t _scan_html_block_end_4(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 64, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, + }; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy437; + } + if (yych <= 0x00) + goto yy434; + if (yych != '\n') + goto yy436; + yy434: + ++p; + yy435 : { return 0; } + yy436: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy435; + if (yych == '\n') + goto yy435; + goto yy440; + yy437: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy439; + } + if (yych >= '\v') + goto yy437; + yy438 : { return (bufsize_t)(p - start); } + yy439: + yych = *++p; + yy440: + if (yybm[0 + yych] & 128) { + goto yy439; + } + if (yych >= '\v') + goto yy437; + p = marker; + if (yyaccept == 0) { + goto yy435; + } else { + goto yy438; + } + } +} + +// Try to match an HTML block end line of type 5 +bufsize_t _scan_html_block_end_5(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, + }; + yych = *p; + if (yych <= '\n') { + if (yych <= 0x00) + goto yy442; + if (yych <= '\t') + goto yy444; + } else { + if (yych == ']') + goto yy445; + goto yy444; + } + yy442: + ++p; + yy443 : { return 0; } + yy444: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy443; + if (yych == '\n') + goto yy443; + goto yy447; + yy445: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy446; + } + if (yych <= '\n') + goto yy443; + goto yy450; + yy446: + yych = *++p; + yy447: + if (yybm[0 + yych] & 64) { + goto yy446; + } + if (yych >= '\v') + goto yy449; + yy448: + p = marker; + if (yyaccept == 0) { + goto yy443; + } else { + goto yy451; + } + yy449: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy446; + } + if (yych <= '\n') + goto yy448; + yy450: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy450; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy448; + if (yych <= '\t') + goto yy446; + goto yy448; + } else { + if (yych != '>') + goto yy446; + } + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy446; + } + if (yych >= '\v') + goto yy449; + yy451 : { return (bufsize_t)(p - start); } + } +} + +// Try to match a link title (in single quotes, in double quotes, or +// in parentheses), returning number of chars matched. Allow one +// level of internal nesting (quotes within quotes). +bufsize_t _scan_link_title(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 192, 208, 208, 208, 208, 144, 80, 80, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 32, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, + }; + yych = *p; + if (yych <= '&') { + if (yych == '"') + goto yy454; + } else { + if (yych <= '\'') + goto yy455; + if (yych <= '(') + goto yy456; + } + ++p; + yy453 : { return 0; } + yy454: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy453; + goto yy458; + yy455: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy453; + goto yy464; + yy456: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy453; + if (yych == '(') + goto yy453; + goto yy469; + yy457: + yych = *++p; + yy458: + if (yybm[0 + yych] & 16) { + goto yy457; + } + if (yych <= 0x00) + goto yy459; + if (yych <= '"') + goto yy460; + goto yy462; + yy459: + p = marker; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy453; + } else { + goto yy461; + } + } else { + if (yyaccept == 2) { + goto yy466; + } else { + goto yy471; + } + } + yy460: + ++p; + yy461 : { return (bufsize_t)(p - start); } + yy462: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy457; + } + if (yych <= 0x00) + goto yy459; + if (yych <= '"') + goto yy473; + goto yy462; + yy463: + yych = *++p; + yy464: + if (yybm[0 + yych] & 64) { + goto yy463; + } + if (yych <= 0x00) + goto yy459; + if (yych >= '(') + goto yy467; + yy465: + ++p; + yy466 : { return (bufsize_t)(p - start); } + yy467: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy463; + } + if (yych <= 0x00) + goto yy459; + if (yych <= '\'') + goto yy474; + goto yy467; + yy468: + yych = *++p; + yy469: + if (yybm[0 + yych] & 128) { + goto yy468; + } + if (yych <= '(') + goto yy459; + if (yych >= '*') + goto yy472; + yy470: + ++p; + yy471 : { return (bufsize_t)(p - start); } + yy472: + yych = *++p; + if (yych <= ')') { + if (yych <= 0x00) + goto yy459; + if (yych <= '(') + goto yy468; + goto yy475; + } else { + if (yych == '\\') + goto yy472; + goto yy468; + } + yy473: + yyaccept = 1; + yych = *(marker = ++p); + if (yybm[0 + yych] & 16) { + goto yy457; + } + if (yych <= 0x00) + goto yy461; + if (yych <= '"') + goto yy460; + goto yy462; + yy474: + yyaccept = 2; + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy463; + } + if (yych <= 0x00) + goto yy466; + if (yych <= '\'') + goto yy465; + goto yy467; + yy475: + yyaccept = 3; + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy468; + } + if (yych <= '(') + goto yy471; + if (yych <= ')') + goto yy470; + goto yy472; + } +} + +// Match space characters, including newlines. +bufsize_t _scan_spacechars(const unsigned char *p) { + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy477; + } + ++p; + { return 0; } + yy477: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy477; + } + { return (bufsize_t)(p - start); } + } +} + +// Match ATX heading start. +bufsize_t _scan_atx_heading_start(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '#') + goto yy480; + ++p; + yy479 : { return 0; } + yy480: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy479; + if (yych <= '\n') + goto yy483; + goto yy479; + } else { + if (yych <= '\r') + goto yy483; + if (yych == '#') + goto yy484; + goto yy479; + } + yy481: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + yy482 : { return (bufsize_t)(p - start); } + yy483: + ++p; + goto yy482; + yy484: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy485; + if (yych <= '\n') + goto yy483; + } else { + if (yych <= '\r') + goto yy483; + if (yych == '#') + goto yy486; + } + yy485: + p = marker; + goto yy479; + yy486: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy485; + if (yych <= '\n') + goto yy483; + goto yy485; + } else { + if (yych <= '\r') + goto yy483; + if (yych != '#') + goto yy485; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy485; + if (yych <= '\n') + goto yy483; + goto yy485; + } else { + if (yych <= '\r') + goto yy483; + if (yych != '#') + goto yy485; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy485; + if (yych <= '\n') + goto yy483; + goto yy485; + } else { + if (yych <= '\r') + goto yy483; + if (yych != '#') + goto yy485; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy481; + } + if (yych <= 0x08) + goto yy485; + if (yych <= '\n') + goto yy483; + if (yych == '\r') + goto yy483; + goto yy485; + } +} + +// Match setext heading line. Return 1 for level-1 heading, +// 2 for level-2, 0 for no match. +bufsize_t _scan_setext_heading_line(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '-') + goto yy489; + if (yych == '=') + goto yy490; + ++p; + yy488 : { return 0; } + yy489: + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy495; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy488; + if (yych <= '\n') + goto yy492; + goto yy488; + } else { + if (yych <= '\r') + goto yy492; + if (yych == ' ') + goto yy492; + goto yy488; + } + yy490: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy499; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy488; + if (yych <= '\n') + goto yy497; + goto yy488; + } else { + if (yych <= '\r') + goto yy497; + if (yych == ' ') + goto yy497; + goto yy488; + } + yy491: + yych = *++p; + yy492: + if (yybm[0 + yych] & 32) { + goto yy491; + } + if (yych <= 0x08) + goto yy493; + if (yych <= '\n') + goto yy494; + if (yych == '\r') + goto yy494; + yy493: + p = marker; + goto yy488; + yy494: + ++p; + { return 2; } + yy495: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy491; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy493; + if (yych <= '\n') + goto yy494; + goto yy493; + } else { + if (yych <= '\r') + goto yy494; + if (yych == '-') + goto yy495; + goto yy493; + } + yy496: + yych = *++p; + yy497: + if (yych <= '\f') { + if (yych <= 0x08) + goto yy493; + if (yych <= '\t') + goto yy496; + if (yych >= '\v') + goto yy493; + } else { + if (yych <= '\r') + goto yy498; + if (yych == ' ') + goto yy496; + goto yy493; + } + yy498: + ++p; + { return 1; } + yy499: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy499; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy493; + if (yych <= '\t') + goto yy496; + if (yych <= '\n') + goto yy498; + goto yy493; + } else { + if (yych <= '\r') + goto yy498; + if (yych == ' ') + goto yy496; + goto yy493; + } + } +} + +// Scan an opening code fence. +bufsize_t _scan_open_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 192, 192, 0, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 224, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, + }; + yych = *p; + if (yych == '`') + goto yy502; + if (yych == '~') + goto yy503; + ++p; + yy501 : { return 0; } + yy502: + yych = *(marker = ++p); + if (yych == '`') + goto yy504; + goto yy501; + yy503: + yych = *(marker = ++p); + if (yych == '~') + goto yy506; + goto yy501; + yy504: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy507; + } + yy505: + p = marker; + goto yy501; + yy506: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy508; + } + goto yy505; + yy507: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy507; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy505; + if (yych <= '\t') { + marker = p; + goto yy509; + } + marker = p; + goto yy510; + } else { + if (yych == '\r') { + marker = p; + goto yy510; + } + marker = p; + goto yy509; + } + yy508: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy508; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy505; + if (yych <= '\t') { + marker = p; + goto yy511; + } + marker = p; + goto yy512; + } else { + if (yych == '\r') { + marker = p; + goto yy512; + } + marker = p; + goto yy511; + } + yy509: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy509; + } + if (yych <= 0x00) + goto yy505; + if (yych >= 0x0E) + goto yy505; + yy510: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy511: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy511; + } + if (yych <= 0x00) + goto yy505; + yy512: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + } +} + +// Scan a closing code fence with length at least len. +bufsize_t _scan_close_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '`') + goto yy515; + if (yych == '~') + goto yy516; + ++p; + yy514 : { return 0; } + yy515: + yych = *(marker = ++p); + if (yych == '`') + goto yy517; + goto yy514; + yy516: + yych = *(marker = ++p); + if (yych == '~') + goto yy519; + goto yy514; + yy517: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy520; + } + yy518: + p = marker; + goto yy514; + yy519: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy521; + } + goto yy518; + yy520: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy520; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy518; + if (yych <= '\t') { + marker = p; + goto yy522; + } + if (yych <= '\n') { + marker = p; + goto yy523; + } + goto yy518; + } else { + if (yych <= '\r') { + marker = p; + goto yy523; + } + if (yych == ' ') { + marker = p; + goto yy522; + } + goto yy518; + } + yy521: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy521; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy518; + if (yych <= '\t') { + marker = p; + goto yy524; + } + if (yych <= '\n') { + marker = p; + goto yy525; + } + goto yy518; + } else { + if (yych <= '\r') { + marker = p; + goto yy525; + } + if (yych == ' ') { + marker = p; + goto yy524; + } + goto yy518; + } + yy522: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy522; + } + if (yych <= 0x08) + goto yy518; + if (yych <= '\n') + goto yy523; + if (yych != '\r') + goto yy518; + yy523: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy524: + yych = *++p; + if (yych <= '\f') { + if (yych <= 0x08) + goto yy518; + if (yych <= '\t') + goto yy524; + if (yych >= '\v') + goto yy518; + } else { + if (yych <= '\r') + goto yy525; + if (yych == ' ') + goto yy524; + goto yy518; + } + yy525: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + } +} + +// Returns positive value if a URL begins in a way that is potentially +// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0. +bufsize_t _scan_dangerous_url(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + if (yych <= 'V') { + if (yych <= 'F') { + if (yych == 'D') + goto yy528; + if (yych >= 'F') + goto yy529; + } else { + if (yych == 'J') + goto yy530; + if (yych >= 'V') + goto yy531; + } + } else { + if (yych <= 'f') { + if (yych == 'd') + goto yy528; + if (yych >= 'f') + goto yy529; + } else { + if (yych <= 'j') { + if (yych >= 'j') + goto yy530; + } else { + if (yych == 'v') + goto yy531; + } + } + } + ++p; + yy527 : { return 0; } + yy528: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy532; + if (yych == 'a') + goto yy532; + goto yy527; + yy529: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'I') + goto yy534; + if (yych == 'i') + goto yy534; + goto yy527; + yy530: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy535; + if (yych == 'a') + goto yy535; + goto yy527; + yy531: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'B') + goto yy536; + if (yych == 'b') + goto yy536; + goto yy527; + yy532: + yych = *++p; + if (yych == 'T') + goto yy537; + if (yych == 't') + goto yy537; + yy533: + p = marker; + if (yyaccept == 0) { + goto yy527; + } else { + goto yy545; + } + yy534: + yych = *++p; + if (yych == 'L') + goto yy538; + if (yych == 'l') + goto yy538; + goto yy533; + yy535: + yych = *++p; + if (yych == 'V') + goto yy539; + if (yych == 'v') + goto yy539; + goto yy533; + yy536: + yych = *++p; + if (yych == 'S') + goto yy540; + if (yych == 's') + goto yy540; + goto yy533; + yy537: + yych = *++p; + if (yych == 'A') + goto yy541; + if (yych == 'a') + goto yy541; + goto yy533; + yy538: + yych = *++p; + if (yych == 'E') + goto yy542; + if (yych == 'e') + goto yy542; + goto yy533; + yy539: + yych = *++p; + if (yych == 'A') + goto yy536; + if (yych == 'a') + goto yy536; + goto yy533; + yy540: + yych = *++p; + if (yych == 'C') + goto yy543; + if (yych == 'c') + goto yy543; + goto yy533; + yy541: + yych = *++p; + if (yych == ':') + goto yy544; + goto yy533; + yy542: + yych = *++p; + if (yych == ':') + goto yy546; + goto yy533; + yy543: + yych = *++p; + if (yych == 'R') + goto yy547; + if (yych == 'r') + goto yy547; + goto yy533; + yy544: + yyaccept = 1; + yych = *(marker = ++p); + if (yych == 'I') + goto yy548; + if (yych == 'i') + goto yy548; + yy545 : { return (bufsize_t)(p - start); } + yy546: + ++p; + goto yy545; + yy547: + yych = *++p; + if (yych == 'I') + goto yy549; + if (yych == 'i') + goto yy549; + goto yy533; + yy548: + yych = *++p; + if (yych == 'M') + goto yy550; + if (yych == 'm') + goto yy550; + goto yy533; + yy549: + yych = *++p; + if (yych == 'P') + goto yy551; + if (yych == 'p') + goto yy551; + goto yy533; + yy550: + yych = *++p; + if (yych == 'A') + goto yy552; + if (yych == 'a') + goto yy552; + goto yy533; + yy551: + yych = *++p; + if (yych == 'T') + goto yy542; + if (yych == 't') + goto yy542; + goto yy533; + yy552: + yych = *++p; + if (yych == 'G') + goto yy553; + if (yych != 'g') + goto yy533; + yy553: + yych = *++p; + if (yych == 'E') + goto yy554; + if (yych != 'e') + goto yy533; + yy554: + yych = *++p; + if (yych != '/') + goto yy533; + yych = *++p; + if (yych <= 'W') { + if (yych <= 'J') { + if (yych == 'G') + goto yy555; + if (yych <= 'I') + goto yy533; + goto yy556; + } else { + if (yych == 'P') + goto yy557; + if (yych <= 'V') + goto yy533; + goto yy558; + } + } else { + if (yych <= 'j') { + if (yych == 'g') + goto yy555; + if (yych <= 'i') + goto yy533; + goto yy556; + } else { + if (yych <= 'p') { + if (yych <= 'o') + goto yy533; + goto yy557; + } else { + if (yych == 'w') + goto yy558; + goto yy533; + } + } + } + yy555: + yych = *++p; + if (yych == 'I') + goto yy559; + if (yych == 'i') + goto yy559; + goto yy533; + yy556: + yych = *++p; + if (yych == 'P') + goto yy560; + if (yych == 'p') + goto yy560; + goto yy533; + yy557: + yych = *++p; + if (yych == 'N') + goto yy561; + if (yych == 'n') + goto yy561; + goto yy533; + yy558: + yych = *++p; + if (yych == 'E') + goto yy562; + if (yych == 'e') + goto yy562; + goto yy533; + yy559: + yych = *++p; + if (yych == 'F') + goto yy563; + if (yych == 'f') + goto yy563; + goto yy533; + yy560: + yych = *++p; + if (yych == 'E') + goto yy561; + if (yych != 'e') + goto yy533; + yy561: + yych = *++p; + if (yych == 'G') + goto yy563; + if (yych == 'g') + goto yy563; + goto yy533; + yy562: + yych = *++p; + if (yych == 'B') + goto yy564; + if (yych == 'b') + goto yy564; + goto yy533; + yy563: + ++p; + { return 0; } + yy564: + yych = *++p; + if (yych == 'P') + goto yy563; + if (yych == 'p') + goto yy563; + goto yy533; + } +} |
