Comment puis-je obtenir le jeton précédent dans Antlr 3 parser ?. En fait, je peux l'obtenir facilement en utilisant "input.LT (-1)" .Mais je ne veux pas utiliser le lookahead.So y at-il une méthode alternative pour obtenir le jeton précédent dans l'analyseur?Jeton précédent dans Antlr3 Parser
0
A
Répondre
1
Une alternative serait de remplacer emit(Token t)
et nextToken()
dans votre lexeur et de garder une trace du dernier jeton émis. Pour un exemple de la façon dont cela pourrait fonctionner, jeter un oeil à la grammaire de ce PyEsque
Q & A: ANTLR What is simpliest way to realize python like indent-depending grammar?
Mais je voudrais simplement utiliser input.LT(-1)
.
Quelle est la raison d'éviter 'LT (-1)'? Tant que vous voulez le jeton précédent avant celui qui correspond actuellement, ceci est la manière standard et est entièrement supporté par ANTLR. Le seul cas que je connaisse où vous ne pouvez pas l'utiliser est si vous voulez connaître le jeton précédent avant un jeton arbitraire donné (pas celui qui correspond réellement). –