packages feed

cmark-gfm-0.1.7: cbits/ext_scanners.c

/* Generated by re2c 1.1.1 */
#include "ext_scanners.h"
#include <stdlib.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 yy3;
          goto yy4;
        } else {
          if (yych <= '\n')
            goto yy2;
          if (yych <= '\f')
            goto yy4;
          goto yy3;
        }
      } else {
        if (yych <= '-') {
          if (yych <= ' ')
            goto yy4;
          if (yych <= ',')
            goto yy3;
          goto yy5;
        } else {
          if (yych == ':')
            goto yy6;
          goto yy3;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '|')
            goto yy4;
          if (yych <= 0x7F)
            goto yy3;
        } else {
          if (yych <= 0xDF)
            goto yy7;
          if (yych <= 0xE0)
            goto yy9;
          goto yy10;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy11;
          if (yych <= 0xEF)
            goto yy10;
          goto yy12;
        } else {
          if (yych <= 0xF3)
            goto yy13;
          if (yych <= 0xF4)
            goto yy14;
        }
      }
    }
  yy2 : { return 0; }
  yy3:
    ++p;
    goto yy2;
  yy4:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy15;
    }
    if (yych == '-')
      goto yy17;
    if (yych == ':')
      goto yy19;
    goto yy2;
  yy5:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy17;
    }
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy2;
      if (yych <= '\r')
        goto yy21;
      if (yych <= 0x1F)
        goto yy2;
      goto yy21;
    } else {
      if (yych <= ':') {
        if (yych <= '9')
          goto yy2;
        goto yy20;
      } else {
        if (yych == '|')
          goto yy21;
        goto yy2;
      }
    }
  yy6:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy17;
    }
    goto yy2;
  yy7:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy8;
    if (yych <= 0xBF)
      goto yy3;
  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 <= 0x7F)
      goto yy8;
    if (yych <= 0x9F)
      goto yy7;
    goto yy8;
  yy12:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy8;
    if (yych <= 0xBF)
      goto yy10;
    goto yy8;
  yy13:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy8;
    if (yych <= 0xBF)
      goto yy10;
    goto yy8;
  yy14:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy8;
    if (yych <= 0x8F)
      goto yy10;
    goto yy8;
  yy15:
    yych = *++p;
    if (yybm[0 + yych] & 64) {
      goto yy15;
    }
    if (yych == '-')
      goto yy17;
    if (yych == ':')
      goto yy19;
    goto yy8;
  yy17:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy17;
    }
    if (yych <= 0x1F) {
      if (yych <= '\n') {
        if (yych <= 0x08)
          goto yy8;
        if (yych <= '\t')
          goto yy20;
        goto yy22;
      } else {
        if (yych <= '\f')
          goto yy20;
        if (yych <= '\r')
          goto yy24;
        goto yy8;
      }
    } else {
      if (yych <= ':') {
        if (yych <= ' ')
          goto yy20;
        if (yych <= '9')
          goto yy8;
        goto yy20;
      } else {
        if (yych == '|')
          goto yy25;
        goto yy8;
      }
    }
  yy19:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy17;
    }
    goto yy8;
  yy20:
    yych = *++p;
  yy21:
    if (yych <= '\r') {
      if (yych <= '\t') {
        if (yych <= 0x08)
          goto yy8;
        goto yy20;
      } else {
        if (yych <= '\n')
          goto yy22;
        if (yych <= '\f')
          goto yy20;
        goto yy24;
      }
    } else {
      if (yych <= ' ') {
        if (yych <= 0x1F)
          goto yy8;
        goto yy20;
      } else {
        if (yych == '|')
          goto yy25;
        goto yy8;
      }
    }
  yy22:
    ++p;
    { return (bufsize_t)(p - start); }
  yy24:
    yych = *++p;
    if (yych == '\n')
      goto yy22;
    goto yy8;
  yy25:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy17;
    }
    if (yych <= '\r') {
      if (yych <= '\t') {
        if (yych <= 0x08)
          goto yy8;
        goto yy25;
      } else {
        if (yych <= '\n')
          goto yy22;
        if (yych <= '\f')
          goto yy25;
        goto yy24;
      }
    } else {
      if (yych <= ' ') {
        if (yych <= 0x1F)
          goto yy8;
        goto yy25;
      } else {
        if (yych == ':')
          goto yy19;
        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[] = {
        64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 0,  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, 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, 0,  64,
        64, 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,
    };
    yych = *(marker = p);
    if (yybm[0 + yych] & 64) {
      goto yy30;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '\n')
          goto yy29;
        if (yych <= '\r')
          goto yy32;
        goto yy34;
      } else {
        if (yych <= '|')
          goto yy32;
        if (yych <= 0xC1)
          goto yy29;
        if (yych <= 0xDF)
          goto yy36;
        goto yy38;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy40;
        goto yy39;
      } else {
        if (yych <= 0xF0)
          goto yy41;
        if (yych <= 0xF3)
          goto yy42;
        if (yych <= 0xF4)
          goto yy43;
      }
    }
  yy29 : { return (bufsize_t)(p - start); }
  yy30:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy30;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\r')
          goto yy29;
        if (yych <= '\\')
          goto yy34;
        goto yy29;
      } else {
        if (yych <= 0xDF)
          goto yy36;
        if (yych <= 0xE0)
          goto yy38;
        goto yy39;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy40;
        if (yych <= 0xEF)
          goto yy39;
        goto yy41;
      } else {
        if (yych <= 0xF3)
          goto yy42;
        if (yych <= 0xF4)
          goto yy43;
        goto yy29;
      }
    }
  yy32:
    ++p;
    { return 0; }
  yy34:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy34;
    }
    if (yych <= 0xDF) {
      if (yych <= '\f') {
        if (yych == '\n')
          goto yy29;
        goto yy30;
      } else {
        if (yych <= '\r')
          goto yy29;
        if (yych <= 0x7F)
          goto yy30;
        if (yych <= 0xC1)
          goto yy29;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy38;
        if (yych == 0xED)
          goto yy40;
        goto yy39;
      } else {
        if (yych <= 0xF0)
          goto yy41;
        if (yych <= 0xF3)
          goto yy42;
        if (yych <= 0xF4)
          goto yy43;
        goto yy29;
      }
    }
  yy36:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy37;
    if (yych <= 0xBF)
      goto yy30;
  yy37:
    p = marker;
    goto yy29;
  yy38:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy37;
    if (yych <= 0xBF)
      goto yy36;
    goto yy37;
  yy39:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy37;
    if (yych <= 0xBF)
      goto yy36;
    goto yy37;
  yy40:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy37;
    if (yych <= 0x9F)
      goto yy36;
    goto yy37;
  yy41:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy37;
    if (yych <= 0xBF)
      goto yy39;
    goto yy37;
  yy42:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy37;
    if (yych <= 0xBF)
      goto yy39;
    goto yy37;
  yy43:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy37;
    if (yych <= 0x8F)
      goto yy39;
    goto yy37;
  }
}

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 yy47;
      } else {
        if (yych <= '|')
          goto yy48;
        if (yych <= 0x7F)
          goto yy47;
        if (yych >= 0xC2)
          goto yy51;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy53;
        if (yych == 0xED)
          goto yy55;
        goto yy54;
      } else {
        if (yych <= 0xF0)
          goto yy56;
        if (yych <= 0xF3)
          goto yy57;
        if (yych <= 0xF4)
          goto yy58;
      }
    }
  yy46 : { return 0; }
  yy47:
    ++p;
    goto yy46;
  yy48:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy48;
    }
    if (yych <= 0x08)
      goto yy50;
    if (yych <= '\n')
      goto yy59;
    if (yych <= '\r')
      goto yy60;
  yy50 : { return (bufsize_t)(p - start); }
  yy51:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy52;
    if (yych <= 0xBF)
      goto yy47;
  yy52:
    p = marker;
    if (yyaccept == 0) {
      goto yy46;
    } else {
      goto yy50;
    }
  yy53:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy52;
    if (yych <= 0xBF)
      goto yy51;
    goto yy52;
  yy54:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy52;
    if (yych <= 0xBF)
      goto yy51;
    goto yy52;
  yy55:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy52;
    if (yych <= 0x9F)
      goto yy51;
    goto yy52;
  yy56:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy52;
    if (yych <= 0xBF)
      goto yy54;
    goto yy52;
  yy57:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy52;
    if (yych <= 0xBF)
      goto yy54;
    goto yy52;
  yy58:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy52;
    if (yych <= 0x8F)
      goto yy54;
    goto yy52;
  yy59:
    ++p;
    goto yy50;
  yy60:
    yych = *++p;
    if (yych == '\n')
      goto yy59;
    goto yy52;
  }
}

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 yy64;
        if (yych == '\n')
          goto yy66;
        goto yy65;
      } else {
        if (yych <= 0x1F) {
          if (yych <= '\r')
            goto yy68;
          goto yy64;
        } else {
          if (yych <= ' ')
            goto yy65;
          if (yych <= 0x7F)
            goto yy64;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy69;
        if (yych <= 0xE0)
          goto yy71;
        if (yych <= 0xEC)
          goto yy72;
        goto yy73;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy72;
          goto yy74;
        } else {
          if (yych <= 0xF3)
            goto yy75;
          if (yych <= 0xF4)
            goto yy76;
        }
      }
    }
  yy63 : { return 0; }
  yy64:
    ++p;
    goto yy63;
  yy65:
    yych = *(marker = ++p);
    if (yych <= 0x08)
      goto yy63;
    if (yych <= '\r')
      goto yy78;
    if (yych == ' ')
      goto yy78;
    goto yy63;
  yy66:
    ++p;
    { return (bufsize_t)(p - start); }
  yy68:
    yych = *++p;
    if (yych == '\n')
      goto yy66;
    goto yy63;
  yy69:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy70;
    if (yych <= 0xBF)
      goto yy64;
  yy70:
    p = marker;
    goto yy63;
  yy71:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy70;
    if (yych <= 0xBF)
      goto yy69;
    goto yy70;
  yy72:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy70;
    if (yych <= 0xBF)
      goto yy69;
    goto yy70;
  yy73:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy70;
    if (yych <= 0x9F)
      goto yy69;
    goto yy70;
  yy74:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy70;
    if (yych <= 0xBF)
      goto yy72;
    goto yy70;
  yy75:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy70;
    if (yych <= 0xBF)
      goto yy72;
    goto yy70;
  yy76:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy70;
    if (yych <= 0x8F)
      goto yy72;
    goto yy70;
  yy77:
    yych = *++p;
  yy78:
    if (yybm[0 + yych] & 128) {
      goto yy77;
    }
    if (yych <= 0x08)
      goto yy70;
    if (yych <= '\n')
      goto yy66;
    if (yych >= 0x0E)
      goto yy70;
    yych = *++p;
    if (yych == '\n')
      goto yy66;
    goto yy70;
  }
}
bufsize_t _scan_tasklist(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,  0, 0, 0,
        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, 0,  0,  0, 0, 0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0,  0,  0, 0, 0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0,  0,  0, 0, 0,
        0,   0,   0,   0,   0,   0,   0,   0,   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 yy83;
          goto yy84;
        } else {
          if (yych <= '\n')
            goto yy82;
          if (yych <= '\f')
            goto yy84;
          goto yy83;
        }
      } else {
        if (yych <= '+') {
          if (yych <= ' ')
            goto yy84;
          if (yych <= ')')
            goto yy83;
          goto yy85;
        } else {
          if (yych == '-')
            goto yy85;
          goto yy83;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '9')
            goto yy86;
          if (yych <= 0x7F)
            goto yy83;
        } else {
          if (yych <= 0xDF)
            goto yy87;
          if (yych <= 0xE0)
            goto yy89;
          goto yy90;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy91;
          if (yych <= 0xEF)
            goto yy90;
          goto yy92;
        } else {
          if (yych <= 0xF3)
            goto yy93;
          if (yych <= 0xF4)
            goto yy94;
        }
      }
    }
  yy82 : { return 0; }
  yy83:
    ++p;
    goto yy82;
  yy84:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy95;
    }
    if (yych <= ',') {
      if (yych <= ')')
        goto yy82;
      if (yych <= '+')
        goto yy97;
      goto yy82;
    } else {
      if (yych <= '-')
        goto yy97;
      if (yych <= '/')
        goto yy82;
      if (yych <= '9')
        goto yy98;
      goto yy82;
    }
  yy85:
    yych = *(marker = ++p);
    if (yych <= '\n') {
      if (yych == '\t')
        goto yy99;
      goto yy82;
    } else {
      if (yych <= '\f')
        goto yy99;
      if (yych == ' ')
        goto yy99;
      goto yy82;
    }
  yy86:
    yych = *(marker = ++p);
    if (yych <= 0x1F) {
      if (yych <= '\t') {
        if (yych <= 0x08)
          goto yy102;
        goto yy97;
      } else {
        if (yych <= '\n')
          goto yy82;
        if (yych <= '\f')
          goto yy97;
        goto yy102;
      }
    } else {
      if (yych <= 0x7F) {
        if (yych <= ' ')
          goto yy97;
        goto yy102;
      } else {
        if (yych <= 0xC1)
          goto yy82;
        if (yych <= 0xF4)
          goto yy102;
        goto yy82;
      }
    }
  yy87:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy83;
  yy88:
    p = marker;
    goto yy82;
  yy89:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy87;
    goto yy88;
  yy90:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy87;
    goto yy88;
  yy91:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0x9F)
      goto yy87;
    goto yy88;
  yy92:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy90;
    goto yy88;
  yy93:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy90;
    goto yy88;
  yy94:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0x8F)
      goto yy90;
    goto yy88;
  yy95:
    yych = *++p;
    if (yybm[0 + yych] & 64) {
      goto yy95;
    }
    if (yych <= ',') {
      if (yych <= ')')
        goto yy88;
      if (yych >= ',')
        goto yy88;
    } else {
      if (yych <= '-')
        goto yy97;
      if (yych <= '/')
        goto yy88;
      if (yych <= '9')
        goto yy98;
      goto yy88;
    }
  yy97:
    yych = *++p;
    if (yych == '[')
      goto yy88;
    goto yy100;
  yy98:
    yych = *++p;
    if (yych <= '\n') {
      if (yych == '\t')
        goto yy97;
      goto yy102;
    } else {
      if (yych <= '\f')
        goto yy97;
      if (yych == ' ')
        goto yy97;
      goto yy102;
    }
  yy99:
    yych = *++p;
  yy100:
    if (yych <= '\f') {
      if (yych == '\t')
        goto yy99;
      if (yych <= '\n')
        goto yy88;
      goto yy99;
    } else {
      if (yych <= ' ') {
        if (yych <= 0x1F)
          goto yy88;
        goto yy99;
      } else {
        if (yych == '[')
          goto yy110;
        goto yy88;
      }
    }
  yy101:
    yych = *++p;
  yy102:
    if (yybm[0 + yych] & 128) {
      goto yy101;
    }
    if (yych <= 0xC1) {
      if (yych <= '\f') {
        if (yych <= 0x08)
          goto yy97;
        if (yych == '\n')
          goto yy88;
        goto yy99;
      } else {
        if (yych == ' ')
          goto yy99;
        if (yych <= 0x7F)
          goto yy97;
        goto yy88;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy103;
        if (yych <= 0xE0)
          goto yy104;
        if (yych <= 0xEC)
          goto yy105;
        goto yy106;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy105;
          goto yy107;
        } else {
          if (yych <= 0xF3)
            goto yy108;
          if (yych <= 0xF4)
            goto yy109;
          goto yy88;
        }
      }
    }
  yy103:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy97;
    goto yy88;
  yy104:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy103;
    goto yy88;
  yy105:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy103;
    goto yy88;
  yy106:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0x9F)
      goto yy103;
    goto yy88;
  yy107:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy105;
    goto yy88;
  yy108:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0xBF)
      goto yy105;
    goto yy88;
  yy109:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy88;
    if (yych <= 0x8F)
      goto yy105;
    goto yy88;
  yy110:
    yych = *++p;
    if (yych <= 'W') {
      if (yych != ' ')
        goto yy88;
    } else {
      if (yych <= 'X')
        goto yy111;
      if (yych != 'x')
        goto yy88;
    }
  yy111:
    yych = *++p;
    if (yych != ']')
      goto yy88;
    yych = *++p;
    if (yych <= '\n') {
      if (yych != '\t')
        goto yy88;
    } else {
      if (yych <= '\f')
        goto yy113;
      if (yych != ' ')
        goto yy88;
    }
  yy113:
    yych = *++p;
    if (yych <= '\n') {
      if (yych == '\t')
        goto yy113;
    } else {
      if (yych <= '\f')
        goto yy113;
      if (yych == ' ')
        goto yy113;
    }
    { return (bufsize_t)(p - start); }
  }
}