2008-11-29 9 views
7

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

7

Un autre bon générateur d'analyseur est ANTLR , c'est peut-être ce que vous cherchez.

3

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.

+0

JavaCC est IMPRESSIONNANT. Consultez également le livre de Tom Copeland (Centennial Books) –

3

Une recherche rapide des générateurs d'analyse syntaxique en Java donne JParsec. Je ne l'ai jamais utilisé - mais il s'inspire d'une bibliothèque Haskell, donc par définition ça doit être bon :-)

+0

On dirait très intéressant, en partant des générateurs de code ... Merci pour la référence. – PhiLho

2

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.

Questions connexes