bufsize_t _scan_html_block_end_1()

in src/scanners.c [8993:9869]


bufsize_t _scan_html_block_end_1(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, 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, 0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  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 yy549;
        if (yych != '\n')
          goto yy551;
      } else {
        if (yych <= '<')
          goto yy552;
        if (yych <= 0x7F)
          goto yy551;
        if (yych >= 0xC2)
          goto yy553;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy554;
        if (yych == 0xED)
          goto yy556;
        goto yy555;
      } else {
        if (yych <= 0xF0)
          goto yy557;
        if (yych <= 0xF3)
          goto yy558;
        if (yych <= 0xF4)
          goto yy559;
      }
    }
  yy549:
    ++p;
  yy550 : { return 0; }
  yy551:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy550;
      if (yych <= '\t')
        goto yy561;
      goto yy550;
    } else {
      if (yych <= 0x7F)
        goto yy561;
      if (yych <= 0xC1)
        goto yy550;
      if (yych <= 0xF4)
        goto yy561;
      goto yy550;
    }
  yy552:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '.') {
      if (yych <= 0x00)
        goto yy550;
      if (yych == '\n')
        goto yy550;
      goto yy561;
    } else {
      if (yych <= 0x7F) {
        if (yych <= '/')
          goto yy572;
        goto yy561;
      } else {
        if (yych <= 0xC1)
          goto yy550;
        if (yych <= 0xF4)
          goto yy561;
        goto yy550;
      }
    }
  yy553:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy550;
    if (yych <= 0xBF)
      goto yy560;
    goto yy550;
  yy554:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x9F)
      goto yy550;
    if (yych <= 0xBF)
      goto yy565;
    goto yy550;
  yy555:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy550;
    if (yych <= 0xBF)
      goto yy565;
    goto yy550;
  yy556:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy550;
    if (yych <= 0x9F)
      goto yy565;
    goto yy550;
  yy557:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x8F)
      goto yy550;
    if (yych <= 0xBF)
      goto yy567;
    goto yy550;
  yy558:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy550;
    if (yych <= 0xBF)
      goto yy567;
    goto yy550;
  yy559:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F)
      goto yy550;
    if (yych <= 0x8F)
      goto yy567;
    goto yy550;
  yy560:
    ++p;
    yych = *p;
  yy561:
    if (yybm[0 + yych] & 64) {
      goto yy560;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy562;
        if (yych <= '<')
          goto yy563;
      } else {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        goto yy567;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy568;
        if (yych <= 0xEF)
          goto yy567;
        goto yy569;
      } else {
        if (yych <= 0xF3)
          goto yy570;
        if (yych <= 0xF4)
          goto yy571;
      }
    }
  yy562:
    p = marker;
    if (yyaccept == 0) {
      goto yy550;
    } else {
      goto yy582;
    }
  yy563:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xDF) {
      if (yych <= '.') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= '/')
          goto yy572;
        if (yych <= 0x7F)
          goto yy560;
        if (yych <= 0xC1)
          goto yy562;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy566;
        if (yych == 0xED)
          goto yy568;
        goto yy567;
      } else {
        if (yych <= 0xF0)
          goto yy569;
        if (yych <= 0xF3)
          goto yy570;
        if (yych <= 0xF4)
          goto yy571;
        goto yy562;
      }
    }
  yy565:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy562;
    if (yych <= 0xBF)
      goto yy560;
    goto yy562;
  yy566:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy562;
    if (yych <= 0xBF)
      goto yy565;
    goto yy562;
  yy567:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy562;
    if (yych <= 0xBF)
      goto yy565;
    goto yy562;
  yy568:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy562;
    if (yych <= 0x9F)
      goto yy565;
    goto yy562;
  yy569:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy562;
    if (yych <= 0xBF)
      goto yy567;
    goto yy562;
  yy570:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy562;
    if (yych <= 0xBF)
      goto yy567;
    goto yy562;
  yy571:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy562;
    if (yych <= 0x8F)
      goto yy567;
    goto yy562;
  yy572:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 's') {
      if (yych <= 'P') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy562;
          goto yy560;
        } else {
          if (yych <= '\n')
            goto yy562;
          if (yych <= 'O')
            goto yy560;
        }
      } else {
        if (yych <= 'o') {
          if (yych == 'S')
            goto yy574;
          goto yy560;
        } else {
          if (yych <= 'p')
            goto yy573;
          if (yych <= 'r')
            goto yy560;
          goto yy574;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        } else {
          if (yych <= 0xDF)
            goto yy565;
          if (yych <= 0xE0)
            goto yy566;
          goto yy567;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy568;
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy573:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'Q') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'q') {
          if (yych <= 'R')
            goto yy575;
          goto yy560;
        } else {
          if (yych <= 'r')
            goto yy575;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy574:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 't') {
      if (yych <= 'C') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy562;
          goto yy560;
        } else {
          if (yych <= '\n')
            goto yy562;
          if (yych <= 'B')
            goto yy560;
          goto yy576;
        }
      } else {
        if (yych <= 'b') {
          if (yych == 'T')
            goto yy577;
          goto yy560;
        } else {
          if (yych <= 'c')
            goto yy576;
          if (yych <= 's')
            goto yy560;
          goto yy577;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        } else {
          if (yych <= 0xDF)
            goto yy565;
          if (yych <= 0xE0)
            goto yy566;
          goto yy567;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy568;
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy575:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'D') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'd') {
          if (yych <= 'E')
            goto yy578;
          goto yy560;
        } else {
          if (yych <= 'e')
            goto yy578;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy576:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'Q') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'q') {
          if (yych <= 'R')
            goto yy579;
          goto yy560;
        } else {
          if (yych <= 'r')
            goto yy579;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy577:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'X') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'x') {
          if (yych <= 'Y')
            goto yy580;
          goto yy560;
        } else {
          if (yych <= 'y')
            goto yy580;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy578:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= '>')
          goto yy581;
        if (yych <= 0x7F)
          goto yy560;
        if (yych <= 0xC1)
          goto yy562;
        goto yy565;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy566;
        if (yych == 0xED)
          goto yy568;
        goto yy567;
      } else {
        if (yych <= 0xF0)
          goto yy569;
        if (yych <= 0xF3)
          goto yy570;
        if (yych <= 0xF4)
          goto yy571;
        goto yy562;
      }
    }
  yy579:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'H') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'h') {
          if (yych <= 'I')
            goto yy583;
          goto yy560;
        } else {
          if (yych <= 'i')
            goto yy583;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy580:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'K') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'k') {
          if (yych <= 'L')
            goto yy575;
          goto yy560;
        } else {
          if (yych <= 'l')
            goto yy575;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy581:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy560;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy582;
        if (yych <= '<')
          goto yy563;
      } else {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        goto yy567;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy568;
        if (yych <= 0xEF)
          goto yy567;
        goto yy569;
      } else {
        if (yych <= 0xF3)
          goto yy570;
        if (yych <= 0xF4)
          goto yy571;
      }
    }
  yy582 : { return (bufsize_t)(p - start); }
  yy583:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'O') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 'o') {
          if (yych >= 'Q')
            goto yy560;
        } else {
          if (yych <= 'p')
            goto yy584;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  yy584:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy563;
    }
    if (yych <= 0xC1) {
      if (yych <= 'S') {
        if (yych <= 0x00)
          goto yy562;
        if (yych == '\n')
          goto yy562;
        goto yy560;
      } else {
        if (yych <= 's') {
          if (yych <= 'T')
            goto yy578;
          goto yy560;
        } else {
          if (yych <= 't')
            goto yy578;
          if (yych <= 0x7F)
            goto yy560;
          goto yy562;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy565;
        if (yych <= 0xE0)
          goto yy566;
        if (yych <= 0xEC)
          goto yy567;
        goto yy568;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy567;
          goto yy569;
        } else {
          if (yych <= 0xF3)
            goto yy570;
          if (yych <= 0xF4)
            goto yy571;
          goto yy562;
        }
      }
    }
  }
}