例外 | 解説 |
---|---|
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 値を無視します。