本文整理匯總了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;
}