package edu.stanford.nlp.trees.tregex.tsurgeon; import java.util.Map; import edu.stanford.nlp.trees.tregex.TregexMatcher; import edu.stanford.nlp.trees.Tree; /** * @author Roger Levy (rog@nlp.stanford.edu) */ class CoindexNodes extends TsurgeonPattern { private static final String coindexationIntroductionString = "-"; public CoindexNodes(TsurgeonPattern[] children) { super("coindex", children); } @Override protected void setRoot(TsurgeonPatternRoot root) { super.setRoot(root); root.setCoindexes(); } @Override public TsurgeonMatcher matcher(Map<String,Tree> newNodeNames, CoindexationGenerator coindexer) { return new Matcher(newNodeNames, coindexer); } private class Matcher extends TsurgeonMatcher { public Matcher(Map<String,Tree> newNodeNames, CoindexationGenerator coindexer) { super(CoindexNodes.this, newNodeNames, coindexer); } @Override public Tree evaluate(Tree tree, TregexMatcher tregex) { int newIndex = coindexer.generateIndex(); for(TsurgeonMatcher child : childMatcher) { Tree node = child.evaluate(tree, tregex); node.label().setValue(node.label().value() + coindexationIntroductionString + newIndex); } return tree; } } }