¿Existe un analizador HTML que no exhibe un comportamiento cuadrático en páginas patológicas (por ejemplo, páginas con anidamiento profundo)? He probado muchos analizadores en muchos idiomas y todos ellos son lentos en entradas patológicas.

Tenemos un analizador HTML que analiza y crea árboles de sintaxis abstractos (la versión del navegador para AST defectuosos se llama “árbol dom”).

No veo este comportamiento en estructuras HTML “profundamente anidadas”. ¿Cuál es la definición real de “patológico”? (¿Quieres enviarme una página que te dé pena? Mira mi biografía). [Nota: OP ha proporcionado un enlace a una página problemática en un comentario].

En particular, utilizamos la tecnología de análisis GLR, que es una tecnología de análisis LR de generalización. La tecnología de análisis LR es tiempo lineal: sin excepciones. GLR puede ser no lineal * si * la gramática del lenguaje permite la ambigüedad; de lo contrario, actúa como si fuera LR. Que yo sepa, nuestra gramática HTML no es ambigua. (Tengo una herramienta para verificar esto … Iré a ejecutarlo e informaré más tarde lo que encuentre).

Pero, en general, no debería haber ninguna razón para que un analizador de HTML para páginas HTML válidas (que cumplan con W3C) sea ​​algo más que tiempo lineal.

Es posible que las páginas que intenta procesar no sean HTML válidas. En ese caso, el analizador puede estar haciendo una recuperación de error de sintaxis, y luego has llegado al salvaje oeste en términos de costos.