Question

Terence Parr se dit à propos antlr3: « Malheureusement, il semble encore plus difficile à construire tokenizer avec ANTLR qu'avec une approche traditionnelle comme lex ». Où que pygments a lexers pour presque toutes les langues que vous pouvez penser: http://pygments.org/languages/

Quelqu'un at-il essayé d'utiliser un pygments lexer avec la cible python antlr? antlr2 avait un exemple d'utilisation flexible avec la cible de cpp, malheureusement, il n'y a pas de tels exemples pour antlr3.
Puis-je écrire main un fichier grammarname.tokens que l'analyseur antlr peut importer? Lorsque j'utilise un lexer antlr, il y a un tas de jetons anonymes, puis-je supprimer simplement les? Vous pouvez peut-être pygments peuvent être modifiés pour accepter le fichier .tokens de ANTLR pour ses jetons. Le flux jeton de pygments a juste besoin d'implémenter l'interface de flux jeton antlr.

Était-ce utile?

La solution 2

cet autre q / a été très utile: ANTLR Parser avec lexer manuel lire aussi à travers les extraits de Stax et jflex: http://www.antlr.org/wiki/display/ antlr3 / Interfacing + StAX + à + ANTLR http://www.antlr.org/pipermail/antlr- intérêt / 2007-Octobre / 023957.html

le fichier jetons est une question non si vous importez les types de jeton à partir du fichier analyseur généré. Malheureusement j'ai d'abord essayé le fichier analyse de .tokens et oublié de convertir les types de jeton en entiers qui ont provoqué une longue bugchase ...

mais, je fini par comprendre: j'ai tout compris: http://github.com/ tinku99 / antlr-pygments

Autres conseils

Naveen a écrit:

Quelqu'un at-il essayé d'utiliser un pygments lexer avec la cible python antlr?

Je doute. Au moins, je ne l'ai jamais vu quelqu'un mentionner ce soit ici sur le SO, ou sur les listes de diffusion de ANTLR (dont je surveille depuis un certain temps).

Naveen a écrit:

Puis-je écrire main un fichier grammarname.tokens que l'analyseur antlr peut importer?

Non

. L'analyseur attend une instance d'un objet Lexer, qui est présent dans l'environnement d'exécution (python). Un fichier .tokens n'est pas censé être modifié manuellement.

Naveen a écrit:

Quand j'utilise un lexer antlr, il y a un tas de jetons anonymes, puis-je supprimer simplement les?

Pas tout à fait sûr de ce que vous voulez dire, mais en supprimant tout le code généré semble une mauvaise idée pour moi. Si vous faites référence au fichier .tokens, comme je l'ai dit. Il est pas censé être modifié manuellement

Je ne vraiment pas la peine d'essayer de « colle » une lexer-grammaire externe ou lexer complète, en ANTLR. Je suis assez sûr que cela vous cause plus de temps à mettre en œuvre que d'écrire juste la grammaire ANTLR lexer vous. Après tout: définir les règles de la partie est analyseurs lexicaux plus facile d'une langue dans la plupart des cas

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