public override Tree Evaluate(Tree tree, TregexMatcher tregex) { Tree nodeToInsert = ChildMatcher[0].Evaluate(tree, tregex); Tuple <Tree, int> position = locationMatcher.Evaluate(tree, tregex); position.Item1.InsertDtr(this.node.needsCopy ? nodeToInsert.DeepCopy() : nodeToInsert, position.Item2); return(tree); }
public override Tree Evaluate(Tree tree, TregexMatcher tregex) { Tree nodeToMove = ChildMatcher[0].Evaluate(tree, tregex); Tree oldParent = nodeToMove.Parent(tree); oldParent.RemoveChild(Trees.ObjectEqualityIndexOf(oldParent, nodeToMove)); Tuple <Tree, int> position = locationMatcher.Evaluate(tree, tregex); position.Item1.InsertDtr(nodeToMove, position.Item2); return(tree); }