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
Otro buen generador de análisis es ANTLR , eso podría ser lo que estás buscando.
Hay un buen número de opciones para el manejo de cadenas en java. ¿Tal vez las clases básicas java.util.Scanner
y java.util.StringTokenizer
son útiles para usted?
Otra buena opción es quizá the org.apache.commons.lang.text
biblioteca. http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html
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.
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 :-)
Parece muy interesante, saliendo de los generadores de código ... Gracias por la referencia. – PhiLho
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.
- 1. ¿Hay una biblioteca similar a lxml o nokogiri para Java?
- 2. biblioteca similar a readline para Java
- 3. ¿Hay algo similar a WebClient.DownloadString en Java?
- 4. Biblioteca como pyparsing para PHP
- 5. biblioteca Programador en C++ similar a Java cuarzo
- 6. ¿Hay una consola/editor Java similar a GroovyConsole?
- 7. ¿Hay alguna clase en Java similar a android.os.Handler en Android?
- 8. ¿Hay algo similar a ServiceLoader en Java 1.5?
- 9. Java - applet web similar a una consola
- 10. ¿Hay una biblioteca Java para esteganografía?
- 11. ¿Hay una buena biblioteca de redes Java?
- 12. Funcionalidad similar a Scipy en Java/Scala?
- 13. ¿Hay alguna consola interactiva similar a Python para Java?
- 14. ¿Hay algo similar a mini-mvc-profiler para Java?
- 15. ¿Hay alguna herramienta similar a cmake para Java?
- 16. ¿Hay una biblioteca de números racionales comúnmente utilizada en Java?
- 17. ¿Hay una llamada de biblioteca a addr2line?
- 18. ¿Hay una biblioteca de iPhone para proporcionar algo similar a un iPad popover?
- 19. ¿Qué es una buena biblioteca de Java, similar a curses, para aplicaciones de terminal?
- 20. ¿Hay una interfaz similar a Callable pero con argumentos?
- 21. Buena biblioteca similar a STL para C
- 22. ¿Hay una extensión o modo en Emacs similar a surround.vim?
- 23. ¿Hay una función en Matlab similar a la función java String.split (delimitador)?
- 24. ¿Hay alguna biblioteca ActiveResource como para Java?
- 25. pyparsing - cargar ABNF?
- 26. ¿Es posible usar OpenCV o una biblioteca similar en Javascript?
- 27. ¿Hay una utilidad similar a Spy ++ para WPF?
- 28. ¿Hay una herramienta similar a YSlow para IE7?
- 29. ¿Hay alguna herramienta similar a una pelusa para MSBuild?
- 30. ¿Hay una gramática similar a BNF para describir LLVM IR?
JavaCC es INCREÍBLE. También echa un vistazo al libro de Tom Copeland (Centennial Books) –