7

ANTLRパーサー(レクサーではない)で任意のシンボルを一致させる方法は? ANTLR4 パーサーの完全な言語記述はどこにありますか?

アップデート

答えは「不可能」ですか?

4

3 に答える 3

5

まず、解析における各部分の役割を理解する必要があります。

レクサー:これは、入力文字列をトークン化するオブジェクトです。トークン化とは、入力文字のストリームを抽象的なトークン記号 (通常は単なる数字) に変換することを意味します。

パーサー:これは、言語の構造を決定するためにトークンのみを処理するオブジェクトです。言語 (1 つ以上の文法ファイルとして記述) は、有効なトークンの組み合わせを定義します。

ご覧のとおり、パーサーは文字が何であるかさえ知りません。トークンのみを認識します。したがって、あなたの質問はすでに間違っています。

パーサーで個々の入力文字をスキップしたい理由を知ることはおそらく役立つでしょう。基本コンセプトを調整する必要があるようです。

于 2013-05-18T08:11:00.227 に答える
4

「シンボル」が何を意味するかによって異なります。パーサー ルール内の任意のトークンに一致させるには、.(DOT) メタ文字を使用します。パーサー ルール内の任意の文字を一致させようとしている場合は、不運です。ANTLR では、パーサー ルールとレクサー ルールが厳密に分離されています。パーサー ルール内の任意の文字を照合することはできません。

于 2013-05-17T17:53:47.233 に答える