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


Java StringNode类代码示例

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


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

示例1: compileLengthStringNode

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private static int compileLengthStringNode(final Node node) {
    final StringNode sn = (StringNode)node;
    if (sn.length() <= 0) {
        return 0;
    }
    final boolean ambig = sn.isAmbig();

    int p, prev;
    p = prev = sn.p;
    final int end = sn.end;
    final char[] chars = sn.chars;
    p++;

    int slen = 1;
    int rlen = 0;

    while (p < end) {
        slen++;
        p++;
    }
    final int r = addCompileStringlength(chars, prev, slen, ambig);
    rlen += r;
    return rlen;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:25,代码来源:ArrayCompiler.java

示例2: compileStringNode

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private void compileStringNode(final StringNode node) {
    final StringNode sn = node;
    if (sn.length() <= 0) {
        return;
    }

    final boolean ambig = sn.isAmbig();

    int p, prev;
    p = prev = sn.p;
    final int end = sn.end;
    final char[] chars = sn.chars;
    p++;
    int slen = 1;

    while (p < end) {
        slen++;
        p++;
    }
    addCompileString(chars, prev, slen, ambig);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:22,代码来源:Compiler.java

示例3: parseExpTkByte

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private Node parseExpTkByte(final boolean group) {
    final StringNode node = new StringNode(chars, token.backP, p); // tk_byte:
    while (true) {
        fetchToken();
        if (token.type != TokenType.STRING) {
            break;
        }

        if (token.backP == node.end) {
            node.end = p; // non escaped character, remain shared, just increase shared range
        } else {
            node.cat(chars, token.backP, p); // non continuous string stream, need to COW
        }
    }
    // targetp = node;
    return parseExpRepeat(node, group); // string_end:, goto repeat
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:18,代码来源:Parser.java

示例4: compileLengthStringNode

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private int compileLengthStringNode(Node node) {
    StringNode sn = (StringNode)node;
    if (sn.length() <= 0) return 0;
    boolean ambig = sn.isAmbig();

    int p, prev;
    p = prev = sn.p;
    int end = sn.end;
    char[] chars = sn.chars;
    p++;

    int slen = 1;
    int rlen = 0;

    while (p < end) {
        slen++;
        p++;
    }
    int r = addCompileStringlength(chars, prev, slen, ambig);
    rlen += r;
    return rlen;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:23,代码来源:ArrayCompiler.java

示例5: compileStringNode

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private void compileStringNode(StringNode node) {
    StringNode sn = node;
    if (sn.length() <= 0) return;

    boolean ambig = sn.isAmbig();

    int p, prev;
    p = prev = sn.p;
    int end = sn.end;
    char[] chars = sn.chars;
    p++;
    int slen = 1;

    while (p < end) {
        slen++;
        p++;
    }
    addCompileString(chars, prev, slen, ambig);
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:20,代码来源:Compiler.java

示例6: parseExpTkRawByte

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private Node parseExpTkRawByte(final boolean group) {
    // tk_raw_byte:

    // important: we don't use 0xff mask here neither in the compiler
    // (in the template string) so we won't have to mask target
    // strings when comparing against them in the matcher
    final StringNode node = new StringNode((char)token.getC());
    node.setRaw();

    fetchToken();
    node.clearRaw();
    // !goto string_end;!
    return parseExpRepeat(node, group);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:15,代码来源:Parser.java

示例7: updateStringNodeCaseFoldMultiByte

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private void updateStringNodeCaseFoldMultiByte(final StringNode sn) {
    final char[] ch = sn.chars;
    final int end = sn.end;
    value = sn.p;
    int sp = 0;
    char buf;

    while (value < end) {
        final int ovalue = value;
        buf = EncodingHelper.toLowerCase(ch[value++]);

        if (ch[ovalue] != buf) {

            char[] sbuf = new char[sn.length() << 1];
            System.arraycopy(ch, sn.p, sbuf, 0, ovalue - sn.p);
            value = ovalue;
            while (value < end) {
                buf = EncodingHelper.toLowerCase(ch[value++]);
                if (sp >= sbuf.length) {
                    final char[]tmp = new char[sbuf.length << 1];
                    System.arraycopy(sbuf, 0, tmp, 0, sbuf.length);
                    sbuf = tmp;
                }
                sbuf[sp++] = buf;
            }
            sn.set(sbuf, 0, sp);
            return;
        }
        sp++;
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:Analyser.java

示例8: expandCaseFoldMakeRemString

import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode; //导入依赖的package包/类
private Node expandCaseFoldMakeRemString(final char[] ch, final int pp, final int end) {
    final StringNode node = new StringNode(ch, pp, end);

    updateStringNodeCaseFold(node);
    node.setAmbig();
    node.setDontGetOptInfo();
    return node;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:9,代码来源:Analyser.java


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