Donc, j'ai fait une grammaire dans Eclipse avec AntLR V3.4 et j'ai fait un qui fonctionne qui fonctionne et je veux m'assurer que je le modifierai toujours. Je peux entrer dans l'interprète à chaque fois, mais cela ressemble à une énorme perte de temps. P>
Questions: J'ai lu sur Gunit mais le lien qu'il donne à Télécharger Gunit: ( http://antlr.org/hudson/job/gunit/org.antlr $ gunit / lastsuccessfulbuild /) ne fonctionne pas. Comment puis-je obtenir Gunit. Quelle est la meilleure façon de tester les grammaires? Est-ce réellement gunit ou devrais-je juste faire des tests Java comme des tests Junit? P>
4 Réponses :
Vous pouvez télécharger Gunit Il mais je pense qu'il y a Pas de dernière version ... p>
Essayez Jarvana ... la dernière version Il y a 3.4: < Un href = "http://repo1.maven.org/maven2/org/antlr/gunit/3.4/gunit-3.4.jar" rel = "nofollow"> http://repo1.maven.org/maven2/org/ Antlr / Gunit / 3.4 / Gunit-3.4.jar P>
@Dave Newton a raison. À partir de AntLR V3.1, Gunit est inclus dans le pot d'outils d'anti-anti-anti-ANTLR, tel que indiqué là . p>
Je ne savais pas pour Gunit jusqu'à maintenant. Il a fière allure pour les tests de grammaire, mais je pense que les tests Junit feront leur travail pour ... P>
C'est la première fois que j'ai entendu parler de Guinit et de la lire dessus. (Je n'utilise pas beaucoup d'antlr.) Cela semble intéressant, mais à moitié inutile. p>
Mon approche de validation des grammaires consiste à valider la totalité de l'analyseur entier avec des tests d'unités "normaux". La chose est que vous devriez avoir des tests unitaires en place et les tests qui vérifient la régression de la grammaire que vous venez d'y ajouter. La chose est dans mon expérience que la plupart des erreurs viennent en analyse sémantique et à la réduction et non à la grammaire. P>
Pourriez-vous m'en dire plus sur cela ou un lieu où vous êtes allé trouver vos informations?
L'information sur Gunit était surtout un rapide Google sur le terme. L'autre est une expérience professionnelle de 10 ans d'analyse de la langue de construction et de compilateurs. La chose est que la grammaire vivra dans une application; Sauf si vous ne faites que des exemples académiques. L'application a probablement déjà des tests unitaires, pourquoi ne pas simplement l'utiliser. Surtout depuis quelle utilisation est que la grammaire est valide mais le code restant fait absurdité.
La grande raison est dû au fait que c'est une grosse inconvérence de déterminer si sa course à pied (tout en construisant une grammaire à partir de zéro) et vous devez entrer dans la grammaire Whowown pour vous assurer que tout ce que vous avez fait fonctionne. Certains code de test automatique vous diraient automatiquement ce qui a cassé chaque compilé. Nous n'avons pas de demande, car nous ne la conçons que nous-mêmes, nous devons donc nous assurer de son travail, il n'y a pas de projet global qui nous dira si son fonctionnement ou non. Je ne sais pas si cela explique beaucoup, faites-le moi savoir :)
Travaillez-vous sur un projet académique? C'est que moi ou cela sonne-t-il inutile de développer une grammatie sans une application minimale? Même un validateur de code est une forme d'application. Vous construisez un test d'unité contenant un petit fragment de code pour analyser et vérifier si le résultat est comme prévu; rincer et répéter.
L'application avec le ratio de la grammaire au plus grand grammaire, que j'ai jamais écrit, était le convertisseur EDDL au XML. (N'ayez pas Aks, il décharge l'Ast que XML.) Mais cette chose se nourrit de l'outil de certification PNO et du tokeniser PNO. Mais même là Eddl en XML out. Vous pouvez exécuter simplement l'analyseur de toute la chaîne de conversion.
J'ai récemment terminé deux missions AntLR3 (je travaille sur ma maîtrise en informatique) en utilisant Eclipse. J'ai trouvé aucun document unique qui avait un processus d'installation, de configuration, de rédaction et de débogage d'une grammaire dans Eclipse. Ainsi, après avoir traversé divers problèmes, j'ai trouvé que la chose la plus facile à faire était de rester en éclipse pour les tests. p>
Pour utiliser le processus, je suis arrivé à utiliser (décrit ci-dessous), vous devez d'abord avoir l'installation d'AntLR IDE V2.1.1. Ajoutez-le de l'intérieur Eclipse Indigo: http://antlrv3ide.sourceforge.net/update . Ce site dispose également d'un document utile sur l'utilisation de l'IDE AntlR. Une fois installé, l'IDE doit être configuré. Les tutoriels vidéo sont un peu obsolètes mais serviables. Voir une marche détaillée sur Configuration de l'IDE AntlR à Eclipse . L'élément de configuration principale est le dossier de sortie Java. Faites-le dans Eclipse en allant à Windows, Préférences, AntlR, Générateur de code, Vérifiez le dossier Relative de projet et dans la zone Nom de nom de dossier de sortie Tapez un nom de dossier (le mien s'appelle «Antlr-Java», d'autres utilisent «généré»). p>
Processus de test / débogage pour ANTLR dans Eclipse Indigo avec l'IDE AntlR STRUT> P>
Réponse modifiée avec lien intégré.
La question est ancienne, mais je quitte une référence pour la complétude: P>
Pour moi, le Gunit était inutile. J'ai donc réussi à trouver comment testez uniquement le Lexer, puis seulement l'analyseur. p>
J'ai répondu ici ici: https://stackoverflow.com/a/53884851/976948 p> blockQuote>
Fondamentalement, il existe des liens pour 2 articles sur la façon de la tester: P>
- Test de l'unité pour Lexer LI>
- Test de l'unité pour anal li> ul>
Merci pour l'exemple Lexer! Je l'ai transformé en Python ici ici gist.github.com/nmz787/cf98AA465A4D071A937CF74788687A54
Gunit a été inclus dans les outils anti-ANTLR pour quelques versions maintenant, non?
Comment accéder à Gunit une fois que j'ai téléchargé l'antlr-complet-3.4.jar?