1 /*
   2  * Permission is hereby granted, free of charge, to any person obtaining a copy of
   3  * this software and associated documentation files (the "Software"), to deal in
   4  * the Software without restriction, including without limitation the rights to
   5  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
   6  * of the Software, and to permit persons to whom the Software is furnished to do
   7  * so, subject to the following conditions:
   8  *
   9  * The above copyright notice and this permission notice shall be included in all
  10  * copies or substantial portions of the Software.
  11  *
  12  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  13  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  14  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  15  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  16  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  17  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  18  * SOFTWARE.
  19  */
  20 package jdk.nashorn.internal.runtime.regexp.joni.constants;
  21 
  22 import jdk.nashorn.internal.runtime.regexp.joni.Config;
  23 
  24 public interface OPCode {
  25     final int FINISH                        = 0;            /* matching process terminator (no more alternative) */
  26     final int END                           = 1;            /* pattern code terminator (success end) */
  27 
  28     final int EXACT1                        = 2;            /* single byte, N = 1 */
  29     final int EXACT2                        = 3;            /* single byte, N = 2 */
  30     final int EXACT3                        = 4;            /* single byte, N = 3 */
  31     final int EXACT4                        = 5;            /* single byte, N = 4 */
  32     final int EXACT5                        = 6;            /* single byte, N = 5 */
  33     final int EXACTN                        = 7;            /* single byte */
  34     final int EXACTMB2N1                    = 8;            /* mb-length = 2 N = 1 */
  35     final int EXACTMB2N2                    = 9;            /* mb-length = 2 N = 2 */
  36     final int EXACTMB2N3                    = 10;           /* mb-length = 2 N = 3 */
  37     final int EXACTMB2N                     = 11;           /* mb-length = 2 */
  38     final int EXACTMB3N                     = 12;           /* mb-length = 3 */
  39     final int EXACTMBN                      = 13;           /* other length */
  40 
  41     final int EXACT1_IC                     = 14;           /* single byte, N = 1, ignore case */
  42     final int EXACTN_IC                     = 15;           /* single byte,        ignore case */
  43 
  44     final int CCLASS                        = 16;
  45     final int CCLASS_MB                     = 17;
  46     final int CCLASS_MIX                    = 18;
  47     final int CCLASS_NOT                    = 19;
  48     final int CCLASS_MB_NOT                 = 20;
  49     final int CCLASS_MIX_NOT                = 21;
  50     final int CCLASS_NODE                   = 22;           /* pointer to CClassNode node */
  51 
  52     final int ANYCHAR                       = 23;           /* "."  */
  53     final int ANYCHAR_ML                    = 24;           /* "."  multi-line */
  54     final int ANYCHAR_STAR                  = 25;           /* ".*" */
  55     final int ANYCHAR_ML_STAR               = 26;           /* ".*" multi-line */
  56     final int ANYCHAR_STAR_PEEK_NEXT        = 27;
  57     final int ANYCHAR_ML_STAR_PEEK_NEXT     = 28;
  58 
  59     final int WORD                          = 29;
  60     final int NOT_WORD                      = 30;
  61     final int WORD_BOUND                    = 31;
  62     final int NOT_WORD_BOUND                = 32;
  63     final int WORD_BEGIN                    = 33;
  64     final int WORD_END                      = 34;
  65 
  66     final int BEGIN_BUF                     = 35;
  67     final int END_BUF                       = 36;
  68     final int BEGIN_LINE                    = 37;
  69     final int END_LINE                      = 38;
  70     final int SEMI_END_BUF                  = 39;
  71     final int BEGIN_POSITION                = 40;
  72 
  73     final int BACKREF1                      = 41;
  74     final int BACKREF2                      = 42;
  75     final int BACKREFN                      = 43;
  76     final int BACKREFN_IC                   = 44;
  77     final int BACKREF_MULTI                 = 45;
  78     final int BACKREF_MULTI_IC              = 46;
  79     final int BACKREF_WITH_LEVEL            = 47;           /* \k<xxx+n>, \k<xxx-n> */
  80 
  81     final int MEMORY_START                  = 48;
  82     final int MEMORY_START_PUSH             = 49;           /* push back-tracker to stack */
  83     final int MEMORY_END_PUSH               = 50;           /* push back-tracker to stack */
  84     final int MEMORY_END_PUSH_REC           = 51;           /* push back-tracker to stack */
  85     final int MEMORY_END                    = 52;
  86     final int MEMORY_END_REC                = 53;           /* push marker to stack */
  87 
  88     final int FAIL                          = 54;           /* pop stack and move */
  89     final int JUMP                          = 55;
  90     final int PUSH                          = 56;
  91     final int POP                           = 57;
  92     final int PUSH_OR_JUMP_EXACT1           = 58;           /* if match exact then push, else jump. */
  93     final int PUSH_IF_PEEK_NEXT             = 59;           /* if match exact then push, else none. */
  94 
  95     final int REPEAT                        = 60;           /* {n,m} */
  96     final int REPEAT_NG                     = 61;           /* {n,m}? (non greedy) */
  97     final int REPEAT_INC                    = 62;
  98     final int REPEAT_INC_NG                 = 63;           /* non greedy */
  99     final int REPEAT_INC_SG                 = 64;           /* search and get in stack */
 100     final int REPEAT_INC_NG_SG              = 65;           /* search and get in stack (non greedy) */
 101 
 102     final int NULL_CHECK_START              = 66;           /* null loop checker start */
 103     final int NULL_CHECK_END                = 67;           /* null loop checker end   */
 104     final int NULL_CHECK_END_MEMST          = 68;           /* null loop checker end (with capture status) */
 105     final int NULL_CHECK_END_MEMST_PUSH     = 69;           /* with capture status and push check-end */
 106 
 107     final int PUSH_POS                      = 70;           /* (?=...)  start */
 108     final int POP_POS                       = 71;           /* (?=...)  end   */
 109     final int PUSH_POS_NOT                  = 72;           /* (?!...)  start */
 110     final int FAIL_POS                      = 73;           /* (?!...)  end   */
 111     final int PUSH_STOP_BT                  = 74;           /* (?>...)  start */
 112     final int POP_STOP_BT                   = 75;           /* (?>...)  end   */
 113     final int LOOK_BEHIND                   = 76;           /* (?<=...) start (no needs end opcode) */
 114     final int PUSH_LOOK_BEHIND_NOT          = 77;           /* (?<!...) start */
 115     final int FAIL_LOOK_BEHIND_NOT          = 78;           /* (?<!...) end   */
 116 
 117     final int CALL                          = 79;           /* \g<name> */
 118     final int RETURN                        = 80;
 119 
 120     final int STATE_CHECK_PUSH              = 81;           /* combination explosion check and push */
 121     final int STATE_CHECK_PUSH_OR_JUMP      = 82;           /* check ok -> push, else jump  */
 122     final int STATE_CHECK                   = 83;           /* check only */
 123     final int STATE_CHECK_ANYCHAR_STAR      = 84;
 124     final int STATE_CHECK_ANYCHAR_ML_STAR   = 85;
 125 
 126       /* no need: IS_DYNAMIC_OPTION() == 0 */
 127     final int SET_OPTION_PUSH               = 86;           /* set option and push recover option */
 128     final int SET_OPTION                    = 87;           /* set option */
 129 
 130     // single byte versions
 131     final int ANYCHAR_SB                    = 88;           /* "."  */
 132     final int ANYCHAR_ML_SB                 = 89;           /* "."  multi-line */
 133     final int ANYCHAR_STAR_SB               = 90;           /* ".*" */
 134     final int ANYCHAR_ML_STAR_SB            = 91;           /* ".*" multi-line */
 135     final int ANYCHAR_STAR_PEEK_NEXT_SB     = 92;
 136     final int ANYCHAR_ML_STAR_PEEK_NEXT_SB  = 93;
 137     final int STATE_CHECK_ANYCHAR_STAR_SB   = 94;
 138     final int STATE_CHECK_ANYCHAR_ML_STAR_SB= 95;
 139 
 140     final int CCLASS_SB                     = 96;
 141     final int CCLASS_NOT_SB                 = 97;
 142     final int WORD_SB                       = 98;
 143     final int NOT_WORD_SB                   = 99;
 144     final int WORD_BOUND_SB                 = 100;
 145     final int NOT_WORD_BOUND_SB             = 101;
 146     final int WORD_BEGIN_SB                 = 102;
 147     final int WORD_END_SB                   = 103;
 148 
 149     final int LOOK_BEHIND_SB                = 104;
 150 
 151     final int EXACT1_IC_SB                  = 105;           /* single byte, N = 1, ignore case */
 152     final int EXACTN_IC_SB                  = 106;           /* single byte,        ignore case */
 153 
 154 
 155     public final String OpCodeNames[] = Config.DEBUG_COMPILE ? new String[] {
 156         "finish", /*OP_FINISH*/
 157         "end", /*OP_END*/
 158         "exact1", /*OP_EXACT1*/
 159         "exact2", /*OP_EXACT2*/
 160         "exact3", /*OP_EXACT3*/
 161         "exact4", /*OP_EXACT4*/
 162         "exact5", /*OP_EXACT5*/
 163         "exactn", /*OP_EXACTN*/
 164         "exactmb2-n1", /*OP_EXACTMB2N1*/
 165         "exactmb2-n2", /*OP_EXACTMB2N2*/
 166         "exactmb2-n3", /*OP_EXACTMB2N3*/
 167         "exactmb2-n", /*OP_EXACTMB2N*/
 168         "exactmb3n", /*OP_EXACTMB3N*/
 169         "exactmbn", /*OP_EXACTMBN*/
 170         "exact1-ic", /*OP_EXACT1_IC*/
 171         "exactn-ic", /*OP_EXACTN_IC*/
 172         "cclass", /*OP_CCLASS*/
 173         "cclass-mb", /*OP_CCLASS_MB*/
 174         "cclass-mix", /*OP_CCLASS_MIX*/
 175         "cclass-not", /*OP_CCLASS_NOT*/
 176         "cclass-mb-not", /*OP_CCLASS_MB_NOT*/
 177         "cclass-mix-not", /*OP_CCLASS_MIX_NOT*/
 178         "cclass-node", /*OP_CCLASS_NODE*/
 179         "anychar", /*OP_ANYCHAR*/
 180         "anychar-ml", /*OP_ANYCHAR_ML*/
 181         "anychar*", /*OP_ANYCHAR_STAR*/
 182         "anychar-ml*", /*OP_ANYCHAR_ML_STAR*/
 183         "anychar*-peek-next", /*OP_ANYCHAR_STAR_PEEK_NEXT*/
 184         "anychar-ml*-peek-next", /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
 185         "word", /*OP_WORD*/
 186         "not-word", /*OP_NOT_WORD*/
 187         "word-bound", /*OP_WORD_BOUND*/
 188         "not-word-bound", /*OP_NOT_WORD_BOUND*/
 189         "word-begin", /*OP_WORD_BEGIN*/
 190         "word-end", /*OP_WORD_END*/
 191         "begin-buf", /*OP_BEGIN_BUF*/
 192         "end-buf", /*OP_END_BUF*/
 193         "begin-line", /*OP_BEGIN_LINE*/
 194         "end-line", /*OP_END_LINE*/
 195         "semi-end-buf", /*OP_SEMI_END_BUF*/
 196         "begin-position", /*OP_BEGIN_POSITION*/
 197         "backref1", /*OP_BACKREF1*/
 198         "backref2", /*OP_BACKREF2*/
 199         "backrefn", /*OP_BACKREFN*/
 200         "backrefn-ic", /*OP_BACKREFN_IC*/
 201         "backref_multi", /*OP_BACKREF_MULTI*/
 202         "backref_multi-ic", /*OP_BACKREF_MULTI_IC*/
 203         "backref_at_level", /*OP_BACKREF_AT_LEVEL*/
 204         "mem-start", /*OP_MEMORY_START*/
 205         "mem-start-push", /*OP_MEMORY_START_PUSH*/
 206         "mem-end-push", /*OP_MEMORY_END_PUSH*/
 207         "mem-end-push-rec", /*OP_MEMORY_END_PUSH_REC*/
 208         "mem-end", /*OP_MEMORY_END*/
 209         "mem-end-rec", /*OP_MEMORY_END_REC*/
 210         "fail", /*OP_FAIL*/
 211         "jump", /*OP_JUMP*/
 212         "push", /*OP_PUSH*/
 213         "pop", /*OP_POP*/
 214         "push-or-jump-e1", /*OP_PUSH_OR_JUMP_EXACT1*/
 215         "push-if-peek-next", /*OP_PUSH_IF_PEEK_NEXT*/
 216         "repeat", /*OP_REPEAT*/
 217         "repeat-ng", /*OP_REPEAT_NG*/
 218         "repeat-inc", /*OP_REPEAT_INC*/
 219         "repeat-inc-ng", /*OP_REPEAT_INC_NG*/
 220         "repeat-inc-sg", /*OP_REPEAT_INC_SG*/
 221         "repeat-inc-ng-sg", /*OP_REPEAT_INC_NG_SG*/
 222         "null-check-start", /*OP_NULL_CHECK_START*/
 223         "null-check-end", /*OP_NULL_CHECK_END*/
 224         "null-check-end-memst", /*OP_NULL_CHECK_END_MEMST*/
 225         "null-check-end-memst-push", /*OP_NULL_CHECK_END_MEMST_PUSH*/
 226         "push-pos", /*OP_PUSH_POS*/
 227         "pop-pos", /*OP_POP_POS*/
 228         "push-pos-not", /*OP_PUSH_POS_NOT*/
 229         "fail-pos", /*OP_FAIL_POS*/
 230         "push-stop-bt", /*OP_PUSH_STOP_BT*/
 231         "pop-stop-bt", /*OP_POP_STOP_BT*/
 232         "look-behind", /*OP_LOOK_BEHIND*/
 233         "push-look-behind-not", /*OP_PUSH_LOOK_BEHIND_NOT*/
 234         "fail-look-behind-not", /*OP_FAIL_LOOK_BEHIND_NOT*/
 235         "call", /*OP_CALL*/
 236         "return", /*OP_RETURN*/
 237         "state-check-push", /*OP_STATE_CHECK_PUSH*/
 238         "state-check-push-or-jump", /*OP_STATE_CHECK_PUSH_OR_JUMP*/
 239         "state-check", /*OP_STATE_CHECK*/
 240         "state-check-anychar*", /*OP_STATE_CHECK_ANYCHAR_STAR*/
 241         "state-check-anychar-ml*", /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
 242         "set-option-push", /*OP_SET_OPTION_PUSH*/
 243         "set-option", /*OP_SET_OPTION*/
 244 
 245         // single byte versions
 246         "anychar-sb", /*OP_ANYCHAR*/
 247         "anychar-ml-sb", /*OP_ANYCHAR_ML*/
 248         "anychar*-sb", /*OP_ANYCHAR_STAR*/
 249         "anychar-ml*-sb", /*OP_ANYCHAR_ML_STAR*/
 250         "anychar*-peek-next-sb", /*OP_ANYCHAR_STAR_PEEK_NEXT*/
 251         "anychar-ml*-peek-next-sb", /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
 252         "state-check-anychar*-sb", /*OP_STATE_CHECK_ANYCHAR_STAR*/
 253         "state-check-anychar-ml*-sb", /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
 254 
 255         "cclass-sb", /*OP_CCLASS*/
 256         "cclass-not-sb", /*OP_CCLASS_NOT*/
 257 
 258         "word-sb", /*OP_WORD*/
 259         "not-word-sb", /*OP_NOT_WORD*/
 260         "word-bound-sb", /*OP_WORD_BOUND*/
 261         "not-word-bound-sb", /*OP_NOT_WORD_BOUND*/
 262         "word-begin-sb", /*OP_WORD_BEGIN*/
 263         "word-end-sb", /*OP_WORD_END*/
 264 
 265         "look-behind-sb", /*OP_LOOK_BEHIND*/
 266 
 267         "exact1-ic-sb", /*OP_EXACT1_IC*/
 268         "exactn-ic-sb", /*OP_EXACTN_IC*/
 269 
 270     } : null;
 271 
 272     public final int OpCodeArgTypes[] = Config.DEBUG_COMPILE ? new int[] {
 273         Arguments.NON, /*OP_FINISH*/
 274         Arguments.NON, /*OP_END*/
 275         Arguments.SPECIAL, /*OP_EXACT1*/
 276         Arguments.SPECIAL, /*OP_EXACT2*/
 277         Arguments.SPECIAL, /*OP_EXACT3*/
 278         Arguments.SPECIAL, /*OP_EXACT4*/
 279         Arguments.SPECIAL, /*OP_EXACT5*/
 280         Arguments.SPECIAL, /*OP_EXACTN*/
 281         Arguments.SPECIAL, /*OP_EXACTMB2N1*/
 282         Arguments.SPECIAL, /*OP_EXACTMB2N2*/
 283         Arguments.SPECIAL, /*OP_EXACTMB2N3*/
 284         Arguments.SPECIAL, /*OP_EXACTMB2N*/
 285         Arguments.SPECIAL, /*OP_EXACTMB3N*/
 286         Arguments.SPECIAL, /*OP_EXACTMBN*/
 287         Arguments.SPECIAL, /*OP_EXACT1_IC*/
 288         Arguments.SPECIAL, /*OP_EXACTN_IC*/
 289         Arguments.SPECIAL, /*OP_CCLASS*/
 290         Arguments.SPECIAL, /*OP_CCLASS_MB*/
 291         Arguments.SPECIAL, /*OP_CCLASS_MIX*/
 292         Arguments.SPECIAL, /*OP_CCLASS_NOT*/
 293         Arguments.SPECIAL, /*OP_CCLASS_MB_NOT*/
 294         Arguments.SPECIAL, /*OP_CCLASS_MIX_NOT*/
 295         Arguments.SPECIAL, /*OP_CCLASS_NODE*/
 296         Arguments.NON, /*OP_ANYCHAR*/
 297         Arguments.NON, /*OP_ANYCHAR_ML*/
 298         Arguments.NON, /*OP_ANYCHAR_STAR*/
 299         Arguments.NON, /*OP_ANYCHAR_ML_STAR*/
 300         Arguments.SPECIAL, /*OP_ANYCHAR_STAR_PEEK_NEXT*/
 301         Arguments.SPECIAL, /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
 302         Arguments.NON, /*OP_WORD*/
 303         Arguments.NON, /*OP_NOT_WORD*/
 304         Arguments.NON, /*OP_WORD_BOUND*/
 305         Arguments.NON, /*OP_NOT_WORD_BOUND*/
 306         Arguments.NON, /*OP_WORD_BEGIN*/
 307         Arguments.NON, /*OP_WORD_END*/
 308         Arguments.NON, /*OP_BEGIN_BUF*/
 309         Arguments.NON, /*OP_END_BUF*/
 310         Arguments.NON, /*OP_BEGIN_LINE*/
 311         Arguments.NON, /*OP_END_LINE*/
 312         Arguments.NON, /*OP_SEMI_END_BUF*/
 313         Arguments.NON, /*OP_BEGIN_POSITION*/
 314         Arguments.NON, /*OP_BACKREF1*/
 315         Arguments.NON, /*OP_BACKREF2*/
 316         Arguments.MEMNUM, /*OP_BACKREFN*/
 317         Arguments.SPECIAL, /*OP_BACKREFN_IC*/
 318         Arguments.SPECIAL, /*OP_BACKREF_MULTI*/
 319         Arguments.SPECIAL, /*OP_BACKREF_MULTI_IC*/
 320         Arguments.SPECIAL, /*OP_BACKREF_AT_LEVEL*/
 321         Arguments.MEMNUM, /*OP_MEMORY_START*/
 322         Arguments.MEMNUM, /*OP_MEMORY_START_PUSH*/
 323         Arguments.MEMNUM, /*OP_MEMORY_END_PUSH*/
 324         Arguments.MEMNUM, /*OP_MEMORY_END_PUSH_REC*/
 325         Arguments.MEMNUM, /*OP_MEMORY_END*/
 326         Arguments.MEMNUM, /*OP_MEMORY_END_REC*/
 327         Arguments.NON, /*OP_FAIL*/
 328         Arguments.RELADDR, /*OP_JUMP*/
 329         Arguments.RELADDR, /*OP_PUSH*/
 330         Arguments.NON, /*OP_POP*/
 331         Arguments.SPECIAL, /*OP_PUSH_OR_JUMP_EXACT1*/
 332         Arguments.SPECIAL, /*OP_PUSH_IF_PEEK_NEXT*/
 333         Arguments.SPECIAL, /*OP_REPEAT*/
 334         Arguments.SPECIAL, /*OP_REPEAT_NG*/
 335         Arguments.MEMNUM, /*OP_REPEAT_INC*/
 336         Arguments.MEMNUM, /*OP_REPEAT_INC_NG*/
 337         Arguments.MEMNUM, /*OP_REPEAT_INC_SG*/
 338         Arguments.MEMNUM, /*OP_REPEAT_INC_NG_SG*/
 339         Arguments.MEMNUM, /*OP_NULL_CHECK_START*/
 340         Arguments.MEMNUM, /*OP_NULL_CHECK_END*/
 341         Arguments.MEMNUM, /*OP_NULL_CHECK_END_MEMST*/
 342         Arguments.MEMNUM, /*OP_NULL_CHECK_END_MEMST_PUSH*/
 343         Arguments.NON, /*OP_PUSH_POS*/
 344         Arguments.NON, /*OP_POP_POS*/
 345         Arguments.RELADDR, /*OP_PUSH_POS_NOT*/
 346         Arguments.NON, /*OP_FAIL_POS*/
 347         Arguments.NON, /*OP_PUSH_STOP_BT*/
 348         Arguments.NON, /*OP_POP_STOP_BT*/
 349         Arguments.SPECIAL, /*OP_LOOK_BEHIND*/
 350         Arguments.SPECIAL, /*OP_PUSH_LOOK_BEHIND_NOT*/
 351         Arguments.NON, /*OP_FAIL_LOOK_BEHIND_NOT*/
 352         Arguments.ABSADDR, /*OP_CALL*/
 353         Arguments.NON, /*OP_RETURN*/
 354         Arguments.SPECIAL, /*OP_STATE_CHECK_PUSH*/
 355         Arguments.SPECIAL, /*OP_STATE_CHECK_PUSH_OR_JUMP*/
 356         Arguments.STATE_CHECK, /*OP_STATE_CHECK*/
 357         Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_STAR*/
 358         Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
 359         Arguments.OPTION, /*OP_SET_OPTION_PUSH*/
 360         Arguments.OPTION, /*OP_SET_OPTION*/
 361 
 362         // single byte versions
 363         Arguments.NON, /*OP_ANYCHAR*/
 364         Arguments.NON, /*OP_ANYCHAR_ML*/
 365         Arguments.NON, /*OP_ANYCHAR_STAR*/
 366         Arguments.NON, /*OP_ANYCHAR_ML_STAR*/
 367         Arguments.SPECIAL, /*OP_ANYCHAR_STAR_PEEK_NEXT*/
 368         Arguments.SPECIAL, /*OP_ANYCHAR_ML_STAR_PEEK_NEXT*/
 369         Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_STAR*/
 370         Arguments.STATE_CHECK, /*OP_STATE_CHECK_ANYCHAR_ML_STAR*/
 371 
 372         Arguments.SPECIAL, /*OP_CCLASS*/
 373         Arguments.SPECIAL, /*OP_CCLASS_NOT*/
 374 
 375         Arguments.NON, /*OP_WORD*/
 376         Arguments.NON, /*OP_NOT_WORD*/
 377         Arguments.NON, /*OP_WORD_BOUND*/
 378         Arguments.NON, /*OP_NOT_WORD_BOUND*/
 379         Arguments.NON, /*OP_WORD_BEGIN*/
 380         Arguments.NON, /*OP_WORD_END*/
 381 
 382         Arguments.SPECIAL, /*OP_LOOK_BEHIND*/
 383 
 384         Arguments.SPECIAL, /*OP_EXACT1_IC*/
 385         Arguments.SPECIAL, /*OP_EXACTN_IC*/
 386     } : null;
 387 }