/* Generated by re2c 0.15.3 */ #include #include "ext_scanners.h" bufsize_t _ext_scan_at(bufsize_t (*scanner)(const unsigned char *), unsigned char *ptr, int len, bufsize_t offset) { bufsize_t res; if (ptr == NULL || offset > len) { return 0; } else { unsigned char lim = ptr[len]; ptr[len] = '\0'; res = scanner(ptr + offset); ptr[len] = lim; } return res; } bufsize_t _scan_table_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, 64, 0, 64, 64, 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, 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, }; yych = *(marker = p); if (yych <= '{') { if (yych <= 0x1F) { if (yych <= '\t') { if (yych <= 0x08) goto yy6; goto yy3; } else { if (yych <= '\n') goto yy2; if (yych <= '\f') goto yy3; goto yy6; } } else { if (yych <= '-') { if (yych <= ' ') goto yy3; if (yych <= ',') goto yy6; goto yy5; } else { if (yych == ':') goto yy4; goto yy6; } } } else { if (yych <= 0xEC) { if (yych <= 0xC1) { if (yych <= '|') goto yy3; if (yych <= 0x7F) goto yy6; } else { if (yych <= 0xDF) goto yy7; if (yych <= 0xE0) goto yy9; goto yy10; } } else { if (yych <= 0xF0) { if (yych <= 0xED) goto yy14; if (yych <= 0xEF) goto yy10; goto yy11; } else { if (yych <= 0xF3) goto yy12; if (yych <= 0xF4) goto yy13; } } } yy2 : { return 0; } yy3: yych = *(marker = ++p); if (yybm[0 + yych] & 128) { goto yy22; } if (yych <= '\f') { if (yych == '\t') goto yy29; if (yych <= '\n') goto yy2; goto yy29; } else { if (yych <= ' ') { if (yych <= 0x1F) goto yy2; goto yy29; } else { if (yych == ':') goto yy31; goto yy2; } } yy4: yych = *(marker = ++p); if (yybm[0 + yych] & 128) { goto yy22; } goto yy2; yy5: yych = *(marker = ++p); if (yybm[0 + yych] & 128) { goto yy22; } if (yych <= ' ') { if (yych <= 0x08) goto yy2; if (yych <= '\r') goto yy16; if (yych <= 0x1F) goto yy2; goto yy16; } else { if (yych <= ':') { if (yych <= '9') goto yy2; goto yy15; } else { if (yych == '|') goto yy16; goto yy2; } } yy6: yych = *++p; goto yy2; yy7: yych = *++p; if (yych <= 0x7F) goto yy8; if (yych <= 0xBF) goto yy6; yy8: p = marker; goto yy2; yy9: yych = *++p; if (yych <= 0x9F) goto yy8; if (yych <= 0xBF) goto yy7; goto yy8; yy10: yych = *++p; if (yych <= 0x7F) goto yy8; if (yych <= 0xBF) goto yy7; goto yy8; yy11: yych = *++p; if (yych <= 0x8F) goto yy8; if (yych <= 0xBF) goto yy10; goto yy8; yy12: yych = *++p; if (yych <= 0x7F) goto yy8; if (yych <= 0xBF) goto yy10; goto yy8; yy13: yych = *++p; if (yych <= 0x7F) goto yy8; if (yych <= 0x8F) goto yy10; goto yy8; yy14: yych = *++p; if (yych <= 0x7F) goto yy8; if (yych <= 0x9F) goto yy7; goto yy8; yy15: ++p; yych = *p; yy16: if (yybm[0 + yych] & 64) { goto yy15; } if (yych <= '\r') { if (yych <= 0x08) goto yy8; if (yych <= '\n') goto yy20; goto yy19; } else { if (yych != '|') goto yy8; } yy17: ++p; yych = *p; if (yych <= 0x1F) { if (yych <= '\n') { if (yych <= 0x08) goto yy8; if (yych <= '\t') goto yy17; goto yy20; } else { if (yych <= '\f') goto yy17; if (yych >= 0x0E) goto yy8; } } else { if (yych <= '-') { if (yych <= ' ') goto yy17; if (yych <= ',') goto yy8; goto yy25; } else { if (yych == ':') goto yy24; goto yy8; } } yy19: yych = *++p; if (yych != '\n') goto yy8; yy20: ++p; { return (bufsize_t)(p - start); } yy22: ++p; yych = *p; if (yybm[0 + yych] & 128) { goto yy22; } if (yych <= 0x1F) { if (yych <= '\n') { if (yych <= 0x08) goto yy8; if (yych <= '\t') goto yy15; goto yy20; } else { if (yych <= '\f') goto yy15; if (yych <= '\r') goto yy19; goto yy8; } } else { if (yych <= ':') { if (yych <= ' ') goto yy15; if (yych <= '9') goto yy8; goto yy15; } else { if (yych == '|') goto yy17; goto yy8; } } yy24: ++p; yych = *p; if (yych != '-') goto yy8; yy25: ++p; yych = *p; if (yych <= ' ') { if (yych <= '\n') { if (yych <= 0x08) goto yy8; if (yych >= '\n') goto yy20; } else { if (yych <= '\f') goto yy27; if (yych <= '\r') goto yy19; if (yych <= 0x1F) goto yy8; } } else { if (yych <= '9') { if (yych == '-') goto yy25; goto yy8; } else { if (yych <= ':') goto yy27; if (yych == '|') goto yy17; goto yy8; } } yy27: ++p; yych = *p; if (yych <= '\r') { if (yych <= '\t') { if (yych <= 0x08) goto yy8; goto yy27; } else { if (yych <= '\n') goto yy20; if (yych <= '\f') goto yy27; goto yy19; } } else { if (yych <= ' ') { if (yych <= 0x1F) goto yy8; goto yy27; } else { if (yych == '|') goto yy17; goto yy8; } } yy29: ++p; yych = *p; if (yybm[0 + yych] & 128) { goto yy22; } if (yych <= '\f') { if (yych == '\t') goto yy29; if (yych <= '\n') goto yy8; goto yy29; } else { if (yych <= ' ') { if (yych <= 0x1F) goto yy8; goto yy29; } else { if (yych != ':') goto yy8; } } yy31: ++p; if (yybm[0 + (yych = *p)] & 128) { goto yy22; } goto yy8; } } bufsize_t _scan_table_cell(const unsigned char *p) { const unsigned char *marker = NULL; const unsigned char *start = p; { unsigned char yych; static const unsigned char yybm[] = { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 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, 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, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; yych = *(marker = p); if (yych <= 0x7F) { if (yych <= '\r') { if (yych == '\n') goto yy34; if (yych <= '\f') goto yy36; goto yy45; } else { if (yych <= '\\') { if (yych <= '[') goto yy36; goto yy35; } else { if (yych == '|') goto yy45; goto yy36; } } } else { if (yych <= 0xED) { if (yych <= 0xDF) { if (yych >= 0xC2) goto yy37; } else { if (yych <= 0xE0) goto yy39; if (yych <= 0xEC) goto yy40; goto yy44; } } else { if (yych <= 0xF0) { if (yych <= 0xEF) goto yy40; goto yy41; } else { if (yych <= 0xF3) goto yy42; if (yych <= 0xF4) goto yy43; } } } yy34 : { return (bufsize_t)(p - start); } yy35: yych = *(marker = ++p); if (yych == '|') goto yy49; goto yy50; yy36: yych = *(marker = ++p); goto yy50; yy37: yych = *++p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy36; yy38: p = marker; goto yy34; yy39: yych = *++p; if (yych <= 0x9F) goto yy38; if (yych <= 0xBF) goto yy37; goto yy38; yy40: yych = *++p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy37; goto yy38; yy41: yych = *++p; if (yych <= 0x8F) goto yy38; if (yych <= 0xBF) goto yy40; goto yy38; yy42: yych = *++p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy40; goto yy38; yy43: yych = *++p; if (yych <= 0x7F) goto yy38; if (yych <= 0x8F) goto yy40; goto yy38; yy44: yych = *++p; if (yych <= 0x7F) goto yy38; if (yych <= 0x9F) goto yy37; goto yy38; yy45: ++p; { return 0; } yy47: marker = ++p; yych = *p; if (yybm[0 + yych] & 64) { goto yy47; } if (yych <= 0xDF) { if (yych <= '\f') { if (yych == '\n') goto yy34; } else { if (yych <= '\r') goto yy34; if (yych <= 0x7F) goto yy49; if (yych <= 0xC1) goto yy34; goto yy51; } } else { if (yych <= 0xEF) { if (yych <= 0xE0) goto yy52; if (yych == 0xED) goto yy57; goto yy53; } else { if (yych <= 0xF0) goto yy54; if (yych <= 0xF3) goto yy55; if (yych <= 0xF4) goto yy56; goto yy34; } } yy49: marker = ++p; yych = *p; yy50: if (yybm[0 + yych] & 128) { goto yy49; } if (yych <= 0xEC) { if (yych <= 0xC1) { if (yych <= '\r') goto yy34; if (yych <= '\\') goto yy47; goto yy34; } else { if (yych <= 0xDF) goto yy51; if (yych <= 0xE0) goto yy52; goto yy53; } } else { if (yych <= 0xF0) { if (yych <= 0xED) goto yy57; if (yych <= 0xEF) goto yy53; goto yy54; } else { if (yych <= 0xF3) goto yy55; if (yych <= 0xF4) goto yy56; goto yy34; } } yy51: ++p; yych = *p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy49; goto yy38; yy52: ++p; yych = *p; if (yych <= 0x9F) goto yy38; if (yych <= 0xBF) goto yy51; goto yy38; yy53: ++p; yych = *p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy51; goto yy38; yy54: ++p; yych = *p; if (yych <= 0x8F) goto yy38; if (yych <= 0xBF) goto yy53; goto yy38; yy55: ++p; yych = *p; if (yych <= 0x7F) goto yy38; if (yych <= 0xBF) goto yy53; goto yy38; yy56: ++p; yych = *p; if (yych <= 0x7F) goto yy38; if (yych <= 0x8F) goto yy53; goto yy38; yy57: ++p; yych = *p; if (yych <= 0x7F) goto yy38; if (yych <= 0x9F) goto yy51; goto yy38; } } bufsize_t _scan_table_cell_end(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, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; yych = *(marker = p); if (yych <= 0xDF) { if (yych <= '{') { if (yych != '\n') goto yy63; } else { if (yych <= '|') goto yy61; if (yych <= 0x7F) goto yy63; if (yych >= 0xC2) goto yy64; } } else { if (yych <= 0xEF) { if (yych <= 0xE0) goto yy66; if (yych == 0xED) goto yy71; goto yy67; } else { if (yych <= 0xF0) goto yy68; if (yych <= 0xF3) goto yy69; if (yych <= 0xF4) goto yy70; } } yy60 : { return 0; } yy61: yyaccept = 1; yych = *(marker = ++p); goto yy73; yy62 : { return (bufsize_t)(p - start); } yy63: yych = *++p; goto yy60; yy64: yych = *++p; if (yych <= 0x7F) goto yy65; if (yych <= 0xBF) goto yy63; yy65: p = marker; if (yyaccept == 0) { goto yy60; } else { goto yy62; } yy66: yych = *++p; if (yych <= 0x9F) goto yy65; if (yych <= 0xBF) goto yy64; goto yy65; yy67: yych = *++p; if (yych <= 0x7F) goto yy65; if (yych <= 0xBF) goto yy64; goto yy65; yy68: yych = *++p; if (yych <= 0x8F) goto yy65; if (yych <= 0xBF) goto yy67; goto yy65; yy69: yych = *++p; if (yych <= 0x7F) goto yy65; if (yych <= 0xBF) goto yy67; goto yy65; yy70: yych = *++p; if (yych <= 0x7F) goto yy65; if (yych <= 0x8F) goto yy67; goto yy65; yy71: yych = *++p; if (yych <= 0x7F) goto yy65; if (yych <= 0x9F) goto yy64; goto yy65; yy72: yyaccept = 1; marker = ++p; yych = *p; yy73: if (yybm[0 + yych] & 128) { goto yy72; } if (yych <= 0x08) goto yy62; if (yych <= '\n') goto yy75; if (yych >= 0x0E) goto yy62; yych = *++p; if (yych != '\n') goto yy65; yy75: ++p; yych = *p; goto yy62; } } bufsize_t _scan_table_row_end(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, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; yych = *(marker = p); if (yych <= 0xC1) { if (yych <= '\f') { if (yych <= 0x08) goto yy83; if (yych == '\n') goto yy81; goto yy79; } else { if (yych <= 0x1F) { if (yych <= '\r') goto yy80; goto yy83; } else { if (yych <= ' ') goto yy79; if (yych <= 0x7F) goto yy83; } } } else { if (yych <= 0xED) { if (yych <= 0xDF) goto yy84; if (yych <= 0xE0) goto yy86; if (yych <= 0xEC) goto yy87; goto yy91; } else { if (yych <= 0xF0) { if (yych <= 0xEF) goto yy87; goto yy88; } else { if (yych <= 0xF3) goto yy89; if (yych <= 0xF4) goto yy90; } } } yy78 : { return 0; } yy79: yych = *(marker = ++p); if (yych <= 0x08) goto yy78; if (yych <= '\r') goto yy94; if (yych == ' ') goto yy94; goto yy78; yy80: yych = *++p; if (yych != '\n') goto yy78; yy81: ++p; { return (bufsize_t)(p - start); } yy83: yych = *++p; goto yy78; yy84: yych = *++p; if (yych <= 0x7F) goto yy85; if (yych <= 0xBF) goto yy83; yy85: p = marker; goto yy78; yy86: yych = *++p; if (yych <= 0x9F) goto yy85; if (yych <= 0xBF) goto yy84; goto yy85; yy87: yych = *++p; if (yych <= 0x7F) goto yy85; if (yych <= 0xBF) goto yy84; goto yy85; yy88: yych = *++p; if (yych <= 0x8F) goto yy85; if (yych <= 0xBF) goto yy87; goto yy85; yy89: yych = *++p; if (yych <= 0x7F) goto yy85; if (yych <= 0xBF) goto yy87; goto yy85; yy90: yych = *++p; if (yych <= 0x7F) goto yy85; if (yych <= 0x8F) goto yy87; goto yy85; yy91: yych = *++p; if (yych <= 0x7F) goto yy85; if (yych <= 0x9F) goto yy84; goto yy85; yy92: yych = *++p; if (yych == '\n') goto yy81; goto yy85; yy93: ++p; yych = *p; yy94: if (yybm[0 + yych] & 128) { goto yy93; } if (yych <= 0x08) goto yy85; if (yych <= '\n') goto yy81; if (yych <= '\r') goto yy92; goto yy85; } }