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


Java AnchorType.PREC_READ_NOT属性代码示例

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


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

示例1: compileLengthAnchorNode

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

    int len;
    switch (node.type) {
    case AnchorType.PREC_READ:
        len = OPSize.PUSH_POS + tlen + OPSize.POP_POS;
        break;

    case AnchorType.PREC_READ_NOT:
        len = OPSize.PUSH_POS_NOT + tlen + OPSize.FAIL_POS;
        break;

    case AnchorType.LOOK_BEHIND:
        len = OPSize.LOOK_BEHIND + tlen;
        break;

    case AnchorType.LOOK_BEHIND_NOT:
        len = OPSize.PUSH_LOOK_BEHIND_NOT + tlen + OPSize.FAIL_LOOK_BEHIND_NOT;
        break;

    default:
        len = OPSize.OPCODE;
        break;
    } // switch
    return len;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:ArrayCompiler.java

示例2: compileLengthAnchorNode

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

    int len;
    switch (node.type) {
    case AnchorType.PREC_READ:
        len = OPSize.PUSH_POS + tlen + OPSize.POP_POS;
        break;

    case AnchorType.PREC_READ_NOT:
        len = OPSize.PUSH_POS_NOT + tlen + OPSize.FAIL_POS;
        break;

    case AnchorType.LOOK_BEHIND:
        len = OPSize.LOOK_BEHIND + tlen;
        break;

    case AnchorType.LOOK_BEHIND_NOT:
        len = OPSize.PUSH_LOOK_BEHIND_NOT + tlen + OPSize.FAIL_LOOK_BEHIND_NOT;
        break;

    default:
        len = OPSize.OPCODE;
        break;
    } // switch
    return len;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:32,代码来源:ArrayCompiler.java

示例3: compileAnchorNode

@Override
protected void compileAnchorNode(final AnchorNode node) {
    int len;
    int n;

    switch (node.type) {
    case AnchorType.BEGIN_BUF:          addOpcode(OPCode.BEGIN_BUF);            break;
    case AnchorType.END_BUF:            addOpcode(OPCode.END_BUF);              break;
    case AnchorType.BEGIN_LINE:         addOpcode(OPCode.BEGIN_LINE);           break;
    case AnchorType.END_LINE:           addOpcode(OPCode.END_LINE);             break;
    case AnchorType.SEMI_END_BUF:       addOpcode(OPCode.SEMI_END_BUF);         break;
    case AnchorType.BEGIN_POSITION:     addOpcode(OPCode.BEGIN_POSITION);       break;

    case AnchorType.WORD_BOUND:
        addOpcode(OPCode.WORD_BOUND);
        break;

    case AnchorType.NOT_WORD_BOUND:
        addOpcode(OPCode.NOT_WORD_BOUND);
        break;

    case AnchorType.WORD_BEGIN:
        if (Config.USE_WORD_BEGIN_END) {
            addOpcode(OPCode.WORD_BEGIN);
        }
        break;

    case AnchorType.WORD_END:
        if (Config.USE_WORD_BEGIN_END) {
            addOpcode(OPCode.WORD_END);
        }
        break;

    case AnchorType.PREC_READ:
        addOpcode(OPCode.PUSH_POS);
        compileTree(node.target);
        addOpcode(OPCode.POP_POS);
        break;

    case AnchorType.PREC_READ_NOT:
        len = compileLengthTree(node.target);
        addOpcodeRelAddr(OPCode.PUSH_POS_NOT, len + OPSize.FAIL_POS);
        compileTree(node.target);
        addOpcode(OPCode.FAIL_POS);
        break;

    case AnchorType.LOOK_BEHIND:
        addOpcode(OPCode.LOOK_BEHIND);
        if (node.charLength < 0) {
            n = analyser.getCharLengthTree(node.target);
            if (analyser.returnCode != 0) {
                newSyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
            }
        } else {
            n = node.charLength;
        }
        addLength(n);
        compileTree(node.target);
        break;

    case AnchorType.LOOK_BEHIND_NOT:
        len = compileLengthTree(node.target);
        addOpcodeRelAddr(OPCode.PUSH_LOOK_BEHIND_NOT, len + OPSize.FAIL_LOOK_BEHIND_NOT);
        if (node.charLength < 0) {
            n = analyser.getCharLengthTree(node.target);
            if (analyser.returnCode != 0) {
                newSyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
            }
        } else {
            n = node.charLength;
        }
        addLength(n);
        compileTree(node.target);
        addOpcode(OPCode.FAIL_LOOK_BEHIND_NOT);
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
    } // switch
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:80,代码来源:ArrayCompiler.java

示例4: compileAnchorNode

@Override
protected void compileAnchorNode(AnchorNode node) {
    int len;
    int n;

    switch (node.type) {
    case AnchorType.BEGIN_BUF:          addOpcode(OPCode.BEGIN_BUF);            break;
    case AnchorType.END_BUF:            addOpcode(OPCode.END_BUF);              break;
    case AnchorType.BEGIN_LINE:         addOpcode(OPCode.BEGIN_LINE);           break;
    case AnchorType.END_LINE:           addOpcode(OPCode.END_LINE);             break;
    case AnchorType.SEMI_END_BUF:       addOpcode(OPCode.SEMI_END_BUF);         break;
    case AnchorType.BEGIN_POSITION:     addOpcode(OPCode.BEGIN_POSITION);       break;

    case AnchorType.WORD_BOUND:
        addOpcode(OPCode.WORD_BOUND);
        break;

    case AnchorType.NOT_WORD_BOUND:
        addOpcode(OPCode.NOT_WORD_BOUND);
        break;

    case AnchorType.WORD_BEGIN:
        if (Config.USE_WORD_BEGIN_END)
            addOpcode(OPCode.WORD_BEGIN);
        break;

    case AnchorType.WORD_END:
        if (Config.USE_WORD_BEGIN_END)
            addOpcode(OPCode.WORD_END);
        break;

    case AnchorType.PREC_READ:
        addOpcode(OPCode.PUSH_POS);
        compileTree(node.target);
        addOpcode(OPCode.POP_POS);
        break;

    case AnchorType.PREC_READ_NOT:
        len = compileLengthTree(node.target);
        addOpcodeRelAddr(OPCode.PUSH_POS_NOT, len + OPSize.FAIL_POS);
        compileTree(node.target);
        addOpcode(OPCode.FAIL_POS);
        break;

    case AnchorType.LOOK_BEHIND:
        addOpcode(OPCode.LOOK_BEHIND);
        if (node.charLength < 0) {
            n = analyser.getCharLengthTree(node.target);
            if (analyser.returnCode != 0) newSyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
        } else {
            n = node.charLength;
        }
        addLength(n);
        compileTree(node.target);
        break;

    case AnchorType.LOOK_BEHIND_NOT:
        len = compileLengthTree(node.target);
        addOpcodeRelAddr(OPCode.PUSH_LOOK_BEHIND_NOT, len + OPSize.FAIL_LOOK_BEHIND_NOT);
        if (node.charLength < 0) {
            n = analyser.getCharLengthTree(node.target);
            if (analyser.returnCode != 0) newSyntaxException(ERR_INVALID_LOOK_BEHIND_PATTERN);
        } else {
            n = node.charLength;
        }
        addLength(n);
        compileTree(node.target);
        addOpcode(OPCode.FAIL_LOOK_BEHIND_NOT);
        break;

    default:
        newInternalException(ERR_PARSER_BUG);
    } // switch
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:74,代码来源:ArrayCompiler.java


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