package edu.stanford.nlp.trees.tregex.tsurgeon;
import java.util.List;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.Trees;
import edu.stanford.nlp.trees.tregex.TregexMatcher;
/**
* @author Roger Levy (rog@stanford.edu)
*/
class DeleteNode extends TsurgeonPattern {
public DeleteNode(TsurgeonPattern[] children) {
super("delete", children);
}
public DeleteNode(List<TsurgeonPattern> children) {
this(children.toArray(new TsurgeonPattern[children.size()]));
}
@Override
public Tree evaluate(Tree t, TregexMatcher m) {
Tree result = t;
for (TsurgeonPattern child : children) {
Tree nodeToDelete = child.evaluate(t, m);
if (nodeToDelete == t) {
result = null;
}
Tree parent = nodeToDelete.parent(t);
parent.removeChild(Trees.objectEqualityIndexOf(parent,nodeToDelete));
}
return result;
}
}