私は、構文認識エディタのためにトークンを特定し、パーサのトークンを特定するための2つの方法で使用されるレクサーを定義するレクサー文法を持っています。最初のケースでは、レクサーはコメントと空白を返すべきですが、2番目のケースでは、コメントと空白は必要ありません。 2つの異なるレクサークラスが必要ですか?それぞれのレクサークラスは、それぞれ独自の文法バリエーションで定義されていますか?または、チャネルを使用して単一のレクサーでこれを達成できますか?どうやって?同じレクサーを使用してトークンストリームを空白の有無にかかわらず提供するにはどうすればよいですか?
2つの別々の文法が必要な場合は、コメントと空白以外のすべてのルールを除外し、その別の「共通」文法からそれらのルールをインポートすることができます。