0

パーサーの単一のルールの非表示チャネルのレクサーで定義されたトークンを、通常のトークンであるかのように使用できますか?生成されたコードはJavaです...

ありがとう

4

2 に答える 2

1

CommonTokenStreamを作成するときは、使用するチャネルを指定します。他のチャネルのトークンはパーサーに表示されません。

于 2010-02-01T15:09:08.843 に答える
1

はい、パーサーで非表示のトークンを使用できます。

私たちはこれを常に行っています。唯一の問題は、それを探すタイミングを知る必要があることです。

Antlr には、使用する用語がいくつかあります。

Hiddenトークンは別のストリームを移動するだけです。ユーザーは、getHiddenAfterまたはgetHiddenBefore現在一致しているトークンを呼び出して、非表示のトークンをいつでも確認できます。

注:一致したトークンの前後に複数のトークンが隠されている可能性があるため、それらを繰り返し処理する必要があります。

レクサーにトークンを破棄するように指示するDiscardedと、トークンは実際に削除されます。二度とあなたに見られることはありません。

于 2010-02-02T16:37:23.047 に答える