• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java AnchorType类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



AnchorType类属于jdk.nashorn.internal.runtime.regexp.joni.constants包,在下文中一共展示了AnchorType类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: anchorToString

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
static String anchorToString(final int anchor) {
    final StringBuffer s = new StringBuffer("[");

    if ((anchor & AnchorType.BEGIN_BUF) !=0 ) {
        s.append("begin-buf ");
    }
    if ((anchor & AnchorType.BEGIN_LINE) !=0 ) {
        s.append("begin-line ");
    }
    if ((anchor & AnchorType.BEGIN_POSITION) !=0 ) {
        s.append("begin-pos ");
    }
    if ((anchor & AnchorType.END_BUF) !=0 ) {
        s.append("end-buf ");
    }
    if ((anchor & AnchorType.SEMI_END_BUF) !=0 ) {
        s.append("semi-end-buf ");
    }
    if ((anchor & AnchorType.END_LINE) !=0 ) {
        s.append("end-line ");
    }
    if ((anchor & AnchorType.ANYCHAR_STAR) !=0 ) {
        s.append("anychar-star ");
    }
    if ((anchor & AnchorType.ANYCHAR_STAR_ML) !=0 ) {
        s.append("anychar-star-pl ");
    }
    s.append("]");

    return s.toString();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:OptAnchorInfo.java


示例2: compileLengthAnchorNode

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
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,代码行数:33,代码来源:ArrayCompiler.java


示例3: divideLookBehindAlternatives

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
private Node divideLookBehindAlternatives(final Node nodep) {
    Node node = nodep;
    final AnchorNode an = (AnchorNode)node;
    final int anchorType = an.type;
    Node head = an.target;
    Node np = ((ConsAltNode)head).car;

    swap(node, head);

    final Node tmp = node;
    node = head;
    head = tmp;

    ((ConsAltNode)node).setCar(head);
    ((AnchorNode)head).setTarget(np);
    np = node;

    while ((np = ((ConsAltNode)np).cdr) != null) {
        final AnchorNode insert = new AnchorNode(anchorType);
        insert.setTarget(((ConsAltNode)np).car);
        ((ConsAltNode)np).setCar(insert);
    }

    if (anchorType == AnchorType.LOOK_BEHIND_NOT) {
        np = node;
        do {
            ((ConsAltNode)np).toListNode(); /* alt -> list */
        } while ((np = ((ConsAltNode)np).cdr) != null);
    }

    return node;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:33,代码来源:Analyser.java


示例4: anchorToString

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
static String anchorToString(int anchor) {
    StringBuffer s = new StringBuffer("[");

    if ((anchor & AnchorType.BEGIN_BUF) !=0 ) s.append("begin-buf ");
    if ((anchor & AnchorType.BEGIN_LINE) !=0 ) s.append("begin-line ");
    if ((anchor & AnchorType.BEGIN_POSITION) !=0 ) s.append("begin-pos ");
    if ((anchor & AnchorType.END_BUF) !=0 ) s.append("end-buf ");
    if ((anchor & AnchorType.SEMI_END_BUF) !=0 ) s.append("semi-end-buf ");
    if ((anchor & AnchorType.END_LINE) !=0 ) s.append("end-line ");
    if ((anchor & AnchorType.ANYCHAR_STAR) !=0 ) s.append("anychar-star ");
    if ((anchor & AnchorType.ANYCHAR_STAR_ML) !=0 ) s.append("anychar-star-pl ");
    s.append("]");

    return s.toString();
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:16,代码来源:OptAnchorInfo.java


示例5: compileLengthAnchorNode

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
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,代码行数:33,代码来源:ArrayCompiler.java


示例6: divideLookBehindAlternatives

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
private Node divideLookBehindAlternatives(Node node) {
    AnchorNode an = (AnchorNode)node;
    int anchorType = an.type;
    Node head = an.target;
    Node np = ((ConsAltNode)head).car;

    swap(node, head);

    Node tmp = node;
    node = head;
    head = tmp;

    ((ConsAltNode)node).setCar(head);
    ((AnchorNode)head).setTarget(np);
    np = node;

    while ((np = ((ConsAltNode)np).cdr) != null) {
        AnchorNode insert = new AnchorNode(anchorType);
        insert.setTarget(((ConsAltNode)np).car);
        ((ConsAltNode)np).setCar(insert);
    }

    if (anchorType == AnchorType.LOOK_BEHIND_NOT) {
        np = node;
        do {
            ((ConsAltNode)np).toListNode(); /* alt -> list */
        } while ((np = ((ConsAltNode)np).cdr) != null);
    }

    return node;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:32,代码来源:Analyser.java


示例7: compileAnchorNode

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
@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,代码行数:81,代码来源:ArrayCompiler.java


示例8: setSubAnchor

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
void setSubAnchor(final OptAnchorInfo anc) {
    subAnchor |= anc.leftAnchor & AnchorType.BEGIN_LINE;
    subAnchor |= anc.rightAnchor & AnchorType.END_LINE;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:5,代码来源:Regex.java


示例9: optimizeInfoToString

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
public String optimizeInfoToString() {
    final StringBuilder s = new StringBuilder();
    s.append("optimize: ").append(searchAlgorithm.getName()).append("\n");
    s.append("  anchor:     ").append(OptAnchorInfo.anchorToString(anchor));

    if ((anchor & AnchorType.END_BUF_MASK) != 0) {
        s.append(MinMaxLen.distanceRangeToString(anchorDmin, anchorDmax));
    }

    s.append("\n");

    if (searchAlgorithm != SearchAlgorithm.NONE) {
        s.append("  sub anchor: ").append(OptAnchorInfo.anchorToString(subAnchor)).append("\n");
    }

    s.append("dmin: ").append(dMin).append(" dmax: ").append(dMax).append("\n");
    s.append("threshold length: ").append(thresholdLength).append("\n");

    if (exact != null) {
        s.append("exact: [").append(exact, exactP, exactEnd - exactP).append("]: length: ").append(exactEnd - exactP).append("\n");
    } else if (searchAlgorithm == SearchAlgorithm.MAP) {
        int n=0;
        for (int i=0; i<Config.CHAR_TABLE_SIZE; i++) {
            if (map[i] != 0) {
                n++;
            }
        }

        s.append("map: n = ").append(n).append("\n");
        if (n > 0) {
            int c=0;
            s.append("[");
            for (int i=0; i<Config.CHAR_TABLE_SIZE; i++) {
                if (map[i] != 0) {
                    if (c > 0) {
                        s.append(", ");
                    }
                    c++;
                    // TODO if (enc.isPrint(i)
                    s.append((char)i);
                }
            }
            s.append("]\n");
        }
    }

    return s.toString();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:49,代码来源:Regex.java


示例10: setOptimizedInfoFromTree

import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; //导入依赖的package包/类
@SuppressWarnings("unused")
protected final void setOptimizedInfoFromTree(final Node node) {
    final NodeOptInfo opt = new NodeOptInfo();
    final OptEnvironment oenv = new OptEnvironment();

    oenv.options = regex.options;
    oenv.caseFoldFlag = regex.caseFoldFlag;
    oenv.scanEnv = env;
    oenv.mmd.clear(); // ??

    optimizeNodeLeft(node, opt, oenv);

    regex.anchor = opt.anchor.leftAnchor & (AnchorType.BEGIN_BUF |
                                            AnchorType.BEGIN_POSITION |
                                            AnchorType.ANYCHAR_STAR |
                                            AnchorType.ANYCHAR_STAR_ML);

    regex.anchor |= opt.anchor.rightAnchor & (AnchorType.END_BUF |
                                              AnchorType.SEMI_END_BUF);

    if ((regex.anchor & (AnchorType.END_BUF | AnchorType.SEMI_END_BUF)) != 0) {
        regex.anchorDmin = opt.length.min;
        regex.anchorDmax = opt.length.max;
    }

    if (opt.exb.length > 0 || opt.exm.length > 0) {
        opt.exb.select(opt.exm);
        if (opt.map.value > 0 && opt.exb.compare(opt.map) > 0) {
            // !goto set_map;!
            regex.setOptimizeMapInfo(opt.map);
            regex.setSubAnchor(opt.map.anchor);
        } else {
            regex.setExactInfo(opt.exb);
            regex.setSubAnchor(opt.exb.anchor);
        }
    } else if (opt.map.value > 0) {
        // !set_map:!
        regex.setOptimizeMapInfo(opt.map);
        regex.setSubAnchor(opt.map.anchor);
    } else {
        regex.subAnchor |= opt.anchor.leftAnchor & AnchorType.BEGIN_LINE;
        if (opt.length.max == 0) {
            regex.subAnchor |= opt.anchor.rightAnchor & AnchorType.END_LINE;
        }
    }

    if (Config.DEBUG_COMPILE || Config.DEBUG_MATCH) {
        Config.log.println(regex.optimizeInfoToString());
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:51,代码来源:Analyser.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Cursor类代码示例发布时间:2022-05-22
下一篇:
Java POAObjectKeyTemplate类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap