Java 类jdk.nashorn.internal.runtime.regexp.joni.exception.SyntaxException 实例源码

项目:OpenJSharp    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:openjdk-jdk10    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:openjdk9    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:kaziranga    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:lookaside_java-1.8.0-openjdk    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:jdk8u_nashorn    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:infobip-open-jdk-8    文件:Analyser.java   
private Node setupLookBehind(final Node node) {
    final AnchorNode an = (AnchorNode)node;
    final int len = getCharLengthTree(an.target);
    switch (returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        }
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    default:
        break;
    }
    return node;
}
项目:OLD-OpenJDK8    文件:Analyser.java   
private Node setupLookBehind(Node node) {
    AnchorNode an = (AnchorNode)node;
    int len = getCharLengthTree(an.target);
    switch(returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        } else {
            throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
        }
    }
    return node;
}
项目:nashorn-backport    文件:Analyser.java   
private Node setupLookBehind(Node node) {
    AnchorNode an = (AnchorNode)node;
    int len = getCharLengthTree(an.target);
    switch(returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        } else {
            throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
        }
    }
    return node;
}
项目:nashorn    文件:Analyser.java   
private Node setupLookBehind(Node node) {
    AnchorNode an = (AnchorNode)node;
    int len = getCharLengthTree(an.target);
    switch(returnCode) {
    case 0:
        an.charLength = len;
        break;
    case GET_CHAR_LEN_VARLEN:
        throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
    case GET_CHAR_LEN_TOP_ALT_VARLEN:
        if (syntax.differentLengthAltLookBehind()) {
            return divideLookBehindAlternatives(node);
        } else {
            throw new SyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
        }
    }
    return node;
}
项目:OpenJSharp    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目: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;
}
项目:OpenJSharp    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:OpenJSharp    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:openjdk-jdk10    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:openjdk-jdk10    文件: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    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:openjdk-jdk10    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:openjdk9    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:openjdk9    文件: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;
}
项目:openjdk9    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:openjdk9    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:kaziranga    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:kaziranga    文件: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;
}
项目:kaziranga    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:kaziranga    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:lookaside_java-1.8.0-openjdk    文件: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;
}
项目:lookaside_java-1.8.0-openjdk    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:lookaside_java-1.8.0-openjdk    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:jdk8u_nashorn    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:jdk8u_nashorn    文件: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;
}
项目:jdk8u_nashorn    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:jdk8u_nashorn    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:infobip-open-jdk-8    文件:CClassNode.java   
public void nextStateClass(final CCStateArg arg, final ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) {
        throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);
    }

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目:infobip-open-jdk-8    文件: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;
}
项目:infobip-open-jdk-8    文件:Lexer.java   
private int invalidRangeQuantifier(final boolean synAllow) {
    if (synAllow) {
        restore();
        return 1;
    }
    throw new SyntaxException(ERR_INVALID_REPEAT_RANGE_PATTERN);
}
项目:infobip-open-jdk-8    文件:Lexer.java   
private void fetchEscapedValueControl() {
    if (!left()) {
        throw new SyntaxException(ERR_END_PATTERN_AT_CONTROL);
    }
    fetch();
    if (c == '?') {
        c = 0177;
    } else {
        if (c == syntax.metaCharTable.esc) {
            c = fetchEscapedValue();
        }
        c &= 0x9f;
    }
}
项目:OLD-OpenJDK8    文件:CClassNode.java   
public void nextStateClass(CCStateArg arg, ScanEnvironment env) {
    if (arg.state == CCSTATE.RANGE) throw new SyntaxException(ErrorMessages.ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE);

    if (arg.state == CCSTATE.VALUE && arg.type != CCVALTYPE.CLASS) {
        if (arg.type == CCVALTYPE.SB) {
            bs.set(arg.vs);
        } else if (arg.type == CCVALTYPE.CODE_POINT) {
            addCodeRange(env, arg.vs, arg.vs);
        }
    }
    arg.state = CCSTATE.VALUE;
    arg.type = CCVALTYPE.CLASS;
}
项目: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.getRepeatUpper(),
                                                 token.type == TokenType.INTERVAL);

        qtfr.greedy = token.getRepeatGreedy();
        int ret = qtfr.setQuantifier(target, group, env, chars, getBegin(), 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, null));

            fetchToken();
            return parseExpRepeatForCar(target, tmp, group);
        }
        fetchToken(); // goto re_entry
    }
    return target;
}