bufsize_t _scan_html_block_end_3()

in src/scanners.c [10235:10560]


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, 0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  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 yy615;
        if (yych != '\n')
          goto yy617;
      } else {
        if (yych <= '?')
          goto yy618;
        if (yych <= 0x7F)
          goto yy617;
        if (yych >= 0xC2)
          goto yy619;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy620;
        if (yych == 0xED)
          goto yy622;
        goto yy621;
      } else {
        if (yych <= 0xF0)
          goto yy623;
        if (yych <= 0xF3)
          goto yy624;
        if (yych <= 0xF4)
          goto yy625;
      }
    }
  yy615:
    ++p;
  yy616 : { return 0; }
  yy617:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy616;
      if (yych <= '\t')
        goto yy627;
      goto yy616;
    } else {
      if (yych <= 0x7F)
        goto yy627;
      if (yych <= 0xC1)
        goto yy616;
      if (yych <= 0xF4)
        goto yy627;
      goto yy616;
    }
  yy618:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '=') {
      if (yych <= 0x00)
        goto yy616;
      if (yych == '\n')
        goto yy616;
      goto yy627;
    } else {
      if (yych <= 0x7F) {
        if (yych <= '>')
          goto yy638;
        goto yy627;
      } else {
        if (yych <= 0xC1)
          goto yy616;
        if (yych <= 0xF4)
          goto yy627;
        goto yy616;
      }
    }
  yy619:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy616;
    if (yych <= 0xBF)
      goto yy626;
    goto yy616;
  yy620:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x9F)
      goto yy616;
    if (yych <= 0xBF)
      goto yy631;
    goto yy616;
  yy621:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy616;
    if (yych <= 0xBF)
      goto yy631;
    goto yy616;
  yy622:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy616;
    if (yych <= 0x9F)
      goto yy631;
    goto yy616;
  yy623:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x8F)
      goto yy616;
    if (yych <= 0xBF)
      goto yy633;
    goto yy616;
  yy624:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy616;
    if (yych <= 0xBF)
      goto yy633;
    goto yy616;
  yy625:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy616;
    if (yych <= 0x8F)
      goto yy633;
    goto yy616;
  yy626:
    ++p;
    yych = *p;
  yy627:
    if (yybm[0 + yych] & 64) {
      goto yy626;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy628;
        if (yych <= '?')
          goto yy629;
      } else {
        if (yych <= 0xDF)
          goto yy631;
        if (yych <= 0xE0)
          goto yy632;
        goto yy633;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy634;
        if (yych <= 0xEF)
          goto yy633;
        goto yy635;
      } else {
        if (yych <= 0xF3)
          goto yy636;
        if (yych <= 0xF4)
          goto yy637;
      }
    }
  yy628:
    p = marker;
    if (yyaccept == 0) {
      goto yy616;
    } else {
      goto yy639;
    }
  yy629:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy629;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy628;
        if (yych == '\n')
          goto yy628;
        goto yy626;
      } else {
        if (yych <= '>')
          goto yy638;
        if (yych <= 0x7F)
          goto yy626;
        if (yych <= 0xC1)
          goto yy628;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy632;
        if (yych == 0xED)
          goto yy634;
        goto yy633;
      } else {
        if (yych <= 0xF0)
          goto yy635;
        if (yych <= 0xF3)
          goto yy636;
        if (yych <= 0xF4)
          goto yy637;
        goto yy628;
      }
    }
  yy631:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy628;
    if (yych <= 0xBF)
      goto yy626;
    goto yy628;
  yy632:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy628;
    if (yych <= 0xBF)
      goto yy631;
    goto yy628;
  yy633:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy628;
    if (yych <= 0xBF)
      goto yy631;
    goto yy628;
  yy634:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy628;
    if (yych <= 0x9F)
      goto yy631;
    goto yy628;
  yy635:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy628;
    if (yych <= 0xBF)
      goto yy633;
    goto yy628;
  yy636:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy628;
    if (yych <= 0xBF)
      goto yy633;
    goto yy628;
  yy637:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy628;
    if (yych <= 0x8F)
      goto yy633;
    goto yy628;
  yy638:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy626;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy639;
        if (yych <= '?')
          goto yy629;
      } else {
        if (yych <= 0xDF)
          goto yy631;
        if (yych <= 0xE0)
          goto yy632;
        goto yy633;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy634;
        if (yych <= 0xEF)
          goto yy633;
        goto yy635;
      } else {
        if (yych <= 0xF3)
          goto yy636;
        if (yych <= 0xF4)
          goto yy637;
      }
    }
  yy639 : { return (bufsize_t)(p - start); }
  }
}