bufsize_t _scan_html_block_end_5()

in src/scanners.c [10837:11197]


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, 0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  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 yy667;
        if (yych != '\n')
          goto yy669;
      } else {
        if (yych <= ']')
          goto yy670;
        if (yych <= 0x7F)
          goto yy669;
        if (yych >= 0xC2)
          goto yy671;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy672;
        if (yych == 0xED)
          goto yy674;
        goto yy673;
      } else {
        if (yych <= 0xF0)
          goto yy675;
        if (yych <= 0xF3)
          goto yy676;
        if (yych <= 0xF4)
          goto yy677;
      }
    }
  yy667:
    ++p;
  yy668 : { return 0; }
  yy669:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy668;
      if (yych <= '\t')
        goto yy679;
      goto yy668;
    } else {
      if (yych <= 0x7F)
        goto yy679;
      if (yych <= 0xC1)
        goto yy668;
      if (yych <= 0xF4)
        goto yy679;
      goto yy668;
    }
  yy670:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy689;
    }
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy668;
      if (yych <= '\t')
        goto yy679;
      goto yy668;
    } else {
      if (yych <= 0x7F)
        goto yy679;
      if (yych <= 0xC1)
        goto yy668;
      if (yych <= 0xF4)
        goto yy679;
      goto yy668;
    }
  yy671:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy668;
    if (yych <= 0xBF)
      goto yy678;
    goto yy668;
  yy672:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x9F)
      goto yy668;
    if (yych <= 0xBF)
      goto yy682;
    goto yy668;
  yy673:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy668;
    if (yych <= 0xBF)
      goto yy682;
    goto yy668;
  yy674:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy668;
    if (yych <= 0x9F)
      goto yy682;
    goto yy668;
  yy675:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x8F)
      goto yy668;
    if (yych <= 0xBF)
      goto yy684;
    goto yy668;
  yy676:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy668;
    if (yych <= 0xBF)
      goto yy684;
    goto yy668;
  yy677:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy668;
    if (yych <= 0x8F)
      goto yy684;
    goto yy668;
  yy678:
    ++p;
    yych = *p;
  yy679:
    if (yybm[0 + yych] & 64) {
      goto yy678;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy680;
        if (yych <= ']')
          goto yy681;
      } else {
        if (yych <= 0xDF)
          goto yy682;
        if (yych <= 0xE0)
          goto yy683;
        goto yy684;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy685;
        if (yych <= 0xEF)
          goto yy684;
        goto yy686;
      } else {
        if (yych <= 0xF3)
          goto yy687;
        if (yych <= 0xF4)
          goto yy688;
      }
    }
  yy680:
    p = marker;
    if (yyaccept == 0) {
      goto yy668;
    } else {
      goto yy692;
    }
  yy681:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy678;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy680;
        if (yych <= ']')
          goto yy689;
        goto yy680;
      } else {
        if (yych <= 0xDF)
          goto yy682;
        if (yych <= 0xE0)
          goto yy683;
        goto yy684;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy685;
        if (yych <= 0xEF)
          goto yy684;
        goto yy686;
      } else {
        if (yych <= 0xF3)
          goto yy687;
        if (yych <= 0xF4)
          goto yy688;
        goto yy680;
      }
    }
  yy682:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy680;
    if (yych <= 0xBF)
      goto yy678;
    goto yy680;
  yy683:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy680;
    if (yych <= 0xBF)
      goto yy682;
    goto yy680;
  yy684:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy680;
    if (yych <= 0xBF)
      goto yy682;
    goto yy680;
  yy685:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy680;
    if (yych <= 0x9F)
      goto yy682;
    goto yy680;
  yy686:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy680;
    if (yych <= 0xBF)
      goto yy684;
    goto yy680;
  yy687:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy680;
    if (yych <= 0xBF)
      goto yy684;
    goto yy680;
  yy688:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy680;
    if (yych <= 0x8F)
      goto yy684;
    goto yy680;
  yy689:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy689;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy680;
        if (yych == '\n')
          goto yy680;
        goto yy678;
      } else {
        if (yych <= '>')
          goto yy691;
        if (yych <= 0x7F)
          goto yy678;
        if (yych <= 0xC1)
          goto yy680;
        goto yy682;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy683;
        if (yych == 0xED)
          goto yy685;
        goto yy684;
      } else {
        if (yych <= 0xF0)
          goto yy686;
        if (yych <= 0xF3)
          goto yy687;
        if (yych <= 0xF4)
          goto yy688;
        goto yy680;
      }
    }
  yy691:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy678;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy692;
        if (yych <= ']')
          goto yy681;
      } else {
        if (yych <= 0xDF)
          goto yy682;
        if (yych <= 0xE0)
          goto yy683;
        goto yy684;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy685;
        if (yych <= 0xEF)
          goto yy684;
        goto yy686;
      } else {
        if (yych <= 0xF3)
          goto yy687;
        if (yych <= 0xF4)
          goto yy688;
      }
    }
  yy692 : { return (bufsize_t)(p - start); }
  }
}