例外 | 解説 |
---|---|
System.InvalidOperationException | 所有する Grammar の IsMutable の値が False の場合に発生します。 |
この設定を使用すると、エラー処理ロジックが意味のあるエラーを報告します。これは、構造の中間または最後に達したことを明示的に示す記号で、特定の TerminalSymbol が続く場合に使用してください。。たとえば、VB.NET では、「End」キーワードに続く「Class」キーワードは、明示的に Class 宣言の終了を示します。同じように、「End」キーワードに続く「Sub」キーワードは、明示的に Sub メソッド宣言の終了を示します。パーサーが現在 Class 宣言に含まれる Sub 宣言内に位置していて、「End」キーワードの後に「Class」キーワードが続いていることを検出すると、IsStartOfErrorRecoveryPair を使用して、「End Class」では Sub 宣言を終了できないことから「End Sub」が欠落していることをエラー処理ロジックに通知します。すると、その欠落したペアが解析ツリーに挿入されます。これにより、「End Class」を正しく使用して所有するクラスを終了できます。したがって、「End」キーワードを表す TerminalSymbol の値を True に設定すると、パーサーが VB.NET 言語のドキュメントを解析するときに、より意味のあるエラー メッセージを提供できるようになります。
注: この値は小さい構造でのみ使用してください。解析した終端記号の数が 10 より大きい場合、その記号の IsStartOfErrorRecoveryPair 値は無視されます。