J'ai besoin de construire rapidement un analyseur pour une version très simplifiée d'un langage de balisage de type html en Java. En python, j'utiliserais la bibliothèque de pyparsing pour faire ceci. Y a-t-il quelque chose de similaire pour Java? S'il vous plaît, ne pas suggérer des bibliothèques déjà là pour l'analyse html, mon application est une tâche scolaire qui montrera marcher un arbre d'objets et sérialiser au texte en utilisant le modèle de visiteur, donc je ne pense pas en termes réels ici. Fondamentalement, tout ce dont j'ai besoin ici, ce sont des balises, des attributs et des nœuds de texte.Existe-t-il une bibliothèque similaire à pyparsing en Java?
Répondre
Un autre bon générateur d'analyseur est ANTLR , c'est peut-être ce que vous cherchez.
Il existe un certain nombre de choix pour la manipulation de chaînes dans Java. Peut-être que les classes java.util.Scanner
et java.util.StringTokenizer
très basiques sont utiles pour vous?
Un autre bon choix est peut-être la bibliothèque the org.apache.commons.lang.text
. http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html
Peut être surdimensionné pour votre usage, mais javacc est un excellent générateur d'analyseur de force industrielle. J'ai utilisé ce programme/bibliothèque plusieurs fois, c'est fiable et ça vaut le coup d'apprendre, surtout si vous allez travailler avec des langages et des compilateurs. Voici la description du programme du site Web indiqué ci-dessus:
compilateur Java compilateur [tm] (JavaCC [tm]) est le générateur d'analyseur le plus populaire pour une utilisation avec Java [tm] applications. Un générateur d'analyseur syntaxique est un outil qui lit une spécification de grammaire et la convertit en un programme Java capable de reconnaître les correspondances avec la grammaire. En plus du générateur d'analyseur lui-même, JavaCC offre d'autres fonctionnalités standard liées à la production d'analyseur tels que la construction d'arbres (via un outil appelé JJTree inclus avec JavaCC), les actions, le débogage, etc.
J'aime JParsec (que je viens de découvrir grâce à Torsten) car il ne génère pas de code. . :-) Peut-être moins efficace, mais suffisant pour les petites tâches.
J'ai trouvé une bibliothèque similaire, JTopas. Il existe une bonne liste d'analyseurs (générateurs ou non) à Java Source.
- 1. render complexe org chart similaire bibliothèque graphique javascript/flash/java
- 2. Une bibliothèque de maillages Java?
- 3. Instancier dynamiquement une classe Ruby similaire à Java
- 4. Existe-t-il une console/éditeur Java similaire à GroovyConsole?
- 5. pyparsing - charge ABNF?
- 6. PyParsing expressions de langage simples
- 7. Comment afficher une barre similaire à images.google.com?
- 8. Utiliser une API de bibliothèque java .jar en C#?
- 9. Ajout d'un fichier JAR à une bibliothèque Java Eclipse
- 10. fonction de bibliothèque Bessel en Java
- 11. YUICompressor ou similaire en PHP?
- 12. OpenMicroBlogging-bibliothèque pour Java?
- 13. Comment utiliser la bibliothèque org.hibernate en java?
- 14. Est-ce que AS3 a une classe similaire à Java NumberFormat
- 15. bibliothèque graphique Java
- 16. Structure de données similaire à une carte à 2 arguments
- 17. Bibliothèque USB Java
- 18. l'architecture Java bibliothèque
- 19. Bibliothèque RTSP pour Java
- 20. PDF à l'outil texte ou à la bibliothèque Java?
- 21. Java n'a pas une méthode listDirectories/listFiles, une bibliothèque native?
- 22. Lien vers une bibliothèque statique liée à une bibliothèque statique
- 23. comment fusionner les en-têtes de colonne dans une grille flexible, similaire à colspan en html?
- 24. Comment créer une vue similaire à AddressBook edit contact
- 25. fonction similaire à str_replace de php en python?
- 26. Bonne bibliothèque d'algorithme graphique Java?
- 27. sténographie conditionnelle en C# similaire à SQL « dans » mot-clé
- 28. Bibliothèque C++ avec une API de type Java
- 29. Vérifiez si une bibliothèque DLL est déjà chargée? (Java)
- 30. Développement et maintenance d'une bibliothèque d'applications développée à la fois en Java et en C#
JavaCC est IMPRESSIONNANT. Consultez également le livre de Tom Copeland (Centennial Books) –