/* -*- mode: C; buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by regen/regcomp.pl from regcomp.sym, op_reg_common.h and regexp.h. Any changes made here will be lost! */ #if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) /* typedefs for regex nodes - one typedef per node type */ typedef struct regnode_2 tregnode_ACCEPT; typedef struct regnode_1 tregnode_AHOCORASICK; typedef struct regnode_charclass tregnode_AHOCORASICKC; typedef struct regnode_charclass tregnode_ANYOF; typedef struct regnode_charclass tregnode_ANYOFD; typedef struct regnode_1 tregnode_ANYOFH; typedef struct regnode_1 tregnode_ANYOFHb; typedef struct regnode_bbm tregnode_ANYOFHbbm; typedef struct regnode_1 tregnode_ANYOFHr; typedef struct regnode_1 tregnode_ANYOFHs; typedef struct regnode_charclass tregnode_ANYOFL; typedef struct regnode_1 tregnode_ANYOFM; typedef struct regnode_charclass_posixl tregnode_ANYOFPOSIXL; typedef struct regnode_1 tregnode_ANYOFR; typedef struct regnode_1 tregnode_ANYOFRb; typedef struct regnode tregnode_BOUND; typedef struct regnode tregnode_BOUNDA; typedef struct regnode tregnode_BOUNDL; typedef struct regnode tregnode_BOUNDU; typedef struct regnode_1 tregnode_BRANCH; typedef struct regnode_2 tregnode_BRANCHJ; typedef struct regnode_1 tregnode_CLOSE; typedef struct regnode tregnode_CLUMP; typedef struct regnode_1 tregnode_COMMIT; typedef struct regnode_3 tregnode_CURLY; typedef struct regnode_3 tregnode_CURLYM; typedef struct regnode_3 tregnode_CURLYN; typedef struct regnode_3 tregnode_CURLYX; typedef struct regnode_1 tregnode_CUTGROUP; typedef struct regnode_1 tregnode_DEFINEP; typedef struct regnode tregnode_END; typedef struct regnode tregnode_ENDLIKE; typedef struct regnode tregnode_EOS; typedef struct regnode_2 tregnode_EVAL; typedef struct regnode tregnode_EXACT; typedef struct regnode tregnode_EXACTF; typedef struct regnode tregnode_EXACTFAA; typedef struct regnode tregnode_EXACTFAA_NO_TRIE; typedef struct regnode tregnode_EXACTFL; typedef struct regnode tregnode_EXACTFLU8; typedef struct regnode tregnode_EXACTFU; typedef struct regnode tregnode_EXACTFUP; typedef struct regnode tregnode_EXACTFU_REQ8; typedef struct regnode tregnode_EXACTFU_S_EDGE; typedef struct regnode tregnode_EXACTL; typedef struct regnode tregnode_EXACT_REQ8; typedef struct regnode_2 tregnode_GOSUB; typedef struct regnode tregnode_GPOS; typedef struct regnode_1 tregnode_GROUPP; typedef struct regnode_1 tregnode_GROUPPN; typedef struct regnode_1 tregnode_IFMATCH; typedef struct regnode_1 tregnode_IFTHEN; typedef struct regnode_1 tregnode_INSUBP; typedef struct regnode tregnode_KEEPS; typedef struct regnode_1 tregnode_LEXACT; typedef struct regnode_1 tregnode_LEXACT_REQ8; typedef struct regnode tregnode_LNBREAK; typedef struct regnode tregnode_LOGICAL; typedef struct regnode_1 tregnode_LONGJMP; typedef struct regnode tregnode_LOOKBEHIND_END; typedef struct regnode_1 tregnode_MARKPOINT; typedef struct regnode tregnode_MBOL; typedef struct regnode tregnode_MEOL; typedef struct regnode tregnode_MINMOD; typedef struct regnode_1 tregnode_NANYOFM; typedef struct regnode tregnode_NBOUND; typedef struct regnode tregnode_NBOUNDA; typedef struct regnode tregnode_NBOUNDL; typedef struct regnode tregnode_NBOUNDU; typedef struct regnode tregnode_NOTHING; typedef struct regnode tregnode_NPOSIXA; typedef struct regnode tregnode_NPOSIXD; typedef struct regnode tregnode_NPOSIXL; typedef struct regnode tregnode_NPOSIXU; typedef struct regnode_1 tregnode_OPEN; typedef struct regnode_1 tregnode_OPFAIL; typedef struct regnode tregnode_OPTIMIZED; typedef struct regnode tregnode_PLUS; typedef struct regnode tregnode_POSIXA; typedef struct regnode tregnode_POSIXD; typedef struct regnode tregnode_POSIXL; typedef struct regnode tregnode_POSIXU; typedef struct regnode_1 tregnode_PRUNE; typedef struct regnode tregnode_PSEUDO; typedef struct regnode_2 tregnode_REF; typedef struct regnode_2 tregnode_REFF; typedef struct regnode_2 tregnode_REFFA; typedef struct regnode_2 tregnode_REFFAN; typedef struct regnode_2 tregnode_REFFL; typedef struct regnode_2 tregnode_REFFLN; typedef struct regnode_2 tregnode_REFFN; typedef struct regnode_2 tregnode_REFFU; typedef struct regnode_2 tregnode_REFFUN; typedef struct regnode_2 tregnode_REFN; typedef struct regnode_p tregnode_REGEX_SET; typedef struct regnode tregnode_REG_ANY; typedef struct regnode_1 tregnode_RENUM; typedef struct regnode tregnode_SANY; typedef struct regnode tregnode_SBOL; typedef struct regnode tregnode_SEOL; typedef struct regnode_1 tregnode_SKIP; typedef struct regnode tregnode_SRCLOSE; typedef struct regnode tregnode_SROPEN; typedef struct regnode tregnode_STAR; typedef struct regnode tregnode_SUCCEED; typedef struct regnode_1 tregnode_SUSPEND; typedef struct regnode tregnode_TAIL; typedef struct regnode_1 tregnode_TRIE; typedef struct regnode_charclass tregnode_TRIEC; typedef struct regnode_1 tregnode_UNLESSM; typedef struct regnode_1 tregnode_VERB; typedef struct regnode tregnode_WHILEM; /* end typedefs */ /* Regops and State definitions */ #define REGNODE_MAX 111 #define REGMATCH_STATE_MAX 153 /* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte'); */ #define with_t_UTF8ness(op, t_utf8) (((op) << 1) + (cBOOL(t_utf8))) /* -- same, but also with pattern (p8, pb) -- */ #define with_tp_UTF8ness(op, t_utf8, p_utf8) \ (((op) << 2) + (cBOOL(t_utf8) << 1) + cBOOL(p_utf8)) /* The #defines below give both the basic regnode and the expanded version for switching on utf8ness */ #define END 0 /* 0x00 End of program. */ #define END_tb 0 /* 0x000 */ #define END_t8 1 /* 0x001 */ #define END_tb_pb 0 /* 0x000 */ #define END_tb_p8 1 /* 0x001 */ #define END_t8_pb 2 /* 0x002 */ #define END_t8_p8 3 /* 0x003 */ #define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */ #define SUCCEED_tb 2 /* 0x002 */ #define SUCCEED_t8 3 /* 0x003 */ #define SUCCEED_tb_pb 4 /* 0x004 */ #define SUCCEED_tb_p8 5 /* 0x005 */ #define SUCCEED_t8_pb 6 /* 0x006 */ #define SUCCEED_t8_p8 7 /* 0x007 */ #define SBOL 2 /* 0x02 Match "" at beginning of line: /^/, /\A/ */ #define SBOL_tb 4 /* 0x004 */ #define SBOL_t8 5 /* 0x005 */ #define SBOL_tb_pb 8 /* 0x008 */ #define SBOL_tb_p8 9 /* 0x009 */ #define SBOL_t8_pb 10 /* 0x00a */ #define SBOL_t8_p8 11 /* 0x00b */ #define BOL 2 /* 0x02 Match "" at beginning of line: /^/, /\A/ */ #define BOL_tb 4 /* 0x004 */ #define BOL_t8 5 /* 0x005 */ #define BOL_tb_pb 8 /* 0x008 */ #define BOL_tb_p8 9 /* 0x009 */ #define BOL_t8_pb 10 /* 0x00a */ #define BOL_t8_p8 11 /* 0x00b */ #define MBOL 3 /* 0x03 Same, assuming multiline: /^/m */ #define MBOL_tb 6 /* 0x006 */ #define MBOL_t8 7 /* 0x007 */ #define MBOL_tb_pb 12 /* 0x00c */ #define MBOL_tb_p8 13 /* 0x00d */ #define MBOL_t8_pb 14 /* 0x00e */ #define MBOL_t8_p8 15 /* 0x00f */ #define SEOL 4 /* 0x04 Match "" at end of line: /$/ */ #define SEOL_tb 8 /* 0x008 */ #define SEOL_t8 9 /* 0x009 */ #define SEOL_tb_pb 16 /* 0x010 */ #define SEOL_tb_p8 17 /* 0x011 */ #define SEOL_t8_pb 18 /* 0x012 */ #define SEOL_t8_p8 19 /* 0x013 */ #define EOL 4 /* 0x04 Match "" at end of line: /$/ */ #define EOL_tb 8 /* 0x008 */ #define EOL_t8 9 /* 0x009 */ #define EOL_tb_pb 16 /* 0x010 */ #define EOL_tb_p8 17 /* 0x011 */ #define EOL_t8_pb 18 /* 0x012 */ #define EOL_t8_p8 19 /* 0x013 */ #define MEOL 5 /* 0x05 Same, assuming multiline: /$/m */ #define MEOL_tb 10 /* 0x00a */ #define MEOL_t8 11 /* 0x00b */ #define MEOL_tb_pb 20 /* 0x014 */ #define MEOL_tb_p8 21 /* 0x015 */ #define MEOL_t8_pb 22 /* 0x016 */ #define MEOL_t8_p8 23 /* 0x017 */ #define EOS 6 /* 0x06 Match "" at end of string: /\z/ */ #define EOS_tb 12 /* 0x00c */ #define EOS_t8 13 /* 0x00d */ #define EOS_tb_pb 24 /* 0x018 */ #define EOS_tb_p8 25 /* 0x019 */ #define EOS_t8_pb 26 /* 0x01a */ #define EOS_t8_p8 27 /* 0x01b */ #define GPOS 7 /* 0x07 Matches where last m//g left off. */ #define GPOS_tb 14 /* 0x00e */ #define GPOS_t8 15 /* 0x00f */ #define GPOS_tb_pb 28 /* 0x01c */ #define GPOS_tb_p8 29 /* 0x01d */ #define GPOS_t8_pb 30 /* 0x01e */ #define GPOS_t8_p8 31 /* 0x01f */ #define BOUND 8 /* 0x08 Like BOUNDA for non-utf8, otherwise like BOUNDU */ #define BOUND_tb 16 /* 0x010 */ #define BOUND_t8 17 /* 0x011 */ #define BOUND_tb_pb 32 /* 0x020 */ #define BOUND_tb_p8 33 /* 0x021 */ #define BOUND_t8_pb 34 /* 0x022 */ #define BOUND_t8_p8 35 /* 0x023 */ #define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but \w and \W are defined by current locale */ #define BOUNDL_tb 18 /* 0x012 */ #define BOUNDL_t8 19 /* 0x013 */ #define BOUNDL_tb_pb 36 /* 0x024 */ #define BOUNDL_tb_p8 37 /* 0x025 */ #define BOUNDL_t8_pb 38 /* 0x026 */ #define BOUNDL_t8_p8 39 /* 0x027 */ #define BOUNDU 10 /* 0x0a Match "" at any boundary of a given type using /u rules. */ #define BOUNDU_tb 20 /* 0x014 */ #define BOUNDU_t8 21 /* 0x015 */ #define BOUNDU_tb_pb 40 /* 0x028 */ #define BOUNDU_tb_p8 41 /* 0x029 */ #define BOUNDU_t8_pb 42 /* 0x02a */ #define BOUNDU_t8_p8 43 /* 0x02b */ #define BOUNDA 11 /* 0x0b Match "" at any boundary between \w\W or \W\w, where \w is [_a-zA-Z0-9] */ #define BOUNDA_tb 22 /* 0x016 */ #define BOUNDA_t8 23 /* 0x017 */ #define BOUNDA_tb_pb 44 /* 0x02c */ #define BOUNDA_tb_p8 45 /* 0x02d */ #define BOUNDA_t8_pb 46 /* 0x02e */ #define BOUNDA_t8_p8 47 /* 0x02f */ #define NBOUND 12 /* 0x0c Like NBOUNDA for non-utf8, otherwise like BOUNDU */ #define NBOUND_tb 24 /* 0x018 */ #define NBOUND_t8 25 /* 0x019 */ #define NBOUND_tb_pb 48 /* 0x030 */ #define NBOUND_tb_p8 49 /* 0x031 */ #define NBOUND_t8_pb 50 /* 0x032 */ #define NBOUND_t8_p8 51 /* 0x033 */ #define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU, but \w and \W are defined by current locale */ #define NBOUNDL_tb 26 /* 0x01a */ #define NBOUNDL_t8 27 /* 0x01b */ #define NBOUNDL_tb_pb 52 /* 0x034 */ #define NBOUNDL_tb_p8 53 /* 0x035 */ #define NBOUNDL_t8_pb 54 /* 0x036 */ #define NBOUNDL_t8_p8 55 /* 0x037 */ #define NBOUNDU 14 /* 0x0e Match "" at any non-boundary of a given type using using /u rules. */ #define NBOUNDU_tb 28 /* 0x01c */ #define NBOUNDU_t8 29 /* 0x01d */ #define NBOUNDU_tb_pb 56 /* 0x038 */ #define NBOUNDU_tb_p8 57 /* 0x039 */ #define NBOUNDU_t8_pb 58 /* 0x03a */ #define NBOUNDU_t8_p8 59 /* 0x03b */ #define NBOUNDA 15 /* 0x0f Match "" betweeen any \w\w or \W\W, where \w is [_a-zA-Z0-9] */ #define NBOUNDA_tb 30 /* 0x01e */ #define NBOUNDA_t8 31 /* 0x01f */ #define NBOUNDA_tb_pb 60 /* 0x03c */ #define NBOUNDA_tb_p8 61 /* 0x03d */ #define NBOUNDA_t8_pb 62 /* 0x03e */ #define NBOUNDA_t8_p8 63 /* 0x03f */ #define REG_ANY 16 /* 0x10 Match any one character (except newline). */ #define REG_ANY_tb 32 /* 0x020 */ #define REG_ANY_t8 33 /* 0x021 */ #define REG_ANY_tb_pb 64 /* 0x040 */ #define REG_ANY_tb_p8 65 /* 0x041 */ #define REG_ANY_t8_pb 66 /* 0x042 */ #define REG_ANY_t8_p8 67 /* 0x043 */ #define SANY 17 /* 0x11 Match any one character. */ #define SANY_tb 34 /* 0x022 */ #define SANY_t8 35 /* 0x023 */ #define SANY_tb_pb 68 /* 0x044 */ #define SANY_tb_p8 69 /* 0x045 */ #define SANY_t8_pb 70 /* 0x046 */ #define SANY_t8_p8 71 /* 0x047 */ #define ANYOF 18 /* 0x12 Match character in (or not in) this class, single char match only */ #define ANYOF_tb 36 /* 0x024 */ #define ANYOF_t8 37 /* 0x025 */ #define ANYOF_tb_pb 72 /* 0x048 */ #define ANYOF_tb_p8 73 /* 0x049 */ #define ANYOF_t8_pb 74 /* 0x04a */ #define ANYOF_t8_p8 75 /* 0x04b */ #define ANYOFD 19 /* 0x13 Like ANYOF, but /d is in effect */ #define ANYOFD_tb 38 /* 0x026 */ #define ANYOFD_t8 39 /* 0x027 */ #define ANYOFD_tb_pb 76 /* 0x04c */ #define ANYOFD_tb_p8 77 /* 0x04d */ #define ANYOFD_t8_pb 78 /* 0x04e */ #define ANYOFD_t8_p8 79 /* 0x04f */ #define ANYOFL 20 /* 0x14 Like ANYOF, but /l is in effect */ #define ANYOFL_tb 40 /* 0x028 */ #define ANYOFL_t8 41 /* 0x029 */ #define ANYOFL_tb_pb 80 /* 0x050 */ #define ANYOFL_tb_p8 81 /* 0x051 */ #define ANYOFL_t8_pb 82 /* 0x052 */ #define ANYOFL_t8_p8 83 /* 0x053 */ #define ANYOFPOSIXL 21 /* 0x15 Like ANYOFL, but matches [[:posix:]] classes */ #define ANYOFPOSIXL_tb 42 /* 0x02a */ #define ANYOFPOSIXL_t8 43 /* 0x02b */ #define ANYOFPOSIXL_tb_pb 84 /* 0x054 */ #define ANYOFPOSIXL_tb_p8 85 /* 0x055 */ #define ANYOFPOSIXL_t8_pb 86 /* 0x056 */ #define ANYOFPOSIXL_t8_p8 87 /* 0x057 */ #define ANYOFH 22 /* 0x16 Like ANYOF, but only has "High" matches, none in the bitmap; the flags field contains the lowest matchable UTF-8 start byte */ #define ANYOFH_tb 44 /* 0x02c */ #define ANYOFH_t8 45 /* 0x02d */ #define ANYOFH_tb_pb 88 /* 0x058 */ #define ANYOFH_tb_p8 89 /* 0x059 */ #define ANYOFH_t8_pb 90 /* 0x05a */ #define ANYOFH_t8_p8 91 /* 0x05b */ #define ANYOFHb 23 /* 0x17 Like ANYOFH, but all matches share the same UTF-8 start byte, given in the flags field */ #define ANYOFHb_tb 46 /* 0x02e */ #define ANYOFHb_t8 47 /* 0x02f */ #define ANYOFHb_tb_pb 92 /* 0x05c */ #define ANYOFHb_tb_p8 93 /* 0x05d */ #define ANYOFHb_t8_pb 94 /* 0x05e */ #define ANYOFHb_t8_p8 95 /* 0x05f */ #define ANYOFHr 24 /* 0x18 Like ANYOFH, but the flags field contains packed bounds for all matchable UTF-8 start bytes. */ #define ANYOFHr_tb 48 /* 0x030 */ #define ANYOFHr_t8 49 /* 0x031 */ #define ANYOFHr_tb_pb 96 /* 0x060 */ #define ANYOFHr_tb_p8 97 /* 0x061 */ #define ANYOFHr_t8_pb 98 /* 0x062 */ #define ANYOFHr_t8_p8 99 /* 0x063 */ #define ANYOFHs 25 /* 0x19 Like ANYOFHb, but has a string field that gives the leading matchable UTF-8 bytes; flags field is len */ #define ANYOFHs_tb 50 /* 0x032 */ #define ANYOFHs_t8 51 /* 0x033 */ #define ANYOFHs_tb_pb 100 /* 0x064 */ #define ANYOFHs_tb_p8 101 /* 0x065 */ #define ANYOFHs_t8_pb 102 /* 0x066 */ #define ANYOFHs_t8_p8 103 /* 0x067 */ #define ANYOFR 26 /* 0x1a Matches any character in the range given by its packed args: upper 12 bits is the max delta from the base lower 20; the flags field contains the lowest matchable UTF-8 start byte */ #define ANYOFR_tb 52 /* 0x034 */ #define ANYOFR_t8 53 /* 0x035 */ #define ANYOFR_tb_pb 104 /* 0x068 */ #define ANYOFR_tb_p8 105 /* 0x069 */ #define ANYOFR_t8_pb 106 /* 0x06a */ #define ANYOFR_t8_p8 107 /* 0x06b */ #define ANYOFRb 27 /* 0x1b Like ANYOFR, but all matches share the same UTF-8 start byte, given in the flags field */ #define ANYOFRb_tb 54 /* 0x036 */ #define ANYOFRb_t8 55 /* 0x037 */ #define ANYOFRb_tb_pb 108 /* 0x06c */ #define ANYOFRb_tb_p8 109 /* 0x06d */ #define ANYOFRb_t8_pb 110 /* 0x06e */ #define ANYOFRb_t8_p8 111 /* 0x06f */ #define ANYOFHbbm 28 /* 0x1c Like ANYOFHb, but only for 2-byte UTF-8 characters; uses a bitmap to match the continuation byte */ #define ANYOFHbbm_tb 56 /* 0x038 */ #define ANYOFHbbm_t8 57 /* 0x039 */ #define ANYOFHbbm_tb_pb 112 /* 0x070 */ #define ANYOFHbbm_tb_p8 113 /* 0x071 */ #define ANYOFHbbm_t8_pb 114 /* 0x072 */ #define ANYOFHbbm_t8_p8 115 /* 0x073 */ #define ANYOFM 29 /* 0x1d Like ANYOF, but matches an invariant byte as determined by the mask and arg */ #define ANYOFM_tb 58 /* 0x03a */ #define ANYOFM_t8 59 /* 0x03b */ #define ANYOFM_tb_pb 116 /* 0x074 */ #define ANYOFM_tb_p8 117 /* 0x075 */ #define ANYOFM_t8_pb 118 /* 0x076 */ #define ANYOFM_t8_p8 119 /* 0x077 */ #define NANYOFM 30 /* 0x1e complement of ANYOFM */ #define NANYOFM_tb 60 /* 0x03c */ #define NANYOFM_t8 61 /* 0x03d */ #define NANYOFM_tb_pb 120 /* 0x078 */ #define NANYOFM_tb_p8 121 /* 0x079 */ #define NANYOFM_t8_pb 122 /* 0x07a */ #define NANYOFM_t8_p8 123 /* 0x07b */ #define POSIXD 31 /* 0x1f Some [[:class:]] under /d; the FLAGS field gives which one */ #define POSIXD_tb 62 /* 0x03e */ #define POSIXD_t8 63 /* 0x03f */ #define POSIXD_tb_pb 124 /* 0x07c */ #define POSIXD_tb_p8 125 /* 0x07d */ #define POSIXD_t8_pb 126 /* 0x07e */ #define POSIXD_t8_p8 127 /* 0x07f */ #define POSIXL 32 /* 0x20 Some [[:class:]] under /l; the FLAGS field gives which one */ #define POSIXL_tb 64 /* 0x040 */ #define POSIXL_t8 65 /* 0x041 */ #define POSIXL_tb_pb 128 /* 0x080 */ #define POSIXL_tb_p8 129 /* 0x081 */ #define POSIXL_t8_pb 130 /* 0x082 */ #define POSIXL_t8_p8 131 /* 0x083 */ #define POSIXU 33 /* 0x21 Some [[:class:]] under /u; the FLAGS field gives which one */ #define POSIXU_tb 66 /* 0x042 */ #define POSIXU_t8 67 /* 0x043 */ #define POSIXU_tb_pb 132 /* 0x084 */ #define POSIXU_tb_p8 133 /* 0x085 */ #define POSIXU_t8_pb 134 /* 0x086 */ #define POSIXU_t8_p8 135 /* 0x087 */ #define POSIXA 34 /* 0x22 Some [[:class:]] under /a; the FLAGS field gives which one */ #define POSIXA_tb 68 /* 0x044 */ #define POSIXA_t8 69 /* 0x045 */ #define POSIXA_tb_pb 136 /* 0x088 */ #define POSIXA_tb_p8 137 /* 0x089 */ #define POSIXA_t8_pb 138 /* 0x08a */ #define POSIXA_t8_p8 139 /* 0x08b */ #define NPOSIXD 35 /* 0x23 complement of POSIXD, [[:^class:]] */ #define NPOSIXD_tb 70 /* 0x046 */ #define NPOSIXD_t8 71 /* 0x047 */ #define NPOSIXD_tb_pb 140 /* 0x08c */ #define NPOSIXD_tb_p8 141 /* 0x08d */ #define NPOSIXD_t8_pb 142 /* 0x08e */ #define NPOSIXD_t8_p8 143 /* 0x08f */ #define NPOSIXL 36 /* 0x24 complement of POSIXL, [[:^class:]] */ #define NPOSIXL_tb 72 /* 0x048 */ #define NPOSIXL_t8 73 /* 0x049 */ #define NPOSIXL_tb_pb 144 /* 0x090 */ #define NPOSIXL_tb_p8 145 /* 0x091 */ #define NPOSIXL_t8_pb 146 /* 0x092 */ #define NPOSIXL_t8_p8 147 /* 0x093 */ #define NPOSIXU 37 /* 0x25 complement of POSIXU, [[:^class:]] */ #define NPOSIXU_tb 74 /* 0x04a */ #define NPOSIXU_t8 75 /* 0x04b */ #define NPOSIXU_tb_pb 148 /* 0x094 */ #define NPOSIXU_tb_p8 149 /* 0x095 */ #define NPOSIXU_t8_pb 150 /* 0x096 */ #define NPOSIXU_t8_p8 151 /* 0x097 */ #define NPOSIXA 38 /* 0x26 complement of POSIXA, [[:^class:]] */ #define NPOSIXA_tb 76 /* 0x04c */ #define NPOSIXA_t8 77 /* 0x04d */ #define NPOSIXA_tb_pb 152 /* 0x098 */ #define NPOSIXA_tb_p8 153 /* 0x099 */ #define NPOSIXA_t8_pb 154 /* 0x09a */ #define NPOSIXA_t8_p8 155 /* 0x09b */ #define CLUMP 39 /* 0x27 Match any extended grapheme cluster sequence */ #define CLUMP_tb 78 /* 0x04e */ #define CLUMP_t8 79 /* 0x04f */ #define CLUMP_tb_pb 156 /* 0x09c */ #define CLUMP_tb_p8 157 /* 0x09d */ #define CLUMP_t8_pb 158 /* 0x09e */ #define CLUMP_t8_p8 159 /* 0x09f */ #define BRANCH 40 /* 0x28 Match this alternative, or the next... */ #define BRANCH_tb 80 /* 0x050 */ #define BRANCH_t8 81 /* 0x051 */ #define BRANCH_tb_pb 160 /* 0x0a0 */ #define BRANCH_tb_p8 161 /* 0x0a1 */ #define BRANCH_t8_pb 162 /* 0x0a2 */ #define BRANCH_t8_p8 163 /* 0x0a3 */ #define EXACT 41 /* 0x29 Match this string (flags field is the length). */ #define EXACT_tb 82 /* 0x052 */ #define EXACT_t8 83 /* 0x053 */ #define EXACT_tb_pb 164 /* 0x0a4 */ #define EXACT_tb_p8 165 /* 0x0a5 */ #define EXACT_t8_pb 166 /* 0x0a6 */ #define EXACT_t8_p8 167 /* 0x0a7 */ #define LEXACT 42 /* 0x2a Match this long string (preceded by length; flags unused). */ #define LEXACT_tb 84 /* 0x054 */ #define LEXACT_t8 85 /* 0x055 */ #define LEXACT_tb_pb 168 /* 0x0a8 */ #define LEXACT_tb_p8 169 /* 0x0a9 */ #define LEXACT_t8_pb 170 /* 0x0aa */ #define LEXACT_t8_p8 171 /* 0x0ab */ #define EXACTL 43 /* 0x2b Like EXACT, but /l is in effect (used so locale-related warnings can be checked for) */ #define EXACTL_tb 86 /* 0x056 */ #define EXACTL_t8 87 /* 0x057 */ #define EXACTL_tb_pb 172 /* 0x0ac */ #define EXACTL_tb_p8 173 /* 0x0ad */ #define EXACTL_t8_pb 174 /* 0x0ae */ #define EXACTL_t8_p8 175 /* 0x0af */ #define EXACTF 44 /* 0x2c Like EXACT, but match using /id rules; (string not UTF-8, ASCII folded; non-ASCII not) */ #define EXACTF_tb 88 /* 0x058 */ #define EXACTF_t8 89 /* 0x059 */ #define EXACTF_tb_pb 176 /* 0x0b0 */ #define EXACTF_tb_p8 177 /* 0x0b1 */ #define EXACTF_t8_pb 178 /* 0x0b2 */ #define EXACTF_t8_p8 179 /* 0x0b3 */ #define EXACTFL 45 /* 0x2d Like EXACT, but match using /il rules; (string not likely to be folded) */ #define EXACTFL_tb 90 /* 0x05a */ #define EXACTFL_t8 91 /* 0x05b */ #define EXACTFL_tb_pb 180 /* 0x0b4 */ #define EXACTFL_tb_p8 181 /* 0x0b5 */ #define EXACTFL_t8_pb 182 /* 0x0b6 */ #define EXACTFL_t8_p8 183 /* 0x0b7 */ #define EXACTFU 46 /* 0x2e Like EXACT, but match using /iu rules; (string folded) */ #define EXACTFU_tb 92 /* 0x05c */ #define EXACTFU_t8 93 /* 0x05d */ #define EXACTFU_tb_pb 184 /* 0x0b8 */ #define EXACTFU_tb_p8 185 /* 0x0b9 */ #define EXACTFU_t8_pb 186 /* 0x0ba */ #define EXACTFU_t8_p8 187 /* 0x0bb */ #define EXACTFAA 47 /* 0x2f Like EXACT, but match using /iaa rules; (string folded except MICRO in non-UTF8 patterns; doesn't contain SHARP S unless UTF-8; folded length <= unfolded) */ #define EXACTFAA_tb 94 /* 0x05e */ #define EXACTFAA_t8 95 /* 0x05f */ #define EXACTFAA_tb_pb 188 /* 0x0bc */ #define EXACTFAA_tb_p8 189 /* 0x0bd */ #define EXACTFAA_t8_pb 190 /* 0x0be */ #define EXACTFAA_t8_p8 191 /* 0x0bf */ #define EXACTFAA_NO_TRIE 48 /* 0x30 Like EXACTFAA, (string not UTF-8, folded except: MICRO, SHARP S; folded length <= unfolded, not currently trie-able) */ #define EXACTFAA_NO_TRIE_tb 96 /* 0x060 */ #define EXACTFAA_NO_TRIE_t8 97 /* 0x061 */ #define EXACTFAA_NO_TRIE_tb_pb 192 /* 0x0c0 */ #define EXACTFAA_NO_TRIE_tb_p8 193 /* 0x0c1 */ #define EXACTFAA_NO_TRIE_t8_pb 194 /* 0x0c2 */ #define EXACTFAA_NO_TRIE_t8_p8 195 /* 0x0c3 */ #define EXACTFUP 49 /* 0x31 Like EXACT, but match using /iu rules; (string not UTF-8, folded except MICRO: hence Problematic) */ #define EXACTFUP_tb 98 /* 0x062 */ #define EXACTFUP_t8 99 /* 0x063 */ #define EXACTFUP_tb_pb 196 /* 0x0c4 */ #define EXACTFUP_tb_p8 197 /* 0x0c5 */ #define EXACTFUP_t8_pb 198 /* 0x0c6 */ #define EXACTFUP_t8_p8 199 /* 0x0c7 */ #define EXACTFLU8 50 /* 0x32 Like EXACTFU, but use /il, UTF-8, (string is folded, and everything in it is above 255 */ #define EXACTFLU8_tb 100 /* 0x064 */ #define EXACTFLU8_t8 101 /* 0x065 */ #define EXACTFLU8_tb_pb 200 /* 0x0c8 */ #define EXACTFLU8_tb_p8 201 /* 0x0c9 */ #define EXACTFLU8_t8_pb 202 /* 0x0ca */ #define EXACTFLU8_t8_p8 203 /* 0x0cb */ #define EXACT_REQ8 51 /* 0x33 Like EXACT, but only UTF-8 encoded targets can match */ #define EXACT_REQ8_tb 102 /* 0x066 */ #define EXACT_REQ8_t8 103 /* 0x067 */ #define EXACT_REQ8_tb_pb 204 /* 0x0cc */ #define EXACT_REQ8_tb_p8 205 /* 0x0cd */ #define EXACT_REQ8_t8_pb 206 /* 0x0ce */ #define EXACT_REQ8_t8_p8 207 /* 0x0cf */ #define LEXACT_REQ8 52 /* 0x34 Like LEXACT, but only UTF-8 encoded targets can match */ #define LEXACT_REQ8_tb 104 /* 0x068 */ #define LEXACT_REQ8_t8 105 /* 0x069 */ #define LEXACT_REQ8_tb_pb 208 /* 0x0d0 */ #define LEXACT_REQ8_tb_p8 209 /* 0x0d1 */ #define LEXACT_REQ8_t8_pb 210 /* 0x0d2 */ #define LEXACT_REQ8_t8_p8 211 /* 0x0d3 */ #define EXACTFU_REQ8 53 /* 0x35 Like EXACTFU, but only UTF-8 encoded targets can match */ #define EXACTFU_REQ8_tb 106 /* 0x06a */ #define EXACTFU_REQ8_t8 107 /* 0x06b */ #define EXACTFU_REQ8_tb_pb 212 /* 0x0d4 */ #define EXACTFU_REQ8_tb_p8 213 /* 0x0d5 */ #define EXACTFU_REQ8_t8_pb 214 /* 0x0d6 */ #define EXACTFU_REQ8_t8_p8 215 /* 0x0d7 */ #define EXACTFU_S_EDGE 54 /* 0x36 /di rules, but nothing in it precludes /ui, except begins and/or ends with [Ss]; (string not UTF-8; compile-time only) */ #define EXACTFU_S_EDGE_tb 108 /* 0x06c */ #define EXACTFU_S_EDGE_t8 109 /* 0x06d */ #define EXACTFU_S_EDGE_tb_pb 216 /* 0x0d8 */ #define EXACTFU_S_EDGE_tb_p8 217 /* 0x0d9 */ #define EXACTFU_S_EDGE_t8_pb 218 /* 0x0da */ #define EXACTFU_S_EDGE_t8_p8 219 /* 0x0db */ #define LNBREAK 55 /* 0x37 generic newline pattern */ #define LNBREAK_tb 110 /* 0x06e */ #define LNBREAK_t8 111 /* 0x06f */ #define LNBREAK_tb_pb 220 /* 0x0dc */ #define LNBREAK_tb_p8 221 /* 0x0dd */ #define LNBREAK_t8_pb 222 /* 0x0de */ #define LNBREAK_t8_p8 223 /* 0x0df */ #define TRIE 56 /* 0x38 Match many EXACT(F[ALU]?)? at once. flags==type */ #define TRIE_tb 112 /* 0x070 */ #define TRIE_t8 113 /* 0x071 */ #define TRIE_tb_pb 224 /* 0x0e0 */ #define TRIE_tb_p8 225 /* 0x0e1 */ #define TRIE_t8_pb 226 /* 0x0e2 */ #define TRIE_t8_p8 227 /* 0x0e3 */ #define TRIEC 57 /* 0x39 Same as TRIE, but with embedded charclass data */ #define TRIEC_tb 114 /* 0x072 */ #define TRIEC_t8 115 /* 0x073 */ #define TRIEC_tb_pb 228 /* 0x0e4 */ #define TRIEC_tb_p8 229 /* 0x0e5 */ #define TRIEC_t8_pb 230 /* 0x0e6 */ #define TRIEC_t8_p8 231 /* 0x0e7 */ #define AHOCORASICK 58 /* 0x3a Aho Corasick stclass. flags==type */ #define AHOCORASICK_tb 116 /* 0x074 */ #define AHOCORASICK_t8 117 /* 0x075 */ #define AHOCORASICK_tb_pb 232 /* 0x0e8 */ #define AHOCORASICK_tb_p8 233 /* 0x0e9 */ #define AHOCORASICK_t8_pb 234 /* 0x0ea */ #define AHOCORASICK_t8_p8 235 /* 0x0eb */ #define AHOCORASICKC 59 /* 0x3b Same as AHOCORASICK, but with embedded charclass data */ #define AHOCORASICKC_tb 118 /* 0x076 */ #define AHOCORASICKC_t8 119 /* 0x077 */ #define AHOCORASICKC_tb_pb 236 /* 0x0ec */ #define AHOCORASICKC_tb_p8 237 /* 0x0ed */ #define AHOCORASICKC_t8_pb 238 /* 0x0ee */ #define AHOCORASICKC_t8_p8 239 /* 0x0ef */ #define NOTHING 60 /* 0x3c Match empty string. */ #define NOTHING_tb 120 /* 0x078 */ #define NOTHING_t8 121 /* 0x079 */ #define NOTHING_tb_pb 240 /* 0x0f0 */ #define NOTHING_tb_p8 241 /* 0x0f1 */ #define NOTHING_t8_pb 242 /* 0x0f2 */ #define NOTHING_t8_p8 243 /* 0x0f3 */ #define TAIL 61 /* 0x3d Match empty string. Can jump here from outside. */ #define TAIL_tb 122 /* 0x07a */ #define TAIL_t8 123 /* 0x07b */ #define TAIL_tb_pb 244 /* 0x0f4 */ #define TAIL_tb_p8 245 /* 0x0f5 */ #define TAIL_t8_pb 246 /* 0x0f6 */ #define TAIL_t8_p8 247 /* 0x0f7 */ #define STAR 62 /* 0x3e Match this (simple) thing 0 or more times: /A{0,}B/ where A is width 1 char */ #define STAR_tb 124 /* 0x07c */ #define STAR_t8 125 /* 0x07d */ #define STAR_tb_pb 248 /* 0x0f8 */ #define STAR_tb_p8 249 /* 0x0f9 */ #define STAR_t8_pb 250 /* 0x0fa */ #define STAR_t8_p8 251 /* 0x0fb */ #define PLUS 63 /* 0x3f Match this (simple) thing 1 or more times: /A{1,}B/ where A is width 1 char */ #define PLUS_tb 126 /* 0x07e */ #define PLUS_t8 127 /* 0x07f */ #define PLUS_tb_pb 252 /* 0x0fc */ #define PLUS_tb_p8 253 /* 0x0fd */ #define PLUS_t8_pb 254 /* 0x0fe */ #define PLUS_t8_p8 255 /* 0x0ff */ #define CURLY 64 /* 0x40 Match this (simple) thing {n,m} times: /A{m,n}B/ where A is width 1 char */ #define CURLY_tb 128 /* 0x080 */ #define CURLY_t8 129 /* 0x081 */ #define CURLY_tb_pb 256 /* 0x100 */ #define CURLY_tb_p8 257 /* 0x101 */ #define CURLY_t8_pb 258 /* 0x102 */ #define CURLY_t8_p8 259 /* 0x103 */ #define CURLYN 65 /* 0x41 Capture next-after-this simple thing: /(A){m,n}B/ where A is width 1 char */ #define CURLYN_tb 130 /* 0x082 */ #define CURLYN_t8 131 /* 0x083 */ #define CURLYN_tb_pb 260 /* 0x104 */ #define CURLYN_tb_p8 261 /* 0x105 */ #define CURLYN_t8_pb 262 /* 0x106 */ #define CURLYN_t8_p8 263 /* 0x107 */ #define CURLYM 66 /* 0x42 Capture this medium-complex thing {n,m} times: /(A){m,n}B/ where A is fixed-length */ #define CURLYM_tb 132 /* 0x084 */ #define CURLYM_t8 133 /* 0x085 */ #define CURLYM_tb_pb 264 /* 0x108 */ #define CURLYM_tb_p8 265 /* 0x109 */ #define CURLYM_t8_pb 266 /* 0x10a */ #define CURLYM_t8_p8 267 /* 0x10b */ #define CURLYX 67 /* 0x43 Match/Capture this complex thing {n,m} times. */ #define CURLYX_tb 134 /* 0x086 */ #define CURLYX_t8 135 /* 0x087 */ #define CURLYX_tb_pb 268 /* 0x10c */ #define CURLYX_tb_p8 269 /* 0x10d */ #define CURLYX_t8_pb 270 /* 0x10e */ #define CURLYX_t8_p8 271 /* 0x10f */ #define WHILEM 68 /* 0x44 Do curly processing and see if rest matches. */ #define WHILEM_tb 136 /* 0x088 */ #define WHILEM_t8 137 /* 0x089 */ #define WHILEM_tb_pb 272 /* 0x110 */ #define WHILEM_tb_p8 273 /* 0x111 */ #define WHILEM_t8_pb 274 /* 0x112 */ #define WHILEM_t8_p8 275 /* 0x113 */ #define OPEN 69 /* 0x45 Mark this point in input as start of #n. */ #define OPEN_tb 138 /* 0x08a */ #define OPEN_t8 139 /* 0x08b */ #define OPEN_tb_pb 276 /* 0x114 */ #define OPEN_tb_p8 277 /* 0x115 */ #define OPEN_t8_pb 278 /* 0x116 */ #define OPEN_t8_p8 279 /* 0x117 */ #define CLOSE 70 /* 0x46 Close corresponding OPEN of #n. */ #define CLOSE_tb 140 /* 0x08c */ #define CLOSE_t8 141 /* 0x08d */ #define CLOSE_tb_pb 280 /* 0x118 */ #define CLOSE_tb_p8 281 /* 0x119 */ #define CLOSE_t8_pb 282 /* 0x11a */ #define CLOSE_t8_p8 283 /* 0x11b */ #define SROPEN 71 /* 0x47 Same as OPEN, but for script run */ #define SROPEN_tb 142 /* 0x08e */ #define SROPEN_t8 143 /* 0x08f */ #define SROPEN_tb_pb 284 /* 0x11c */ #define SROPEN_tb_p8 285 /* 0x11d */ #define SROPEN_t8_pb 286 /* 0x11e */ #define SROPEN_t8_p8 287 /* 0x11f */ #define SRCLOSE 72 /* 0x48 Close preceding SROPEN */ #define SRCLOSE_tb 144 /* 0x090 */ #define SRCLOSE_t8 145 /* 0x091 */ #define SRCLOSE_tb_pb 288 /* 0x120 */ #define SRCLOSE_tb_p8 289 /* 0x121 */ #define SRCLOSE_t8_pb 290 /* 0x122 */ #define SRCLOSE_t8_p8 291 /* 0x123 */ #define REF 73 /* 0x49 Match some already matched string */ #define REF_tb 146 /* 0x092 */ #define REF_t8 147 /* 0x093 */ #define REF_tb_pb 292 /* 0x124 */ #define REF_tb_p8 293 /* 0x125 */ #define REF_t8_pb 294 /* 0x126 */ #define REF_t8_p8 295 /* 0x127 */ #define REFF 74 /* 0x4a Match already matched string, using /di rules. */ #define REFF_tb 148 /* 0x094 */ #define REFF_t8 149 /* 0x095 */ #define REFF_tb_pb 296 /* 0x128 */ #define REFF_tb_p8 297 /* 0x129 */ #define REFF_t8_pb 298 /* 0x12a */ #define REFF_t8_p8 299 /* 0x12b */ #define REFFL 75 /* 0x4b Match already matched string, using /li rules. */ #define REFFL_tb 150 /* 0x096 */ #define REFFL_t8 151 /* 0x097 */ #define REFFL_tb_pb 300 /* 0x12c */ #define REFFL_tb_p8 301 /* 0x12d */ #define REFFL_t8_pb 302 /* 0x12e */ #define REFFL_t8_p8 303 /* 0x12f */ #define REFFU 76 /* 0x4c Match already matched string, usng /ui. */ #define REFFU_tb 152 /* 0x098 */ #define REFFU_t8 153 /* 0x099 */ #define REFFU_tb_pb 304 /* 0x130 */ #define REFFU_tb_p8 305 /* 0x131 */ #define REFFU_t8_pb 306 /* 0x132 */ #define REFFU_t8_p8 307 /* 0x133 */ #define REFFA 77 /* 0x4d Match already matched string, using /aai rules. */ #define REFFA_tb 154 /* 0x09a */ #define REFFA_t8 155 /* 0x09b */ #define REFFA_tb_pb 308 /* 0x134 */ #define REFFA_tb_p8 309 /* 0x135 */ #define REFFA_t8_pb 310 /* 0x136 */ #define REFFA_t8_p8 311 /* 0x137 */ #define REFN 78 /* 0x4e Match some already matched string */ #define REFN_tb 156 /* 0x09c */ #define REFN_t8 157 /* 0x09d */ #define REFN_tb_pb 312 /* 0x138 */ #define REFN_tb_p8 313 /* 0x139 */ #define REFN_t8_pb 314 /* 0x13a */ #define REFN_t8_p8 315 /* 0x13b */ #define REFFN 79 /* 0x4f Match already matched string, using /di rules. */ #define REFFN_tb 158 /* 0x09e */ #define REFFN_t8 159 /* 0x09f */ #define REFFN_tb_pb 316 /* 0x13c */ #define REFFN_tb_p8 317 /* 0x13d */ #define REFFN_t8_pb 318 /* 0x13e */ #define REFFN_t8_p8 319 /* 0x13f */ #define REFFLN 80 /* 0x50 Match already matched string, using /li rules. */ #define REFFLN_tb 160 /* 0x0a0 */ #define REFFLN_t8 161 /* 0x0a1 */ #define REFFLN_tb_pb 320 /* 0x140 */ #define REFFLN_tb_p8 321 /* 0x141 */ #define REFFLN_t8_pb 322 /* 0x142 */ #define REFFLN_t8_p8 323 /* 0x143 */ #define REFFUN 81 /* 0x51 Match already matched string, using /ui rules. */ #define REFFUN_tb 162 /* 0x0a2 */ #define REFFUN_t8 163 /* 0x0a3 */ #define REFFUN_tb_pb 324 /* 0x144 */ #define REFFUN_tb_p8 325 /* 0x145 */ #define REFFUN_t8_pb 326 /* 0x146 */ #define REFFUN_t8_p8 327 /* 0x147 */ #define REFFAN 82 /* 0x52 Match already matched string, using /aai rules. */ #define REFFAN_tb 164 /* 0x0a4 */ #define REFFAN_t8 165 /* 0x0a5 */ #define REFFAN_tb_pb 328 /* 0x148 */ #define REFFAN_tb_p8 329 /* 0x149 */ #define REFFAN_t8_pb 330 /* 0x14a */ #define REFFAN_t8_p8 331 /* 0x14b */ #define LONGJMP 83 /* 0x53 Jump far away. */ #define LONGJMP_tb 166 /* 0x0a6 */ #define LONGJMP_t8 167 /* 0x0a7 */ #define LONGJMP_tb_pb 332 /* 0x14c */ #define LONGJMP_tb_p8 333 /* 0x14d */ #define LONGJMP_t8_pb 334 /* 0x14e */ #define LONGJMP_t8_p8 335 /* 0x14f */ #define BRANCHJ 84 /* 0x54 BRANCH with long offset. */ #define BRANCHJ_tb 168 /* 0x0a8 */ #define BRANCHJ_t8 169 /* 0x0a9 */ #define BRANCHJ_tb_pb 336 /* 0x150 */ #define BRANCHJ_tb_p8 337 /* 0x151 */ #define BRANCHJ_t8_pb 338 /* 0x152 */ #define BRANCHJ_t8_p8 339 /* 0x153 */ #define IFMATCH 85 /* 0x55 Succeeds if the following matches; non-zero flags "f", next_off "o" means lookbehind assertion starting "f..(f-o)" characters before current */ #define IFMATCH_tb 170 /* 0x0aa */ #define IFMATCH_t8 171 /* 0x0ab */ #define IFMATCH_tb_pb 340 /* 0x154 */ #define IFMATCH_tb_p8 341 /* 0x155 */ #define IFMATCH_t8_pb 342 /* 0x156 */ #define IFMATCH_t8_p8 343 /* 0x157 */ #define UNLESSM 86 /* 0x56 Fails if the following matches; non-zero flags "f", next_off "o" means lookbehind assertion starting "f..(f-o)" characters before current */ #define UNLESSM_tb 172 /* 0x0ac */ #define UNLESSM_t8 173 /* 0x0ad */ #define UNLESSM_tb_pb 344 /* 0x158 */ #define UNLESSM_tb_p8 345 /* 0x159 */ #define UNLESSM_t8_pb 346 /* 0x15a */ #define UNLESSM_t8_p8 347 /* 0x15b */ #define SUSPEND 87 /* 0x57 "Independent" sub-RE. */ #define SUSPEND_tb 174 /* 0x0ae */ #define SUSPEND_t8 175 /* 0x0af */ #define SUSPEND_tb_pb 348 /* 0x15c */ #define SUSPEND_tb_p8 349 /* 0x15d */ #define SUSPEND_t8_pb 350 /* 0x15e */ #define SUSPEND_t8_p8 351 /* 0x15f */ #define IFTHEN 88 /* 0x58 Switch, should be preceded by switcher. */ #define IFTHEN_tb 176 /* 0x0b0 */ #define IFTHEN_t8 177 /* 0x0b1 */ #define IFTHEN_tb_pb 352 /* 0x160 */ #define IFTHEN_tb_p8 353 /* 0x161 */ #define IFTHEN_t8_pb 354 /* 0x162 */ #define IFTHEN_t8_p8 355 /* 0x163 */ #define GROUPP 89 /* 0x59 Whether the group matched. */ #define GROUPP_tb 178 /* 0x0b2 */ #define GROUPP_t8 179 /* 0x0b3 */ #define GROUPP_tb_pb 356 /* 0x164 */ #define GROUPP_tb_p8 357 /* 0x165 */ #define GROUPP_t8_pb 358 /* 0x166 */ #define GROUPP_t8_p8 359 /* 0x167 */ #define EVAL 90 /* 0x5a Execute some Perl code. */ #define EVAL_tb 180 /* 0x0b4 */ #define EVAL_t8 181 /* 0x0b5 */ #define EVAL_tb_pb 360 /* 0x168 */ #define EVAL_tb_p8 361 /* 0x169 */ #define EVAL_t8_pb 362 /* 0x16a */ #define EVAL_t8_p8 363 /* 0x16b */ #define MINMOD 91 /* 0x5b Next operator is not greedy. */ #define MINMOD_tb 182 /* 0x0b6 */ #define MINMOD_t8 183 /* 0x0b7 */ #define MINMOD_tb_pb 364 /* 0x16c */ #define MINMOD_tb_p8 365 /* 0x16d */ #define MINMOD_t8_pb 366 /* 0x16e */ #define MINMOD_t8_p8 367 /* 0x16f */ #define LOGICAL 92 /* 0x5c Next opcode should set the flag only. */ #define LOGICAL_tb 184 /* 0x0b8 */ #define LOGICAL_t8 185 /* 0x0b9 */ #define LOGICAL_tb_pb 368 /* 0x170 */ #define LOGICAL_tb_p8 369 /* 0x171 */ #define LOGICAL_t8_pb 370 /* 0x172 */ #define LOGICAL_t8_p8 371 /* 0x173 */ #define RENUM 93 /* 0x5d Group with independently numbered parens. */ #define RENUM_tb 186 /* 0x0ba */ #define RENUM_t8 187 /* 0x0bb */ #define RENUM_tb_pb 372 /* 0x174 */ #define RENUM_tb_p8 373 /* 0x175 */ #define RENUM_t8_pb 374 /* 0x176 */ #define RENUM_t8_p8 375 /* 0x177 */ #define GOSUB 94 /* 0x5e recurse to paren arg1 at (signed) ofs arg2 */ #define GOSUB_tb 188 /* 0x0bc */ #define GOSUB_t8 189 /* 0x0bd */ #define GOSUB_tb_pb 376 /* 0x178 */ #define GOSUB_tb_p8 377 /* 0x179 */ #define GOSUB_t8_pb 378 /* 0x17a */ #define GOSUB_t8_p8 379 /* 0x17b */ #define GROUPPN 95 /* 0x5f Whether the group matched. */ #define GROUPPN_tb 190 /* 0x0be */ #define GROUPPN_t8 191 /* 0x0bf */ #define GROUPPN_tb_pb 380 /* 0x17c */ #define GROUPPN_tb_p8 381 /* 0x17d */ #define GROUPPN_t8_pb 382 /* 0x17e */ #define GROUPPN_t8_p8 383 /* 0x17f */ #define INSUBP 96 /* 0x60 Whether we are in a specific recurse. */ #define INSUBP_tb 192 /* 0x0c0 */ #define INSUBP_t8 193 /* 0x0c1 */ #define INSUBP_tb_pb 384 /* 0x180 */ #define INSUBP_tb_p8 385 /* 0x181 */ #define INSUBP_t8_pb 386 /* 0x182 */ #define INSUBP_t8_p8 387 /* 0x183 */ #define DEFINEP 97 /* 0x61 Never execute directly. */ #define DEFINEP_tb 194 /* 0x0c2 */ #define DEFINEP_t8 195 /* 0x0c3 */ #define DEFINEP_tb_pb 388 /* 0x184 */ #define DEFINEP_tb_p8 389 /* 0x185 */ #define DEFINEP_t8_pb 390 /* 0x186 */ #define DEFINEP_t8_p8 391 /* 0x187 */ #define ENDLIKE 98 /* 0x62 Used only for the type field of verbs */ #define ENDLIKE_tb 196 /* 0x0c4 */ #define ENDLIKE_t8 197 /* 0x0c5 */ #define ENDLIKE_tb_pb 392 /* 0x188 */ #define ENDLIKE_tb_p8 393 /* 0x189 */ #define ENDLIKE_t8_pb 394 /* 0x18a */ #define ENDLIKE_t8_p8 395 /* 0x18b */ #define OPFAIL 99 /* 0x63 Same as (?!), but with verb arg */ #define OPFAIL_tb 198 /* 0x0c6 */ #define OPFAIL_t8 199 /* 0x0c7 */ #define OPFAIL_tb_pb 396 /* 0x18c */ #define OPFAIL_tb_p8 397 /* 0x18d */ #define OPFAIL_t8_pb 398 /* 0x18e */ #define OPFAIL_t8_p8 399 /* 0x18f */ #define ACCEPT 100 /* 0x64 Accepts the current matched string, with verbar */ #define ACCEPT_tb 200 /* 0x0c8 */ #define ACCEPT_t8 201 /* 0x0c9 */ #define ACCEPT_tb_pb 400 /* 0x190 */ #define ACCEPT_tb_p8 401 /* 0x191 */ #define ACCEPT_t8_pb 402 /* 0x192 */ #define ACCEPT_t8_p8 403 /* 0x193 */ #define VERB 101 /* 0x65 Used only for the type field of verbs */ #define VERB_tb 202 /* 0x0ca */ #define VERB_t8 203 /* 0x0cb */ #define VERB_tb_pb 404 /* 0x194 */ #define VERB_tb_p8 405 /* 0x195 */ #define VERB_t8_pb 406 /* 0x196 */ #define VERB_t8_p8 407 /* 0x197 */ #define PRUNE 102 /* 0x66 Pattern fails at this startpoint if no-backtracking through this */ #define PRUNE_tb 204 /* 0x0cc */ #define PRUNE_t8 205 /* 0x0cd */ #define PRUNE_tb_pb 408 /* 0x198 */ #define PRUNE_tb_p8 409 /* 0x199 */ #define PRUNE_t8_pb 410 /* 0x19a */ #define PRUNE_t8_p8 411 /* 0x19b */ #define MARKPOINT 103 /* 0x67 Push the current location for rollback by cut. */ #define MARKPOINT_tb 206 /* 0x0ce */ #define MARKPOINT_t8 207 /* 0x0cf */ #define MARKPOINT_tb_pb 412 /* 0x19c */ #define MARKPOINT_tb_p8 413 /* 0x19d */ #define MARKPOINT_t8_pb 414 /* 0x19e */ #define MARKPOINT_t8_p8 415 /* 0x19f */ #define SKIP 104 /* 0x68 On failure skip forward (to the mark) before retrying */ #define SKIP_tb 208 /* 0x0d0 */ #define SKIP_t8 209 /* 0x0d1 */ #define SKIP_tb_pb 416 /* 0x1a0 */ #define SKIP_tb_p8 417 /* 0x1a1 */ #define SKIP_t8_pb 418 /* 0x1a2 */ #define SKIP_t8_p8 419 /* 0x1a3 */ #define COMMIT 105 /* 0x69 Pattern fails outright if backtracking through this */ #define COMMIT_tb 210 /* 0x0d2 */ #define COMMIT_t8 211 /* 0x0d3 */ #define COMMIT_tb_pb 420 /* 0x1a4 */ #define COMMIT_tb_p8 421 /* 0x1a5 */ #define COMMIT_t8_pb 422 /* 0x1a6 */ #define COMMIT_t8_p8 423 /* 0x1a7 */ #define CUTGROUP 106 /* 0x6a On failure go to the next alternation in the group */ #define CUTGROUP_tb 212 /* 0x0d4 */ #define CUTGROUP_t8 213 /* 0x0d5 */ #define CUTGROUP_tb_pb 424 /* 0x1a8 */ #define CUTGROUP_tb_p8 425 /* 0x1a9 */ #define CUTGROUP_t8_pb 426 /* 0x1aa */ #define CUTGROUP_t8_p8 427 /* 0x1ab */ #define KEEPS 107 /* 0x6b $& begins here. */ #define KEEPS_tb 214 /* 0x0d6 */ #define KEEPS_t8 215 /* 0x0d7 */ #define KEEPS_tb_pb 428 /* 0x1ac */ #define KEEPS_tb_p8 429 /* 0x1ad */ #define KEEPS_t8_pb 430 /* 0x1ae */ #define KEEPS_t8_p8 431 /* 0x1af */ #define LOOKBEHIND_END 108 /* 0x6c Return from lookbehind (IFMATCH/UNLESSM) and validate position */ #define LOOKBEHIND_END_tb 216 /* 0x0d8 */ #define LOOKBEHIND_END_t8 217 /* 0x0d9 */ #define LOOKBEHIND_END_tb_pb 432 /* 0x1b0 */ #define LOOKBEHIND_END_tb_p8 433 /* 0x1b1 */ #define LOOKBEHIND_END_t8_pb 434 /* 0x1b2 */ #define LOOKBEHIND_END_t8_p8 435 /* 0x1b3 */ #define OPTIMIZED 109 /* 0x6d Placeholder for dump. */ #define OPTIMIZED_tb 218 /* 0x0da */ #define OPTIMIZED_t8 219 /* 0x0db */ #define OPTIMIZED_tb_pb 436 /* 0x1b4 */ #define OPTIMIZED_tb_p8 437 /* 0x1b5 */ #define OPTIMIZED_t8_pb 438 /* 0x1b6 */ #define OPTIMIZED_t8_p8 439 /* 0x1b7 */ #define PSEUDO 110 /* 0x6e Pseudo opcode for internal use. */ #define PSEUDO_tb 220 /* 0x0dc */ #define PSEUDO_t8 221 /* 0x0dd */ #define PSEUDO_tb_pb 440 /* 0x1b8 */ #define PSEUDO_tb_p8 441 /* 0x1b9 */ #define PSEUDO_t8_pb 442 /* 0x1ba */ #define PSEUDO_t8_p8 443 /* 0x1bb */ #define REGEX_SET 111 /* 0x6f Regex set, temporary node used in pre-optimization compilation */ #define REGEX_SET_tb 222 /* 0x0de */ #define REGEX_SET_t8 223 /* 0x0df */ #define REGEX_SET_tb_pb 444 /* 0x1bc */ #define REGEX_SET_tb_p8 445 /* 0x1bd */ #define REGEX_SET_t8_pb 446 /* 0x1be */ #define REGEX_SET_t8_p8 447 /* 0x1bf */ /* ------------ States ------------- */ #define TRIE_next 112 /* 0x70 state for TRIE */ #define TRIE_next_tb 224 /* 0x0e0 */ #define TRIE_next_t8 225 /* 0x0e1 */ #define TRIE_next_tb_pb 448 /* 0x1c0 */ #define TRIE_next_tb_p8 449 /* 0x1c1 */ #define TRIE_next_t8_pb 450 /* 0x1c2 */ #define TRIE_next_t8_p8 451 /* 0x1c3 */ #define TRIE_next_fail 113 /* 0x71 state for TRIE */ #define TRIE_next_fail_tb 226 /* 0x0e2 */ #define TRIE_next_fail_t8 227 /* 0x0e3 */ #define TRIE_next_fail_tb_pb 452 /* 0x1c4 */ #define TRIE_next_fail_tb_p8 453 /* 0x1c5 */ #define TRIE_next_fail_t8_pb 454 /* 0x1c6 */ #define TRIE_next_fail_t8_p8 455 /* 0x1c7 */ #define EVAL_B 114 /* 0x72 state for EVAL */ #define EVAL_B_tb 228 /* 0x0e4 */ #define EVAL_B_t8 229 /* 0x0e5 */ #define EVAL_B_tb_pb 456 /* 0x1c8 */ #define EVAL_B_tb_p8 457 /* 0x1c9 */ #define EVAL_B_t8_pb 458 /* 0x1ca */ #define EVAL_B_t8_p8 459 /* 0x1cb */ #define EVAL_B_fail 115 /* 0x73 state for EVAL */ #define EVAL_B_fail_tb 230 /* 0x0e6 */ #define EVAL_B_fail_t8 231 /* 0x0e7 */ #define EVAL_B_fail_tb_pb 460 /* 0x1cc */ #define EVAL_B_fail_tb_p8 461 /* 0x1cd */ #define EVAL_B_fail_t8_pb 462 /* 0x1ce */ #define EVAL_B_fail_t8_p8 463 /* 0x1cf */ #define EVAL_postponed_AB 116 /* 0x74 state for EVAL */ #define EVAL_postponed_AB_tb 232 /* 0x0e8 */ #define EVAL_postponed_AB_t8 233 /* 0x0e9 */ #define EVAL_postponed_AB_tb_pb 464 /* 0x1d0 */ #define EVAL_postponed_AB_tb_p8 465 /* 0x1d1 */ #define EVAL_postponed_AB_t8_pb 466 /* 0x1d2 */ #define EVAL_postponed_AB_t8_p8 467 /* 0x1d3 */ #define EVAL_postponed_AB_fail 117 /* 0x75 state for EVAL */ #define EVAL_postponed_AB_fail_tb 234 /* 0x0ea */ #define EVAL_postponed_AB_fail_t8 235 /* 0x0eb */ #define EVAL_postponed_AB_fail_tb_pb 468 /* 0x1d4 */ #define EVAL_postponed_AB_fail_tb_p8 469 /* 0x1d5 */ #define EVAL_postponed_AB_fail_t8_pb 470 /* 0x1d6 */ #define EVAL_postponed_AB_fail_t8_p8 471 /* 0x1d7 */ #define CURLYX_end 118 /* 0x76 state for CURLYX */ #define CURLYX_end_tb 236 /* 0x0ec */ #define CURLYX_end_t8 237 /* 0x0ed */ #define CURLYX_end_tb_pb 472 /* 0x1d8 */ #define CURLYX_end_tb_p8 473 /* 0x1d9 */ #define CURLYX_end_t8_pb 474 /* 0x1da */ #define CURLYX_end_t8_p8 475 /* 0x1db */ #define CURLYX_end_fail 119 /* 0x77 state for CURLYX */ #define CURLYX_end_fail_tb 238 /* 0x0ee */ #define CURLYX_end_fail_t8 239 /* 0x0ef */ #define CURLYX_end_fail_tb_pb 476 /* 0x1dc */ #define CURLYX_end_fail_tb_p8 477 /* 0x1dd */ #define CURLYX_end_fail_t8_pb 478 /* 0x1de */ #define CURLYX_end_fail_t8_p8 479 /* 0x1df */ #define WHILEM_A_pre 120 /* 0x78 state for WHILEM */ #define WHILEM_A_pre_tb 240 /* 0x0f0 */ #define WHILEM_A_pre_t8 241 /* 0x0f1 */ #define WHILEM_A_pre_tb_pb 480 /* 0x1e0 */ #define WHILEM_A_pre_tb_p8 481 /* 0x1e1 */ #define WHILEM_A_pre_t8_pb 482 /* 0x1e2 */ #define WHILEM_A_pre_t8_p8 483 /* 0x1e3 */ #define WHILEM_A_pre_fail 121 /* 0x79 state for WHILEM */ #define WHILEM_A_pre_fail_tb 242 /* 0x0f2 */ #define WHILEM_A_pre_fail_t8 243 /* 0x0f3 */ #define WHILEM_A_pre_fail_tb_pb 484 /* 0x1e4 */ #define WHILEM_A_pre_fail_tb_p8 485 /* 0x1e5 */ #define WHILEM_A_pre_fail_t8_pb 486 /* 0x1e6 */ #define WHILEM_A_pre_fail_t8_p8 487 /* 0x1e7 */ #define WHILEM_A_min 122 /* 0x7a state for WHILEM */ #define WHILEM_A_min_tb 244 /* 0x0f4 */ #define WHILEM_A_min_t8 245 /* 0x0f5 */ #define WHILEM_A_min_tb_pb 488 /* 0x1e8 */ #define WHILEM_A_min_tb_p8 489 /* 0x1e9 */ #define WHILEM_A_min_t8_pb 490 /* 0x1ea */ #define WHILEM_A_min_t8_p8 491 /* 0x1eb */ #define WHILEM_A_min_fail 123 /* 0x7b state for WHILEM */ #define WHILEM_A_min_fail_tb 246 /* 0x0f6 */ #define WHILEM_A_min_fail_t8 247 /* 0x0f7 */ #define WHILEM_A_min_fail_tb_pb 492 /* 0x1ec */ #define WHILEM_A_min_fail_tb_p8 493 /* 0x1ed */ #define WHILEM_A_min_fail_t8_pb 494 /* 0x1ee */ #define WHILEM_A_min_fail_t8_p8 495 /* 0x1ef */ #define WHILEM_A_max 124 /* 0x7c state for WHILEM */ #define WHILEM_A_max_tb 248 /* 0x0f8 */ #define WHILEM_A_max_t8 249 /* 0x0f9 */ #define WHILEM_A_max_tb_pb 496 /* 0x1f0 */ #define WHILEM_A_max_tb_p8 497 /* 0x1f1 */ #define WHILEM_A_max_t8_pb 498 /* 0x1f2 */ #define WHILEM_A_max_t8_p8 499 /* 0x1f3 */ #define WHILEM_A_max_fail 125 /* 0x7d state for WHILEM */ #define WHILEM_A_max_fail_tb 250 /* 0x0fa */ #define WHILEM_A_max_fail_t8 251 /* 0x0fb */ #define WHILEM_A_max_fail_tb_pb 500 /* 0x1f4 */ #define WHILEM_A_max_fail_tb_p8 501 /* 0x1f5 */ #define WHILEM_A_max_fail_t8_pb 502 /* 0x1f6 */ #define WHILEM_A_max_fail_t8_p8 503 /* 0x1f7 */ #define WHILEM_B_min 126 /* 0x7e state for WHILEM */ #define WHILEM_B_min_tb 252 /* 0x0fc */ #define WHILEM_B_min_t8 253 /* 0x0fd */ #define WHILEM_B_min_tb_pb 504 /* 0x1f8 */ #define WHILEM_B_min_tb_p8 505 /* 0x1f9 */ #define WHILEM_B_min_t8_pb 506 /* 0x1fa */ #define WHILEM_B_min_t8_p8 507 /* 0x1fb */ #define WHILEM_B_min_fail 127 /* 0x7f state for WHILEM */ #define WHILEM_B_min_fail_tb 254 /* 0x0fe */ #define WHILEM_B_min_fail_t8 255 /* 0x0ff */ #define WHILEM_B_min_fail_tb_pb 508 /* 0x1fc */ #define WHILEM_B_min_fail_tb_p8 509 /* 0x1fd */ #define WHILEM_B_min_fail_t8_pb 510 /* 0x1fe */ #define WHILEM_B_min_fail_t8_p8 511 /* 0x1ff */ #define WHILEM_B_max 128 /* 0x80 state for WHILEM */ #define WHILEM_B_max_tb 256 /* 0x100 */ #define WHILEM_B_max_t8 257 /* 0x101 */ #define WHILEM_B_max_tb_pb 512 /* 0x200 */ #define WHILEM_B_max_tb_p8 513 /* 0x201 */ #define WHILEM_B_max_t8_pb 514 /* 0x202 */ #define WHILEM_B_max_t8_p8 515 /* 0x203 */ #define WHILEM_B_max_fail 129 /* 0x81 state for WHILEM */ #define WHILEM_B_max_fail_tb 258 /* 0x102 */ #define WHILEM_B_max_fail_t8 259 /* 0x103 */ #define WHILEM_B_max_fail_tb_pb 516 /* 0x204 */ #define WHILEM_B_max_fail_tb_p8 517 /* 0x205 */ #define WHILEM_B_max_fail_t8_pb 518 /* 0x206 */ #define WHILEM_B_max_fail_t8_p8 519 /* 0x207 */ #define BRANCH_next 130 /* 0x82 state for BRANCH */ #define BRANCH_next_tb 260 /* 0x104 */ #define BRANCH_next_t8 261 /* 0x105 */ #define BRANCH_next_tb_pb 520 /* 0x208 */ #define BRANCH_next_tb_p8 521 /* 0x209 */ #define BRANCH_next_t8_pb 522 /* 0x20a */ #define BRANCH_next_t8_p8 523 /* 0x20b */ #define BRANCH_next_fail 131 /* 0x83 state for BRANCH */ #define BRANCH_next_fail_tb 262 /* 0x106 */ #define BRANCH_next_fail_t8 263 /* 0x107 */ #define BRANCH_next_fail_tb_pb 524 /* 0x20c */ #define BRANCH_next_fail_tb_p8 525 /* 0x20d */ #define BRANCH_next_fail_t8_pb 526 /* 0x20e */ #define BRANCH_next_fail_t8_p8 527 /* 0x20f */ #define CURLYM_A 132 /* 0x84 state for CURLYM */ #define CURLYM_A_tb 264 /* 0x108 */ #define CURLYM_A_t8 265 /* 0x109 */ #define CURLYM_A_tb_pb 528 /* 0x210 */ #define CURLYM_A_tb_p8 529 /* 0x211 */ #define CURLYM_A_t8_pb 530 /* 0x212 */ #define CURLYM_A_t8_p8 531 /* 0x213 */ #define CURLYM_A_fail 133 /* 0x85 state for CURLYM */ #define CURLYM_A_fail_tb 266 /* 0x10a */ #define CURLYM_A_fail_t8 267 /* 0x10b */ #define CURLYM_A_fail_tb_pb 532 /* 0x214 */ #define CURLYM_A_fail_tb_p8 533 /* 0x215 */ #define CURLYM_A_fail_t8_pb 534 /* 0x216 */ #define CURLYM_A_fail_t8_p8 535 /* 0x217 */ #define CURLYM_B 134 /* 0x86 state for CURLYM */ #define CURLYM_B_tb 268 /* 0x10c */ #define CURLYM_B_t8 269 /* 0x10d */ #define CURLYM_B_tb_pb 536 /* 0x218 */ #define CURLYM_B_tb_p8 537 /* 0x219 */ #define CURLYM_B_t8_pb 538 /* 0x21a */ #define CURLYM_B_t8_p8 539 /* 0x21b */ #define CURLYM_B_fail 135 /* 0x87 state for CURLYM */ #define CURLYM_B_fail_tb 270 /* 0x10e */ #define CURLYM_B_fail_t8 271 /* 0x10f */ #define CURLYM_B_fail_tb_pb 540 /* 0x21c */ #define CURLYM_B_fail_tb_p8 541 /* 0x21d */ #define CURLYM_B_fail_t8_pb 542 /* 0x21e */ #define CURLYM_B_fail_t8_p8 543 /* 0x21f */ #define IFMATCH_A 136 /* 0x88 state for IFMATCH */ #define IFMATCH_A_tb 272 /* 0x110 */ #define IFMATCH_A_t8 273 /* 0x111 */ #define IFMATCH_A_tb_pb 544 /* 0x220 */ #define IFMATCH_A_tb_p8 545 /* 0x221 */ #define IFMATCH_A_t8_pb 546 /* 0x222 */ #define IFMATCH_A_t8_p8 547 /* 0x223 */ #define IFMATCH_A_fail 137 /* 0x89 state for IFMATCH */ #define IFMATCH_A_fail_tb 274 /* 0x112 */ #define IFMATCH_A_fail_t8 275 /* 0x113 */ #define IFMATCH_A_fail_tb_pb 548 /* 0x224 */ #define IFMATCH_A_fail_tb_p8 549 /* 0x225 */ #define IFMATCH_A_fail_t8_pb 550 /* 0x226 */ #define IFMATCH_A_fail_t8_p8 551 /* 0x227 */ #define CURLY_B_min 138 /* 0x8a state for CURLY */ #define CURLY_B_min_tb 276 /* 0x114 */ #define CURLY_B_min_t8 277 /* 0x115 */ #define CURLY_B_min_tb_pb 552 /* 0x228 */ #define CURLY_B_min_tb_p8 553 /* 0x229 */ #define CURLY_B_min_t8_pb 554 /* 0x22a */ #define CURLY_B_min_t8_p8 555 /* 0x22b */ #define CURLY_B_min_fail 139 /* 0x8b state for CURLY */ #define CURLY_B_min_fail_tb 278 /* 0x116 */ #define CURLY_B_min_fail_t8 279 /* 0x117 */ #define CURLY_B_min_fail_tb_pb 556 /* 0x22c */ #define CURLY_B_min_fail_tb_p8 557 /* 0x22d */ #define CURLY_B_min_fail_t8_pb 558 /* 0x22e */ #define CURLY_B_min_fail_t8_p8 559 /* 0x22f */ #define CURLY_B_max 140 /* 0x8c state for CURLY */ #define CURLY_B_max_tb 280 /* 0x118 */ #define CURLY_B_max_t8 281 /* 0x119 */ #define CURLY_B_max_tb_pb 560 /* 0x230 */ #define CURLY_B_max_tb_p8 561 /* 0x231 */ #define CURLY_B_max_t8_pb 562 /* 0x232 */ #define CURLY_B_max_t8_p8 563 /* 0x233 */ #define CURLY_B_max_fail 141 /* 0x8d state for CURLY */ #define CURLY_B_max_fail_tb 282 /* 0x11a */ #define CURLY_B_max_fail_t8 283 /* 0x11b */ #define CURLY_B_max_fail_tb_pb 564 /* 0x234 */ #define CURLY_B_max_fail_tb_p8 565 /* 0x235 */ #define CURLY_B_max_fail_t8_pb 566 /* 0x236 */ #define CURLY_B_max_fail_t8_p8 567 /* 0x237 */ #define COMMIT_next 142 /* 0x8e state for COMMIT */ #define COMMIT_next_tb 284 /* 0x11c */ #define COMMIT_next_t8 285 /* 0x11d */ #define COMMIT_next_tb_pb 568 /* 0x238 */ #define COMMIT_next_tb_p8 569 /* 0x239 */ #define COMMIT_next_t8_pb 570 /* 0x23a */ #define COMMIT_next_t8_p8 571 /* 0x23b */ #define COMMIT_next_fail 143 /* 0x8f state for COMMIT */ #define COMMIT_next_fail_tb 286 /* 0x11e */ #define COMMIT_next_fail_t8 287 /* 0x11f */ #define COMMIT_next_fail_tb_pb 572 /* 0x23c */ #define COMMIT_next_fail_tb_p8 573 /* 0x23d */ #define COMMIT_next_fail_t8_pb 574 /* 0x23e */ #define COMMIT_next_fail_t8_p8 575 /* 0x23f */ #define MARKPOINT_next 144 /* 0x90 state for MARKPOINT */ #define MARKPOINT_next_tb 288 /* 0x120 */ #define MARKPOINT_next_t8 289 /* 0x121 */ #define MARKPOINT_next_tb_pb 576 /* 0x240 */ #define MARKPOINT_next_tb_p8 577 /* 0x241 */ #define MARKPOINT_next_t8_pb 578 /* 0x242 */ #define MARKPOINT_next_t8_p8 579 /* 0x243 */ #define MARKPOINT_next_fail 145 /* 0x91 state for MARKPOINT */ #define MARKPOINT_next_fail_tb 290 /* 0x122 */ #define MARKPOINT_next_fail_t8 291 /* 0x123 */ #define MARKPOINT_next_fail_tb_pb 580 /* 0x244 */ #define MARKPOINT_next_fail_tb_p8 581 /* 0x245 */ #define MARKPOINT_next_fail_t8_pb 582 /* 0x246 */ #define MARKPOINT_next_fail_t8_p8 583 /* 0x247 */ #define SKIP_next 146 /* 0x92 state for SKIP */ #define SKIP_next_tb 292 /* 0x124 */ #define SKIP_next_t8 293 /* 0x125 */ #define SKIP_next_tb_pb 584 /* 0x248 */ #define SKIP_next_tb_p8 585 /* 0x249 */ #define SKIP_next_t8_pb 586 /* 0x24a */ #define SKIP_next_t8_p8 587 /* 0x24b */ #define SKIP_next_fail 147 /* 0x93 state for SKIP */ #define SKIP_next_fail_tb 294 /* 0x126 */ #define SKIP_next_fail_t8 295 /* 0x127 */ #define SKIP_next_fail_tb_pb 588 /* 0x24c */ #define SKIP_next_fail_tb_p8 589 /* 0x24d */ #define SKIP_next_fail_t8_pb 590 /* 0x24e */ #define SKIP_next_fail_t8_p8 591 /* 0x24f */ #define CUTGROUP_next 148 /* 0x94 state for CUTGROUP */ #define CUTGROUP_next_tb 296 /* 0x128 */ #define CUTGROUP_next_t8 297 /* 0x129 */ #define CUTGROUP_next_tb_pb 592 /* 0x250 */ #define CUTGROUP_next_tb_p8 593 /* 0x251 */ #define CUTGROUP_next_t8_pb 594 /* 0x252 */ #define CUTGROUP_next_t8_p8 595 /* 0x253 */ #define CUTGROUP_next_fail 149 /* 0x95 state for CUTGROUP */ #define CUTGROUP_next_fail_tb 298 /* 0x12a */ #define CUTGROUP_next_fail_t8 299 /* 0x12b */ #define CUTGROUP_next_fail_tb_pb 596 /* 0x254 */ #define CUTGROUP_next_fail_tb_p8 597 /* 0x255 */ #define CUTGROUP_next_fail_t8_pb 598 /* 0x256 */ #define CUTGROUP_next_fail_t8_p8 599 /* 0x257 */ #define KEEPS_next 150 /* 0x96 state for KEEPS */ #define KEEPS_next_tb 300 /* 0x12c */ #define KEEPS_next_t8 301 /* 0x12d */ #define KEEPS_next_tb_pb 600 /* 0x258 */ #define KEEPS_next_tb_p8 601 /* 0x259 */ #define KEEPS_next_t8_pb 602 /* 0x25a */ #define KEEPS_next_t8_p8 603 /* 0x25b */ #define KEEPS_next_fail 151 /* 0x97 state for KEEPS */ #define KEEPS_next_fail_tb 302 /* 0x12e */ #define KEEPS_next_fail_t8 303 /* 0x12f */ #define KEEPS_next_fail_tb_pb 604 /* 0x25c */ #define KEEPS_next_fail_tb_p8 605 /* 0x25d */ #define KEEPS_next_fail_t8_pb 606 /* 0x25e */ #define KEEPS_next_fail_t8_p8 607 /* 0x25f */ #define REF_next 152 /* 0x98 state for REF */ #define REF_next_tb 304 /* 0x130 */ #define REF_next_t8 305 /* 0x131 */ #define REF_next_tb_pb 608 /* 0x260 */ #define REF_next_tb_p8 609 /* 0x261 */ #define REF_next_t8_pb 610 /* 0x262 */ #define REF_next_t8_p8 611 /* 0x263 */ #define REF_next_fail 153 /* 0x99 state for REF */ #define REF_next_fail_tb 306 /* 0x132 */ #define REF_next_fail_t8 307 /* 0x133 */ #define REF_next_fail_tb_pb 612 /* 0x264 */ #define REF_next_fail_tb_p8 613 /* 0x265 */ #define REF_next_fail_t8_pb 614 /* 0x266 */ #define REF_next_fail_t8_p8 615 /* 0x267 */ /* PL_regnode_name[] - Opcode/state names in string form, for debugging */ #ifndef DOINIT EXTCONST char * PL_regnode_name[]; #else EXTCONST char * const PL_regnode_name[] = { "END", /* 0000 */ "SUCCEED", /* 0x01 */ "SBOL", /* 0x02 */ "MBOL", /* 0x03 */ "SEOL", /* 0x04 */ "MEOL", /* 0x05 */ "EOS", /* 0x06 */ "GPOS", /* 0x07 */ "BOUND", /* 0x08 */ "BOUNDL", /* 0x09 */ "BOUNDU", /* 0x0a */ "BOUNDA", /* 0x0b */ "NBOUND", /* 0x0c */ "NBOUNDL", /* 0x0d */ "NBOUNDU", /* 0x0e */ "NBOUNDA", /* 0x0f */ "REG_ANY", /* 0x10 */ "SANY", /* 0x11 */ "ANYOF", /* 0x12 */ "ANYOFD", /* 0x13 */ "ANYOFL", /* 0x14 */ "ANYOFPOSIXL", /* 0x15 */ "ANYOFH", /* 0x16 */ "ANYOFHb", /* 0x17 */ "ANYOFHr", /* 0x18 */ "ANYOFHs", /* 0x19 */ "ANYOFR", /* 0x1a */ "ANYOFRb", /* 0x1b */ "ANYOFHbbm", /* 0x1c */ "ANYOFM", /* 0x1d */ "NANYOFM", /* 0x1e */ "POSIXD", /* 0x1f */ "POSIXL", /* 0x20 */ "POSIXU", /* 0x21 */ "POSIXA", /* 0x22 */ "NPOSIXD", /* 0x23 */ "NPOSIXL", /* 0x24 */ "NPOSIXU", /* 0x25 */ "NPOSIXA", /* 0x26 */ "CLUMP", /* 0x27 */ "BRANCH", /* 0x28 */ "EXACT", /* 0x29 */ "LEXACT", /* 0x2a */ "EXACTL", /* 0x2b */ "EXACTF", /* 0x2c */ "EXACTFL", /* 0x2d */ "EXACTFU", /* 0x2e */ "EXACTFAA", /* 0x2f */ "EXACTFAA_NO_TRIE", /* 0x30 */ "EXACTFUP", /* 0x31 */ "EXACTFLU8", /* 0x32 */ "EXACT_REQ8", /* 0x33 */ "LEXACT_REQ8", /* 0x34 */ "EXACTFU_REQ8", /* 0x35 */ "EXACTFU_S_EDGE", /* 0x36 */ "LNBREAK", /* 0x37 */ "TRIE", /* 0x38 */ "TRIEC", /* 0x39 */ "AHOCORASICK", /* 0x3a */ "AHOCORASICKC", /* 0x3b */ "NOTHING", /* 0x3c */ "TAIL", /* 0x3d */ "STAR", /* 0x3e */ "PLUS", /* 0x3f */ "CURLY", /* 0x40 */ "CURLYN", /* 0x41 */ "CURLYM", /* 0x42 */ "CURLYX", /* 0x43 */ "WHILEM", /* 0x44 */ "OPEN", /* 0x45 */ "CLOSE", /* 0x46 */ "SROPEN", /* 0x47 */ "SRCLOSE", /* 0x48 */ "REF", /* 0x49 */ "REFF", /* 0x4a */ "REFFL", /* 0x4b */ "REFFU", /* 0x4c */ "REFFA", /* 0x4d */ "REFN", /* 0x4e */ "REFFN", /* 0x4f */ "REFFLN", /* 0x50 */ "REFFUN", /* 0x51 */ "REFFAN", /* 0x52 */ "LONGJMP", /* 0x53 */ "BRANCHJ", /* 0x54 */ "IFMATCH", /* 0x55 */ "UNLESSM", /* 0x56 */ "SUSPEND", /* 0x57 */ "IFTHEN", /* 0x58 */ "GROUPP", /* 0x59 */ "EVAL", /* 0x5a */ "MINMOD", /* 0x5b */ "LOGICAL", /* 0x5c */ "RENUM", /* 0x5d */ "GOSUB", /* 0x5e */ "GROUPPN", /* 0x5f */ "INSUBP", /* 0x60 */ "DEFINEP", /* 0x61 */ "ENDLIKE", /* 0x62 */ "OPFAIL", /* 0x63 */ "ACCEPT", /* 0x64 */ "VERB", /* 0x65 */ "PRUNE", /* 0x66 */ "MARKPOINT", /* 0x67 */ "SKIP", /* 0x68 */ "COMMIT", /* 0x69 */ "CUTGROUP", /* 0x6a */ "KEEPS", /* 0x6b */ "LOOKBEHIND_END", /* 0x6c */ "OPTIMIZED", /* 0x6d */ "PSEUDO", /* 0x6e */ "REGEX_SET", /* 0x6f */ /* ------------ States ------------- */ "TRIE_next", /* REGNODE_MAX +0x01 */ "TRIE_next_fail", /* REGNODE_MAX +0x02 */ "EVAL_B", /* REGNODE_MAX +0x03 */ "EVAL_B_fail", /* REGNODE_MAX +0x04 */ "EVAL_postponed_AB", /* REGNODE_MAX +0x05 */ "EVAL_postponed_AB_fail", /* REGNODE_MAX +0x06 */ "CURLYX_end", /* REGNODE_MAX +0x07 */ "CURLYX_end_fail", /* REGNODE_MAX +0x08 */ "WHILEM_A_pre", /* REGNODE_MAX +0x09 */ "WHILEM_A_pre_fail", /* REGNODE_MAX +0x0a */ "WHILEM_A_min", /* REGNODE_MAX +0x0b */ "WHILEM_A_min_fail", /* REGNODE_MAX +0x0c */ "WHILEM_A_max", /* REGNODE_MAX +0x0d */ "WHILEM_A_max_fail", /* REGNODE_MAX +0x0e */ "WHILEM_B_min", /* REGNODE_MAX +0x0f */ "WHILEM_B_min_fail", /* REGNODE_MAX +0x10 */ "WHILEM_B_max", /* REGNODE_MAX +0x11 */ "WHILEM_B_max_fail", /* REGNODE_MAX +0x12 */ "BRANCH_next", /* REGNODE_MAX +0x13 */ "BRANCH_next_fail", /* REGNODE_MAX +0x14 */ "CURLYM_A", /* REGNODE_MAX +0x15 */ "CURLYM_A_fail", /* REGNODE_MAX +0x16 */ "CURLYM_B", /* REGNODE_MAX +0x17 */ "CURLYM_B_fail", /* REGNODE_MAX +0x18 */ "IFMATCH_A", /* REGNODE_MAX +0x19 */ "IFMATCH_A_fail", /* REGNODE_MAX +0x1a */ "CURLY_B_min", /* REGNODE_MAX +0x1b */ "CURLY_B_min_fail", /* REGNODE_MAX +0x1c */ "CURLY_B_max", /* REGNODE_MAX +0x1d */ "CURLY_B_max_fail", /* REGNODE_MAX +0x1e */ "COMMIT_next", /* REGNODE_MAX +0x1f */ "COMMIT_next_fail", /* REGNODE_MAX +0x20 */ "MARKPOINT_next", /* REGNODE_MAX +0x21 */ "MARKPOINT_next_fail", /* REGNODE_MAX +0x22 */ "SKIP_next", /* REGNODE_MAX +0x23 */ "SKIP_next_fail", /* REGNODE_MAX +0x24 */ "CUTGROUP_next", /* REGNODE_MAX +0x25 */ "CUTGROUP_next_fail", /* REGNODE_MAX +0x26 */ "KEEPS_next", /* REGNODE_MAX +0x27 */ "KEEPS_next_fail", /* REGNODE_MAX +0x28 */ "REF_next", /* REGNODE_MAX +0x29 */ "REF_next_fail", /* REGNODE_MAX +0x2a */ }; #endif /* DOINIT */ /* PL_regnode_info[] - Opcode/state names in string form, for debugging */ #ifndef DOINIT EXTCONST struct regnode_meta PL_regnode_info[]; #else EXTCONST struct regnode_meta PL_regnode_info[] = { { /* #0 op END */ .type = END, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #1 op SUCCEED */ .type = END, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #2 op SBOL */ .type = BOL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #3 op MBOL */ .type = BOL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #4 op SEOL */ .type = EOL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #5 op MEOL */ .type = EOL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #6 op EOS */ .type = EOL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #7 op GPOS */ .type = GPOS, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #8 op BOUND */ .type = BOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #9 op BOUNDL */ .type = BOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #10 op BOUNDU */ .type = BOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #11 op BOUNDA */ .type = BOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #12 op NBOUND */ .type = NBOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #13 op NBOUNDL */ .type = NBOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #14 op NBOUNDU */ .type = NBOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #15 op NBOUNDA */ .type = NBOUND, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #16 op REG_ANY */ .type = REG_ANY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #17 op SANY */ .type = REG_ANY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #18 op ANYOF */ .type = ANYOF, .arg_len = EXTRA_SIZE(tregnode_ANYOF), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #19 op ANYOFD */ .type = ANYOF, .arg_len = EXTRA_SIZE(tregnode_ANYOFD), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #20 op ANYOFL */ .type = ANYOF, .arg_len = EXTRA_SIZE(tregnode_ANYOFL), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #21 op ANYOFPOSIXL */ .type = ANYOF, .arg_len = EXTRA_SIZE(tregnode_ANYOFPOSIXL), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #22 op ANYOFH */ .type = ANYOFH, .arg_len = EXTRA_SIZE(tregnode_ANYOFH), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #23 op ANYOFHb */ .type = ANYOFH, .arg_len = EXTRA_SIZE(tregnode_ANYOFHb), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #24 op ANYOFHr */ .type = ANYOFH, .arg_len = EXTRA_SIZE(tregnode_ANYOFHr), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #25 op ANYOFHs */ .type = ANYOFH, .arg_len = EXTRA_SIZE(tregnode_ANYOFHs), .arg_len_varies = 1, .off_by_arg = 0 }, { /* #26 op ANYOFR */ .type = ANYOFR, .arg_len = EXTRA_SIZE(tregnode_ANYOFR), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #27 op ANYOFRb */ .type = ANYOFR, .arg_len = EXTRA_SIZE(tregnode_ANYOFRb), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #28 op ANYOFHbbm */ .type = ANYOFHbbm, .arg_len = EXTRA_SIZE(tregnode_ANYOFHbbm), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #29 op ANYOFM */ .type = ANYOFM, .arg_len = EXTRA_SIZE(tregnode_ANYOFM), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #30 op NANYOFM */ .type = ANYOFM, .arg_len = EXTRA_SIZE(tregnode_NANYOFM), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #31 op POSIXD */ .type = POSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #32 op POSIXL */ .type = POSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #33 op POSIXU */ .type = POSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #34 op POSIXA */ .type = POSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #35 op NPOSIXD */ .type = NPOSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #36 op NPOSIXL */ .type = NPOSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #37 op NPOSIXU */ .type = NPOSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #38 op NPOSIXA */ .type = NPOSIXD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #39 op CLUMP */ .type = CLUMP, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #40 op BRANCH */ .type = BRANCH, .arg_len = EXTRA_SIZE(tregnode_BRANCH), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #41 op EXACT */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #42 op LEXACT */ .type = EXACT, .arg_len = EXTRA_SIZE(tregnode_LEXACT), .arg_len_varies = 1, .off_by_arg = 0 }, { /* #43 op EXACTL */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #44 op EXACTF */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #45 op EXACTFL */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #46 op EXACTFU */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #47 op EXACTFAA */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #48 op EXACTFAA_NO_TRIE */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #49 op EXACTFUP */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #50 op EXACTFLU8 */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #51 op EXACT_REQ8 */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #52 op LEXACT_REQ8 */ .type = EXACT, .arg_len = EXTRA_SIZE(tregnode_LEXACT_REQ8), .arg_len_varies = 1, .off_by_arg = 0 }, { /* #53 op EXACTFU_REQ8 */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #54 op EXACTFU_S_EDGE */ .type = EXACT, .arg_len = 0, .arg_len_varies = 1, .off_by_arg = 0 }, { /* #55 op LNBREAK */ .type = LNBREAK, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #56 op TRIE */ .type = TRIE, .arg_len = EXTRA_SIZE(tregnode_TRIE), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #57 op TRIEC */ .type = TRIE, .arg_len = EXTRA_SIZE(tregnode_TRIEC), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #58 op AHOCORASICK */ .type = TRIE, .arg_len = EXTRA_SIZE(tregnode_AHOCORASICK), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #59 op AHOCORASICKC */ .type = TRIE, .arg_len = EXTRA_SIZE(tregnode_AHOCORASICKC), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #60 op NOTHING */ .type = NOTHING, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #61 op TAIL */ .type = NOTHING, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #62 op STAR */ .type = STAR, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #63 op PLUS */ .type = PLUS, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #64 op CURLY */ .type = CURLY, .arg_len = EXTRA_SIZE(tregnode_CURLY), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #65 op CURLYN */ .type = CURLY, .arg_len = EXTRA_SIZE(tregnode_CURLYN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #66 op CURLYM */ .type = CURLY, .arg_len = EXTRA_SIZE(tregnode_CURLYM), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #67 op CURLYX */ .type = CURLY, .arg_len = EXTRA_SIZE(tregnode_CURLYX), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #68 op WHILEM */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #69 op OPEN */ .type = OPEN, .arg_len = EXTRA_SIZE(tregnode_OPEN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #70 op CLOSE */ .type = CLOSE, .arg_len = EXTRA_SIZE(tregnode_CLOSE), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #71 op SROPEN */ .type = SROPEN, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #72 op SRCLOSE */ .type = SRCLOSE, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #73 op REF */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REF), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #74 op REFF */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFF), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #75 op REFFL */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFL), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #76 op REFFU */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFU), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #77 op REFFA */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFA), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #78 op REFN */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #79 op REFFN */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #80 op REFFLN */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFLN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #81 op REFFUN */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFUN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #82 op REFFAN */ .type = REF, .arg_len = EXTRA_SIZE(tregnode_REFFAN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #83 op LONGJMP */ .type = LONGJMP, .arg_len = EXTRA_SIZE(tregnode_LONGJMP), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #84 op BRANCHJ */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_BRANCHJ), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #85 op IFMATCH */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_IFMATCH), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #86 op UNLESSM */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_UNLESSM), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #87 op SUSPEND */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_SUSPEND), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #88 op IFTHEN */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_IFTHEN), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #89 op GROUPP */ .type = GROUPP, .arg_len = EXTRA_SIZE(tregnode_GROUPP), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #90 op EVAL */ .type = EVAL, .arg_len = EXTRA_SIZE(tregnode_EVAL), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #91 op MINMOD */ .type = MINMOD, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #92 op LOGICAL */ .type = LOGICAL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #93 op RENUM */ .type = BRANCHJ, .arg_len = EXTRA_SIZE(tregnode_RENUM), .arg_len_varies = 0, .off_by_arg = 1 }, { /* #94 op GOSUB */ .type = GOSUB, .arg_len = EXTRA_SIZE(tregnode_GOSUB), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #95 op GROUPPN */ .type = GROUPPN, .arg_len = EXTRA_SIZE(tregnode_GROUPPN), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #96 op INSUBP */ .type = INSUBP, .arg_len = EXTRA_SIZE(tregnode_INSUBP), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #97 op DEFINEP */ .type = DEFINEP, .arg_len = EXTRA_SIZE(tregnode_DEFINEP), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #98 op ENDLIKE */ .type = ENDLIKE, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #99 op OPFAIL */ .type = ENDLIKE, .arg_len = EXTRA_SIZE(tregnode_OPFAIL), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #100 op ACCEPT */ .type = ENDLIKE, .arg_len = EXTRA_SIZE(tregnode_ACCEPT), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #101 op VERB */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_VERB), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #102 op PRUNE */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_PRUNE), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #103 op MARKPOINT */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_MARKPOINT), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #104 op SKIP */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_SKIP), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #105 op COMMIT */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_COMMIT), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #106 op CUTGROUP */ .type = VERB, .arg_len = EXTRA_SIZE(tregnode_CUTGROUP), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #107 op KEEPS */ .type = KEEPS, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #108 op LOOKBEHIND_END */ .type = END, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #109 op OPTIMIZED */ .type = NOTHING, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #110 op PSEUDO */ .type = PSEUDO, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #111 op REGEX_SET */ .type = REGEX_SET, .arg_len = EXTRA_SIZE(tregnode_REGEX_SET), .arg_len_varies = 0, .off_by_arg = 0 }, { /* #112 state TRIE_next */ .type = TRIE, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #113 state TRIE_next_fail */ .type = TRIE, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #114 state EVAL_B */ .type = EVAL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #115 state EVAL_B_fail */ .type = EVAL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #116 state EVAL_postponed_AB */ .type = EVAL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #117 state EVAL_postponed_AB_fail */ .type = EVAL, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #118 state CURLYX_end */ .type = CURLYX, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #119 state CURLYX_end_fail */ .type = CURLYX, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #120 state WHILEM_A_pre */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #121 state WHILEM_A_pre_fail */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #122 state WHILEM_A_min */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #123 state WHILEM_A_min_fail */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #124 state WHILEM_A_max */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #125 state WHILEM_A_max_fail */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #126 state WHILEM_B_min */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #127 state WHILEM_B_min_fail */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #128 state WHILEM_B_max */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #129 state WHILEM_B_max_fail */ .type = WHILEM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #130 state BRANCH_next */ .type = BRANCH, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #131 state BRANCH_next_fail */ .type = BRANCH, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #132 state CURLYM_A */ .type = CURLYM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #133 state CURLYM_A_fail */ .type = CURLYM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #134 state CURLYM_B */ .type = CURLYM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #135 state CURLYM_B_fail */ .type = CURLYM, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #136 state IFMATCH_A */ .type = IFMATCH, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #137 state IFMATCH_A_fail */ .type = IFMATCH, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #138 state CURLY_B_min */ .type = CURLY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #139 state CURLY_B_min_fail */ .type = CURLY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #140 state CURLY_B_max */ .type = CURLY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #141 state CURLY_B_max_fail */ .type = CURLY, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #142 state COMMIT_next */ .type = COMMIT, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #143 state COMMIT_next_fail */ .type = COMMIT, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #144 state MARKPOINT_next */ .type = MARKPOINT, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #145 state MARKPOINT_next_fail */ .type = MARKPOINT, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #146 state SKIP_next */ .type = SKIP, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #147 state SKIP_next_fail */ .type = SKIP, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #148 state CUTGROUP_next */ .type = CUTGROUP, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #149 state CUTGROUP_next_fail */ .type = CUTGROUP, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #150 state KEEPS_next */ .type = KEEPS, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #151 state KEEPS_next_fail */ .type = KEEPS, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #152 state REF_next */ .type = REF, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 }, { /* #153 state REF_next_fail */ .type = REF, .arg_len = 0, .arg_len_varies = 0, .off_by_arg = 0 } }; #endif /* DOINIT */ /* PL_reg_extflags_name[] - Opcode/state names in string form, for debugging */ #ifndef DOINIT EXTCONST char * PL_reg_extflags_name[]; #else EXTCONST char * const PL_reg_extflags_name[] = { /* Bits in extflags defined: 11111111111111110000111111111111 */ "MULTILINE", /* 0x00000001 */ "SINGLELINE", /* 0x00000002 */ "FOLD", /* 0x00000004 */ "EXTENDED", /* 0x00000008 */ "EXTENDED_MORE", /* 0x00000010 */ "NOCAPTURE", /* 0x00000020 */ "KEEPCOPY", /* 0x00000040 */ "CHARSET0", /* 0x00000080 : "CHARSET" - 0x00000380 */ "CHARSET1", /* 0x00000100 : "CHARSET" - 0x00000380 */ "CHARSET2", /* 0x00000200 : "CHARSET" - 0x00000380 */ "STRICT", /* 0x00000400 */ "SPLIT", /* 0x00000800 */ "UNUSED_BIT_12", /* 0x00001000 */ "UNUSED_BIT_13", /* 0x00002000 */ "UNUSED_BIT_14", /* 0x00004000 */ "UNUSED_BIT_15", /* 0x00008000 */ "NO_INPLACE_SUBST", /* 0x00010000 */ "EVAL_SEEN", /* 0x00020000 */ "UNBOUNDED_QUANTIFIER_SEEN",/* 0x00040000 */ "CHECK_ALL", /* 0x00080000 */ "MATCH_UTF8", /* 0x00100000 */ "USE_INTUIT_NOML", /* 0x00200000 */ "USE_INTUIT_ML", /* 0x00400000 */ "INTUIT_TAIL", /* 0x00800000 */ "IS_ANCHORED", /* 0x01000000 */ "COPY_DONE", /* 0x02000000 */ "TAINTED_SEEN", /* 0x04000000 */ "TAINTED", /* 0x08000000 */ "START_ONLY", /* 0x10000000 */ "SKIPWHITE", /* 0x20000000 */ "WHITE", /* 0x40000000 */ "NULL", /* 0x80000000 */ }; #endif /* DOINIT */ #ifdef DEBUGGING # define REG_EXTFLAGS_NAME_SIZE 32 #endif /* PL_reg_intflags_name[] - Opcode/state names in string form, for debugging */ #ifndef DOINIT EXTCONST char * PL_reg_intflags_name[]; #else EXTCONST char * const PL_reg_intflags_name[] = { "SKIP", /* (1<< 0) - 0x00000001 - PREGf_SKIP */ "IMPLICIT", /* (1<< 1) - 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */ "NAUGHTY", /* (1<< 2) - 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */ "VERBARG_SEEN", /* (1<< 3) - 0x00000008 - PREGf_VERBARG_SEEN */ "CUTGROUP_SEEN", /* (1<< 4) - 0x00000010 - PREGf_CUTGROUP_SEEN */ "USE_RE_EVAL", /* (1<< 5) - 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */ "NOSCAN", /* (1<< 6) - 0x00000040 - PREGf_NOSCAN */ "", /* (1<< 7) - 0x00000080 - *UNUSED* */ "GPOS_SEEN", /* (1<< 8) - 0x00000100 - PREGf_GPOS_SEEN */ "GPOS_FLOAT", /* (1<< 9) - 0x00000200 - PREGf_GPOS_FLOAT */ "ANCH_MBOL", /* (1<<10) - 0x00000400 - PREGf_ANCH_MBOL */ "ANCH_SBOL", /* (1<<11) - 0x00000800 - PREGf_ANCH_SBOL */ "ANCH_GPOS", /* (1<<12) - 0x00001000 - PREGf_ANCH_GPOS */ "RECURSE_SEEN", /* (1<<13) - 0x00002000 - PREGf_RECURSE_SEEN */ "PESSIMIZE_SEEN", /* (1<<14) - 0x00004000 - PREGf_PESSIMIZE_SEEN */ }; #endif /* DOINIT */ #ifdef DEBUGGING # define REG_INTFLAGS_NAME_SIZE 15 #endif /* The following have no fixed length. U8 so we can do strchr() on it. */ #define REGNODE_VARIES(node) (PL_varies_bitmask[(node) >> 3] & (1 << ((node) & 7))) #ifndef DOINIT EXTCONST U8 PL_varies[] __attribute__deprecated__; #else EXTCONST U8 PL_varies[] __attribute__deprecated__ = { CLUMP, BRANCH, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX, WHILEM, REF, REFF, REFFL, REFFU, REFFA, REFN, REFFN, REFFLN, REFFUN, REFFAN, BRANCHJ, SUSPEND, IFTHEN, 0 }; #endif /* DOINIT */ #ifndef DOINIT EXTCONST U8 PL_varies_bitmask[]; #else EXTCONST U8 PL_varies_bitmask[] = { 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x1F, 0xFE, 0x97, 0x01, 0x00, 0x00 }; #endif /* DOINIT */ /* The following always have a length of 1. U8 we can do strchr() on it. */ /* (Note that length 1 means "one character" under UTF8, not "one octet".) */ #define REGNODE_SIMPLE(node) (PL_simple_bitmask[(node) >> 3] & (1 << ((node) & 7))) #ifndef DOINIT EXTCONST U8 PL_simple[] __attribute__deprecated__; #else EXTCONST U8 PL_simple[] __attribute__deprecated__ = { REG_ANY, SANY, ANYOF, ANYOFD, ANYOFL, ANYOFPOSIXL, ANYOFH, ANYOFHb, ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFHbbm, ANYOFM, NANYOFM, POSIXD, POSIXL, POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET, 0 }; #endif /* DOINIT */ #ifndef DOINIT EXTCONST U8 PL_simple_bitmask[]; #else EXTCONST U8 PL_simple_bitmask[] = { 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }; #endif /* DOINIT */ /* Is 'op', known to be of type EXACT, folding? */ #define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT)))) /* Do only UTF-8 target strings match 'op', known to be of type EXACT? */ #define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT)))) #ifndef DOINIT EXTCONST U32 PL_EXACTFish_bitmask; EXTCONST U32 PL_EXACT_REQ8_bitmask; #else EXTCONST U32 PL_EXACTFish_bitmask = 0x33F8; EXTCONST U32 PL_EXACT_REQ8_bitmask = 0x1E00; #endif /* DOINIT */ #endif /* defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */ /* ex: set ro ft=c: */