例外 | 解説 |
---|---|
System.InvalidOperationException | 所有する Grammar の IsMutable の値が False の場合に発生します。 |
グローバルな曖昧が検出された場合、これは 2 つ以上の SyntaxNode サブツリーが、文法定義に基づくドキュメントに含まれるテキスト コンテンツの同じ部分を表現できることを意味します。これらのツリーの 1 つ以上のノードが優先 NonTerminalSymbol インスタンスに関連付けられている場合には、ルート レベルに最も近い優先ノードを持つツリーが優先サブツリーとして選択されます。同じレベルの優先ノードを持つ複数のノードがある場合、そのレベルの優先ノードをより多く持つツリーが選択されます。 同じレベルの優先ノードを同じ数だけ持つ複数のノードがある場合、あるいはすべてのツリーに優先ノードがない場合には、グローバルな曖昧を自動的に解決することはできません。その場合、開発者がカスタム ロジックを使用して解決できるように、LanguageBase.OnGlobalAmbiguityDetected メソッドが呼び出されます。CustomLanguage インスタンスがドキュメントの解析に使用される言語である場合、同じく開発者が曖昧を解決することを可能にする、このインスタンスの CustomLanguage.GlobalAmbiguityDetected イベントが発生します。曖昧が解決されない場合、パーサーは該当するコンテンツを表すために、曖昧なツリーのいずれかを無作為に選択します。