@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t1, root) <= Trees.leftEdge(t2, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.leftEdge(t1, root) == Trees.rightEdge(t2, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.leftEdge(t2, root) == Trees.rightEdge(t1, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t2, root) <= Trees.leftEdge(t1, root); }
/** * Returns the positional index of the left edge of a tree <i>t</i> * within a given root, as defined by the size of the yield of all * material preceding <i>t</i>. */ public static int leftEdge(Tree t, Tree root) { MutableInteger i = new MutableInteger(0); if (leftEdge(t, root, i)) { return i.intValue(); } else { throw new RuntimeException("Tree is not a descendant of root."); // return -1; } }
/** * Returns the positional index of the left edge of a tree <i>t</i> * within a given root, as defined by the size of the yield of all * material preceding <i>t</i>. * This method returns -1 if no path is found, rather than exceptioning. * * @see Trees#leftEdge(Tree, Tree) */ public static int leftEdgeUnsafe(Tree t, Tree root) { MutableInteger i = new MutableInteger(0); if (leftEdge(t, root, i)) { return i.intValue(); } else { return -1; } }
@Override public boolean test(Tree obj) { if (obj.dominates(firstToKeep)) return true; Tree leftmostDescendant = getLeftmostDescendant(obj); return Trees.rightEdge(leftmostDescendant, root) > Trees.leftEdge(firstToKeep, root); }
public static Collection commonWordTagTypeBrackets(Tree root1, Tree root2) { root1 = ext.transformTree(root1); root2 = ext.transformTree(root2); List<Tree> firstPreTerms = new ArrayList<>(); for (Tree tree : root1) { if (tree.isPrePreTerminal()) { firstPreTerms.add(tree); } } List<WordCatConstituent> brackets = new ArrayList<>(); for (Tree preTerm : firstPreTerms) { for (Tree tree : root2) { if (!tree.isPrePreTerminal()) { continue; } if (Trees.leftEdge(tree, root2) == Trees.leftEdge(preTerm, root1) && Trees.rightEdge(tree, root2) == Trees.rightEdge(preTerm, root1)) { brackets.add(new WordCatConstituent(preTerm, root1, WordCatConstituent.goodWordTagType)); break; } } } return brackets; }
@Override public boolean test(Tree obj) { if (obj == reference || obj.dominates(reference) || reference.dominates(obj)) return true; Tree rightmostDescendant = getRightmostDescendant(obj); return Trees.rightEdge(rightmostDescendant, root) <= Trees.leftEdge(reference, root); }
static boolean leftEdge(Tree t, Tree t1, MutableInteger i) { if (t == t1) { return true; } else if (t1.isLeaf()) { int j = t1.yield().size(); // so that empties don't add size i.set(i.intValue() + j); return false; } else { for (Tree kid : t1.children()) { if (leftEdge(t, kid, i)) { return true; } } return false; } }
int leftMostLeaf = Trees.leftEdge(t,qTree); if (t.isPreTerminal()) return; List<Tree> children = t.getChildrenAsList();
public WordCatConstituent(Tree subTree, Tree root, String type) { setStart(Trees.leftEdge(subTree, root)); setEnd(Trees.rightEdge(subTree, root)); setFromString(subTree.value()); this.type = type; }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t1, root) <= Trees.leftEdge(t2, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t1, root) <= Trees.leftEdge(t2, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t2, root) <= Trees.leftEdge(t1, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.leftEdge(t2, root) == Trees.rightEdge(t1, root); }
@Override boolean satisfies(Tree t1, Tree t2, Tree root, final TregexMatcher matcher) { return Trees.rightEdge(t2, root) <= Trees.leftEdge(t1, root); }
@Override public boolean test(Tree obj) { if (obj.dominates(firstToKeep)) return true; Tree leftmostDescendant = getLeftmostDescendant(obj); return Trees.rightEdge(leftmostDescendant, root) > Trees.leftEdge(firstToKeep, root); }
@Override public boolean test(Tree obj) { if (obj == reference || obj.dominates(reference) || reference.dominates(obj)) return true; Tree rightmostDescendant = getRightmostDescendant(obj); return Trees.rightEdge(rightmostDescendant, root) <= Trees.leftEdge(reference, root); }
public WordCatConstituent(Tree subTree, Tree root, String type) { setStart(Trees.leftEdge(subTree, root)); setEnd(Trees.rightEdge(subTree, root)); setFromString(subTree.value()); this.type = type; }