'宣言 Public Enum SyntaxTreePruningMode Inherits System.Enum
public enum SyntaxTreePruningMode : System.Enum
メンバ | 解説 |
---|---|
BasedOnChildren | 0 子ノードまたは非終端構文ノードである 1 つの子ノードを持つ非終端構文ノードは構文ツリーに含まれていません。 |
BasedOnChildrenAndName | BasedOnChildren および BasedOnName 値を結合します。これは Grammar.SyntaxTreePruningMode のデフォルト値です。 |
BasedOnName | 名前がアンダースコア (「_」) と開始する NonTerminalSymbol と関連される非終端構文ノードは、特定の構造をグループ化するために内部に使用されるため、構文ツリーに表示されません。 |
None | すべての非終端ノードはツリーに表示されています。 |
「排除」は、構文ツリーのコンシューマーに大切ではない非終端構文ノードの解除です。
終了ノードは常に重要なコンテンツを表すため、構文ツリーから削除されることはありません。
ツリーから排除された非終了ノードは、最初の排除されていない先祖ノードのすぐ下の子になります。
デフォルトでは、子を 1 つだけ持つ非ターミナル ノードの子が自身の非ターミナルノードの場合、構文ツリーには表示されません。名前の前にアンダースコア ('_') がある場合も非ターミナル ノードは表示されません。これは BasedOnChildrenAndName 値と等しいです。
排除は終端記号に NonTerminalSymbol.PreventPruning 値を True に設定するとオーバーライドできます。EBNF で「?<PreventPruning/>?」のような特別なシーケンスと非終端定義をマークすることもできます。