10
私はANTLR4を学んでおり、字句モードでプレイしようとしていました。同じトークンを複数の字句モードで表示させるにはどうすればよいですか?非常に簡単な例として、私の文法には2つのモードがあり、両方で白いスペースと行末を一致させたいとしましょう。たとえば、WS_MODE1とWS_MODE2で終わらないでどうすればいいですか?どちらの場合も同じ定義を再利用する方法はありますか?私はモードに関係なく、すべての空白の出力ストリームにWSトークンを取得したいと考えています。同じことが、両方のモードで使用できるEOLやその他のキーワードにも当てはまります。ANTLR4で複数の字句モードで表示されるトークンを定義する方法は?
これらのLexerルールの使い方に関する短い質問:パーサールールでは、WSまたはMode1_WS、Mode2_WSを参照していますか?私は両方を試しましたが、パーサーのルールでそれらを直接参照することなく、レクサールールを定義するだけです。その意味では、「エイリアス」よりむしろ「インポートステートメント」です。 –
'type'コマンドは明示的にトークンタイプを割り当てます。これはパーサーに表示されるタイプです。この場合、これらの3つのルールのいずれかによって作成されたトークンを参照するために、「WS」が使用されます。 –
@SamHarwell最終モード仕様を終了させるものは何ですか?私は、一部のレクサーのドキュメントに、フラグメントの使用がデフォルトを含むすべてのモードで使用可能であることを示す最終モード仕様に従って、フラグメントのデフがあることに気付きました。 – bvj