當前位置: 首頁>>代碼示例>>Java>>正文


Java Tree.deleteChild方法代碼示例

本文整理匯總了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();
}
 
開發者ID:cuba-platform,項目名稱:cuba,代碼行數:23,代碼來源:QueryTreeTransformer.java

示例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());
            }
        }
    }
 
開發者ID:unktomi,項目名稱:form-follows-function,代碼行數:24,代碼來源:F3Parser.java

示例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;
}
 
開發者ID:ajoabraham,項目名稱:hue,代碼行數:31,代碼來源:TreePatcher.java

示例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;
}
 
開發者ID:cuba-platform,項目名稱:cuba,代碼行數:12,代碼來源:QueryTreeTransformer.java


注:本文中的org.antlr.runtime.tree.Tree.deleteChild方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。