バージョン

SyntaxTreePruningMode プロパティ

構文ツリーが排除される方法を示す値を取得または設定します。
シンタックス
'宣言
 
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/>?」のような特殊シーケンスを使用して非終端定義をマークします。

参照