2008-11-29 13 views
7

Necesito construir rápidamente un analizador para una versión muy simplificada de un lenguaje de marcado html en Java. En Python, usaría la biblioteca de pyparsing para hacer esto. ¿Hay algo similar para Java? Por favor, no sugiera bibliotecas que ya están disponibles para el análisis html, mi aplicación es una tarea escolar que demostrará caminar un árbol de objetos y serializar al texto usando el patrón de visitante, así que no estoy pensando en términos del mundo real aquí. Básicamente, todo lo que necesito aquí son etiquetas, atributos y nodos de texto.¿Hay una biblioteca similar a pyparsing en Java?

Respuesta

7

Otro buen generador de análisis es ANTLR , eso podría ser lo que estás buscando.

3

Puede ser exagerado para su uso, pero javacc es un excelente generador de analizador de potencia industrial. He usado este programa/biblioteca varias veces, es confiable y vale la pena aprenderlo, especialmente si vas a trabajar con lenguajes y compiladores. Aquí está la descripción del programa desde el sitio Web mencionado anteriormente:

compilador Java Compiler [TM] (JavaCC [TM]) es el generador de analizadores sintácticos más popular para su uso con aplicaciones Java [TM]. Un generador de analizador es una herramienta que lee una especificación de gramática y la convierte en un programa de Java que puede reconocer coincidencias con la gramática. Además del generador de análisis en sí, JavaCC ofrece otras capacidades estándar relacionados con la generación analizador tales como la generación de árboles (a través de una herramienta llamada JJTree incluye con JavaCC), acciones, depuración, etc.

+0

JavaCC es INCREÍBLE. También echa un vistazo al libro de Tom Copeland (Centennial Books) –

3

Una búsqueda rápida de generadores de analizadores sintácticos en Java produce JParsec. Nunca lo he usado, pero está inspirado en una biblioteca Haskell, así que por definición debe ser bueno :-)

+0

Parece muy interesante, saliendo de los generadores de código ... Gracias por la referencia. – PhiLho

2

Me gusta JParsec (que acabo de descubrir gracias a Torsten) porque no genera código ... . :-) Quizás menos eficiente, pero suficiente para tareas pequeñas.
Encontré una biblioteca similar, JTopas.

Hay una buena lista de analizadores (generadores o no) en Java Source.

Cuestiones relacionadas