2016-05-16 16 views
0

私はantlr 4にはとても新しく、ターゲット言語はPYTHON2です。 PythonでCommonTokenStreamを理解できず、antlr 4でトークンにアクセスする方法がありません。 隠しチャネルに存在するトークンにアクセスすることが必要ですか? 誰かが、私がトークンにアクセスしてPythonでそれらを操作する方法を理解することができる適切なドキュメントを教えてください。 質問があいまいであれば申し訳ありませんが、私はここで新しいです。ANTLR 4 Python Documentation

答えて

0

ANTLR本は1つです。 https://pragprog.com/book/tpantlr2/the-definitive-antlr-4-reference

第12章「レキシカルブラックマジックを使用する」では、「隠しチャネルにアクセスする」セクションがあります。 TokenStreamRewriterを使用してトークンを書き換えます。

本の中のJavaコードを精神的にPythonコードに変換する必要があります。ランタイムライブラリには微妙な違いがありますが、ほぼ同じです。

これは唯一の方法ではありません。レクサーのemit()関数をオーバーライドすることができます(通常はそうしています)。次に、トークンルーティングを完全に制御できます。