Pregunta

Necesito crear rápidamente un analizador para una versión muy simplificada de un lenguaje de marcado similar a HTML en Java. En python, usaría la biblioteca 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 el texto usando el patrón de visitante, por lo 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.

¿Fue útil?

Solución

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

Otros consejos

Puede ser excesivo 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 idiomas y compiladores. Aquí está la descripción del programa del sitio web mencionado anteriormente:

  

Java Compiler Compiler [tm] (JavaCC [tm]) es el generador de analizador más popular para usar con aplicaciones Java [tm]. Un generador de analizadores es una herramienta que lee una especificación gramatical y la convierte en un programa Java que puede reconocer coincidencias con la gramática. Además del generador de analizador en sí, JavaCC proporciona otras capacidades estándar relacionadas con la generación de analizador, como la construcción de árboles (a través de una herramienta llamada JJTree incluida con JavaCC), acciones, depuración, etc.

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

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

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

Hay muchas opciones para el manejo de cadenas en java. ¿Quizás las clases básicas java.util.Scanner y java.util.StringTokenizer son útiles para usted?

Otra buena opción es quizás la biblioteca org.apache.commons.lang.text . http: //commons.apache. org / lang / apidocs / org / apache / commons / lang / text / package-summary.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top