バージョン

SyntaxTreePruningMode 列挙体

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

「排除」とは、構文ツリーのコンシューマーにとって重要ではないと見なされる非終端構文ノードを削除するプロセスを指します。

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

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

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

個々の非終端記号で排除をオーバーライドするには、その終端記号の NonTerminalSymbol.PreventPruning 値を True に設定するか、または EBNF で「?<PreventPruning/>?」のような特殊シーケンスを使用して非終端定義をマークします。

参照