/* * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package jdk.nashorn.internal.runtime.regexp.joni.constants; @SuppressWarnings("javadoc") public interface OPCode { final int FINISH = 0; /* matching process terminator (no more alternative) */ final int END = 1; /* pattern code terminator (success end) */ final int EXACT1 = 2; /* single byte, N = 1 */ final int EXACT2 = 3; /* single byte, N = 2 */ final int EXACT3 = 4; /* single byte, N = 3 */ final int EXACT4 = 5; /* single byte, N = 4 */ final int EXACT5 = 6; /* single byte, N = 5 */ final int EXACTN = 7; /* single byte */ final int EXACT1_IC = 14; /* single byte, N = 1, ignore case */ final int EXACTN_IC = 15; /* single byte, ignore case */ final int CCLASS = 16; final int CCLASS_MB = 17; final int CCLASS_MIX = 18; final int CCLASS_NOT = 19; final int CCLASS_MB_NOT = 20; final int CCLASS_MIX_NOT = 21; final int CCLASS_NODE = 22; /* pointer to CClassNode node */ final int ANYCHAR = 23; /* "." */ final int ANYCHAR_ML = 24; /* "." multi-line */ final int ANYCHAR_STAR = 25; /* ".*" */ final int ANYCHAR_ML_STAR = 26; /* ".*" multi-line */ final int ANYCHAR_STAR_PEEK_NEXT = 27; final int ANYCHAR_ML_STAR_PEEK_NEXT = 28; final int WORD = 29; final int NOT_WORD = 30; final int WORD_BOUND = 31; final int NOT_WORD_BOUND = 32; final int WORD_BEGIN = 33; final int WORD_END = 34; final int BEGIN_BUF = 35; final int END_BUF = 36; final int BEGIN_LINE = 37; final int END_LINE = 38; final int SEMI_END_BUF = 39; final int BEGIN_POSITION = 40; final int BACKREF1 = 41; final int BACKREF2 = 42; final int BACKREFN = 43; final int BACKREFN_IC = 44; final int BACKREF_MULTI = 45; final int BACKREF_MULTI_IC = 46; final int BACKREF_WITH_LEVEL = 47; /* \k<xxx+n>, \k<xxx-n> */ final int MEMORY_START = 48; final int MEMORY_START_PUSH = 49; /* push back-tracker to stack */ final int MEMORY_END_PUSH = 50; /* push back-tracker to stack */ final int MEMORY_END_PUSH_REC = 51; /* push back-tracker to stack */ final int MEMORY_END = 52; final int MEMORY_END_REC = 53; /* push marker to stack */ final int FAIL = 54; /* pop stack and move */ final int JUMP = 55; final int PUSH = 56; final int POP = 57; final int PUSH_OR_JUMP_EXACT1 = 58; /* if match exact then push, else jump. */ final int PUSH_IF_PEEK_NEXT = 59; /* if match exact then push, else none. */ final int REPEAT = 60; /* {n,m} */ final int REPEAT_NG = 61; /* {n,m}? (non greedy) */ final int REPEAT_INC = 62; final int REPEAT_INC_NG = 63; /* non greedy */ final int REPEAT_INC_SG = 64; /* search and get in stack */ final int REPEAT_INC_NG_SG = 65; /* search and get in stack (non greedy) */ final int NULL_CHECK_START = 66; /* null loop checker start */ final int NULL_CHECK_END = 67; /* null loop checker end */ final int NULL_CHECK_END_MEMST = 68; /* null loop checker end (with capture status) */ final int NULL_CHECK_END_MEMST_PUSH = 69; /* with capture status and push check-end */ final int PUSH_POS = 70; /* (?=...) start */ final int POP_POS = 71; /* (?=...) end */ final int PUSH_POS_NOT = 72; /* (?!...) start */ final int FAIL_POS = 73; /* (?!...) end */ final int PUSH_STOP_BT = 74; /* (?>...) start */ final int POP_STOP_BT = 75; /* (?>...) end */ final int LOOK_BEHIND = 76; /* (?<=...) start (no needs end opcode) */ final int PUSH_LOOK_BEHIND_NOT = 77; /* (?<!...) start */ final int FAIL_LOOK_BEHIND_NOT = 78; /* (?<!...) end */ final int CALL = 79; /* \g<name> */ final int RETURN = 80; final int STATE_CHECK_PUSH = 81; /* combination explosion check and push */ final int STATE_CHECK_PUSH_OR_JUMP = 82; /* check ok -> push, else jump */ final int STATE_CHECK = 83; /* check only */ final int STATE_CHECK_ANYCHAR_STAR = 84; final int STATE_CHECK_ANYCHAR_ML_STAR = 85; /* no need: IS_DYNAMIC_OPTION() == 0 */ final int SET_OPTION_PUSH = 86; /* set option and push recover option */ final int SET_OPTION = 87; /* set option */ }