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