当前位置: 首页>>代码示例>>Java>>正文


Java TokenType.OP_REPEAT属性代码示例

本文整理汇总了Java中jdk.nashorn.internal.runtime.regexp.joni.constants.TokenType.OP_REPEAT属性的典型用法代码示例。如果您正苦于以下问题:Java TokenType.OP_REPEAT属性的具体用法?Java TokenType.OP_REPEAT怎么用?Java TokenType.OP_REPEAT使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在jdk.nashorn.internal.runtime.regexp.joni.constants.TokenType的用法示例。


在下文中一共展示了TokenType.OP_REPEAT属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseExpRepeat

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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:34,代码来源:Parser.java

示例2: parseExpRepeat

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;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:33,代码来源:Parser.java

示例3: fetchTokenFor_repeat

private void fetchTokenFor_repeat(final int lower, final int upper) {
    token.type = TokenType.OP_REPEAT;
    token.setRepeatLower(lower);
    token.setRepeatUpper(upper);
    greedyCheck();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:6,代码来源:Lexer.java

示例4: fetchTokenFor_repeat

private void fetchTokenFor_repeat(int lower, int upper) {
    token.type = TokenType.OP_REPEAT;
    token.setRepeatLower(lower);
    token.setRepeatUpper(upper);
    greedyCheck();
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:6,代码来源:Lexer.java


注:本文中的jdk.nashorn.internal.runtime.regexp.joni.constants.TokenType.OP_REPEAT属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。