0

特定の入力文字列から GDB バックトレース出力を認識しようとする ANTLR パーサーを作成しています。

次のレクサー文法で新しい行を無視しています。

RETURN : ('\r' | '\n' | '\r\n') { skip(); };

ただし、一部の入力に対してパーサーを実行すると、ANTLR は次のレクサー エラーを返します。

line 20:21 no viable alternative at character '\n'
line 23:14 no viable alternative at character '\n'
line 30:21 no viable alternative at character '\n'
line 33:31 no viable alternative at character '\n'

レクサーですでに '\n' を指定しているので、なぜこれが起こるのかわかりません。

誰にもアイデアはありますか?ありがとう。

4

1 に答える 1

2

問題はあなたの文法のどこかにあるようです: まだ終了していない別の要素をまだ字句解析しており、現在の要素を終了することをまだ期待している間に予期せず行末に遭遇しました.

于 2012-12-03T09:30:23.683 に答える