これは理論的な問題のようです。
私が知る限り、ANTLR3 はその回復 (###) メソッドを使用してエラー自体を処理します。ANTLR3 がエラー回復に使用する方法を知りたいです。(つまり、パニックモード/フレーズレベルなど) 誰かがこれを理解するのを手伝ってくれますか?
私の最初の推測が正しければ、誰かがその回復メソッドの宣言を見せてくれればいいのですが。ありがとうございました。
これは理論的な問題のようです。
私が知る限り、ANTLR3 はその回復 (###) メソッドを使用してエラー自体を処理します。ANTLR3 がエラー回復に使用する方法を知りたいです。(つまり、パニックモード/フレーズレベルなど) 誰かがこれを理解するのを手伝ってくれますか?
私の最初の推測が正しければ、誰かがその回復メソッドの宣言を見せてくれればいいのですが。ありがとうございました。
見積もり:
ANTLR のエラー回復メカニズムは、Niklaus Wirth の Algorithms + Data Structures = Programs 1 (および Rodney Topor の A Note on Error Recovery in Recursive Descent Parsers 2 )の初期のアイデアに基づいていますが、Josef Grosch の CoCo パーサー ジェネレーター (Efficientおよび再帰降下パーサーにおける快適なエラー回復3)。基本的に、レコグナイザーは、可能であれば、シンボルの不一致エラー (すぐに説明します) に対して単一シンボルの挿入と削除を実行します。そうでない場合、レコグナイザーは先読みが再同期セットのメンバーになるまでシンボルを飲み込み、その後ルールを終了します。再同期セットは、現在のルールへの参照と呼び出しチェーンの呼び出しルールへの参照を合法的にたどることができる入力シンボルのセットです。同様に、レコグナイザーがルールの最初からいずれの選択肢も選択できない場合、レコグナイザーは再びゴブル アンド エグジット戦略を使用します。
[...]
-- テレンス・パー The Definitive ANTLR Reference、10.7 Automatic Error Recovery Strategy。
1ニクラウス・ヴィルト。アルゴリズム + データ構造 = プログラム. プレンティス ホール PTR、アッパー サドル リバー、ニュージャージー州、米国、1978 年。
2ロドニー W. トポー。再帰降下パーサーでのエラー回復に関するメモ。SIGPLAN いいえ。、17(2):37–40、1982。
3ヨーゼフ・グロッシュ。再帰降下パーサーでの効率的で快適なエラー回復。構造化プログラミング、11(3):129–140、1990 年。