微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jdk.nashorn.internal.runtime.regexp.joni.constants.EncloseType的实例源码

项目:Openjsharp    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum)) {
            len = OPSize.MEMORY_START_PUSH;
        } else {
            len = OPSize.MEMORY_START;
        }
        len += tlen + (bsAt(regex.btMemEnd,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:Openjsharp    文件Parser.java   
private Node parseExpRepeat(final Node targetp,final boolean group) {
    Node target = targetp;
    while (token.type == TokenType.OP_REPEAT || token.type == TokenType.INTERVAL) { // repeat:
        if (target.isInvalidQuantifier()) {
            throw new SyntaxException(ERR_TARGET_OF_REPEAT_OPERATOR_INVALID);
        }

        final QuantifierNode qtfr = new QuantifierNode(token.getRepeatLower(),token.getRepeatUpper(),token.type == TokenType.INTERVAL);

        qtfr.greedy = token.getRepeatGreedy();
        final int ret = qtfr.setQuantifier(target,group,env,chars,getBegin(),getEnd());
        Node qn = qtfr;

        if (token.getRepeatPossessive()) {
            final EncloseNode en = new EncloseNode(EncloseType.STOP_BACKTRACK); // node_new_enclose
            en.setTarget(qn);
            qn = en;
        }

        if (ret == 0) {
            target = qn;
        } else if (ret == 2) { /* split case: /abc+/ */
            target = ConsAltNode.newListNode(target,null);
            final ConsAltNode tmp = ((ConsAltNode)target).setCdr(ConsAltNode.newListNode(qn,null));

            fetchToken();
            return parseExpRepeatForCar(target,tmp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:openjdk-jdk10    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:openjdk-jdk10    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:openjdk9    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:openjdk9    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:kaziranga    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:kaziranga    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:lookaside_java-1.8.0-openjdk    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:lookaside_java-1.8.0-openjdk    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:jdk8u_nashorn    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:jdk8u_nashorn    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:infobip-open-jdk-8    文件ArrayCompiler.java   
private int compileLengthEncloseNode(final EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:infobip-open-jdk-8    文件Parser.java   
private Node parseExpRepeat(final Node targetp,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:OLD-OpenJDK8    文件ArrayCompiler.java   
private int compileLengthEncloseNode(EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:OLD-OpenJDK8    文件Parser.java   
private Node parseExpRepeat(Node target,boolean group) {
    while (token.type == TokenType.OP_REPEAT || token.type == TokenType.INTERVAL) { // repeat:
        if (target.isInvalidQuantifier()) {
            throw new SyntaxException(ERR_TARGET_OF_REPEAT_OPERATOR_INVALID);
        }

        QuantifierNode qtfr = new QuantifierNode(token.getRepeatLower(),token.type == TokenType.INTERVAL);

        qtfr.greedy = token.getRepeatGreedy();
        int ret = qtfr.setQuantifier(target,getEnd());
        Node qn = qtfr;

        if (token.getRepeatPossessive()) {
            EncloseNode en = new EncloseNode(EncloseType.STOP_BACKTRACK); // node_new_enclose
            en.setTarget(qn);
            qn = en;
        }

        if (ret == 0) {
            target = qn;
        } else if (ret == 2) { /* split case: /abc+/ */
            target = ConsAltNode.newListNode(target,null);
            ConsAltNode tmp = ((ConsAltNode)target).setCdr(ConsAltNode.newListNode(qn,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:nashorn-backport    文件ArrayCompiler.java   
private int compileLengthEncloseNode(EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:nashorn-backport    文件Parser.java   
private Node parseExpRepeat(Node target,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:nashorn    文件ArrayCompiler.java   
private int compileLengthEncloseNode(EncloseNode node) {
    if (node.isOption()) {
        return compileLengthOptionNode(node);
    }

    int tlen;
    if (node.target != null) {
        tlen = compileLengthTree(node.target);
    } else {
        tlen = 0;
    }

    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum) ? OPSize.MEMORY_END_PUSH : OPSize.MEMORY_END);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            QuantifierNode qn = (QuantifierNode)node.target;
            tlen = compileLengthTree(qn.target);
            len = tlen * qn.lower + OPSize.PUSH + tlen + OPSize.POP + OPSize.JUMP;
        } else {
            len = OPSize.PUSH_STOP_BT + tlen + OPSize.POP_STOP_BT;
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        return 0; // not reached
    } // switch
    return len;
}
项目:nashorn    文件Parser.java   
private Node parseExpRepeat(Node target,group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}
项目:Openjsharp    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum)) {
            addOpcode(OPCode.MEMORY_START_PUSH);
        } else {
            addOpcode(OPCode.MEMORY_START);
        }

        addMemNum(node.regNum);
        compileTree(node.target);

        if (bsAt(regex.btMemEnd,node.regNum)) {
            addOpcode(OPCode.MEMORY_END_PUSH);
        } else {
            addOpcode(OPCode.MEMORY_END);
        }
        addMemNum(node.regNum);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            final QuantifierNode qn = (QuantifierNode)node.target;

            compileTreeNTimes(qn.target,qn.lower);

            len = compileLengthTree(qn.target);
            addOpcodeRelAddr(OPCode.PUSH,len + OPSize.POP + OPSize.JUMP);
            compileTree(qn.target);
            addOpcode(OPCode.POP);
            addOpcodeRelAddr(OPCode.JUMP,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:Openjsharp    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:openjdk-jdk10    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:openjdk-jdk10    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:openjdk9    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:openjdk9    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:kaziranga    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:kaziranga    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:lookaside_java-1.8.0-openjdk    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:lookaside_java-1.8.0-openjdk    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:jdk8u_nashorn    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:jdk8u_nashorn    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:infobip-open-jdk-8    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(final EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:infobip-open-jdk-8    文件Analyser.java   
private int quantifiersMemoryInfo(final Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            final int v = quantifiersMemoryInfo(can.car);
            if (v > info) {
                info = v;
            }
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        final QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        final EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:OLD-OpenJDK8    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,node.regNum)) {
            addOpcode(OPCode.MEMORY_END_PUSH);
        } else {
            addOpcode(OPCode.MEMORY_END);
        }
        addMemNum(node.regNum);
        break;

    case EncloseType.STOP_BACKTRACK:
        if (node.isstopBtSimpleRepeat()) {
            QuantifierNode qn = (QuantifierNode)node.target;

            compileTreeNTimes(qn.target,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:OLD-OpenJDK8    文件Analyser.java   
private int quantifiersMemoryInfo(Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            int v = quantifiersMemoryInfo(can.car);
            if (v > info) info = v;
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:nashorn-backport    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:nashorn-backport    文件Analyser.java   
private int quantifiersMemoryInfo(Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            int v = quantifiersMemoryInfo(can.car);
            if (v > info) info = v;
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}
项目:nashorn    文件ArrayCompiler.java   
@Override
protected void compileEncloseNode(EncloseNode node) {
    int len;
    switch (node.type) {
    case EncloseType.MEMORY:
        if (bsAt(regex.btMemStart,-(OPSize.PUSH + len + OPSize.POP + OPSize.JUMP));
        } else {
            addOpcode(OPCode.PUSH_STOP_BT);
            compileTree(node.target);
            addOpcode(OPCode.POP_STOP_BT);
        }
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
        break;
    } // switch
}
项目:nashorn    文件Analyser.java   
private int quantifiersMemoryInfo(Node node) {
    int info = 0;

    switch(node.getType()) {
    case NodeType.LIST:
    case NodeType.ALT:
        ConsAltNode can = (ConsAltNode)node;
        do {
            int v = quantifiersMemoryInfo(can.car);
            if (v > info) info = v;
        } while ((can = can.cdr) != null);
        break;

    case NodeType.QTFR:
        QuantifierNode qn = (QuantifierNode)node;
        if (qn.upper != 0) {
            info = quantifiersMemoryInfo(qn.target);
        }
        break;

    case NodeType.ENCLOSE:
        EncloseNode en = (EncloseNode)node;
        switch (en.type) {
        case EncloseType.MEMORY:
            return TargetInfo.IS_EMPTY_MEM;

        case EncloseType.OPTION:
        case EncloseNode.STOP_BACKTRACK:
            info = quantifiersMemoryInfo(en.target);
            break;

        default:
            break;
        } // inner switch
        break;

    case NodeType.BREF:
    case NodeType.STR:
    case NodeType.CTYPE:
    case NodeType.cclASS:
    case NodeType.CANY:
    case NodeType.ANCHOR:
    default:
        break;
    } // switch

    return info;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。