'宣言 Public Property SyntaxTreePruningMode As SyntaxTreePruningMode
public SyntaxTreePruningMode SyntaxTreePruningMode {get; set;}
例外 | 解説 |
---|---|
System.InvalidOperationException | 値が設定し、IsMutable が False の場合に発生します。 |
System.ArgumentException | 指定した値が SyntaxTreePruningMode に定義されない場合に発生します。 |
文法作成者は、再使用のために構造をグループ化するために特定の非終端記号を定義できます。この記号が最後の解析ツリーに含まれないようにするには、ヘルパー記号の名前の開始にアンダースコア (_) プレフィックスを追加し、排除モードを BasedOnName に設定します。これにより、最後の解析ツリーから削除されます。また、特定の演算子優先順位ルールには、より優先順位の高いルールを含む優先順位のより低いルールからなる長いチェーンが必要です。より高い優先順位の構造だけが使用される場合、所有する低い優先順位の記号はツリーに表示されません。この場合、BasedOnChild の排除モードを使用すると、非終端記号の子を 1 つだけ持つ非終端記号が削除されます。BasedOnChildrenAndName (このプロパティのデフォルト値) を使用すると、排除モードの両方のタイプを実行します。
個々の非終端記号で排除をオーバーライドするには、その終端記号の NonTerminalSymbol.PreventPruning 値を True に設定するか、または EBNF で「?<PreventPruning/>?」のような特殊シーケンスを使用して非終端定義をマークします。