本文整理汇总了Java中org.antlr.runtime.tree.Tree.deleteChild方法的典型用法代码示例。如果您正苦于以下问题:Java Tree.deleteChild方法的具体用法?Java Tree.deleteChild怎么用?Java Tree.deleteChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.antlr.runtime.tree.Tree
的用法示例。
在下文中一共展示了Tree.deleteChild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: replaceWithCount
import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public void replaceWithCount(EntityReference entityRef) {
Tree selectedItems = tree.getFirstChildWithType(JPA2Lexer.T_SELECTED_ITEMS);
boolean isDistinct = "DISTINCT".equalsIgnoreCase(selectedItems.getChild(0).getText());
if (!(isDistinct && selectedItems.getChildCount() == 2 ||
selectedItems.getChildCount() == 1))
throw new IllegalStateException("Cannot replace with count if multiple fields selected");
SelectedItemNode selectedItemNode;
if (isDistinct)
selectedItems.deleteChild(0);
selectedItemNode = (SelectedItemNode) selectedItems.getChild(0);
AggregateExpressionNode countNode = createCountNode(entityRef, isDistinct);
selectedItemNode.deleteChild(0);
selectedItemNode.addChild(countNode);
Tree orderBy = tree.getFirstChildWithType(JPA2Lexer.T_ORDER_BY);
if (orderBy != null) {
tree.deleteChild(orderBy.getChildIndex());
}
tree.freshenParentAndChildIndexes();
}
示例2: scrubTree
import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
private void scrubTree(Tree tree) {
// The top-level tree often has wrong position info, so start one down from the top
for (int i = tree.getChildCount() - 1; i >= 0; i--) {
Tree child = tree.getChild(i);
if (child.getTokenStartIndex() > child.getTokenStopIndex()) {
System.out.println("Deleting node " + child);
tree.deleteChild(i);
continue;
}
if (child.getTokenStartIndex() < 0) {
// System.out.println("Deleting node " + child);
// tree.deleteChild(i);
continue;
}
scrubTree(child);
if (child.getTokenStartIndex() < tree.getTokenStartIndex()) {
tree.setTokenStartIndex(child.getTokenStartIndex());
}
if (child.getTokenStopIndex() > tree.getTokenStopIndex()) {
tree.setTokenStopIndex(child.getTokenStopIndex());
}
}
}
示例3: patchTreeByString
import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public static void patchTreeByString(CommonTree tree, List<String> columns, String goal) {
if (tree.getChildCount() == 0) {
// leaf
if (columns.contains(tree.getText())) {
Tree parent = tree.getParent();
// only patch tree when it's QNAME node
if (parent.getText().equals("QNAME")) {
Tree tmpTree = createGenericNode(goal);
// remove QNAME at index 0
tmpTree.deleteChild(0);
tmpTree.setParent(tree.getParent());
parent.deleteChild(0);
parent.addChild(tmpTree);
parent.addChild(tree);
((CommonTree)tmpTree).getToken().setText(goal);
((CommonTree)tmpTree).getToken().setType(tree.getType());
}
}
return;
}
// process children
for (Tree t : children(tree)) {
patchTreeByString((CommonTree)t, columns, goal);
}
return;
}
示例4: removeDistinct
import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public boolean removeDistinct() {
Tree selectedItems = tree.getFirstChildWithType(JPA2Lexer.T_SELECTED_ITEMS);
boolean isDistinct = "DISTINCT".equalsIgnoreCase(selectedItems.getChild(0).getText());
if (isDistinct) {
selectedItems.deleteChild(0);
} else {
return false;
}
tree.freshenParentAndChildIndexes();
return true;
}