バージョン

SyntaxTreePruningMode 列挙体

非終了 SyntaxNode はドキュメントが解析されたときに作成した SyntaxTree に含むかどうかを説明する定数。
シンタックス
'宣言
 
Public Enum SyntaxTreePruningMode 
   Inherits System.Enum
public enum SyntaxTreePruningMode : System.Enum 
メンバ
メンバ解説
BasedOnChildren0 子ノードまたは非終端構文ノードである 1 つの子ノードを持つ非終端構文ノードは構文ツリーに含まれていません。
BasedOnChildrenAndNameBasedOnChildren および BasedOnName 値を結合します。これは Grammar.SyntaxTreePruningMode のデフォルト値です。
BasedOnName名前がアンダースコア (「_」) と開始する NonTerminalSymbol と関連される非終端構文ノードは、特定の構造をグループ化するために内部に使用されるため、構文ツリーに表示されません。
Noneすべての非終端ノードはツリーに表示されています。
解説

「排除」は、構文ツリーのコンシューマーに大切ではない非終端構文ノードの解除です。

終了ノードは常に重要なコンテンツを表すため、構文ツリーから削除されることはありません。

ツリーから排除された非終了ノードは、最初の排除されていない先祖ノードのすぐ下の子になります。

デフォルトでは、子を 1 つだけ持つ非ターミナル ノードの子が自身の非ターミナルノードの場合、構文ツリーには表示されません。名前の前にアンダースコア ('_') がある場合も非ターミナル ノードは表示されません。これは BasedOnChildrenAndName 値と等しいです。

排除は終端記号に NonTerminalSymbol.PreventPruning 値を True に設定するとオーバーライドできます。EBNF で「?<PreventPruning/>?」のような特別なシーケンスと非終端定義をマークすることもできます。

参照