[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