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

Java ObjPtr类代码示例

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

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



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

示例1: expandCaseFoldString

import jdk.nashorn.internal.runtime.regexp.joni.encoding.ObjPtr; //导入依赖的package包/类
private Node expandCaseFoldString(final Node node) {
    final StringNode sn = (StringNode)node;

    if (sn.isAmbig() || sn.length() <= 0) {
        return node;
    }

    final char[] chars1 = sn.chars;
    int pt = sn.p;
    final int end = sn.end;
    int altNum = 1;

    ConsAltNode topRoot = null, r = null;
    @SuppressWarnings("unused")
    final ObjPtr<Node> prevNode = new ObjPtr<Node>();
    StringNode stringNode = null;

    while (pt < end) {
        final char[] items = EncodingHelper.caseFoldCodesByString(regex.caseFoldFlag, chars1[pt]);

        if (items.length == 0) {
            if (stringNode == null) {
                if (r == null && prevNode.p != null) {
                    topRoot = r = ConsAltNode.listAdd(null, prevNode.p);
                }

                prevNode.p = stringNode = new StringNode(); // onig_node_new_str(NULL, NULL);

                if (r != null) {
                    ConsAltNode.listAdd(r, stringNode);
                }

            }

            stringNode.cat(chars1, pt, pt + 1);
        } else {
            altNum *= (items.length + 1);
            if (altNum > THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION) {
                break;
            }

            if (r == null && prevNode.p != null) {
                topRoot = r = ConsAltNode.listAdd(null, prevNode.p);
            }

            expandCaseFoldStringAlt(items.length, items, chars1, pt, 1, end, prevNode);
            if (r != null) {
                ConsAltNode.listAdd(r, prevNode.p);
            }
            stringNode = null;
        }
        pt++;
    }

    if (pt < end) {
        final Node srem = expandCaseFoldMakeRemString(chars1, pt, end);

        if (prevNode.p != null && r == null) {
            topRoot = r = ConsAltNode.listAdd(null, prevNode.p);
        }

        if (r == null) {
            prevNode.p = srem;
        } else {
            ConsAltNode.listAdd(r, srem);
        }
    }
    /* ending */
    final Node xnode = topRoot != null ? topRoot : prevNode.p;

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


示例2: expandCaseFoldString

import jdk.nashorn.internal.runtime.regexp.joni.encoding.ObjPtr; //导入依赖的package包/类
private Node expandCaseFoldString(Node node) {
    StringNode sn = (StringNode)node;

    if (sn.isAmbig() || sn.length() <= 0) return node;

    char[] chars = sn.chars;
    int p = sn.p;
    int end = sn.end;
    int altNum = 1;

    ConsAltNode topRoot = null, root = null;
    ObjPtr<Node> prevNode = new ObjPtr<Node>();
    StringNode stringNode = null;

    while (p < end) {
        char[] items = EncodingHelper.caseFoldCodesByString(regex.caseFoldFlag, chars[p]);

        if (items.length == 0) {
            if (stringNode == null) {
                if (root == null && prevNode.p != null) {
                    topRoot = root = ConsAltNode.listAdd(null, prevNode.p);
                }

                prevNode.p = stringNode = new StringNode(); // onig_node_new_str(NULL, NULL);

                if (root != null) ConsAltNode.listAdd(root, stringNode);

            }

            stringNode.cat(chars, p, p + 1);
        } else {
            altNum *= (items.length + 1);
            if (altNum > THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION) break;

            if (root == null && prevNode.p != null) {
                topRoot = root = ConsAltNode.listAdd(null, prevNode.p);
            }

            expandCaseFoldStringAlt(items.length, items, chars, p, 1, end, prevNode);
            if (root != null) ConsAltNode.listAdd(root, prevNode.p);
            stringNode = null;
        }
        p++;
    }

    if (p < end) {
        Node srem = expandCaseFoldMakeRemString(chars, p, end);

        if (prevNode.p != null && root == null) {
            topRoot = root = ConsAltNode.listAdd(null, prevNode.p);
        }

        if (root == null) {
            prevNode.p = srem;
        } else {
            ConsAltNode.listAdd(root, srem);
        }
    }
    /* ending */
    Node xnode = topRoot != null ? topRoot : prevNode.p;

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



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java Key类代码示例发布时间:2022-05-22
下一篇:
Java XNumberLiteral类代码示例发布时间: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