[jruby-joni] 111/194: specialize bytecode interpreter for singlebyte
Hideki Yamane
henrich at moszumanska.debian.org
Thu Feb 1 12:04:32 UTC 2018
This is an automated email from the git hooks/post-receive script.
henrich pushed a commit to branch debian/sid
in repository jruby-joni.
commit cac6126a1c0f00871d6fd364c301e14b6bc04a4d
Author: Marcin Mielzynski <lopx at gazeta.pl>
Date: Sun Jan 7 18:02:08 2018 +0100
specialize bytecode interpreter for singlebyte
---
src/org/joni/ArrayCompiler.java | 42 +++++-----
src/org/joni/ByteCodeMachine.java | 157 +++++++++++++++++++++++++++++++------
src/org/joni/ByteCodePrinter.java | 5 --
src/org/joni/Matcher.java | 1 +
src/org/joni/constants/OPCode.java | 69 +---------------
5 files changed, 157 insertions(+), 117 deletions(-)
diff --git a/src/org/joni/ArrayCompiler.java b/src/org/joni/ArrayCompiler.java
index 8a5f309..d999992 100644
--- a/src/org/joni/ArrayCompiler.java
+++ b/src/org/joni/ArrayCompiler.java
@@ -289,9 +289,9 @@ final class ArrayCompiler extends Compiler {
protected void compileCClassNode(CClassNode cc) {
if (cc.mbuf == null) {
if (cc.isNot()) {
- addOpcode(enc.isSingleByte() ? OPCode.CCLASS_NOT_SB : OPCode.CCLASS_NOT);
+ addOpcode(OPCode.CCLASS_NOT);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.CCLASS_SB : OPCode.CCLASS);
+ addOpcode(OPCode.CCLASS);
}
addInts(cc.bs.bits, BitSet.BITSET_SIZE); // add_bitset
} else {
@@ -325,13 +325,13 @@ final class ArrayCompiler extends Compiler {
if (cn.asciiRange) {
op = OPCode.NOT_ASCII_WORD;
} else {
- op = enc.isSingleByte() ? OPCode.NOT_WORD_SB : OPCode.NOT_WORD;
+ op = OPCode.NOT_WORD;
}
} else {
if (cn.asciiRange) {
op = OPCode.ASCII_WORD;
} else {
- op = enc.isSingleByte() ? OPCode.WORD_SB : OPCode.WORD;
+ op = OPCode.WORD;
}
}
break;
@@ -346,9 +346,9 @@ final class ArrayCompiler extends Compiler {
@Override
protected void compileAnyCharNode() {
if (isMultiline(regex.options)) {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_ML_SB : OPCode.ANYCHAR_ML);
+ addOpcode(OPCode.ANYCHAR_ML);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_SB : OPCode.ANYCHAR);
+ addOpcode(OPCode.ANYCHAR);
}
}
@@ -532,9 +532,9 @@ final class ArrayCompiler extends Compiler {
compileTreeNTimes(qn.target, qn.lower);
if (qn.nextHeadExact != null && !cknOn(ckn)) {
if (isMultiline(regex.options)) {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_ML_STAR_PEEK_NEXT_SB : OPCode.ANYCHAR_ML_STAR_PEEK_NEXT);
+ addOpcode(OPCode.ANYCHAR_ML_STAR_PEEK_NEXT);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_STAR_PEEK_NEXT_SB : OPCode.ANYCHAR_STAR_PEEK_NEXT);
+ addOpcode(OPCode.ANYCHAR_STAR_PEEK_NEXT);
}
if (cknOn(ckn)) {
addStateCheckNum(ckn);
@@ -545,15 +545,15 @@ final class ArrayCompiler extends Compiler {
} else {
if (isMultiline(regex.options)) {
if (cknOn(ckn)) {
- addOpcode(enc.isSingleByte() ? OPCode.STATE_CHECK_ANYCHAR_ML_STAR_SB : OPCode.STATE_CHECK_ANYCHAR_ML_STAR);
+ addOpcode(OPCode.STATE_CHECK_ANYCHAR_ML_STAR);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_ML_STAR_SB : OPCode.ANYCHAR_ML_STAR);
+ addOpcode(OPCode.ANYCHAR_ML_STAR);
}
} else {
if (cknOn(ckn)) {
- addOpcode(enc.isSingleByte() ? OPCode.STATE_CHECK_ANYCHAR_STAR_SB : OPCode.STATE_CHECK_ANYCHAR_STAR);
+ addOpcode(OPCode.STATE_CHECK_ANYCHAR_STAR);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_STAR_SB : OPCode.ANYCHAR_STAR);
+ addOpcode(OPCode.ANYCHAR_STAR);
}
}
if (cknOn(ckn)) {
@@ -705,18 +705,18 @@ final class ArrayCompiler extends Compiler {
compileTreeNTimes(qn.target, qn.lower);
if (qn.nextHeadExact != null) {
if (isMultiline(regex.options)) {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_ML_STAR_PEEK_NEXT_SB : OPCode.ANYCHAR_ML_STAR_PEEK_NEXT);
+ addOpcode(OPCode.ANYCHAR_ML_STAR_PEEK_NEXT);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_STAR_PEEK_NEXT_SB : OPCode.ANYCHAR_STAR_PEEK_NEXT);
+ addOpcode(OPCode.ANYCHAR_STAR_PEEK_NEXT);
}
StringNode sn = (StringNode)qn.nextHeadExact;
addBytes(sn.bytes, sn.p, 1);
return;
} else {
if (isMultiline(regex.options)) {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_ML_STAR_SB : OPCode.ANYCHAR_ML_STAR);
+ addOpcode(OPCode.ANYCHAR_ML_STAR);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.ANYCHAR_STAR_SB : OPCode.ANYCHAR_STAR);
+ addOpcode(OPCode.ANYCHAR_STAR);
}
return;
}
@@ -1028,7 +1028,7 @@ final class ArrayCompiler extends Compiler {
if (node.asciiRange) {
addOpcode(OPCode.ASCII_WORD_BOUND);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.WORD_BOUND_SB : OPCode.WORD_BOUND);
+ addOpcode(OPCode.WORD_BOUND);
}
break;
@@ -1036,7 +1036,7 @@ final class ArrayCompiler extends Compiler {
if (node.asciiRange) {
addOpcode(OPCode.NOT_ASCII_WORD_BOUND);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.NOT_WORD_BOUND_SB : OPCode.NOT_WORD_BOUND);
+ addOpcode(OPCode.NOT_WORD_BOUND);
}
break;
@@ -1045,7 +1045,7 @@ final class ArrayCompiler extends Compiler {
if (node.asciiRange) {
addOpcode(OPCode.ASCII_WORD_BEGIN);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.WORD_BEGIN_SB : OPCode.WORD_BEGIN);
+ addOpcode(OPCode.WORD_BEGIN);
}
}
break;
@@ -1055,7 +1055,7 @@ final class ArrayCompiler extends Compiler {
if (node.asciiRange) {
addOpcode(OPCode.ASCII_WORD_END);
} else {
- addOpcode(enc.isSingleByte() ? OPCode.WORD_END_SB : OPCode.WORD_END);
+ addOpcode(OPCode.WORD_END);
}
}
break;
@@ -1080,7 +1080,7 @@ final class ArrayCompiler extends Compiler {
break;
case AnchorType.LOOK_BEHIND:
- addOpcode(enc.isSingleByte() ? OPCode.LOOK_BEHIND_SB : OPCode.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);
diff --git a/src/org/joni/ByteCodeMachine.java b/src/org/joni/ByteCodeMachine.java
index 63e6f6b..d3ec63c 100644
--- a/src/org/joni/ByteCodeMachine.java
+++ b/src/org/joni/ByteCodeMachine.java
@@ -185,7 +185,7 @@ class ByteCodeMachine extends StackMachine {
bestLen = -1;
s = _sstart;
pkeep = _sstart;
- return execute();
+ return enc.isSingleByte() ? executeSb() : execute();
}
private final int execute() throws InterruptedException {
@@ -310,36 +310,145 @@ class ByteCodeMachine extends StackMachine {
// USE_SUBEXP_CALL
case OPCode.CALL: opCall(); continue;
case OPCode.RETURN: opReturn(); continue;
+ case OPCode.CONDITION: opCondition(); continue;
+ case OPCode.FINISH: return finish();
+ case OPCode.FAIL: opFail(); continue;
- // single byte implementations
- case OPCode.CCLASS_SB: opCClassSb(); break;
- case OPCode.CCLASS_NOT_SB: opCClassNotSb(); break;
+ default:
+ throw new InternalException(ErrorMessages.ERR_UNDEFINED_BYTECODE);
- case OPCode.ANYCHAR_SB: opAnyCharSb(); break;
- case OPCode.ANYCHAR_ML_SB: opAnyCharMLSb(); break;
- case OPCode.ANYCHAR_STAR_SB: opAnyCharStarSb(); break;
- case OPCode.ANYCHAR_ML_STAR_SB: opAnyCharMLStarSb(); break;
- case OPCode.ANYCHAR_STAR_PEEK_NEXT_SB: opAnyCharStarPeekNextSb(); break;
- case OPCode.ANYCHAR_ML_STAR_PEEK_NEXT_SB: opAnyCharMLStarPeekNextSb(); break;
- case OPCode.STATE_CHECK_ANYCHAR_STAR_SB: opStateCheckAnyCharStarSb(); break;
- case OPCode.STATE_CHECK_ANYCHAR_ML_STAR_SB: opStateCheckAnyCharMLStarSb();break;
+ } // main switch
+ } // main while
+ }
- case OPCode.WORD_SB: opWordSb(); break;
- case OPCode.NOT_WORD_SB: opNotWordSb(); break;
- case OPCode.WORD_BOUND_SB: opWordBoundSb(); continue;
- case OPCode.NOT_WORD_BOUND_SB: opNotWordBoundSb(); continue;
- case OPCode.WORD_BEGIN_SB: opWordBeginSb(); continue;
- case OPCode.WORD_END_SB: opWordEndSb(); continue;
+ private final int executeSb() throws InterruptedException {
+ Thread currentThread = Thread.currentThread();
+ final int[]code = this.code;
+ while (true) {
+ if (interruptCheckCounter++ % INTERRUPT_CHECK_EVERY == 0 && currentThread.isInterrupted()) {
+ currentThread.interrupted();
+ throw new InterruptedException();
+ }
- case OPCode.EXACT1_IC_SB: opExact1ICSb(); break;
- case OPCode.EXACTN_IC_SB: opExactNICSb(); continue;
+ if (Config.DEBUG_MATCH) debugMatchLoop();
- case OPCode.LOOK_BEHIND_SB: opLookBehindSb(); continue;
+ sbegin = s;
+ switch (code[ip++]) {
+ case OPCode.END: if (opEnd()) return finish(); break;
+ case OPCode.EXACT1: opExact1(); break;
+ case OPCode.EXACT2: opExact2(); continue;
+ case OPCode.EXACT3: opExact3(); continue;
+ case OPCode.EXACT4: opExact4(); continue;
+ case OPCode.EXACT5: opExact5(); continue;
+ case OPCode.EXACTN: opExactN(); continue;
- case OPCode.CONDITION: opCondition(); continue;
+ case OPCode.EXACTMB2N1: opExactMB2N1(); break;
+ case OPCode.EXACTMB2N2: opExactMB2N2(); continue;
+ case OPCode.EXACTMB2N3: opExactMB2N3(); continue;
+ case OPCode.EXACTMB2N: opExactMB2N(); continue;
+ case OPCode.EXACTMB3N: opExactMB3N(); continue;
+ case OPCode.EXACTMBN: opExactMBN(); continue;
+
+ case OPCode.EXACT1_IC: opExact1IC(); break;
+ case OPCode.EXACTN_IC: opExactNIC(); continue;
+
+ case OPCode.CCLASS: opCClassSb(); break;
+ case OPCode.CCLASS_MB: opCClassMB(); break;
+ case OPCode.CCLASS_MIX: opCClassMIX(); break;
+ case OPCode.CCLASS_NOT: opCClassNotSb(); break;
+ case OPCode.CCLASS_MB_NOT: opCClassMBNot(); break;
+ case OPCode.CCLASS_MIX_NOT: opCClassMIXNot(); break;
+
+ case OPCode.ANYCHAR: opAnyCharSb(); break;
+ case OPCode.ANYCHAR_ML: opAnyCharMLSb(); break;
+ case OPCode.ANYCHAR_STAR: opAnyCharStarSb(); break;
+ case OPCode.ANYCHAR_ML_STAR: opAnyCharMLStarSb(); break;
+ case OPCode.ANYCHAR_STAR_PEEK_NEXT: opAnyCharStarPeekNextSb(); break;
+ case OPCode.ANYCHAR_ML_STAR_PEEK_NEXT: opAnyCharMLStarPeekNextSb(); break;
+ case OPCode.STATE_CHECK_ANYCHAR_STAR: opStateCheckAnyCharStarSb(); break;
+ case OPCode.STATE_CHECK_ANYCHAR_ML_STAR:opStateCheckAnyCharMLStarSb();break;
+
+ case OPCode.WORD: opWordSb(); break;
+ case OPCode.NOT_WORD: opNotWordSb(); break;
+ case OPCode.WORD_BOUND: opWordBoundSb(); continue;
+ case OPCode.NOT_WORD_BOUND: opNotWordBoundSb(); continue;
+ case OPCode.WORD_BEGIN: opWordBeginSb(); continue;
+ case OPCode.WORD_END: opWordEndSb(); continue;
+
+ case OPCode.ASCII_WORD: opAsciiWord(); break;
+ case OPCode.NOT_ASCII_WORD: opNotAsciiWord(); break;
+ case OPCode.ASCII_WORD_BOUND: opAsciiWordBound(); break;
+ case OPCode.NOT_ASCII_WORD_BOUND: opNotAsciiWordBound(); continue;
+ case OPCode.ASCII_WORD_BEGIN: opAsciiWordBegin(); continue;
+ case OPCode.ASCII_WORD_END: opAsciiWordEnd(); continue;
+
+ case OPCode.BEGIN_BUF: opBeginBuf(); continue;
+ case OPCode.END_BUF: opEndBuf(); continue;
+ case OPCode.BEGIN_LINE: opBeginLine(); continue;
+ case OPCode.END_LINE: opEndLine(); continue;
+ case OPCode.SEMI_END_BUF: opSemiEndBuf(); continue;
+ case OPCode.BEGIN_POSITION: opBeginPosition(); continue;
+
+ case OPCode.MEMORY_START_PUSH: opMemoryStartPush(); continue;
+ case OPCode.MEMORY_START: opMemoryStart(); continue;
+ case OPCode.MEMORY_END_PUSH: opMemoryEndPush(); continue;
+ case OPCode.MEMORY_END: opMemoryEnd(); continue;
+ case OPCode.KEEP: opKeep(); continue;
+ case OPCode.MEMORY_END_PUSH_REC: opMemoryEndPushRec(); continue;
+ case OPCode.MEMORY_END_REC: opMemoryEndRec(); continue;
+
+ case OPCode.BACKREF1: opBackRef1(); continue;
+ case OPCode.BACKREF2: opBackRef2(); continue;
+ case OPCode.BACKREFN: opBackRefN(); continue;
+ case OPCode.BACKREFN_IC: opBackRefNIC(); continue;
+ case OPCode.BACKREF_MULTI: opBackRefMulti(); continue;
+ case OPCode.BACKREF_MULTI_IC: opBackRefMultiIC(); continue;
+ case OPCode.BACKREF_WITH_LEVEL: opBackRefAtLevel(); continue;
+
+ case OPCode.NULL_CHECK_START: opNullCheckStart(); continue;
+ case OPCode.NULL_CHECK_END: opNullCheckEnd(); continue;
+ case OPCode.NULL_CHECK_END_MEMST: opNullCheckEndMemST(); continue;
+ case OPCode.NULL_CHECK_END_MEMST_PUSH: opNullCheckEndMemSTPush(); continue;
+
+ case OPCode.JUMP: opJump(); continue;
+ case OPCode.PUSH: opPush(); continue;
+
+ // CEC
+ case OPCode.STATE_CHECK_PUSH: opStateCheckPush(); continue;
+ case OPCode.STATE_CHECK_PUSH_OR_JUMP: opStateCheckPushOrJump(); continue;
+ case OPCode.STATE_CHECK: opStateCheck(); continue;
+
+ case OPCode.POP: opPop(); continue;
+ case OPCode.PUSH_OR_JUMP_EXACT1: opPushOrJumpExact1(); continue;
+ case OPCode.PUSH_IF_PEEK_NEXT: opPushIfPeekNext(); continue;
+
+ case OPCode.REPEAT: opRepeat(); continue;
+ case OPCode.REPEAT_NG: opRepeatNG(); continue;
+ case OPCode.REPEAT_INC: opRepeatInc(); continue;
+ case OPCode.REPEAT_INC_SG: opRepeatIncSG(); continue;
+ case OPCode.REPEAT_INC_NG: opRepeatIncNG(); continue;
+ case OPCode.REPEAT_INC_NG_SG: opRepeatIncNGSG(); continue;
+
+ case OPCode.PUSH_POS: opPushPos(); continue;
+ case OPCode.POP_POS: opPopPos(); continue;
+ case OPCode.PUSH_POS_NOT: opPushPosNot(); continue;
+ case OPCode.FAIL_POS: opFailPos(); continue;
+ case OPCode.PUSH_STOP_BT: opPushStopBT(); continue;
+ case OPCode.POP_STOP_BT: opPopStopBT(); continue;
+
+ case OPCode.LOOK_BEHIND: opLookBehindSb(); continue;
+ case OPCode.PUSH_LOOK_BEHIND_NOT: opPushLookBehindNot(); continue;
+ case OPCode.FAIL_LOOK_BEHIND_NOT: opFailLookBehindNot(); continue;
+
+ // USE_SUBEXP_CALL
+ case OPCode.CALL: opCall(); continue;
+ case OPCode.RETURN: opReturn(); continue;
+ case OPCode.CONDITION: opCondition(); continue;
+ case OPCode.FINISH: return finish();
+ case OPCode.FAIL: opFail(); continue;
- case OPCode.FINISH: return finish();
- case OPCode.FAIL: opFail(); continue;
+ case OPCode.EXACT1_IC_SB: opExact1ICSb(); break;
+ case OPCode.EXACTN_IC_SB: opExactNICSb(); continue;
default:
throw new InternalException(ErrorMessages.ERR_UNDEFINED_BYTECODE);
diff --git a/src/org/joni/ByteCodePrinter.java b/src/org/joni/ByteCodePrinter.java
index 66b489e..8a235a0 100644
--- a/src/org/joni/ByteCodePrinter.java
+++ b/src/org/joni/ByteCodePrinter.java
@@ -111,8 +111,6 @@ class ByteCodePrinter {
case OPCode.EXACT1:
case OPCode.ANYCHAR_STAR_PEEK_NEXT:
case OPCode.ANYCHAR_ML_STAR_PEEK_NEXT:
- case OPCode.ANYCHAR_STAR_PEEK_NEXT_SB:
- case OPCode.ANYCHAR_ML_STAR_PEEK_NEXT_SB:
pString(sb, 1, bp++);
break;
@@ -244,7 +242,6 @@ class ByteCodePrinter {
break;
case OPCode.CCLASS:
- case OPCode.CCLASS_SB:
bs = new BitSet();
System.arraycopy(code, bp, bs.bits, 0, BitSet.BITSET_SIZE);
n = bs.numOn();
@@ -253,7 +250,6 @@ class ByteCodePrinter {
break;
case OPCode.CCLASS_NOT:
- case OPCode.CCLASS_NOT_SB:
bs = new BitSet();
System.arraycopy(code, bp, bs.bits, 0, BitSet.BITSET_SIZE);
n = bs.numOn();
@@ -342,7 +338,6 @@ class ByteCodePrinter {
break;
case OPCode.LOOK_BEHIND:
- case OPCode.LOOK_BEHIND_SB:
len = code[bp];
bp += OPSize.LENGTH;
sb.append(":" + len);
diff --git a/src/org/joni/Matcher.java b/src/org/joni/Matcher.java
index d0b1d62..bc122c0 100644
--- a/src/org/joni/Matcher.java
+++ b/src/org/joni/Matcher.java
@@ -27,6 +27,7 @@ import org.jcodings.IntHolder;
import org.jcodings.constants.CharacterType;
import org.jcodings.specific.ASCIIEncoding;
import org.joni.constants.AnchorType;
+import org.joni.constants.OPCode;
public abstract class Matcher extends IntHolder {
public static final int FAILED = -1;
diff --git a/src/org/joni/constants/OPCode.java b/src/org/joni/constants/OPCode.java
index bd7adb1..33b5cd7 100644
--- a/src/org/joni/constants/OPCode.java
+++ b/src/org/joni/constants/OPCode.java
@@ -135,29 +135,8 @@ public interface OPCode {
final int SET_OPTION_PUSH = 93; /* set option and push recover option */
final int SET_OPTION = 94; /* set option */
- // single byte versions
- final int ANYCHAR_SB = 95; /* "." */
- final int ANYCHAR_ML_SB = 96; /* "." multi-line */
- final int ANYCHAR_STAR_SB = 97; /* ".*" */
- final int ANYCHAR_ML_STAR_SB = 98; /* ".*" multi-line */
- final int ANYCHAR_STAR_PEEK_NEXT_SB = 99;
- final int ANYCHAR_ML_STAR_PEEK_NEXT_SB = 100;
- final int STATE_CHECK_ANYCHAR_STAR_SB = 101;
- final int STATE_CHECK_ANYCHAR_ML_STAR_SB= 102;
-
- final int CCLASS_SB = 103;
- final int CCLASS_NOT_SB = 104;
- final int WORD_SB = 105;
- final int NOT_WORD_SB = 106;
- final int WORD_BOUND_SB = 107;
- final int NOT_WORD_BOUND_SB = 108;
- final int WORD_BEGIN_SB = 109;
- final int WORD_END_SB = 110;
-
- final int EXACT1_IC_SB = 111; /* single byte, N = 1, ignore case */
- final int EXACTN_IC_SB = 112; /* single byte, ignore case */
-
- final int LOOK_BEHIND_SB = 113;
+ final int EXACT1_IC_SB = 95; /* single byte, N = 1, ignore case */
+ final int EXACTN_IC_SB = 96; /* single byte, ignore case */
public final String OpCodeNames[] = Config.DEBUG_COMPILE ? new String[] {
"finish", /*OP_FINISH*/
@@ -256,30 +235,8 @@ public interface OPCode {
"set-option-push", /*OP_SET_OPTION_PUSH*/
"set-option", /*OP_SET_OPTION*/
- // single byte versions
- "anychar-sb", /*OP_ANYCHAR*/
- "anychar-ml-sb", /*OP_ANYCHAR_ML*/
- "anychar*-sb", /*OP_ANYCHAR_STAR*/
- "anychar-ml*-sb", /*OP_ANYCHAR_ML_STAR*/
- "anychar*-peek-next-sb", /*OP_ANYCHAR_STAR_PEEK_NEXT*/
- "anychar-ml*-peek-next-sb", /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
- "state-check-anychar*-sb", /*OP_STATE_CHECK_ANYCHAR_STAR*/
- "state-check-anychar-ml*-sb", /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
-
- "cclass-sb", /*OP_CCLASS*/
- "cclass-not-sb", /*OP_CCLASS_NOT*/
-
- "word-sb", /*OP_WORD*/
- "not-word-sb", /*OP_NOT_WORD*/
- "word-bound-sb", /*OP_WORD_BOUND*/
- "not-word-bound-sb", /*OP_NOT_WORD_BOUND*/
- "word-begin-sb", /*OP_WORD_BEGIN*/
- "word-end-sb", /*OP_WORD_END*/
-
"exact1-ic-sb", /*OP_EXACT1_IC*/
"exactn-ic-sb", /*OP_EXACTN_IC*/
-
- "look-behind-sb", /*OP_LOOK_BEHIND*/
} : null;
public final int OpCodeArgTypes[] = Config.DEBUG_COMPILE ? new int[] {
@@ -379,29 +336,7 @@ public interface OPCode {
Arguments.OPTION, /*OP_SET_OPTION_PUSH*/
Arguments.OPTION, /*OP_SET_OPTION*/
- // single byte versions
- Arguments.NON, /*OP_ANYCHAR*/
- Arguments.NON, /*OP_ANYCHAR_ML*/
- Arguments.NON, /*OP_ANYCHAR_STAR*/
- Arguments.NON, /*OP_ANYCHAR_ML_STAR*/
- Arguments.SPECIAL, /*OP_ANYCHAR_STAR_PEEK_NEXT*/
- Arguments.SPECIAL, /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
- Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_STAR*/
- Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
-
- Arguments.SPECIAL, /*OP_CCLASS*/
- Arguments.SPECIAL, /*OP_CCLASS_NOT*/
-
- Arguments.NON, /*OP_WORD*/
- Arguments.NON, /*OP_NOT_WORD*/
- Arguments.NON, /*OP_WORD_BOUND*/
- Arguments.NON, /*OP_NOT_WORD_BOUND*/
- Arguments.NON, /*OP_WORD_BEGIN*/
- Arguments.NON, /*OP_WORD_END*/
-
Arguments.SPECIAL, /*OP_EXACT1_IC*/
Arguments.SPECIAL, /*OP_EXACTN_IC*/
-
- Arguments.SPECIAL, /*OP_LOOK_BEHIND*/
} : null;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git
More information about the pkg-java-commits
mailing list