2017-05-23 6 views
0

Antlr 3パーサーで以前のトークンを取得するにはどうしたらいいですか?実際には、私は "input.LT(-1)"を使って簡単に得ることができますが、私はlookaheadを使用したくありません。パーサーで以前のトークンを取得する代替メソッドはありますか?Antlr3パーサーの前のトークン

+0

LT(-1)を避ける理由は何ですか?現在一致しているトークンの前に以前のトークンが必要な場合は、これが標準的な方法であり、ANTLRによって完全にサポートされています。私が知っているのは、あなたがそれを使うことができない場合だけです。あるトークンの前に以前のトークンを知りたい場合です。 –

答えて

1

代替方法は、レクサーのemit(Token t)nextToken()を上書きし、最後に発行されたトークンを追跡することです。これがどのように機能するかの例については、& AのPyEsque文法を見てください。ANTLR What is simpliest way to realize python like indent-depending grammar?

しかし、私はちょうどinput.LT(-1)を使用します。

関連する問題