私には2つの問題があります:
私の ANTLR パーサーには、次の書き換えルールがあります。
msg: msg_content (COMMA msg_content)* -> ^(MSG_CTS msg_content+);
私のツリー文法では、収集した msg_content トークンをどのように利用できますか? $msg_content.text が null 例外を返しています。
より一般的には、生成された AST ツリーをどのように使用できるかについて、ガイドを提供していただけますか? 私は基本的にノードを歩き回り、さまざまなことのためにJavaクラスを作成したいと考えています。
印刷されるこの単純なツリーがあります。
(MSG (AGENTS A B) (MSG_CTS x y))
A、B を含む「エージェント」のフィールドと、X、Y を保持するコンテンツ フィールドを持つ Java クラス「メッセージ」が必要です。
私は ANTLR 決定版ガイドを読みましたが、結合されたトークンの使用方法や、必要に応じてツリーを下に移動する方法についての参照を送信していません。あたかもそこにあるすべての ANTLR チュートリアルが式評価器に関するものであるかのようです!
ANTLRオンラインマニュアルの「Interfacing AST with Java」と「Expression evaluator」を見ましたが、それらを自分の問題に適用する方法がよくわかりません。簡単な例を挙げていただけると大変助かります!
助けてください...ありがとう!