本文整理汇总了C#中ISymbolicExpressionTreeNode.ForEachNodePostfix方法的典型用法代码示例。如果您正苦于以下问题:C# ISymbolicExpressionTreeNode.ForEachNodePostfix方法的具体用法?C# ISymbolicExpressionTreeNode.ForEachNodePostfix怎么用?C# ISymbolicExpressionTreeNode.ForEachNodePostfix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISymbolicExpressionTreeNode
的用法示例。
在下文中一共展示了ISymbolicExpressionTreeNode.ForEachNodePostfix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsMatchingPointType
public bool IsMatchingPointType(ISymbolicExpressionTreeNode newChild) {
var parent = this.Parent;
if (newChild == null) {
// make sure that one subtree can be removed and that only the last subtree is removed
return grammar.GetMinimumSubtreeCount(parent.Symbol) < parent.SubtreeCount &&
this.ChildIndex == parent.SubtreeCount - 1;
} else {
// check syntax constraints of direct parent - child relation
if (!grammar.ContainsSymbol(newChild.Symbol) ||
!grammar.IsAllowedChildSymbol(parent.Symbol, newChild.Symbol, this.ChildIndex))
return false;
bool result = true;
// check point type for the whole branch
newChild.ForEachNodePostfix((n) => {
result =
result &&
grammar.ContainsSymbol(n.Symbol) &&
n.SubtreeCount >= grammar.GetMinimumSubtreeCount(n.Symbol) &&
n.SubtreeCount <= grammar.GetMaximumSubtreeCount(n.Symbol);
});
return result;
}
}