2017-12-29 9 views
0

私はリスナーといくつかのオーバーライドされたコンテキストを持っています。 子のコンテキストを終了する際に、そのテキストを変更したいと思います。 次に、包括的コンテキストでは、一般的なGetText()呼び出しを使用して変更されたコンテキストが取得されます。 これは達成可能ですか?どうやって?ありがとうAntlr:コンテキストのテキストを変更するには?

答えて

1

トークンは、通常、setText()メソッドを持つCommonTokenクラスのインスタンスです。

+0

マイクありがとうございます。私はトークンをキャストしていませんでした。私はパーサのルールのテキストを変更する直接的な方法がないことを推測しています。特に、それが少数のトークンで構成されている場合です。私が考えることができる唯一の方法は、1つのトークンに目的のテキストを設定し、他のすべてを空文字列に設定することです。 –

+0

さて、私は構文解析ツリーを変更せず、むしろセマンティックフェーズでこのようなテキスト処理を行います。あなたがパーズツリーを歩いているときには、すべてのテキストを取得し、**あなたの必要に応じてそれを操作することができます。 'setText()'は単純なタスクの便利な機能です。 –

関連する問題