Wie kann ich das vorherige Token in Antlr 3 Parser?. Eigentlich kann ich es leicht mit "input.LT (-1)" erreichen. Aber ich möchte nicht den Lookahead verwenden. Gibt es eine alternative Methode, um das vorherige Token im Parser zu bekommen?Zurück Token in Antlr3 Parser
0
A
Antwort
1
Eine andere Möglichkeit wäre, emit(Token t)
und nextToken()
in Ihrem Lexer zu überschreiben und den letzten emittierten Token zu verfolgen. Ein Beispiel dafür, wie dies funktionieren könnte, haben einen Blick auf die PyEsque
Grammatik aus dieser Q & A: ANTLR What is simpliest way to realize python like indent-depending grammar?
Aber ich würde nur input.LT(-1)
verwenden.
Verwandte Themen
- 1. Kann ein LL (*) Parser (wie zB antlr3) C++ parsen?
- 2. Lemon Parser Parsing 0 Token
- 3. antlr3 Lexer Vorrang
- 4. Scala Parser Token Delimiter Problem
- 5. ANTLR2 vs ANTLR3
- 6. Parser-Beschreibung mit Wiederholung "Meta-Token"
- 7. "Expected token" mit Citrix Parser Generator
- 8. Fangen Sie die Ausnahme im Lexer in Antlr3
- 9. Konvertieren von Antlr3 zu Antlr4
- 10. Wie Antlr3 Abhängigkeit aufzulösen Hölle
- 11. Wie rekursive Regelaufruf in Antlr3 zu beheben?
- 12. lexeme einer Verbund Regel in antlr3 Get
- 13. Ist es möglich, ein Standard-Token zu erhalten, das die bereits vorhandenen Tokens in ANTLR3 nicht überschreibt?
- 14. Hilfe beim Analysieren einer Protokolldatei (ANTLR3)
- 15. Bison Fehler in Parser
- 16. JSON.parse() gibt unerwartetes Token zurück
- 17. Syntaxfehler in Sprache Parser Bison
- 18. Vorlage Parse Fehler: Parser Fehler: Unerwartete Token - RouterLink
- 19. CUP-Parser gibt Syntaxfehler für eine gültige Eingabe zurück
- 20. ANTLR3 Ausnahme für Kommentar Lexer-Regel
- 21. antlr4 - Parser nicht richtig funktioniert, wenn Token mit
- 22. Parser vs Lexer und XML
- 23. Jacson-Parser: Unbekanntes Token 'tieheT': erwartete 'null', 'wahr' oder 'falsch'
- 24. Android - Jackson JSON-Parser gibt Nullwert in 'release' zurück builds
- 25. Recursive Descent Parser in Erlang
- 26. Session :: vergessen() einen Fehler zurück unerwarteten Token
- 27. WHM api Anfrage zurück "Token verweigert":/
- 28. GCM - Gerät nicht registrierter trotz zurück Token
- 29. Spotipy-Authentifizierung gibt Token nicht zurück?
- 30. Symfony-Authentifizierungs-Token getCredentials gibt null zurück
Was ist der Grund dafür, 'LT (-1)' zu vermeiden? Solange Sie das vorherige Token vor dem aktuellen Token haben möchten, ist dies der Standard und wird von ANTLR vollständig unterstützt. Der einzige Fall, in dem Sie wissen, wo Sie ihn nicht verwenden können, ist, wenn Sie das vorherige Token vor einem bestimmten beliebigen Token (nicht dem tatsächlich übereinstimmenden Token) wissen wollen. –