0
Antlr 3パーサーで以前のトークンを取得するにはどうしたらいいですか?実際には、私は "input.LT(-1)"を使って簡単に得ることができますが、私はlookaheadを使用したくありません。パーサーで以前のトークンを取得する代替メソッドはありますか?Antlr3パーサーの前のトークン
Antlr 3パーサーで以前のトークンを取得するにはどうしたらいいですか?実際には、私は "input.LT(-1)"を使って簡単に得ることができますが、私はlookaheadを使用したくありません。パーサーで以前のトークンを取得する代替メソッドはありますか?Antlr3パーサーの前のトークン
代替方法は、レクサーのemit(Token t)
とnextToken()
を上書きし、最後に発行されたトークンを追跡することです。これがどのように機能するかの例については、& AのPyEsque
文法を見てください。ANTLR What is simpliest way to realize python like indent-depending grammar?
しかし、私はちょうどinput.LT(-1)
を使用します。
LT(-1)を避ける理由は何ですか?現在一致しているトークンの前に以前のトークンが必要な場合は、これが標準的な方法であり、ANTLRによって完全にサポートされています。私が知っているのは、あなたがそれを使うことができない場合だけです。あるトークンの前に以前のトークンを知りたい場合です。 –