Question

Je dois créer rapidement un analyseur syntaxique pour une version très simplifiée d'un langage de balisage de type HTML en Java. Pour ce faire, j'utilisais une bibliothèque pyparsing. Y a-t-il quelque chose de similaire pour Java? S'il vous plaît, ne suggérez pas les bibliothèques déjà en place pour l'analyse syntaxique, mon application est une tâche d'école qui démontrera la marche d'un arbre d'objets et la sérialisation en texte en utilisant le modèle de visiteur, je ne pense donc pas en termes réels, ici. Fondamentalement, tout ce dont j'ai besoin ici sont des balises, des attributs et des nœuds de texte.

Était-ce utile?

La solution

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

Autres conseils

Votre utilisation peut être excessive, mais javacc est un excellent générateur d'analyseurs syntaxiques de force industrielle. J'ai utilisé ce programme / bibliothèque plusieurs fois, il est fiable et mérite un apprentissage, en particulier si vous allez travailler avec des langages et des compilateurs. Voici la description du programme sur le site Web indiqué ci-dessus:

  

Java Compiler Compiler [tm] (JavaCC [tm]) est le générateur d’analyseur le plus répandu à utiliser avec les applications Java [tm]. Un générateur d'analyseur 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. Outre le générateur d’analyseur lui-même, JavaCC fournit d’autres fonctionnalités standard liées à la génération d’analyseur, telles que la création d’arborescence (via un outil appelé JJTree inclus avec JavaCC), les actions, le débogage, etc.

Une recherche rapide de générateurs d’analyseurs en Java donne JParsec . Je ne l'ai jamais utilisé - mais il est inspiré d'une bibliothèque Haskell. Par définition, il doit donc être bon: -)

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 assez pour les petites tâches.
J'ai trouvé une bibliothèque similaire, JTopas .

Il y a une bonne liste d'analyseurs (générateurs ou non) à Source Java .

Il existe un grand nombre de choix pour le traitement des chaînes en Java. Peut-être que les classes java.util.Scanner et java.util.StringTokenizer très utiles vous seront utiles?

Un autre bon choix est peut-être la bibliothèque org.apache.commons.lang.text . http: //commons.apache. org / lang / apidocs / org / apache / commons / lang / text / package-summary.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top