本文整理汇总了Java中jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode类的典型用法代码示例。如果您正苦于以下问题:Java OPCode类的具体用法?Java OPCode怎么用?Java OPCode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
OPCode类属于jdk.nashorn.internal.runtime.regexp.joni.constants包,在下文中一共展示了OPCode类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: selectStrOpcode
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
private static int selectStrOpcode(final int strLength, final boolean ignoreCase) {
int op;
if (ignoreCase) {
switch(strLength) {
case 1: op = OPCode.EXACT1_IC; break;
default:op = OPCode.EXACTN_IC; break;
} // switch
} else {
switch (strLength) {
case 1: op = OPCode.EXACT1; break;
case 2: op = OPCode.EXACT2; break;
case 3: op = OPCode.EXACT3; break;
case 4: op = OPCode.EXACT4; break;
case 5: op = OPCode.EXACT5; break;
default:op = OPCode.EXACTN; break;
} // inner switch
}
return op;
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:21,代码来源:ArrayCompiler.java
示例2: compileBackrefNode
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
@Override
protected void compileBackrefNode(final BackRefNode node) {
if (isIgnoreCase(regex.options)) {
addOpcode(OPCode.BACKREFN_IC);
addMemNum(node.backRef);
} else {
switch (node.backRef) {
case 1:
addOpcode(OPCode.BACKREF1);
break;
case 2:
addOpcode(OPCode.BACKREF2);
break;
default:
addOpcode(OPCode.BACKREFN);
addOpcode(node.backRef);
break;
} // switch
}
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:21,代码来源:ArrayCompiler.java
示例3: compileRangeRepeatNode
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
private void compileRangeRepeatNode(final QuantifierNode qn, final int targetLen, final int emptyInfo) {
final int numRepeat = regex.numRepeat;
addOpcode(qn.greedy ? OPCode.REPEAT : OPCode.REPEAT_NG);
addMemNum(numRepeat); /* OP_REPEAT ID */
regex.numRepeat++;
addRelAddr(targetLen + OPSize.REPEAT_INC);
entryRepeatRange(numRepeat, qn.lower, qn.upper);
compileTreeEmptyCheck(qn.target, emptyInfo);
if (qn.isInRepeat()) {
addOpcode(qn.greedy ? OPCode.REPEAT_INC_SG : OPCode.REPEAT_INC_NG_SG);
} else {
addOpcode(qn.greedy ? OPCode.REPEAT_INC : OPCode.REPEAT_INC_NG);
}
addMemNum(numRepeat); /* OP_REPEAT ID */
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:ArrayCompiler.java
示例4: compileOptionNode
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
@Override
protected void compileOptionNode(final EncloseNode node) {
final int prev = regex.options;
if (isDynamic(prev ^ node.option)) {
addOpcodeOption(OPCode.SET_OPTION_PUSH, node.option);
addOpcodeOption(OPCode.SET_OPTION, prev);
addOpcode(OPCode.FAIL);
}
regex.options = node.option;
compileTree(node.target);
regex.options = prev;
if (isDynamic(prev ^ node.option)) {
addOpcodeOption(OPCode.SET_OPTION, prev);
}
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:19,代码来源:ArrayCompiler.java
示例5: nullCheckFound
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
private void nullCheckFound() {
// null_check_found:
/* empty loop founded, skip next instruction */
switch(code[ip++]) {
case OPCode.JUMP:
case OPCode.PUSH:
ip++; // p += SIZE_RELADDR;
break;
case OPCode.REPEAT_INC:
case OPCode.REPEAT_INC_NG:
case OPCode.REPEAT_INC_SG:
case OPCode.REPEAT_INC_NG_SG:
ip++; // p += SIZE_MEMNUM;
break;
default:
throw new InternalException(ErrorMessages.ERR_UNEXPECTED_BYTECODE);
} // switch
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:19,代码来源:ByteCodeMachine.java
示例6: compileTreeEmptyCheck
import jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode; //导入依赖的package包/类
private void compileTreeEmptyCheck(final Node node, final int emptyInfo) {
final int savedNumNullCheck = regex.numNullCheck;
if (emptyInfo != 0) {
addOpcode(OPCode.NULL_CHECK_START);
addMemNum(regex.numNullCheck); /* NULL CHECK ID */
regex.numNullCheck++;
}
compileTree(node);
if (emptyInfo != 0) {
switch (emptyInfo) {
case TargetInfo.IS_EMPTY:
addOpcode(OPCode.NULL_CHECK_END);
break;
case TargetInfo.IS_EMPTY_MEM:
addOpcode(OPCode.NULL_CHECK_END_MEMST);
break;
default:
break;
} // switch
addMemNum(savedNumNullCheck); /* NULL CHECK ID */
}
}
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:27,代码来源:ArrayCompiler.java
注:本文中的jdk.nashorn.internal.runtime.regexp.joni.constants.OPCode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论