4

私はC#ターゲットでAntlr 4を使用しています。これが私の文法のサブセットです:

/*
 * Parser Rules
 */
text : term+  EOF;
term : a1 a2 a3;
a1: ....
...
...

有効なデータ ブロックを (用語) として受け入れたい。エラーが存在する場合は、次の有効な用語を検索し、エラーの原因となったテキスト全体を出力して、ユーザーが手動で分析できるようにしたい。

入力を次の有効な用語に同期する方法は? 無視されたテキストを取得する方法は?

4

2 に答える 2

6

このために独自の実装を作成し、プロパティをエラー戦略のインスタンスにIAntlrErrorStrategy設定する必要があります。Parser.ErrorHandlerインターフェイスの Java バージョンANTLRErrorStrategyとデフォルト実装のドキュメントはDefaultErrorStrategy、エラー戦略を実装するための有用な情報を提供する場合がありますが、カスタム エラー戦略の作成は高度な機能であり、ドキュメントが限られていることを警告する必要があります。実装者は、ANTLR 4 の Adaptive LL(*) 解析アルゴリズムの実装の専門家であることが期待されます (研究者レベルの理解について話しています)。

于 2013-08-31T23:18:46.490 に答える