bufsize_t _scan_html_block_end_2()

in src/scanners.c [9872:10232]


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, 0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  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 <= 0xDF) {
      if (yych <= ',') {
        if (yych <= 0x00)
          goto yy587;
        if (yych != '\n')
          goto yy589;
      } else {
        if (yych <= '-')
          goto yy590;
        if (yych <= 0x7F)
          goto yy589;
        if (yych >= 0xC2)
          goto yy591;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy592;
        if (yych == 0xED)
          goto yy594;
        goto yy593;
      } else {
        if (yych <= 0xF0)
          goto yy595;
        if (yych <= 0xF3)
          goto yy596;
        if (yych <= 0xF4)
          goto yy597;
      }
    }
  yy587:
    ++p;
  yy588 : { return 0; }
  yy589:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy588;
      if (yych <= '\t')
        goto yy599;
      goto yy588;
    } else {
      if (yych <= 0x7F)
        goto yy599;
      if (yych <= 0xC1)
        goto yy588;
      if (yych <= 0xF4)
        goto yy599;
      goto yy588;
    }
  yy590:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy609;
    }
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy588;
      if (yych <= '\t')
        goto yy599;
      goto yy588;
    } else {
      if (yych <= 0x7F)
        goto yy599;
      if (yych <= 0xC1)
        goto yy588;
      if (yych <= 0xF4)
        goto yy599;
      goto yy588;
    }
  yy591:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy588;
    if (yych <= 0xBF)
      goto yy598;
    goto yy588;
  yy592:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x9F)
      goto yy588;
    if (yych <= 0xBF)
      goto yy602;
    goto yy588;
  yy593:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy588;
    if (yych <= 0xBF)
      goto yy602;
    goto yy588;
  yy594:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy588;
    if (yych <= 0x9F)
      goto yy602;
    goto yy588;
  yy595:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x8F)
      goto yy588;
    if (yych <= 0xBF)
      goto yy604;
    goto yy588;
  yy596:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy588;
    if (yych <= 0xBF)
      goto yy604;
    goto yy588;
  yy597:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy588;
    if (yych <= 0x8F)
      goto yy604;
    goto yy588;
  yy598:
    ++p;
    yych = *p;
  yy599:
    if (yybm[0 + yych] & 64) {
      goto yy598;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy600;
        if (yych <= '-')
          goto yy601;
      } else {
        if (yych <= 0xDF)
          goto yy602;
        if (yych <= 0xE0)
          goto yy603;
        goto yy604;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy605;
        if (yych <= 0xEF)
          goto yy604;
        goto yy606;
      } else {
        if (yych <= 0xF3)
          goto yy607;
        if (yych <= 0xF4)
          goto yy608;
      }
    }
  yy600:
    p = marker;
    if (yyaccept == 0) {
      goto yy588;
    } else {
      goto yy612;
    }
  yy601:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy598;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy600;
        if (yych <= '-')
          goto yy609;
        goto yy600;
      } else {
        if (yych <= 0xDF)
          goto yy602;
        if (yych <= 0xE0)
          goto yy603;
        goto yy604;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy605;
        if (yych <= 0xEF)
          goto yy604;
        goto yy606;
      } else {
        if (yych <= 0xF3)
          goto yy607;
        if (yych <= 0xF4)
          goto yy608;
        goto yy600;
      }
    }
  yy602:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy600;
    if (yych <= 0xBF)
      goto yy598;
    goto yy600;
  yy603:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy600;
    if (yych <= 0xBF)
      goto yy602;
    goto yy600;
  yy604:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy600;
    if (yych <= 0xBF)
      goto yy602;
    goto yy600;
  yy605:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy600;
    if (yych <= 0x9F)
      goto yy602;
    goto yy600;
  yy606:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy600;
    if (yych <= 0xBF)
      goto yy604;
    goto yy600;
  yy607:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy600;
    if (yych <= 0xBF)
      goto yy604;
    goto yy600;
  yy608:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy600;
    if (yych <= 0x8F)
      goto yy604;
    goto yy600;
  yy609:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy609;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy600;
        if (yych == '\n')
          goto yy600;
        goto yy598;
      } else {
        if (yych <= '>')
          goto yy611;
        if (yych <= 0x7F)
          goto yy598;
        if (yych <= 0xC1)
          goto yy600;
        goto yy602;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy603;
        if (yych == 0xED)
          goto yy605;
        goto yy604;
      } else {
        if (yych <= 0xF0)
          goto yy606;
        if (yych <= 0xF3)
          goto yy607;
        if (yych <= 0xF4)
          goto yy608;
        goto yy600;
      }
    }
  yy611:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy598;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy612;
        if (yych <= '-')
          goto yy601;
      } else {
        if (yych <= 0xDF)
          goto yy602;
        if (yych <= 0xE0)
          goto yy603;
        goto yy604;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy605;
        if (yych <= 0xEF)
          goto yy604;
        goto yy606;
      } else {
        if (yych <= 0xF3)
          goto yy607;
        if (yych <= 0xF4)
          goto yy608;
      }
    }
  yy612 : { return (bufsize_t)(p - start); }
  }
}