現在、私はANTLR4のための私の木のリスナーの実装では、メイン・コンテキストの私のサブコンテキストにアクセスするには、このようなコードを使用しています:ANTLR4ツリー・リスナーでメイン・コンテキストのアクセスサブコンテキスト
ctx.children.forEach(function(child) {
if (child.ITALIC != undefined) {
var text = child.ITALIC().getText();
...
} else if (child.LABELREF != undefined) {
var text = child.LABELREF().getText();
...
}
...
JavaScript ANTLR4ターゲットを使用しているため、これがこのような情報にアクセスする正しい方法であるかどうかはわかりません。
これがC#またはJavaターゲットである場合、私は最良の方法を見つけるだろうと思っています。または、この結果は
child.ITALIC != null
となるでしょうか?
私が得た結果は問題なく、すべてが機能しています。しかし、もっと良い解決策があれば私は興味があります。
ありがとうございます。私はchildrensプロパティと、その中の異なるContextまたはTerminalNodeインスタンスを見ました。しかし、私はJavaScriptの型をチェックする必要があり、個々のサブコンテキストメソッドが少し使いやすくなっていると思ったのですか? – FDeitelhoff
はい、使用するのが簡単で、個々のアクセス機能を使用するコードは自己説明的です。しかし、特別なアクセス関数のどれかが期待値を返さないかどうかをチェックするために、子配列がすべての究極のソースであり、最適な点です。 –
それは理にかなっている。ありがとう! – FDeitelhoff