ANTRLR初心者の質問です。与えられた文法についてANTLR mavenプラグインは、テキストをトラバースして解析するために必要なすべてのJavaクラスを作成しました。また、「The Definitive ANTLR4 Reference」に規定されているように使用するとうまく動作します。ANTLRでは、特定の低レベルルールに対してストリームをどのように解析するのですか?
ここで、生成されたクラスを再利用して、文法ファイルのどこかに埋め込まれたルールで定義された式を解析する必要があるとします。 しかし、参考文献は、特定のルールをどのように選択するかについての手掛かりを提供していないように見えますが、生成されたクラスは、常に文法ツリー全体がソースに存在することを期待しています。
生成されたクラスをそのまま使用することはできません。対応するリスナーとパーサのメソッドは、「親コンテキスト」と「起動状態」のときにのみ作成できるコンテキストパラメータを必要とするため、定義する方法を知っている。
私がこれまでに思いついた唯一の(ゴミ)解決策は、問題の低レベルのルールがトップレベルのルールになるように文法を2つのファイルに分割し、後者を最初のファイルにインポートすることです。
私はここで何かを紛失していますか?どんな助けもありがとう。