1 /* -*- mode: C; buffer-read-only: t -*- 2 !!!!!!! DO NOT EDIT THIS FILE !!!!!!! 3 This file is built by regen/regcomp.pl from regcomp.sym, op_reg_common.h 4 and regexp.h. 5 Any changes made here will be lost! 6 */ 7 8 #if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) 9 10 11 /* typedefs for regex nodes - one typedef per node type */ 12 13 typedef struct regnode_2 tregnode_ACCEPT; 14 typedef struct regnode_1 tregnode_AHOCORASICK; 15 typedef struct regnode_charclass tregnode_AHOCORASICKC; 16 typedef struct regnode_charclass tregnode_ANYOF; 17 typedef struct regnode_charclass tregnode_ANYOFD; 18 typedef struct regnode_1 tregnode_ANYOFH; 19 typedef struct regnode_1 tregnode_ANYOFHb; 20 typedef struct regnode_bbm tregnode_ANYOFHbbm; 21 typedef struct regnode_1 tregnode_ANYOFHr; 22 typedef struct regnode_1 tregnode_ANYOFHs; 23 typedef struct regnode_charclass tregnode_ANYOFL; 24 typedef struct regnode_1 tregnode_ANYOFM; 25 typedef struct regnode_charclass_posixl tregnode_ANYOFPOSIXL; 26 typedef struct regnode_1 tregnode_ANYOFR; 27 typedef struct regnode_1 tregnode_ANYOFRb; 28 typedef struct regnode tregnode_BOUND; 29 typedef struct regnode tregnode_BOUNDA; 30 typedef struct regnode tregnode_BOUNDL; 31 typedef struct regnode tregnode_BOUNDU; 32 typedef struct regnode_1 tregnode_BRANCH; 33 typedef struct regnode_2 tregnode_BRANCHJ; 34 typedef struct regnode_1 tregnode_CLOSE; 35 typedef struct regnode tregnode_CLUMP; 36 typedef struct regnode_1 tregnode_COMMIT; 37 typedef struct regnode_3 tregnode_CURLY; 38 typedef struct regnode_3 tregnode_CURLYM; 39 typedef struct regnode_3 tregnode_CURLYN; 40 typedef struct regnode_3 tregnode_CURLYX; 41 typedef struct regnode_1 tregnode_CUTGROUP; 42 typedef struct regnode_1 tregnode_DEFINEP; 43 typedef struct regnode tregnode_END; 44 typedef struct regnode tregnode_ENDLIKE; 45 typedef struct regnode tregnode_EOS; 46 typedef struct regnode_2 tregnode_EVAL; 47 typedef struct regnode tregnode_EXACT; 48 typedef struct regnode tregnode_EXACTF; 49 typedef struct regnode tregnode_EXACTFAA; 50 typedef struct regnode tregnode_EXACTFAA_NO_TRIE; 51 typedef struct regnode tregnode_EXACTFL; 52 typedef struct regnode tregnode_EXACTFLU8; 53 typedef struct regnode tregnode_EXACTFU; 54 typedef struct regnode tregnode_EXACTFUP; 55 typedef struct regnode tregnode_EXACTFU_REQ8; 56 typedef struct regnode tregnode_EXACTFU_S_EDGE; 57 typedef struct regnode tregnode_EXACTL; 58 typedef struct regnode tregnode_EXACT_REQ8; 59 typedef struct regnode_2 tregnode_GOSUB; 60 typedef struct regnode tregnode_GPOS; 61 typedef struct regnode_1 tregnode_GROUPP; 62 typedef struct regnode_1 tregnode_GROUPPN; 63 typedef struct regnode_1 tregnode_IFMATCH; 64 typedef struct regnode_1 tregnode_IFTHEN; 65 typedef struct regnode_1 tregnode_INSUBP; 66 typedef struct regnode tregnode_KEEPS; 67 typedef struct regnode_1 tregnode_LEXACT; 68 typedef struct regnode_1 tregnode_LEXACT_REQ8; 69 typedef struct regnode tregnode_LNBREAK; 70 typedef struct regnode tregnode_LOGICAL; 71 typedef struct regnode_1 tregnode_LONGJMP; 72 typedef struct regnode tregnode_LOOKBEHIND_END; 73 typedef struct regnode_1 tregnode_MARKPOINT; 74 typedef struct regnode tregnode_MBOL; 75 typedef struct regnode tregnode_MEOL; 76 typedef struct regnode tregnode_MINMOD; 77 typedef struct regnode_1 tregnode_NANYOFM; 78 typedef struct regnode tregnode_NBOUND; 79 typedef struct regnode tregnode_NBOUNDA; 80 typedef struct regnode tregnode_NBOUNDL; 81 typedef struct regnode tregnode_NBOUNDU; 82 typedef struct regnode tregnode_NOTHING; 83 typedef struct regnode tregnode_NPOSIXA; 84 typedef struct regnode tregnode_NPOSIXD; 85 typedef struct regnode tregnode_NPOSIXL; 86 typedef struct regnode tregnode_NPOSIXU; 87 typedef struct regnode_1 tregnode_OPEN; 88 typedef struct regnode_1 tregnode_OPFAIL; 89 typedef struct regnode tregnode_OPTIMIZED; 90 typedef struct regnode tregnode_PLUS; 91 typedef struct regnode tregnode_POSIXA; 92 typedef struct regnode tregnode_POSIXD; 93 typedef struct regnode tregnode_POSIXL; 94 typedef struct regnode tregnode_POSIXU; 95 typedef struct regnode_1 tregnode_PRUNE; 96 typedef struct regnode tregnode_PSEUDO; 97 typedef struct regnode_2 tregnode_REF; 98 typedef struct regnode_2 tregnode_REFF; 99 typedef struct regnode_2 tregnode_REFFA; 100 typedef struct regnode_2 tregnode_REFFAN; 101 typedef struct regnode_2 tregnode_REFFL; 102 typedef struct regnode_2 tregnode_REFFLN; 103 typedef struct regnode_2 tregnode_REFFN; 104 typedef struct regnode_2 tregnode_REFFU; 105 typedef struct regnode_2 tregnode_REFFUN; 106 typedef struct regnode_2 tregnode_REFN; 107 typedef struct regnode_p tregnode_REGEX_SET; 108 typedef struct regnode tregnode_REG_ANY; 109 typedef struct regnode_1 tregnode_RENUM; 110 typedef struct regnode tregnode_SANY; 111 typedef struct regnode tregnode_SBOL; 112 typedef struct regnode tregnode_SEOL; 113 typedef struct regnode_1 tregnode_SKIP; 114 typedef struct regnode tregnode_SRCLOSE; 115 typedef struct regnode tregnode_SROPEN; 116 typedef struct regnode tregnode_STAR; 117 typedef struct regnode tregnode_SUCCEED; 118 typedef struct regnode_1 tregnode_SUSPEND; 119 typedef struct regnode tregnode_TAIL; 120 typedef struct regnode_1 tregnode_TRIE; 121 typedef struct regnode_charclass tregnode_TRIEC; 122 typedef struct regnode_1 tregnode_UNLESSM; 123 typedef struct regnode_1 tregnode_VERB; 124 typedef struct regnode tregnode_WHILEM; 125 126 /* end typedefs */ 127 128 /* Regops and State definitions */ 129 130 #define REGNODE_MAX 111 131 #define REGMATCH_STATE_MAX 153 132 133 /* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte'); */ 134 #define with_t_UTF8ness(op, t_utf8) (((op) << 1) + (cBOOL(t_utf8))) 135 /* -- same, but also with pattern (p8, pb) -- */ 136 #define with_tp_UTF8ness(op, t_utf8, p_utf8) \ 137 (((op) << 2) + (cBOOL(t_utf8) << 1) + cBOOL(p_utf8)) 138 139 /* The #defines below give both the basic regnode and the expanded version for 140 switching on utf8ness */ 141 #define END 0 /* 0x00 End of program. */ 142 #define END_tb 0 /* 0x000 */ 143 #define END_t8 1 /* 0x001 */ 144 #define END_tb_pb 0 /* 0x000 */ 145 #define END_tb_p8 1 /* 0x001 */ 146 #define END_t8_pb 2 /* 0x002 */ 147 #define END_t8_p8 3 /* 0x003 */ 148 149 #define SUCCEED 1 /* 0x01 Return from a 150 subroutine, basically. */ 151 #define SUCCEED_tb 2 /* 0x002 */ 152 #define SUCCEED_t8 3 /* 0x003 */ 153 #define SUCCEED_tb_pb 4 /* 0x004 */ 154 #define SUCCEED_tb_p8 5 /* 0x005 */ 155 #define SUCCEED_t8_pb 6 /* 0x006 */ 156 #define SUCCEED_t8_p8 7 /* 0x007 */ 157 158 #define SBOL 2 /* 0x02 Match "" at beginning 159 of line: /^/, /\A/ */ 160 #define SBOL_tb 4 /* 0x004 */ 161 #define SBOL_t8 5 /* 0x005 */ 162 #define SBOL_tb_pb 8 /* 0x008 */ 163 #define SBOL_tb_p8 9 /* 0x009 */ 164 #define SBOL_t8_pb 10 /* 0x00a */ 165 #define SBOL_t8_p8 11 /* 0x00b */ 166 167 #define BOL 2 /* 0x02 Match "" at beginning 168 of line: /^/, /\A/ */ 169 #define BOL_tb 4 /* 0x004 */ 170 #define BOL_t8 5 /* 0x005 */ 171 #define BOL_tb_pb 8 /* 0x008 */ 172 #define BOL_tb_p8 9 /* 0x009 */ 173 #define BOL_t8_pb 10 /* 0x00a */ 174 #define BOL_t8_p8 11 /* 0x00b */ 175 176 #define MBOL 3 /* 0x03 Same, assuming 177 multiline: /^/m */ 178 #define MBOL_tb 6 /* 0x006 */ 179 #define MBOL_t8 7 /* 0x007 */ 180 #define MBOL_tb_pb 12 /* 0x00c */ 181 #define MBOL_tb_p8 13 /* 0x00d */ 182 #define MBOL_t8_pb 14 /* 0x00e */ 183 #define MBOL_t8_p8 15 /* 0x00f */ 184 185 #define SEOL 4 /* 0x04 Match "" at end of 186 line: /$/ */ 187 #define SEOL_tb 8 /* 0x008 */ 188 #define SEOL_t8 9 /* 0x009 */ 189 #define SEOL_tb_pb 16 /* 0x010 */ 190 #define SEOL_tb_p8 17 /* 0x011 */ 191 #define SEOL_t8_pb 18 /* 0x012 */ 192 #define SEOL_t8_p8 19 /* 0x013 */ 193 194 #define EOL 4 /* 0x04 Match "" at end of 195 line: /$/ */ 196 #define EOL_tb 8 /* 0x008 */ 197 #define EOL_t8 9 /* 0x009 */ 198 #define EOL_tb_pb 16 /* 0x010 */ 199 #define EOL_tb_p8 17 /* 0x011 */ 200 #define EOL_t8_pb 18 /* 0x012 */ 201 #define EOL_t8_p8 19 /* 0x013 */ 202 203 #define MEOL 5 /* 0x05 Same, assuming 204 multiline: /$/m */ 205 #define MEOL_tb 10 /* 0x00a */ 206 #define MEOL_t8 11 /* 0x00b */ 207 #define MEOL_tb_pb 20 /* 0x014 */ 208 #define MEOL_tb_p8 21 /* 0x015 */ 209 #define MEOL_t8_pb 22 /* 0x016 */ 210 #define MEOL_t8_p8 23 /* 0x017 */ 211 212 #define EOS 6 /* 0x06 Match "" at end of 213 string: /\z/ */ 214 #define EOS_tb 12 /* 0x00c */ 215 #define EOS_t8 13 /* 0x00d */ 216 #define EOS_tb_pb 24 /* 0x018 */ 217 #define EOS_tb_p8 25 /* 0x019 */ 218 #define EOS_t8_pb 26 /* 0x01a */ 219 #define EOS_t8_p8 27 /* 0x01b */ 220 221 #define GPOS 7 /* 0x07 Matches where last m//g 222 left off. */ 223 #define GPOS_tb 14 /* 0x00e */ 224 #define GPOS_t8 15 /* 0x00f */ 225 #define GPOS_tb_pb 28 /* 0x01c */ 226 #define GPOS_tb_p8 29 /* 0x01d */ 227 #define GPOS_t8_pb 30 /* 0x01e */ 228 #define GPOS_t8_p8 31 /* 0x01f */ 229 230 #define BOUND 8 /* 0x08 Like BOUNDA for 231 non-utf8, otherwise like 232 BOUNDU */ 233 #define BOUND_tb 16 /* 0x010 */ 234 #define BOUND_t8 17 /* 0x011 */ 235 #define BOUND_tb_pb 32 /* 0x020 */ 236 #define BOUND_tb_p8 33 /* 0x021 */ 237 #define BOUND_t8_pb 34 /* 0x022 */ 238 #define BOUND_t8_p8 35 /* 0x023 */ 239 240 #define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but 241 \w and \W are defined by 242 current locale */ 243 #define BOUNDL_tb 18 /* 0x012 */ 244 #define BOUNDL_t8 19 /* 0x013 */ 245 #define BOUNDL_tb_pb 36 /* 0x024 */ 246 #define BOUNDL_tb_p8 37 /* 0x025 */ 247 #define BOUNDL_t8_pb 38 /* 0x026 */ 248 #define BOUNDL_t8_p8 39 /* 0x027 */ 249 250 #define BOUNDU 10 /* 0x0a Match "" at any 251 boundary of a given type 252 using /u rules. */ 253 #define BOUNDU_tb 20 /* 0x014 */ 254 #define BOUNDU_t8 21 /* 0x015 */ 255 #define BOUNDU_tb_pb 40 /* 0x028 */ 256 #define BOUNDU_tb_p8 41 /* 0x029 */ 257 #define BOUNDU_t8_pb 42 /* 0x02a */ 258 #define BOUNDU_t8_p8 43 /* 0x02b */ 259 260 #define BOUNDA 11 /* 0x0b Match "" at any 261 boundary between \w\W or 262 \W\w, where \w is 263 [_a-zA-Z0-9] */ 264 #define BOUNDA_tb 22 /* 0x016 */ 265 #define BOUNDA_t8 23 /* 0x017 */ 266 #define BOUNDA_tb_pb 44 /* 0x02c */ 267 #define BOUNDA_tb_p8 45 /* 0x02d */ 268 #define BOUNDA_t8_pb 46 /* 0x02e */ 269 #define BOUNDA_t8_p8 47 /* 0x02f */ 270 271 #define NBOUND 12 /* 0x0c Like NBOUNDA for 272 non-utf8, otherwise like 273 BOUNDU */ 274 #define NBOUND_tb 24 /* 0x018 */ 275 #define NBOUND_t8 25 /* 0x019 */ 276 #define NBOUND_tb_pb 48 /* 0x030 */ 277 #define NBOUND_tb_p8 49 /* 0x031 */ 278 #define NBOUND_t8_pb 50 /* 0x032 */ 279 #define NBOUND_t8_p8 51 /* 0x033 */ 280 281 #define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU, 282 but \w and \W are defined by 283 current locale */ 284 #define NBOUNDL_tb 26 /* 0x01a */ 285 #define NBOUNDL_t8 27 /* 0x01b */ 286 #define NBOUNDL_tb_pb 52 /* 0x034 */ 287 #define NBOUNDL_tb_p8 53 /* 0x035 */ 288 #define NBOUNDL_t8_pb 54 /* 0x036 */ 289 #define NBOUNDL_t8_p8 55 /* 0x037 */ 290 291 #define NBOUNDU 14 /* 0x0e Match "" at any 292 non-boundary of a given type 293 using using /u rules. */ 294 #define NBOUNDU_tb 28 /* 0x01c */ 295 #define NBOUNDU_t8 29 /* 0x01d */ 296 #define NBOUNDU_tb_pb 56 /* 0x038 */ 297 #define NBOUNDU_tb_p8 57 /* 0x039 */ 298 #define NBOUNDU_t8_pb 58 /* 0x03a */ 299 #define NBOUNDU_t8_p8 59 /* 0x03b */ 300 301 #define NBOUNDA 15 /* 0x0f Match "" betweeen any 302 \w\w or \W\W, where \w is 303 [_a-zA-Z0-9] */ 304 #define NBOUNDA_tb 30 /* 0x01e */ 305 #define NBOUNDA_t8 31 /* 0x01f */ 306 #define NBOUNDA_tb_pb 60 /* 0x03c */ 307 #define NBOUNDA_tb_p8 61 /* 0x03d */ 308 #define NBOUNDA_t8_pb 62 /* 0x03e */ 309 #define NBOUNDA_t8_p8 63 /* 0x03f */ 310 311 #define REG_ANY 16 /* 0x10 Match any one character 312 (except newline). */ 313 #define REG_ANY_tb 32 /* 0x020 */ 314 #define REG_ANY_t8 33 /* 0x021 */ 315 #define REG_ANY_tb_pb 64 /* 0x040 */ 316 #define REG_ANY_tb_p8 65 /* 0x041 */ 317 #define REG_ANY_t8_pb 66 /* 0x042 */ 318 #define REG_ANY_t8_p8 67 /* 0x043 */ 319 320 #define SANY 17 /* 0x11 Match any one 321 character. */ 322 #define SANY_tb 34 /* 0x022 */ 323 #define SANY_t8 35 /* 0x023 */ 324 #define SANY_tb_pb 68 /* 0x044 */ 325 #define SANY_tb_p8 69 /* 0x045 */ 326 #define SANY_t8_pb 70 /* 0x046 */ 327 #define SANY_t8_p8 71 /* 0x047 */ 328 329 #define ANYOF 18 /* 0x12 Match character in (or 330 not in) this class, single 331 char match only */ 332 #define ANYOF_tb 36 /* 0x024 */ 333 #define ANYOF_t8 37 /* 0x025 */ 334 #define ANYOF_tb_pb 72 /* 0x048 */ 335 #define ANYOF_tb_p8 73 /* 0x049 */ 336 #define ANYOF_t8_pb 74 /* 0x04a */ 337 #define ANYOF_t8_p8 75 /* 0x04b */ 338 339 #define ANYOFD 19 /* 0x13 Like ANYOF, but /d is 340 in effect */ 341 #define ANYOFD_tb 38 /* 0x026 */ 342 #define ANYOFD_t8 39 /* 0x027 */ 343 #define ANYOFD_tb_pb 76 /* 0x04c */ 344 #define ANYOFD_tb_p8 77 /* 0x04d */ 345 #define ANYOFD_t8_pb 78 /* 0x04e */ 346 #define ANYOFD_t8_p8 79 /* 0x04f */ 347 348 #define ANYOFL 20 /* 0x14 Like ANYOF, but /l is 349 in effect */ 350 #define ANYOFL_tb 40 /* 0x028 */ 351 #define ANYOFL_t8 41 /* 0x029 */ 352 #define ANYOFL_tb_pb 80 /* 0x050 */ 353 #define ANYOFL_tb_p8 81 /* 0x051 */ 354 #define ANYOFL_t8_pb 82 /* 0x052 */ 355 #define ANYOFL_t8_p8 83 /* 0x053 */ 356 357 #define ANYOFPOSIXL 21 /* 0x15 Like ANYOFL, but 358 matches [[:posix:]] classes 359 */ 360 #define ANYOFPOSIXL_tb 42 /* 0x02a */ 361 #define ANYOFPOSIXL_t8 43 /* 0x02b */ 362 #define ANYOFPOSIXL_tb_pb 84 /* 0x054 */ 363 #define ANYOFPOSIXL_tb_p8 85 /* 0x055 */ 364 #define ANYOFPOSIXL_t8_pb 86 /* 0x056 */ 365 #define ANYOFPOSIXL_t8_p8 87 /* 0x057 */ 366 367 #define ANYOFH 22 /* 0x16 Like ANYOF, but only 368 has "High" matches, none in 369 the bitmap; the flags field 370 contains the lowest 371 matchable UTF-8 start byte 372 */ 373 #define ANYOFH_tb 44 /* 0x02c */ 374 #define ANYOFH_t8 45 /* 0x02d */ 375 #define ANYOFH_tb_pb 88 /* 0x058 */ 376 #define ANYOFH_tb_p8 89 /* 0x059 */ 377 #define ANYOFH_t8_pb 90 /* 0x05a */ 378 #define ANYOFH_t8_p8 91 /* 0x05b */ 379 380 #define ANYOFHb 23 /* 0x17 Like ANYOFH, but all 381 matches share the same UTF-8 382 start byte, given in the 383 flags field */ 384 #define ANYOFHb_tb 46 /* 0x02e */ 385 #define ANYOFHb_t8 47 /* 0x02f */ 386 #define ANYOFHb_tb_pb 92 /* 0x05c */ 387 #define ANYOFHb_tb_p8 93 /* 0x05d */ 388 #define ANYOFHb_t8_pb 94 /* 0x05e */ 389 #define ANYOFHb_t8_p8 95 /* 0x05f */ 390 391 #define ANYOFHr 24 /* 0x18 Like ANYOFH, but the 392 flags field contains packed 393 bounds for all matchable 394 UTF-8 start bytes. */ 395 #define ANYOFHr_tb 48 /* 0x030 */ 396 #define ANYOFHr_t8 49 /* 0x031 */ 397 #define ANYOFHr_tb_pb 96 /* 0x060 */ 398 #define ANYOFHr_tb_p8 97 /* 0x061 */ 399 #define ANYOFHr_t8_pb 98 /* 0x062 */ 400 #define ANYOFHr_t8_p8 99 /* 0x063 */ 401 402 #define ANYOFHs 25 /* 0x19 Like ANYOFHb, but has a 403 string field that gives the 404 leading matchable UTF-8 405 bytes; flags field is len */ 406 #define ANYOFHs_tb 50 /* 0x032 */ 407 #define ANYOFHs_t8 51 /* 0x033 */ 408 #define ANYOFHs_tb_pb 100 /* 0x064 */ 409 #define ANYOFHs_tb_p8 101 /* 0x065 */ 410 #define ANYOFHs_t8_pb 102 /* 0x066 */ 411 #define ANYOFHs_t8_p8 103 /* 0x067 */ 412 413 #define ANYOFR 26 /* 0x1a Matches any character 414 in the range given by its 415 packed args: upper 12 bits 416 is the max delta from the 417 base lower 20; the flags 418 field contains the lowest 419 matchable UTF-8 start byte 420 */ 421 #define ANYOFR_tb 52 /* 0x034 */ 422 #define ANYOFR_t8 53 /* 0x035 */ 423 #define ANYOFR_tb_pb 104 /* 0x068 */ 424 #define ANYOFR_tb_p8 105 /* 0x069 */ 425 #define ANYOFR_t8_pb 106 /* 0x06a */ 426 #define ANYOFR_t8_p8 107 /* 0x06b */ 427 428 #define ANYOFRb 27 /* 0x1b Like ANYOFR, but all 429 matches share the same UTF-8 430 start byte, given in the 431 flags field */ 432 #define ANYOFRb_tb 54 /* 0x036 */ 433 #define ANYOFRb_t8 55 /* 0x037 */ 434 #define ANYOFRb_tb_pb 108 /* 0x06c */ 435 #define ANYOFRb_tb_p8 109 /* 0x06d */ 436 #define ANYOFRb_t8_pb 110 /* 0x06e */ 437 #define ANYOFRb_t8_p8 111 /* 0x06f */ 438 439 #define ANYOFHbbm 28 /* 0x1c Like ANYOFHb, but only 440 for 2-byte UTF-8 characters; 441 uses a bitmap to match the 442 continuation byte */ 443 #define ANYOFHbbm_tb 56 /* 0x038 */ 444 #define ANYOFHbbm_t8 57 /* 0x039 */ 445 #define ANYOFHbbm_tb_pb 112 /* 0x070 */ 446 #define ANYOFHbbm_tb_p8 113 /* 0x071 */ 447 #define ANYOFHbbm_t8_pb 114 /* 0x072 */ 448 #define ANYOFHbbm_t8_p8 115 /* 0x073 */ 449 450 #define ANYOFM 29 /* 0x1d Like ANYOF, but matches 451 an invariant byte as 452 determined by the mask and 453 arg */ 454 #define ANYOFM_tb 58 /* 0x03a */ 455 #define ANYOFM_t8 59 /* 0x03b */ 456 #define ANYOFM_tb_pb 116 /* 0x074 */ 457 #define ANYOFM_tb_p8 117 /* 0x075 */ 458 #define ANYOFM_t8_pb 118 /* 0x076 */ 459 #define ANYOFM_t8_p8 119 /* 0x077 */ 460 461 #define NANYOFM 30 /* 0x1e complement of ANYOFM */ 462 #define NANYOFM_tb 60 /* 0x03c */ 463 #define NANYOFM_t8 61 /* 0x03d */ 464 #define NANYOFM_tb_pb 120 /* 0x078 */ 465 #define NANYOFM_tb_p8 121 /* 0x079 */ 466 #define NANYOFM_t8_pb 122 /* 0x07a */ 467 #define NANYOFM_t8_p8 123 /* 0x07b */ 468 469 #define POSIXD 31 /* 0x1f Some [[:class:]] under 470 /d; the FLAGS field gives 471 which one */ 472 #define POSIXD_tb 62 /* 0x03e */ 473 #define POSIXD_t8 63 /* 0x03f */ 474 #define POSIXD_tb_pb 124 /* 0x07c */ 475 #define POSIXD_tb_p8 125 /* 0x07d */ 476 #define POSIXD_t8_pb 126 /* 0x07e */ 477 #define POSIXD_t8_p8 127 /* 0x07f */ 478 479 #define POSIXL 32 /* 0x20 Some [[:class:]] under 480 /l; the FLAGS field gives 481 which one */ 482 #define POSIXL_tb 64 /* 0x040 */ 483 #define POSIXL_t8 65 /* 0x041 */ 484 #define POSIXL_tb_pb 128 /* 0x080 */ 485 #define POSIXL_tb_p8 129 /* 0x081 */ 486 #define POSIXL_t8_pb 130 /* 0x082 */ 487 #define POSIXL_t8_p8 131 /* 0x083 */ 488 489 #define POSIXU 33 /* 0x21 Some [[:class:]] under 490 /u; the FLAGS field gives 491 which one */ 492 #define POSIXU_tb 66 /* 0x042 */ 493 #define POSIXU_t8 67 /* 0x043 */ 494 #define POSIXU_tb_pb 132 /* 0x084 */ 495 #define POSIXU_tb_p8 133 /* 0x085 */ 496 #define POSIXU_t8_pb 134 /* 0x086 */ 497 #define POSIXU_t8_p8 135 /* 0x087 */ 498 499 #define POSIXA 34 /* 0x22 Some [[:class:]] under 500 /a; the FLAGS field gives 501 which one */ 502 #define POSIXA_tb 68 /* 0x044 */ 503 #define POSIXA_t8 69 /* 0x045 */ 504 #define POSIXA_tb_pb 136 /* 0x088 */ 505 #define POSIXA_tb_p8 137 /* 0x089 */ 506 #define POSIXA_t8_pb 138 /* 0x08a */ 507 #define POSIXA_t8_p8 139 /* 0x08b */ 508 509 #define NPOSIXD 35 /* 0x23 complement of POSIXD, 510 [[:^class:]] */ 511 #define NPOSIXD_tb 70 /* 0x046 */ 512 #define NPOSIXD_t8 71 /* 0x047 */ 513 #define NPOSIXD_tb_pb 140 /* 0x08c */ 514 #define NPOSIXD_tb_p8 141 /* 0x08d */ 515 #define NPOSIXD_t8_pb 142 /* 0x08e */ 516 #define NPOSIXD_t8_p8 143 /* 0x08f */ 517 518 #define NPOSIXL 36 /* 0x24 complement of POSIXL, 519 [[:^class:]] */ 520 #define NPOSIXL_tb 72 /* 0x048 */ 521 #define NPOSIXL_t8 73 /* 0x049 */ 522 #define NPOSIXL_tb_pb 144 /* 0x090 */ 523 #define NPOSIXL_tb_p8 145 /* 0x091 */ 524 #define NPOSIXL_t8_pb 146 /* 0x092 */ 525 #define NPOSIXL_t8_p8 147 /* 0x093 */ 526 527 #define NPOSIXU 37 /* 0x25 complement of POSIXU, 528 [[:^class:]] */ 529 #define NPOSIXU_tb 74 /* 0x04a */ 530 #define NPOSIXU_t8 75 /* 0x04b */ 531 #define NPOSIXU_tb_pb 148 /* 0x094 */ 532 #define NPOSIXU_tb_p8 149 /* 0x095 */ 533 #define NPOSIXU_t8_pb 150 /* 0x096 */ 534 #define NPOSIXU_t8_p8 151 /* 0x097 */ 535 536 #define NPOSIXA 38 /* 0x26 complement of POSIXA, 537 [[:^class:]] */ 538 #define NPOSIXA_tb 76 /* 0x04c */ 539 #define NPOSIXA_t8 77 /* 0x04d */ 540 #define NPOSIXA_tb_pb 152 /* 0x098 */ 541 #define NPOSIXA_tb_p8 153 /* 0x099 */ 542 #define NPOSIXA_t8_pb 154 /* 0x09a */ 543 #define NPOSIXA_t8_p8 155 /* 0x09b */ 544 545 #define CLUMP 39 /* 0x27 Match any extended 546 grapheme cluster sequence */ 547 #define CLUMP_tb 78 /* 0x04e */ 548 #define CLUMP_t8 79 /* 0x04f */ 549 #define CLUMP_tb_pb 156 /* 0x09c */ 550 #define CLUMP_tb_p8 157 /* 0x09d */ 551 #define CLUMP_t8_pb 158 /* 0x09e */ 552 #define CLUMP_t8_p8 159 /* 0x09f */ 553 554 #define BRANCH 40 /* 0x28 Match this alternative, 555 or the next... */ 556 #define BRANCH_tb 80 /* 0x050 */ 557 #define BRANCH_t8 81 /* 0x051 */ 558 #define BRANCH_tb_pb 160 /* 0x0a0 */ 559 #define BRANCH_tb_p8 161 /* 0x0a1 */ 560 #define BRANCH_t8_pb 162 /* 0x0a2 */ 561 #define BRANCH_t8_p8 163 /* 0x0a3 */ 562 563 #define EXACT 41 /* 0x29 Match this string 564 (flags field is the length). 565 */ 566 #define EXACT_tb 82 /* 0x052 */ 567 #define EXACT_t8 83 /* 0x053 */ 568 #define EXACT_tb_pb 164 /* 0x0a4 */ 569 #define EXACT_tb_p8 165 /* 0x0a5 */ 570 #define EXACT_t8_pb 166 /* 0x0a6 */ 571 #define EXACT_t8_p8 167 /* 0x0a7 */ 572 573 #define LEXACT 42 /* 0x2a Match this long string 574 (preceded by length; flags 575 unused). */ 576 #define LEXACT_tb 84 /* 0x054 */ 577 #define LEXACT_t8 85 /* 0x055 */ 578 #define LEXACT_tb_pb 168 /* 0x0a8 */ 579 #define LEXACT_tb_p8 169 /* 0x0a9 */ 580 #define LEXACT_t8_pb 170 /* 0x0aa */ 581 #define LEXACT_t8_p8 171 /* 0x0ab */ 582 583 #define EXACTL 43 /* 0x2b Like EXACT, but /l is 584 in effect (used so 585 locale-related warnings can 586 be checked for) */ 587 #define EXACTL_tb 86 /* 0x056 */ 588 #define EXACTL_t8 87 /* 0x057 */ 589 #define EXACTL_tb_pb 172 /* 0x0ac */ 590 #define EXACTL_tb_p8 173 /* 0x0ad */ 591 #define EXACTL_t8_pb 174 /* 0x0ae */ 592 #define EXACTL_t8_p8 175 /* 0x0af */ 593 594 #define EXACTF 44 /* 0x2c Like EXACT, but match 595 using /id rules; (string not 596 UTF-8, ASCII folded; 597 non-ASCII not) */ 598 #define EXACTF_tb 88 /* 0x058 */ 599 #define EXACTF_t8 89 /* 0x059 */ 600 #define EXACTF_tb_pb 176 /* 0x0b0 */ 601 #define EXACTF_tb_p8 177 /* 0x0b1 */ 602 #define EXACTF_t8_pb 178 /* 0x0b2 */ 603 #define EXACTF_t8_p8 179 /* 0x0b3 */ 604 605 #define EXACTFL 45 /* 0x2d Like EXACT, but match 606 using /il rules; (string not 607 likely to be folded) */ 608 #define EXACTFL_tb 90 /* 0x05a */ 609 #define EXACTFL_t8 91 /* 0x05b */ 610 #define EXACTFL_tb_pb 180 /* 0x0b4 */ 611 #define EXACTFL_tb_p8 181 /* 0x0b5 */ 612 #define EXACTFL_t8_pb 182 /* 0x0b6 */ 613 #define EXACTFL_t8_p8 183 /* 0x0b7 */ 614 615 #define EXACTFU 46 /* 0x2e Like EXACT, but match 616 using /iu rules; (string 617 folded) */ 618 #define EXACTFU_tb 92 /* 0x05c */ 619 #define EXACTFU_t8 93 /* 0x05d */ 620 #define EXACTFU_tb_pb 184 /* 0x0b8 */ 621 #define EXACTFU_tb_p8 185 /* 0x0b9 */ 622 #define EXACTFU_t8_pb 186 /* 0x0ba */ 623 #define EXACTFU_t8_p8 187 /* 0x0bb */ 624 625 #define EXACTFAA 47 /* 0x2f Like EXACT, but match 626 using /iaa rules; (string 627 folded except MICRO in 628 non-UTF8 patterns; doesn't 629 contain SHARP S unless 630 UTF-8; folded length <= 631 unfolded) */ 632 #define EXACTFAA_tb 94 /* 0x05e */ 633 #define EXACTFAA_t8 95 /* 0x05f */ 634 #define EXACTFAA_tb_pb 188 /* 0x0bc */ 635 #define EXACTFAA_tb_p8 189 /* 0x0bd */ 636 #define EXACTFAA_t8_pb 190 /* 0x0be */ 637 #define EXACTFAA_t8_p8 191 /* 0x0bf */ 638 639 #define EXACTFAA_NO_TRIE 48 /* 0x30 Like EXACTFAA, (string 640 not UTF-8, folded except: 641 MICRO, SHARP S; folded 642 length <= unfolded, not 643 currently trie-able) */ 644 #define EXACTFAA_NO_TRIE_tb 96 /* 0x060 */ 645 #define EXACTFAA_NO_TRIE_t8 97 /* 0x061 */ 646 #define EXACTFAA_NO_TRIE_tb_pb 192 /* 0x0c0 */ 647 #define EXACTFAA_NO_TRIE_tb_p8 193 /* 0x0c1 */ 648 #define EXACTFAA_NO_TRIE_t8_pb 194 /* 0x0c2 */ 649 #define EXACTFAA_NO_TRIE_t8_p8 195 /* 0x0c3 */ 650 651 #define EXACTFUP 49 /* 0x31 Like EXACT, but match 652 using /iu rules; (string not 653 UTF-8, folded except MICRO: 654 hence Problematic) */ 655 #define EXACTFUP_tb 98 /* 0x062 */ 656 #define EXACTFUP_t8 99 /* 0x063 */ 657 #define EXACTFUP_tb_pb 196 /* 0x0c4 */ 658 #define EXACTFUP_tb_p8 197 /* 0x0c5 */ 659 #define EXACTFUP_t8_pb 198 /* 0x0c6 */ 660 #define EXACTFUP_t8_p8 199 /* 0x0c7 */ 661 662 #define EXACTFLU8 50 /* 0x32 Like EXACTFU, but use 663 /il, UTF-8, (string is 664 folded, and everything in it 665 is above 255 */ 666 #define EXACTFLU8_tb 100 /* 0x064 */ 667 #define EXACTFLU8_t8 101 /* 0x065 */ 668 #define EXACTFLU8_tb_pb 200 /* 0x0c8 */ 669 #define EXACTFLU8_tb_p8 201 /* 0x0c9 */ 670 #define EXACTFLU8_t8_pb 202 /* 0x0ca */ 671 #define EXACTFLU8_t8_p8 203 /* 0x0cb */ 672 673 #define EXACT_REQ8 51 /* 0x33 Like EXACT, but only 674 UTF-8 encoded targets can 675 match */ 676 #define EXACT_REQ8_tb 102 /* 0x066 */ 677 #define EXACT_REQ8_t8 103 /* 0x067 */ 678 #define EXACT_REQ8_tb_pb 204 /* 0x0cc */ 679 #define EXACT_REQ8_tb_p8 205 /* 0x0cd */ 680 #define EXACT_REQ8_t8_pb 206 /* 0x0ce */ 681 #define EXACT_REQ8_t8_p8 207 /* 0x0cf */ 682 683 #define LEXACT_REQ8 52 /* 0x34 Like LEXACT, but only 684 UTF-8 encoded targets can 685 match */ 686 #define LEXACT_REQ8_tb 104 /* 0x068 */ 687 #define LEXACT_REQ8_t8 105 /* 0x069 */ 688 #define LEXACT_REQ8_tb_pb 208 /* 0x0d0 */ 689 #define LEXACT_REQ8_tb_p8 209 /* 0x0d1 */ 690 #define LEXACT_REQ8_t8_pb 210 /* 0x0d2 */ 691 #define LEXACT_REQ8_t8_p8 211 /* 0x0d3 */ 692 693 #define EXACTFU_REQ8 53 /* 0x35 Like EXACTFU, but only 694 UTF-8 encoded targets can 695 match */ 696 #define EXACTFU_REQ8_tb 106 /* 0x06a */ 697 #define EXACTFU_REQ8_t8 107 /* 0x06b */ 698 #define EXACTFU_REQ8_tb_pb 212 /* 0x0d4 */ 699 #define EXACTFU_REQ8_tb_p8 213 /* 0x0d5 */ 700 #define EXACTFU_REQ8_t8_pb 214 /* 0x0d6 */ 701 #define EXACTFU_REQ8_t8_p8 215 /* 0x0d7 */ 702 703 #define EXACTFU_S_EDGE 54 /* 0x36 /di rules, but nothing 704 in it precludes /ui, except 705 begins and/or ends with 706 [Ss]; (string not UTF-8; 707 compile-time only) */ 708 #define EXACTFU_S_EDGE_tb 108 /* 0x06c */ 709 #define EXACTFU_S_EDGE_t8 109 /* 0x06d */ 710 #define EXACTFU_S_EDGE_tb_pb 216 /* 0x0d8 */ 711 #define EXACTFU_S_EDGE_tb_p8 217 /* 0x0d9 */ 712 #define EXACTFU_S_EDGE_t8_pb 218 /* 0x0da */ 713 #define EXACTFU_S_EDGE_t8_p8 219 /* 0x0db */ 714 715 #define LNBREAK 55 /* 0x37 generic newline pattern 716 */ 717 #define LNBREAK_tb 110 /* 0x06e */ 718 #define LNBREAK_t8 111 /* 0x06f */ 719 #define LNBREAK_tb_pb 220 /* 0x0dc */ 720 #define LNBREAK_tb_p8 221 /* 0x0dd */ 721 #define LNBREAK_t8_pb 222 /* 0x0de */ 722 #define LNBREAK_t8_p8 223 /* 0x0df */ 723 724 #define TRIE 56 /* 0x38 Match many 725 EXACT(F[ALU]?)? at once. 726 flags==type */ 727 #define TRIE_tb 112 /* 0x070 */ 728 #define TRIE_t8 113 /* 0x071 */ 729 #define TRIE_tb_pb 224 /* 0x0e0 */ 730 #define TRIE_tb_p8 225 /* 0x0e1 */ 731 #define TRIE_t8_pb 226 /* 0x0e2 */ 732 #define TRIE_t8_p8 227 /* 0x0e3 */ 733 734 #define TRIEC 57 /* 0x39 Same as TRIE, but with 735 embedded charclass data */ 736 #define TRIEC_tb 114 /* 0x072 */ 737 #define TRIEC_t8 115 /* 0x073 */ 738 #define TRIEC_tb_pb 228 /* 0x0e4 */ 739 #define TRIEC_tb_p8 229 /* 0x0e5 */ 740 #define TRIEC_t8_pb 230 /* 0x0e6 */ 741 #define TRIEC_t8_p8 231 /* 0x0e7 */ 742 743 #define AHOCORASICK 58 /* 0x3a Aho Corasick stclass. 744 flags==type */ 745 #define AHOCORASICK_tb 116 /* 0x074 */ 746 #define AHOCORASICK_t8 117 /* 0x075 */ 747 #define AHOCORASICK_tb_pb 232 /* 0x0e8 */ 748 #define AHOCORASICK_tb_p8 233 /* 0x0e9 */ 749 #define AHOCORASICK_t8_pb 234 /* 0x0ea */ 750 #define AHOCORASICK_t8_p8 235 /* 0x0eb */ 751 752 #define AHOCORASICKC 59 /* 0x3b Same as AHOCORASICK, 753 but with embedded charclass 754 data */ 755 #define AHOCORASICKC_tb 118 /* 0x076 */ 756 #define AHOCORASICKC_t8 119 /* 0x077 */ 757 #define AHOCORASICKC_tb_pb 236 /* 0x0ec */ 758 #define AHOCORASICKC_tb_p8 237 /* 0x0ed */ 759 #define AHOCORASICKC_t8_pb 238 /* 0x0ee */ 760 #define AHOCORASICKC_t8_p8 239 /* 0x0ef */ 761 762 #define NOTHING 60 /* 0x3c Match empty string. */ 763 #define NOTHING_tb 120 /* 0x078 */ 764 #define NOTHING_t8 121 /* 0x079 */ 765 #define NOTHING_tb_pb 240 /* 0x0f0 */ 766 #define NOTHING_tb_p8 241 /* 0x0f1 */ 767 #define NOTHING_t8_pb 242 /* 0x0f2 */ 768 #define NOTHING_t8_p8 243 /* 0x0f3 */ 769 770 #define TAIL 61 /* 0x3d Match empty string. Can 771 jump here from outside. */ 772 #define TAIL_tb 122 /* 0x07a */ 773 #define TAIL_t8 123 /* 0x07b */ 774 #define TAIL_tb_pb 244 /* 0x0f4 */ 775 #define TAIL_tb_p8 245 /* 0x0f5 */ 776 #define TAIL_t8_pb 246 /* 0x0f6 */ 777 #define TAIL_t8_p8 247 /* 0x0f7 */ 778 779 #define STAR 62 /* 0x3e Match this (simple) 780 thing 0 or more times: 781 /A{0,}B/ where A is width 1 782 char */ 783 #define STAR_tb 124 /* 0x07c */ 784 #define STAR_t8 125 /* 0x07d */ 785 #define STAR_tb_pb 248 /* 0x0f8 */ 786 #define STAR_tb_p8 249 /* 0x0f9 */ 787 #define STAR_t8_pb 250 /* 0x0fa */ 788 #define STAR_t8_p8 251 /* 0x0fb */ 789 790 #define PLUS 63 /* 0x3f Match this (simple) 791 thing 1 or more times: 792 /A{1,}B/ where A is width 1 793 char */ 794 #define PLUS_tb 126 /* 0x07e */ 795 #define PLUS_t8 127 /* 0x07f */ 796 #define PLUS_tb_pb 252 /* 0x0fc */ 797 #define PLUS_tb_p8 253 /* 0x0fd */ 798 #define PLUS_t8_pb 254 /* 0x0fe */ 799 #define PLUS_t8_p8 255 /* 0x0ff */ 800 801 #define CURLY 64 /* 0x40 Match this (simple) 802 thing {n,m} times: /A{m,n}B/ 803 where A is width 1 char */ 804 #define CURLY_tb 128 /* 0x080 */ 805 #define CURLY_t8 129 /* 0x081 */ 806 #define CURLY_tb_pb 256 /* 0x100 */ 807 #define CURLY_tb_p8 257 /* 0x101 */ 808 #define CURLY_t8_pb 258 /* 0x102 */ 809 #define CURLY_t8_p8 259 /* 0x103 */ 810 811 #define CURLYN 65 /* 0x41 Capture next-after-this 812 simple thing: /(A){m,n}B/ 813 where A is width 1 char */ 814 #define CURLYN_tb 130 /* 0x082 */ 815 #define CURLYN_t8 131 /* 0x083 */ 816 #define CURLYN_tb_pb 260 /* 0x104 */ 817 #define CURLYN_tb_p8 261 /* 0x105 */ 818 #define CURLYN_t8_pb 262 /* 0x106 */ 819 #define CURLYN_t8_p8 263 /* 0x107 */ 820 821 #define CURLYM 66 /* 0x42 Capture this 822 medium-complex thing {n,m} 823 times: /(A){m,n}B/ where A 824 is fixed-length */ 825 #define CURLYM_tb 132 /* 0x084 */ 826 #define CURLYM_t8 133 /* 0x085 */ 827 #define CURLYM_tb_pb 264 /* 0x108 */ 828 #define CURLYM_tb_p8 265 /* 0x109 */ 829 #define CURLYM_t8_pb 266 /* 0x10a */ 830 #define CURLYM_t8_p8 267 /* 0x10b */ 831 832 #define CURLYX 67 /* 0x43 Match/Capture this 833 complex thing {n,m} times. 834 */ 835 #define CURLYX_tb 134 /* 0x086 */ 836 #define CURLYX_t8 135 /* 0x087 */ 837 #define CURLYX_tb_pb 268 /* 0x10c */ 838 #define CURLYX_tb_p8 269 /* 0x10d */ 839 #define CURLYX_t8_pb 270 /* 0x10e */ 840 #define CURLYX_t8_p8 271 /* 0x10f */ 841 842 #define WHILEM 68 /* 0x44 Do curly processing and 843 see if rest matches. */ 844 #define WHILEM_tb 136 /* 0x088 */ 845 #define WHILEM_t8 137 /* 0x089 */ 846 #define WHILEM_tb_pb 272 /* 0x110 */ 847 #define WHILEM_tb_p8 273 /* 0x111 */ 848 #define WHILEM_t8_pb 274 /* 0x112 */ 849 #define WHILEM_t8_p8 275 /* 0x113 */ 850 851 #define OPEN 69 /* 0x45 Mark this point in 852 input as start of #n. */ 853 #define OPEN_tb 138 /* 0x08a */ 854 #define OPEN_t8 139 /* 0x08b */ 855 #define OPEN_tb_pb 276 /* 0x114 */ 856 #define OPEN_tb_p8 277 /* 0x115 */ 857 #define OPEN_t8_pb 278 /* 0x116 */ 858 #define OPEN_t8_p8 279 /* 0x117 */ 859 860 #define CLOSE 70 /* 0x46 Close corresponding 861 OPEN of #n. */ 862 #define CLOSE_tb 140 /* 0x08c */ 863 #define CLOSE_t8 141 /* 0x08d */ 864 #define CLOSE_tb_pb 280 /* 0x118 */ 865 #define CLOSE_tb_p8 281 /* 0x119 */ 866 #define CLOSE_t8_pb 282 /* 0x11a */ 867 #define CLOSE_t8_p8 283 /* 0x11b */ 868 869 #define SROPEN 71 /* 0x47 Same as OPEN, but for 870 script run */ 871 #define SROPEN_tb 142 /* 0x08e */ 872 #define SROPEN_t8 143 /* 0x08f */ 873 #define SROPEN_tb_pb 284 /* 0x11c */ 874 #define SROPEN_tb_p8 285 /* 0x11d */ 875 #define SROPEN_t8_pb 286 /* 0x11e */ 876 #define SROPEN_t8_p8 287 /* 0x11f */ 877 878 #define SRCLOSE 72 /* 0x48 Close preceding SROPEN 879 */ 880 #define SRCLOSE_tb 144 /* 0x090 */ 881 #define SRCLOSE_t8 145 /* 0x091 */ 882 #define SRCLOSE_tb_pb 288 /* 0x120 */ 883 #define SRCLOSE_tb_p8 289 /* 0x121 */ 884 #define SRCLOSE_t8_pb 290 /* 0x122 */ 885 #define SRCLOSE_t8_p8 291 /* 0x123 */ 886 887 #define REF 73 /* 0x49 Match some already 888 matched string */ 889 #define REF_tb 146 /* 0x092 */ 890 #define REF_t8 147 /* 0x093 */ 891 #define REF_tb_pb 292 /* 0x124 */ 892 #define REF_tb_p8 293 /* 0x125 */ 893 #define REF_t8_pb 294 /* 0x126 */ 894 #define REF_t8_p8 295 /* 0x127 */ 895 896 #define REFF 74 /* 0x4a Match already matched 897 string, using /di rules. */ 898 #define REFF_tb 148 /* 0x094 */ 899 #define REFF_t8 149 /* 0x095 */ 900 #define REFF_tb_pb 296 /* 0x128 */ 901 #define REFF_tb_p8 297 /* 0x129 */ 902 #define REFF_t8_pb 298 /* 0x12a */ 903 #define REFF_t8_p8 299 /* 0x12b */ 904 905 #define REFFL 75 /* 0x4b Match already matched 906 string, using /li rules. */ 907 #define REFFL_tb 150 /* 0x096 */ 908 #define REFFL_t8 151 /* 0x097 */ 909 #define REFFL_tb_pb 300 /* 0x12c */ 910 #define REFFL_tb_p8 301 /* 0x12d */ 911 #define REFFL_t8_pb 302 /* 0x12e */ 912 #define REFFL_t8_p8 303 /* 0x12f */ 913 914 #define REFFU 76 /* 0x4c Match already matched 915 string, usng /ui. */ 916 #define REFFU_tb 152 /* 0x098 */ 917 #define REFFU_t8 153 /* 0x099 */ 918 #define REFFU_tb_pb 304 /* 0x130 */ 919 #define REFFU_tb_p8 305 /* 0x131 */ 920 #define REFFU_t8_pb 306 /* 0x132 */ 921 #define REFFU_t8_p8 307 /* 0x133 */ 922 923 #define REFFA 77 /* 0x4d Match already matched 924 string, using /aai rules. */ 925 #define REFFA_tb 154 /* 0x09a */ 926 #define REFFA_t8 155 /* 0x09b */ 927 #define REFFA_tb_pb 308 /* 0x134 */ 928 #define REFFA_tb_p8 309 /* 0x135 */ 929 #define REFFA_t8_pb 310 /* 0x136 */ 930 #define REFFA_t8_p8 311 /* 0x137 */ 931 932 #define REFN 78 /* 0x4e Match some already 933 matched string */ 934 #define REFN_tb 156 /* 0x09c */ 935 #define REFN_t8 157 /* 0x09d */ 936 #define REFN_tb_pb 312 /* 0x138 */ 937 #define REFN_tb_p8 313 /* 0x139 */ 938 #define REFN_t8_pb 314 /* 0x13a */ 939 #define REFN_t8_p8 315 /* 0x13b */ 940 941 #define REFFN 79 /* 0x4f Match already matched 942 string, using /di rules. */ 943 #define REFFN_tb 158 /* 0x09e */ 944 #define REFFN_t8 159 /* 0x09f */ 945 #define REFFN_tb_pb 316 /* 0x13c */ 946 #define REFFN_tb_p8 317 /* 0x13d */ 947 #define REFFN_t8_pb 318 /* 0x13e */ 948 #define REFFN_t8_p8 319 /* 0x13f */ 949 950 #define REFFLN 80 /* 0x50 Match already matched 951 string, using /li rules. */ 952 #define REFFLN_tb 160 /* 0x0a0 */ 953 #define REFFLN_t8 161 /* 0x0a1 */ 954 #define REFFLN_tb_pb 320 /* 0x140 */ 955 #define REFFLN_tb_p8 321 /* 0x141 */ 956 #define REFFLN_t8_pb 322 /* 0x142 */ 957 #define REFFLN_t8_p8 323 /* 0x143 */ 958 959 #define REFFUN 81 /* 0x51 Match already matched 960 string, using /ui rules. */ 961 #define REFFUN_tb 162 /* 0x0a2 */ 962 #define REFFUN_t8 163 /* 0x0a3 */ 963 #define REFFUN_tb_pb 324 /* 0x144 */ 964 #define REFFUN_tb_p8 325 /* 0x145 */ 965 #define REFFUN_t8_pb 326 /* 0x146 */ 966 #define REFFUN_t8_p8 327 /* 0x147 */ 967 968 #define REFFAN 82 /* 0x52 Match already matched 969 string, using /aai rules. */ 970 #define REFFAN_tb 164 /* 0x0a4 */ 971 #define REFFAN_t8 165 /* 0x0a5 */ 972 #define REFFAN_tb_pb 328 /* 0x148 */ 973 #define REFFAN_tb_p8 329 /* 0x149 */ 974 #define REFFAN_t8_pb 330 /* 0x14a */ 975 #define REFFAN_t8_p8 331 /* 0x14b */ 976 977 #define LONGJMP 83 /* 0x53 Jump far away. */ 978 #define LONGJMP_tb 166 /* 0x0a6 */ 979 #define LONGJMP_t8 167 /* 0x0a7 */ 980 #define LONGJMP_tb_pb 332 /* 0x14c */ 981 #define LONGJMP_tb_p8 333 /* 0x14d */ 982 #define LONGJMP_t8_pb 334 /* 0x14e */ 983 #define LONGJMP_t8_p8 335 /* 0x14f */ 984 985 #define BRANCHJ 84 /* 0x54 BRANCH with long 986 offset. */ 987 #define BRANCHJ_tb 168 /* 0x0a8 */ 988 #define BRANCHJ_t8 169 /* 0x0a9 */ 989 #define BRANCHJ_tb_pb 336 /* 0x150 */ 990 #define BRANCHJ_tb_p8 337 /* 0x151 */ 991 #define BRANCHJ_t8_pb 338 /* 0x152 */ 992 #define BRANCHJ_t8_p8 339 /* 0x153 */ 993 994 #define IFMATCH 85 /* 0x55 Succeeds if the 995 following matches; non-zero 996 flags "f", next_off "o" 997 means lookbehind assertion 998 starting "f..(f-o)" 999 characters before current */ 1000 #define IFMATCH_tb 170 /* 0x0aa */ 1001 #define IFMATCH_t8 171 /* 0x0ab */ 1002 #define IFMATCH_tb_pb 340 /* 0x154 */ 1003 #define IFMATCH_tb_p8 341 /* 0x155 */ 1004 #define IFMATCH_t8_pb 342 /* 0x156 */ 1005 #define IFMATCH_t8_p8 343 /* 0x157 */ 1006 1007 #define UNLESSM 86 /* 0x56 Fails if the following 1008 matches; non-zero flags "f", 1009 next_off "o" means 1010 lookbehind assertion 1011 starting "f..(f-o)" 1012 characters before current */ 1013 #define UNLESSM_tb 172 /* 0x0ac */ 1014 #define UNLESSM_t8 173 /* 0x0ad */ 1015 #define UNLESSM_tb_pb 344 /* 0x158 */ 1016 #define UNLESSM_tb_p8 345 /* 0x159 */ 1017 #define UNLESSM_t8_pb 346 /* 0x15a */ 1018 #define UNLESSM_t8_p8 347 /* 0x15b */ 1019 1020 #define SUSPEND 87 /* 0x57 "Independent" sub-RE. 1021 */ 1022 #define SUSPEND_tb 174 /* 0x0ae */ 1023 #define SUSPEND_t8 175 /* 0x0af */ 1024 #define SUSPEND_tb_pb 348 /* 0x15c */ 1025 #define SUSPEND_tb_p8 349 /* 0x15d */ 1026 #define SUSPEND_t8_pb 350 /* 0x15e */ 1027 #define SUSPEND_t8_p8 351 /* 0x15f */ 1028 1029 #define IFTHEN 88 /* 0x58 Switch, should be 1030 preceded by switcher. */ 1031 #define IFTHEN_tb 176 /* 0x0b0 */ 1032 #define IFTHEN_t8 177 /* 0x0b1 */ 1033 #define IFTHEN_tb_pb 352 /* 0x160 */ 1034 #define IFTHEN_tb_p8 353 /* 0x161 */ 1035 #define IFTHEN_t8_pb 354 /* 0x162 */ 1036 #define IFTHEN_t8_p8 355 /* 0x163 */ 1037 1038 #define GROUPP 89 /* 0x59 Whether the group 1039 matched. */ 1040 #define GROUPP_tb 178 /* 0x0b2 */ 1041 #define GROUPP_t8 179 /* 0x0b3 */ 1042 #define GROUPP_tb_pb 356 /* 0x164 */ 1043 #define GROUPP_tb_p8 357 /* 0x165 */ 1044 #define GROUPP_t8_pb 358 /* 0x166 */ 1045 #define GROUPP_t8_p8 359 /* 0x167 */ 1046 1047 #define EVAL 90 /* 0x5a Execute some Perl code. 1048 */ 1049 #define EVAL_tb 180 /* 0x0b4 */ 1050 #define EVAL_t8 181 /* 0x0b5 */ 1051 #define EVAL_tb_pb 360 /* 0x168 */ 1052 #define EVAL_tb_p8 361 /* 0x169 */ 1053 #define EVAL_t8_pb 362 /* 0x16a */ 1054 #define EVAL_t8_p8 363 /* 0x16b */ 1055 1056 #define MINMOD 91 /* 0x5b Next operator is not 1057 greedy. */ 1058 #define MINMOD_tb 182 /* 0x0b6 */ 1059 #define MINMOD_t8 183 /* 0x0b7 */ 1060 #define MINMOD_tb_pb 364 /* 0x16c */ 1061 #define MINMOD_tb_p8 365 /* 0x16d */ 1062 #define MINMOD_t8_pb 366 /* 0x16e */ 1063 #define MINMOD_t8_p8 367 /* 0x16f */ 1064 1065 #define LOGICAL 92 /* 0x5c Next opcode should set 1066 the flag only. */ 1067 #define LOGICAL_tb 184 /* 0x0b8 */ 1068 #define LOGICAL_t8 185 /* 0x0b9 */ 1069 #define LOGICAL_tb_pb 368 /* 0x170 */ 1070 #define LOGICAL_tb_p8 369 /* 0x171 */ 1071 #define LOGICAL_t8_pb 370 /* 0x172 */ 1072 #define LOGICAL_t8_p8 371 /* 0x173 */ 1073 1074 #define RENUM 93 /* 0x5d Group with 1075 independently numbered 1076 parens. */ 1077 #define RENUM_tb 186 /* 0x0ba */ 1078 #define RENUM_t8 187 /* 0x0bb */ 1079 #define RENUM_tb_pb 372 /* 0x174 */ 1080 #define RENUM_tb_p8 373 /* 0x175 */ 1081 #define RENUM_t8_pb 374 /* 0x176 */ 1082 #define RENUM_t8_p8 375 /* 0x177 */ 1083 1084 #define GOSUB 94 /* 0x5e recurse to paren arg1 1085 at (signed) ofs arg2 */ 1086 #define GOSUB_tb 188 /* 0x0bc */ 1087 #define GOSUB_t8 189 /* 0x0bd */ 1088 #define GOSUB_tb_pb 376 /* 0x178 */ 1089 #define GOSUB_tb_p8 377 /* 0x179 */ 1090 #define GOSUB_t8_pb 378 /* 0x17a */ 1091 #define GOSUB_t8_p8 379 /* 0x17b */ 1092 1093 #define GROUPPN 95 /* 0x5f Whether the group 1094 matched. */ 1095 #define GROUPPN_tb 190 /* 0x0be */ 1096 #define GROUPPN_t8 191 /* 0x0bf */ 1097 #define GROUPPN_tb_pb 380 /* 0x17c */ 1098 #define GROUPPN_tb_p8 381 /* 0x17d */ 1099 #define GROUPPN_t8_pb 382 /* 0x17e */ 1100 #define GROUPPN_t8_p8 383 /* 0x17f */ 1101 1102 #define INSUBP 96 /* 0x60 Whether we are in a 1103 specific recurse. */ 1104 #define INSUBP_tb 192 /* 0x0c0 */ 1105 #define INSUBP_t8 193 /* 0x0c1 */ 1106 #define INSUBP_tb_pb 384 /* 0x180 */ 1107 #define INSUBP_tb_p8 385 /* 0x181 */ 1108 #define INSUBP_t8_pb 386 /* 0x182 */ 1109 #define INSUBP_t8_p8 387 /* 0x183 */ 1110 1111 #define DEFINEP 97 /* 0x61 Never execute directly. 1112 */ 1113 #define DEFINEP_tb 194 /* 0x0c2 */ 1114 #define DEFINEP_t8 195 /* 0x0c3 */ 1115 #define DEFINEP_tb_pb 388 /* 0x184 */ 1116 #define DEFINEP_tb_p8 389 /* 0x185 */ 1117 #define DEFINEP_t8_pb 390 /* 0x186 */ 1118 #define DEFINEP_t8_p8 391 /* 0x187 */ 1119 1120 #define ENDLIKE 98 /* 0x62 Used only for the type 1121 field of verbs */ 1122 #define ENDLIKE_tb 196 /* 0x0c4 */ 1123 #define ENDLIKE_t8 197 /* 0x0c5 */ 1124 #define ENDLIKE_tb_pb 392 /* 0x188 */ 1125 #define ENDLIKE_tb_p8 393 /* 0x189 */ 1126 #define ENDLIKE_t8_pb 394 /* 0x18a */ 1127 #define ENDLIKE_t8_p8 395 /* 0x18b */ 1128 1129 #define OPFAIL 99 /* 0x63 Same as (?!), but with 1130 verb arg */ 1131 #define OPFAIL_tb 198 /* 0x0c6 */ 1132 #define OPFAIL_t8 199 /* 0x0c7 */ 1133 #define OPFAIL_tb_pb 396 /* 0x18c */ 1134 #define OPFAIL_tb_p8 397 /* 0x18d */ 1135 #define OPFAIL_t8_pb 398 /* 0x18e */ 1136 #define OPFAIL_t8_p8 399 /* 0x18f */ 1137 1138 #define ACCEPT 100 /* 0x64 Accepts the current 1139 matched string, with verbar 1140 */ 1141 #define ACCEPT_tb 200 /* 0x0c8 */ 1142 #define ACCEPT_t8 201 /* 0x0c9 */ 1143 #define ACCEPT_tb_pb 400 /* 0x190 */ 1144 #define ACCEPT_tb_p8 401 /* 0x191 */ 1145 #define ACCEPT_t8_pb 402 /* 0x192 */ 1146 #define ACCEPT_t8_p8 403 /* 0x193 */ 1147 1148 #define VERB 101 /* 0x65 Used only for the type 1149 field of verbs */ 1150 #define VERB_tb 202 /* 0x0ca */ 1151 #define VERB_t8 203 /* 0x0cb */ 1152 #define VERB_tb_pb 404 /* 0x194 */ 1153 #define VERB_tb_p8 405 /* 0x195 */ 1154 #define VERB_t8_pb 406 /* 0x196 */ 1155 #define VERB_t8_p8 407 /* 0x197 */ 1156 1157 #define PRUNE 102 /* 0x66 Pattern fails at this 1158 startpoint if 1159 no-backtracking through this 1160 */ 1161 #define PRUNE_tb 204 /* 0x0cc */ 1162 #define PRUNE_t8 205 /* 0x0cd */ 1163 #define PRUNE_tb_pb 408 /* 0x198 */ 1164 #define PRUNE_tb_p8 409 /* 0x199 */ 1165 #define PRUNE_t8_pb 410 /* 0x19a */ 1166 #define PRUNE_t8_p8 411 /* 0x19b */ 1167 1168 #define MARKPOINT 103 /* 0x67 Push the current 1169 location for rollback by 1170 cut. */ 1171 #define MARKPOINT_tb 206 /* 0x0ce */ 1172 #define MARKPOINT_t8 207 /* 0x0cf */ 1173 #define MARKPOINT_tb_pb 412 /* 0x19c */ 1174 #define MARKPOINT_tb_p8 413 /* 0x19d */ 1175 #define MARKPOINT_t8_pb 414 /* 0x19e */ 1176 #define MARKPOINT_t8_p8 415 /* 0x19f */ 1177 1178 #define SKIP 104 /* 0x68 On failure skip forward 1179 (to the mark) before 1180 retrying */ 1181 #define SKIP_tb 208 /* 0x0d0 */ 1182 #define SKIP_t8 209 /* 0x0d1 */ 1183 #define SKIP_tb_pb 416 /* 0x1a0 */ 1184 #define SKIP_tb_p8 417 /* 0x1a1 */ 1185 #define SKIP_t8_pb 418 /* 0x1a2 */ 1186 #define SKIP_t8_p8 419 /* 0x1a3 */ 1187 1188 #define COMMIT 105 /* 0x69 Pattern fails outright 1189 if backtracking through this 1190 */ 1191 #define COMMIT_tb 210 /* 0x0d2 */ 1192 #define COMMIT_t8 211 /* 0x0d3 */ 1193 #define COMMIT_tb_pb 420 /* 0x1a4 */ 1194 #define COMMIT_tb_p8 421 /* 0x1a5 */ 1195 #define COMMIT_t8_pb 422 /* 0x1a6 */ 1196 #define COMMIT_t8_p8 423 /* 0x1a7 */ 1197 1198 #define CUTGROUP 106 /* 0x6a On failure go to the 1199 next alternation in the 1200 group */ 1201 #define CUTGROUP_tb 212 /* 0x0d4 */ 1202 #define CUTGROUP_t8 213 /* 0x0d5 */ 1203 #define CUTGROUP_tb_pb 424 /* 0x1a8 */ 1204 #define CUTGROUP_tb_p8 425 /* 0x1a9 */ 1205 #define CUTGROUP_t8_pb 426 /* 0x1aa */ 1206 #define CUTGROUP_t8_p8 427 /* 0x1ab */ 1207 1208 #define KEEPS 107 /* 0x6b $& begins here. */ 1209 #define KEEPS_tb 214 /* 0x0d6 */ 1210 #define KEEPS_t8 215 /* 0x0d7 */ 1211 #define KEEPS_tb_pb 428 /* 0x1ac */ 1212 #define KEEPS_tb_p8 429 /* 0x1ad */ 1213 #define KEEPS_t8_pb 430 /* 0x1ae */ 1214 #define KEEPS_t8_p8 431 /* 0x1af */ 1215 1216 #define LOOKBEHIND_END 108 /* 0x6c Return from lookbehind 1217 (IFMATCH/UNLESSM) and 1218 validate position */ 1219 #define LOOKBEHIND_END_tb 216 /* 0x0d8 */ 1220 #define LOOKBEHIND_END_t8 217 /* 0x0d9 */ 1221 #define LOOKBEHIND_END_tb_pb 432 /* 0x1b0 */ 1222 #define LOOKBEHIND_END_tb_p8 433 /* 0x1b1 */ 1223 #define LOOKBEHIND_END_t8_pb 434 /* 0x1b2 */ 1224 #define LOOKBEHIND_END_t8_p8 435 /* 0x1b3 */ 1225 1226 #define OPTIMIZED 109 /* 0x6d Placeholder for dump. 1227 */ 1228 #define OPTIMIZED_tb 218 /* 0x0da */ 1229 #define OPTIMIZED_t8 219 /* 0x0db */ 1230 #define OPTIMIZED_tb_pb 436 /* 0x1b4 */ 1231 #define OPTIMIZED_tb_p8 437 /* 0x1b5 */ 1232 #define OPTIMIZED_t8_pb 438 /* 0x1b6 */ 1233 #define OPTIMIZED_t8_p8 439 /* 0x1b7 */ 1234 1235 #define PSEUDO 110 /* 0x6e Pseudo opcode for 1236 internal use. */ 1237 #define PSEUDO_tb 220 /* 0x0dc */ 1238 #define PSEUDO_t8 221 /* 0x0dd */ 1239 #define PSEUDO_tb_pb 440 /* 0x1b8 */ 1240 #define PSEUDO_tb_p8 441 /* 0x1b9 */ 1241 #define PSEUDO_t8_pb 442 /* 0x1ba */ 1242 #define PSEUDO_t8_p8 443 /* 0x1bb */ 1243 1244 #define REGEX_SET 111 /* 0x6f Regex set, temporary 1245 node used in 1246 pre-optimization compilation 1247 */ 1248 #define REGEX_SET_tb 222 /* 0x0de */ 1249 #define REGEX_SET_t8 223 /* 0x0df */ 1250 #define REGEX_SET_tb_pb 444 /* 0x1bc */ 1251 #define REGEX_SET_tb_p8 445 /* 0x1bd */ 1252 #define REGEX_SET_t8_pb 446 /* 0x1be */ 1253 #define REGEX_SET_t8_p8 447 /* 0x1bf */ 1254 1255 /* ------------ States ------------- */ 1256 #define TRIE_next 112 /* 0x70 state for TRIE */ 1257 #define TRIE_next_tb 224 /* 0x0e0 */ 1258 #define TRIE_next_t8 225 /* 0x0e1 */ 1259 #define TRIE_next_tb_pb 448 /* 0x1c0 */ 1260 #define TRIE_next_tb_p8 449 /* 0x1c1 */ 1261 #define TRIE_next_t8_pb 450 /* 0x1c2 */ 1262 #define TRIE_next_t8_p8 451 /* 0x1c3 */ 1263 1264 #define TRIE_next_fail 113 /* 0x71 state for TRIE */ 1265 #define TRIE_next_fail_tb 226 /* 0x0e2 */ 1266 #define TRIE_next_fail_t8 227 /* 0x0e3 */ 1267 #define TRIE_next_fail_tb_pb 452 /* 0x1c4 */ 1268 #define TRIE_next_fail_tb_p8 453 /* 0x1c5 */ 1269 #define TRIE_next_fail_t8_pb 454 /* 0x1c6 */ 1270 #define TRIE_next_fail_t8_p8 455 /* 0x1c7 */ 1271 1272 #define EVAL_B 114 /* 0x72 state for EVAL */ 1273 #define EVAL_B_tb 228 /* 0x0e4 */ 1274 #define EVAL_B_t8 229 /* 0x0e5 */ 1275 #define EVAL_B_tb_pb 456 /* 0x1c8 */ 1276 #define EVAL_B_tb_p8 457 /* 0x1c9 */ 1277 #define EVAL_B_t8_pb 458 /* 0x1ca */ 1278 #define EVAL_B_t8_p8 459 /* 0x1cb */ 1279 1280 #define EVAL_B_fail 115 /* 0x73 state for EVAL */ 1281 #define EVAL_B_fail_tb 230 /* 0x0e6 */ 1282 #define EVAL_B_fail_t8 231 /* 0x0e7 */ 1283 #define EVAL_B_fail_tb_pb 460 /* 0x1cc */ 1284 #define EVAL_B_fail_tb_p8 461 /* 0x1cd */ 1285 #define EVAL_B_fail_t8_pb 462 /* 0x1ce */ 1286 #define EVAL_B_fail_t8_p8 463 /* 0x1cf */ 1287 1288 #define EVAL_postponed_AB 116 /* 0x74 state for EVAL */ 1289 #define EVAL_postponed_AB_tb 232 /* 0x0e8 */ 1290 #define EVAL_postponed_AB_t8 233 /* 0x0e9 */ 1291 #define EVAL_postponed_AB_tb_pb 464 /* 0x1d0 */ 1292 #define EVAL_postponed_AB_tb_p8 465 /* 0x1d1 */ 1293 #define EVAL_postponed_AB_t8_pb 466 /* 0x1d2 */ 1294 #define EVAL_postponed_AB_t8_p8 467 /* 0x1d3 */ 1295 1296 #define EVAL_postponed_AB_fail 117 /* 0x75 state for EVAL */ 1297 #define EVAL_postponed_AB_fail_tb 234 /* 0x0ea */ 1298 #define EVAL_postponed_AB_fail_t8 235 /* 0x0eb */ 1299 #define EVAL_postponed_AB_fail_tb_pb 468 /* 0x1d4 */ 1300 #define EVAL_postponed_AB_fail_tb_p8 469 /* 0x1d5 */ 1301 #define EVAL_postponed_AB_fail_t8_pb 470 /* 0x1d6 */ 1302 #define EVAL_postponed_AB_fail_t8_p8 471 /* 0x1d7 */ 1303 1304 #define CURLYX_end 118 /* 0x76 state for CURLYX */ 1305 #define CURLYX_end_tb 236 /* 0x0ec */ 1306 #define CURLYX_end_t8 237 /* 0x0ed */ 1307 #define CURLYX_end_tb_pb 472 /* 0x1d8 */ 1308 #define CURLYX_end_tb_p8 473 /* 0x1d9 */ 1309 #define CURLYX_end_t8_pb 474 /* 0x1da */ 1310 #define CURLYX_end_t8_p8 475 /* 0x1db */ 1311 1312 #define CURLYX_end_fail 119 /* 0x77 state for CURLYX */ 1313 #define CURLYX_end_fail_tb 238 /* 0x0ee */ 1314 #define CURLYX_end_fail_t8 239 /* 0x0ef */ 1315 #define CURLYX_end_fail_tb_pb 476 /* 0x1dc */ 1316 #define CURLYX_end_fail_tb_p8 477 /* 0x1dd */ 1317 #define CURLYX_end_fail_t8_pb 478 /* 0x1de */ 1318 #define CURLYX_end_fail_t8_p8 479 /* 0x1df */ 1319 1320 #define WHILEM_A_pre 120 /* 0x78 state for WHILEM */ 1321 #define WHILEM_A_pre_tb 240 /* 0x0f0 */ 1322 #define WHILEM_A_pre_t8 241 /* 0x0f1 */ 1323 #define WHILEM_A_pre_tb_pb 480 /* 0x1e0 */ 1324 #define WHILEM_A_pre_tb_p8 481 /* 0x1e1 */ 1325 #define WHILEM_A_pre_t8_pb 482 /* 0x1e2 */ 1326 #define WHILEM_A_pre_t8_p8 483 /* 0x1e3 */ 1327 1328 #define WHILEM_A_pre_fail 121 /* 0x79 state for WHILEM */ 1329 #define WHILEM_A_pre_fail_tb 242 /* 0x0f2 */ 1330 #define WHILEM_A_pre_fail_t8 243 /* 0x0f3 */ 1331 #define WHILEM_A_pre_fail_tb_pb 484 /* 0x1e4 */ 1332 #define WHILEM_A_pre_fail_tb_p8 485 /* 0x1e5 */ 1333 #define WHILEM_A_pre_fail_t8_pb 486 /* 0x1e6 */ 1334 #define WHILEM_A_pre_fail_t8_p8 487 /* 0x1e7 */ 1335 1336 #define WHILEM_A_min 122 /* 0x7a state for WHILEM */ 1337 #define WHILEM_A_min_tb 244 /* 0x0f4 */ 1338 #define WHILEM_A_min_t8 245 /* 0x0f5 */ 1339 #define WHILEM_A_min_tb_pb 488 /* 0x1e8 */ 1340 #define WHILEM_A_min_tb_p8 489 /* 0x1e9 */ 1341 #define WHILEM_A_min_t8_pb 490 /* 0x1ea */ 1342 #define WHILEM_A_min_t8_p8 491 /* 0x1eb */ 1343 1344 #define WHILEM_A_min_fail 123 /* 0x7b state for WHILEM */ 1345 #define WHILEM_A_min_fail_tb 246 /* 0x0f6 */ 1346 #define WHILEM_A_min_fail_t8 247 /* 0x0f7 */ 1347 #define WHILEM_A_min_fail_tb_pb 492 /* 0x1ec */ 1348 #define WHILEM_A_min_fail_tb_p8 493 /* 0x1ed */ 1349 #define WHILEM_A_min_fail_t8_pb 494 /* 0x1ee */ 1350 #define WHILEM_A_min_fail_t8_p8 495 /* 0x1ef */ 1351 1352 #define WHILEM_A_max 124 /* 0x7c state for WHILEM */ 1353 #define WHILEM_A_max_tb 248 /* 0x0f8 */ 1354 #define WHILEM_A_max_t8 249 /* 0x0f9 */ 1355 #define WHILEM_A_max_tb_pb 496 /* 0x1f0 */ 1356 #define WHILEM_A_max_tb_p8 497 /* 0x1f1 */ 1357 #define WHILEM_A_max_t8_pb 498 /* 0x1f2 */ 1358 #define WHILEM_A_max_t8_p8 499 /* 0x1f3 */ 1359 1360 #define WHILEM_A_max_fail 125 /* 0x7d state for WHILEM */ 1361 #define WHILEM_A_max_fail_tb 250 /* 0x0fa */ 1362 #define WHILEM_A_max_fail_t8 251 /* 0x0fb */ 1363 #define WHILEM_A_max_fail_tb_pb 500 /* 0x1f4 */ 1364 #define WHILEM_A_max_fail_tb_p8 501 /* 0x1f5 */ 1365 #define WHILEM_A_max_fail_t8_pb 502 /* 0x1f6 */ 1366 #define WHILEM_A_max_fail_t8_p8 503 /* 0x1f7 */ 1367 1368 #define WHILEM_B_min 126 /* 0x7e state for WHILEM */ 1369 #define WHILEM_B_min_tb 252 /* 0x0fc */ 1370 #define WHILEM_B_min_t8 253 /* 0x0fd */ 1371 #define WHILEM_B_min_tb_pb 504 /* 0x1f8 */ 1372 #define WHILEM_B_min_tb_p8 505 /* 0x1f9 */ 1373 #define WHILEM_B_min_t8_pb 506 /* 0x1fa */ 1374 #define WHILEM_B_min_t8_p8 507 /* 0x1fb */ 1375 1376 #define WHILEM_B_min_fail 127 /* 0x7f state for WHILEM */ 1377 #define WHILEM_B_min_fail_tb 254 /* 0x0fe */ 1378 #define WHILEM_B_min_fail_t8 255 /* 0x0ff */ 1379 #define WHILEM_B_min_fail_tb_pb 508 /* 0x1fc */ 1380 #define WHILEM_B_min_fail_tb_p8 509 /* 0x1fd */ 1381 #define WHILEM_B_min_fail_t8_pb 510 /* 0x1fe */ 1382 #define WHILEM_B_min_fail_t8_p8 511 /* 0x1ff */ 1383 1384 #define WHILEM_B_max 128 /* 0x80 state for WHILEM */ 1385 #define WHILEM_B_max_tb 256 /* 0x100 */ 1386 #define WHILEM_B_max_t8 257 /* 0x101 */ 1387 #define WHILEM_B_max_tb_pb 512 /* 0x200 */ 1388 #define WHILEM_B_max_tb_p8 513 /* 0x201 */ 1389 #define WHILEM_B_max_t8_pb 514 /* 0x202 */ 1390 #define WHILEM_B_max_t8_p8 515 /* 0x203 */ 1391 1392 #define WHILEM_B_max_fail 129 /* 0x81 state for WHILEM */ 1393 #define WHILEM_B_max_fail_tb 258 /* 0x102 */ 1394 #define WHILEM_B_max_fail_t8 259 /* 0x103 */ 1395 #define WHILEM_B_max_fail_tb_pb 516 /* 0x204 */ 1396 #define WHILEM_B_max_fail_tb_p8 517 /* 0x205 */ 1397 #define WHILEM_B_max_fail_t8_pb 518 /* 0x206 */ 1398 #define WHILEM_B_max_fail_t8_p8 519 /* 0x207 */ 1399 1400 #define BRANCH_next 130 /* 0x82 state for BRANCH */ 1401 #define BRANCH_next_tb 260 /* 0x104 */ 1402 #define BRANCH_next_t8 261 /* 0x105 */ 1403 #define BRANCH_next_tb_pb 520 /* 0x208 */ 1404 #define BRANCH_next_tb_p8 521 /* 0x209 */ 1405 #define BRANCH_next_t8_pb 522 /* 0x20a */ 1406 #define BRANCH_next_t8_p8 523 /* 0x20b */ 1407 1408 #define BRANCH_next_fail 131 /* 0x83 state for BRANCH */ 1409 #define BRANCH_next_fail_tb 262 /* 0x106 */ 1410 #define BRANCH_next_fail_t8 263 /* 0x107 */ 1411 #define BRANCH_next_fail_tb_pb 524 /* 0x20c */ 1412 #define BRANCH_next_fail_tb_p8 525 /* 0x20d */ 1413 #define BRANCH_next_fail_t8_pb 526 /* 0x20e */ 1414 #define BRANCH_next_fail_t8_p8 527 /* 0x20f */ 1415 1416 #define CURLYM_A 132 /* 0x84 state for CURLYM */ 1417 #define CURLYM_A_tb 264 /* 0x108 */ 1418 #define CURLYM_A_t8 265 /* 0x109 */ 1419 #define CURLYM_A_tb_pb 528 /* 0x210 */ 1420 #define CURLYM_A_tb_p8 529 /* 0x211 */ 1421 #define CURLYM_A_t8_pb 530 /* 0x212 */ 1422 #define CURLYM_A_t8_p8 531 /* 0x213 */ 1423 1424 #define CURLYM_A_fail 133 /* 0x85 state for CURLYM */ 1425 #define CURLYM_A_fail_tb 266 /* 0x10a */ 1426 #define CURLYM_A_fail_t8 267 /* 0x10b */ 1427 #define CURLYM_A_fail_tb_pb 532 /* 0x214 */ 1428 #define CURLYM_A_fail_tb_p8 533 /* 0x215 */ 1429 #define CURLYM_A_fail_t8_pb 534 /* 0x216 */ 1430 #define CURLYM_A_fail_t8_p8 535 /* 0x217 */ 1431 1432 #define CURLYM_B 134 /* 0x86 state for CURLYM */ 1433 #define CURLYM_B_tb 268 /* 0x10c */ 1434 #define CURLYM_B_t8 269 /* 0x10d */ 1435 #define CURLYM_B_tb_pb 536 /* 0x218 */ 1436 #define CURLYM_B_tb_p8 537 /* 0x219 */ 1437 #define CURLYM_B_t8_pb 538 /* 0x21a */ 1438 #define CURLYM_B_t8_p8 539 /* 0x21b */ 1439 1440 #define CURLYM_B_fail 135 /* 0x87 state for CURLYM */ 1441 #define CURLYM_B_fail_tb 270 /* 0x10e */ 1442 #define CURLYM_B_fail_t8 271 /* 0x10f */ 1443 #define CURLYM_B_fail_tb_pb 540 /* 0x21c */ 1444 #define CURLYM_B_fail_tb_p8 541 /* 0x21d */ 1445 #define CURLYM_B_fail_t8_pb 542 /* 0x21e */ 1446 #define CURLYM_B_fail_t8_p8 543 /* 0x21f */ 1447 1448 #define IFMATCH_A 136 /* 0x88 state for IFMATCH */ 1449 #define IFMATCH_A_tb 272 /* 0x110 */ 1450 #define IFMATCH_A_t8 273 /* 0x111 */ 1451 #define IFMATCH_A_tb_pb 544 /* 0x220 */ 1452 #define IFMATCH_A_tb_p8 545 /* 0x221 */ 1453 #define IFMATCH_A_t8_pb 546 /* 0x222 */ 1454 #define IFMATCH_A_t8_p8 547 /* 0x223 */ 1455 1456 #define IFMATCH_A_fail 137 /* 0x89 state for IFMATCH */ 1457 #define IFMATCH_A_fail_tb 274 /* 0x112 */ 1458 #define IFMATCH_A_fail_t8 275 /* 0x113 */ 1459 #define IFMATCH_A_fail_tb_pb 548 /* 0x224 */ 1460 #define IFMATCH_A_fail_tb_p8 549 /* 0x225 */ 1461 #define IFMATCH_A_fail_t8_pb 550 /* 0x226 */ 1462 #define IFMATCH_A_fail_t8_p8 551 /* 0x227 */ 1463 1464 #define CURLY_B_min 138 /* 0x8a state for CURLY */ 1465 #define CURLY_B_min_tb 276 /* 0x114 */ 1466 #define CURLY_B_min_t8 277 /* 0x115 */ 1467 #define CURLY_B_min_tb_pb 552 /* 0x228 */ 1468 #define CURLY_B_min_tb_p8 553 /* 0x229 */ 1469 #define CURLY_B_min_t8_pb 554 /* 0x22a */ 1470 #define CURLY_B_min_t8_p8 555 /* 0x22b */ 1471 1472 #define CURLY_B_min_fail 139 /* 0x8b state for CURLY */ 1473 #define CURLY_B_min_fail_tb 278 /* 0x116 */ 1474 #define CURLY_B_min_fail_t8 279 /* 0x117 */ 1475 #define CURLY_B_min_fail_tb_pb 556 /* 0x22c */ 1476 #define CURLY_B_min_fail_tb_p8 557 /* 0x22d */ 1477 #define CURLY_B_min_fail_t8_pb 558 /* 0x22e */ 1478 #define CURLY_B_min_fail_t8_p8 559 /* 0x22f */ 1479 1480 #define CURLY_B_max 140 /* 0x8c state for CURLY */ 1481 #define CURLY_B_max_tb 280 /* 0x118 */ 1482 #define CURLY_B_max_t8 281 /* 0x119 */ 1483 #define CURLY_B_max_tb_pb 560 /* 0x230 */ 1484 #define CURLY_B_max_tb_p8 561 /* 0x231 */ 1485 #define CURLY_B_max_t8_pb 562 /* 0x232 */ 1486 #define CURLY_B_max_t8_p8 563 /* 0x233 */ 1487 1488 #define CURLY_B_max_fail 141 /* 0x8d state for CURLY */ 1489 #define CURLY_B_max_fail_tb 282 /* 0x11a */ 1490 #define CURLY_B_max_fail_t8 283 /* 0x11b */ 1491 #define CURLY_B_max_fail_tb_pb 564 /* 0x234 */ 1492 #define CURLY_B_max_fail_tb_p8 565 /* 0x235 */ 1493 #define CURLY_B_max_fail_t8_pb 566 /* 0x236 */ 1494 #define CURLY_B_max_fail_t8_p8 567 /* 0x237 */ 1495 1496 #define COMMIT_next 142 /* 0x8e state for COMMIT */ 1497 #define COMMIT_next_tb 284 /* 0x11c */ 1498 #define COMMIT_next_t8 285 /* 0x11d */ 1499 #define COMMIT_next_tb_pb 568 /* 0x238 */ 1500 #define COMMIT_next_tb_p8 569 /* 0x239 */ 1501 #define COMMIT_next_t8_pb 570 /* 0x23a */ 1502 #define COMMIT_next_t8_p8 571 /* 0x23b */ 1503 1504 #define COMMIT_next_fail 143 /* 0x8f state for COMMIT */ 1505 #define COMMIT_next_fail_tb 286 /* 0x11e */ 1506 #define COMMIT_next_fail_t8 287 /* 0x11f */ 1507 #define COMMIT_next_fail_tb_pb 572 /* 0x23c */ 1508 #define COMMIT_next_fail_tb_p8 573 /* 0x23d */ 1509 #define COMMIT_next_fail_t8_pb 574 /* 0x23e */ 1510 #define COMMIT_next_fail_t8_p8 575 /* 0x23f */ 1511 1512 #define MARKPOINT_next 144 /* 0x90 state for MARKPOINT */ 1513 #define MARKPOINT_next_tb 288 /* 0x120 */ 1514 #define MARKPOINT_next_t8 289 /* 0x121 */ 1515 #define MARKPOINT_next_tb_pb 576 /* 0x240 */ 1516 #define MARKPOINT_next_tb_p8 577 /* 0x241 */ 1517 #define MARKPOINT_next_t8_pb 578 /* 0x242 */ 1518 #define MARKPOINT_next_t8_p8 579 /* 0x243 */ 1519 1520 #define MARKPOINT_next_fail 145 /* 0x91 state for MARKPOINT */ 1521 #define MARKPOINT_next_fail_tb 290 /* 0x122 */ 1522 #define MARKPOINT_next_fail_t8 291 /* 0x123 */ 1523 #define MARKPOINT_next_fail_tb_pb 580 /* 0x244 */ 1524 #define MARKPOINT_next_fail_tb_p8 581 /* 0x245 */ 1525 #define MARKPOINT_next_fail_t8_pb 582 /* 0x246 */ 1526 #define MARKPOINT_next_fail_t8_p8 583 /* 0x247 */ 1527 1528 #define SKIP_next 146 /* 0x92 state for SKIP */ 1529 #define SKIP_next_tb 292 /* 0x124 */ 1530 #define SKIP_next_t8 293 /* 0x125 */ 1531 #define SKIP_next_tb_pb 584 /* 0x248 */ 1532 #define SKIP_next_tb_p8 585 /* 0x249 */ 1533 #define SKIP_next_t8_pb 586 /* 0x24a */ 1534 #define SKIP_next_t8_p8 587 /* 0x24b */ 1535 1536 #define SKIP_next_fail 147 /* 0x93 state for SKIP */ 1537 #define SKIP_next_fail_tb 294 /* 0x126 */ 1538 #define SKIP_next_fail_t8 295 /* 0x127 */ 1539 #define SKIP_next_fail_tb_pb 588 /* 0x24c */ 1540 #define SKIP_next_fail_tb_p8 589 /* 0x24d */ 1541 #define SKIP_next_fail_t8_pb 590 /* 0x24e */ 1542 #define SKIP_next_fail_t8_p8 591 /* 0x24f */ 1543 1544 #define CUTGROUP_next 148 /* 0x94 state for CUTGROUP */ 1545 #define CUTGROUP_next_tb 296 /* 0x128 */ 1546 #define CUTGROUP_next_t8 297 /* 0x129 */ 1547 #define CUTGROUP_next_tb_pb 592 /* 0x250 */ 1548 #define CUTGROUP_next_tb_p8 593 /* 0x251 */ 1549 #define CUTGROUP_next_t8_pb 594 /* 0x252 */ 1550 #define CUTGROUP_next_t8_p8 595 /* 0x253 */ 1551 1552 #define CUTGROUP_next_fail 149 /* 0x95 state for CUTGROUP */ 1553 #define CUTGROUP_next_fail_tb 298 /* 0x12a */ 1554 #define CUTGROUP_next_fail_t8 299 /* 0x12b */ 1555 #define CUTGROUP_next_fail_tb_pb 596 /* 0x254 */ 1556 #define CUTGROUP_next_fail_tb_p8 597 /* 0x255 */ 1557 #define CUTGROUP_next_fail_t8_pb 598 /* 0x256 */ 1558 #define CUTGROUP_next_fail_t8_p8 599 /* 0x257 */ 1559 1560 #define KEEPS_next 150 /* 0x96 state for KEEPS */ 1561 #define KEEPS_next_tb 300 /* 0x12c */ 1562 #define KEEPS_next_t8 301 /* 0x12d */ 1563 #define KEEPS_next_tb_pb 600 /* 0x258 */ 1564 #define KEEPS_next_tb_p8 601 /* 0x259 */ 1565 #define KEEPS_next_t8_pb 602 /* 0x25a */ 1566 #define KEEPS_next_t8_p8 603 /* 0x25b */ 1567 1568 #define KEEPS_next_fail 151 /* 0x97 state for KEEPS */ 1569 #define KEEPS_next_fail_tb 302 /* 0x12e */ 1570 #define KEEPS_next_fail_t8 303 /* 0x12f */ 1571 #define KEEPS_next_fail_tb_pb 604 /* 0x25c */ 1572 #define KEEPS_next_fail_tb_p8 605 /* 0x25d */ 1573 #define KEEPS_next_fail_t8_pb 606 /* 0x25e */ 1574 #define KEEPS_next_fail_t8_p8 607 /* 0x25f */ 1575 1576 #define REF_next 152 /* 0x98 state for REF */ 1577 #define REF_next_tb 304 /* 0x130 */ 1578 #define REF_next_t8 305 /* 0x131 */ 1579 #define REF_next_tb_pb 608 /* 0x260 */ 1580 #define REF_next_tb_p8 609 /* 0x261 */ 1581 #define REF_next_t8_pb 610 /* 0x262 */ 1582 #define REF_next_t8_p8 611 /* 0x263 */ 1583 1584 #define REF_next_fail 153 /* 0x99 state for REF */ 1585 #define REF_next_fail_tb 306 /* 0x132 */ 1586 #define REF_next_fail_t8 307 /* 0x133 */ 1587 #define REF_next_fail_tb_pb 612 /* 0x264 */ 1588 #define REF_next_fail_tb_p8 613 /* 0x265 */ 1589 #define REF_next_fail_t8_pb 614 /* 0x266 */ 1590 #define REF_next_fail_t8_p8 615 /* 0x267 */ 1591 1592 1593 /* PL_regnode_name[] - Opcode/state names in string form, for debugging */ 1594 1595 #ifndef DOINIT 1596 EXTCONST char * PL_regnode_name[]; 1597 #else 1598 EXTCONST char * const PL_regnode_name[] = { 1599 "END", /* 0000 */ 1600 "SUCCEED", /* 0x01 */ 1601 "SBOL", /* 0x02 */ 1602 "MBOL", /* 0x03 */ 1603 "SEOL", /* 0x04 */ 1604 "MEOL", /* 0x05 */ 1605 "EOS", /* 0x06 */ 1606 "GPOS", /* 0x07 */ 1607 "BOUND", /* 0x08 */ 1608 "BOUNDL", /* 0x09 */ 1609 "BOUNDU", /* 0x0a */ 1610 "BOUNDA", /* 0x0b */ 1611 "NBOUND", /* 0x0c */ 1612 "NBOUNDL", /* 0x0d */ 1613 "NBOUNDU", /* 0x0e */ 1614 "NBOUNDA", /* 0x0f */ 1615 "REG_ANY", /* 0x10 */ 1616 "SANY", /* 0x11 */ 1617 "ANYOF", /* 0x12 */ 1618 "ANYOFD", /* 0x13 */ 1619 "ANYOFL", /* 0x14 */ 1620 "ANYOFPOSIXL", /* 0x15 */ 1621 "ANYOFH", /* 0x16 */ 1622 "ANYOFHb", /* 0x17 */ 1623 "ANYOFHr", /* 0x18 */ 1624 "ANYOFHs", /* 0x19 */ 1625 "ANYOFR", /* 0x1a */ 1626 "ANYOFRb", /* 0x1b */ 1627 "ANYOFHbbm", /* 0x1c */ 1628 "ANYOFM", /* 0x1d */ 1629 "NANYOFM", /* 0x1e */ 1630 "POSIXD", /* 0x1f */ 1631 "POSIXL", /* 0x20 */ 1632 "POSIXU", /* 0x21 */ 1633 "POSIXA", /* 0x22 */ 1634 "NPOSIXD", /* 0x23 */ 1635 "NPOSIXL", /* 0x24 */ 1636 "NPOSIXU", /* 0x25 */ 1637 "NPOSIXA", /* 0x26 */ 1638 "CLUMP", /* 0x27 */ 1639 "BRANCH", /* 0x28 */ 1640 "EXACT", /* 0x29 */ 1641 "LEXACT", /* 0x2a */ 1642 "EXACTL", /* 0x2b */ 1643 "EXACTF", /* 0x2c */ 1644 "EXACTFL", /* 0x2d */ 1645 "EXACTFU", /* 0x2e */ 1646 "EXACTFAA", /* 0x2f */ 1647 "EXACTFAA_NO_TRIE", /* 0x30 */ 1648 "EXACTFUP", /* 0x31 */ 1649 "EXACTFLU8", /* 0x32 */ 1650 "EXACT_REQ8", /* 0x33 */ 1651 "LEXACT_REQ8", /* 0x34 */ 1652 "EXACTFU_REQ8", /* 0x35 */ 1653 "EXACTFU_S_EDGE", /* 0x36 */ 1654 "LNBREAK", /* 0x37 */ 1655 "TRIE", /* 0x38 */ 1656 "TRIEC", /* 0x39 */ 1657 "AHOCORASICK", /* 0x3a */ 1658 "AHOCORASICKC", /* 0x3b */ 1659 "NOTHING", /* 0x3c */ 1660 "TAIL", /* 0x3d */ 1661 "STAR", /* 0x3e */ 1662 "PLUS", /* 0x3f */ 1663 "CURLY", /* 0x40 */ 1664 "CURLYN", /* 0x41 */ 1665 "CURLYM", /* 0x42 */ 1666 "CURLYX", /* 0x43 */ 1667 "WHILEM", /* 0x44 */ 1668 "OPEN", /* 0x45 */ 1669 "CLOSE", /* 0x46 */ 1670 "SROPEN", /* 0x47 */ 1671 "SRCLOSE", /* 0x48 */ 1672 "REF", /* 0x49 */ 1673 "REFF", /* 0x4a */ 1674 "REFFL", /* 0x4b */ 1675 "REFFU", /* 0x4c */ 1676 "REFFA", /* 0x4d */ 1677 "REFN", /* 0x4e */ 1678 "REFFN", /* 0x4f */ 1679 "REFFLN", /* 0x50 */ 1680 "REFFUN", /* 0x51 */ 1681 "REFFAN", /* 0x52 */ 1682 "LONGJMP", /* 0x53 */ 1683 "BRANCHJ", /* 0x54 */ 1684 "IFMATCH", /* 0x55 */ 1685 "UNLESSM", /* 0x56 */ 1686 "SUSPEND", /* 0x57 */ 1687 "IFTHEN", /* 0x58 */ 1688 "GROUPP", /* 0x59 */ 1689 "EVAL", /* 0x5a */ 1690 "MINMOD", /* 0x5b */ 1691 "LOGICAL", /* 0x5c */ 1692 "RENUM", /* 0x5d */ 1693 "GOSUB", /* 0x5e */ 1694 "GROUPPN", /* 0x5f */ 1695 "INSUBP", /* 0x60 */ 1696 "DEFINEP", /* 0x61 */ 1697 "ENDLIKE", /* 0x62 */ 1698 "OPFAIL", /* 0x63 */ 1699 "ACCEPT", /* 0x64 */ 1700 "VERB", /* 0x65 */ 1701 "PRUNE", /* 0x66 */ 1702 "MARKPOINT", /* 0x67 */ 1703 "SKIP", /* 0x68 */ 1704 "COMMIT", /* 0x69 */ 1705 "CUTGROUP", /* 0x6a */ 1706 "KEEPS", /* 0x6b */ 1707 "LOOKBEHIND_END", /* 0x6c */ 1708 "OPTIMIZED", /* 0x6d */ 1709 "PSEUDO", /* 0x6e */ 1710 "REGEX_SET", /* 0x6f */ 1711 /* ------------ States ------------- */ 1712 "TRIE_next", /* REGNODE_MAX +0x01 */ 1713 "TRIE_next_fail", /* REGNODE_MAX +0x02 */ 1714 "EVAL_B", /* REGNODE_MAX +0x03 */ 1715 "EVAL_B_fail", /* REGNODE_MAX +0x04 */ 1716 "EVAL_postponed_AB", /* REGNODE_MAX +0x05 */ 1717 "EVAL_postponed_AB_fail", /* REGNODE_MAX +0x06 */ 1718 "CURLYX_end", /* REGNODE_MAX +0x07 */ 1719 "CURLYX_end_fail", /* REGNODE_MAX +0x08 */ 1720 "WHILEM_A_pre", /* REGNODE_MAX +0x09 */ 1721 "WHILEM_A_pre_fail", /* REGNODE_MAX +0x0a */ 1722 "WHILEM_A_min", /* REGNODE_MAX +0x0b */ 1723 "WHILEM_A_min_fail", /* REGNODE_MAX +0x0c */ 1724 "WHILEM_A_max", /* REGNODE_MAX +0x0d */ 1725 "WHILEM_A_max_fail", /* REGNODE_MAX +0x0e */ 1726 "WHILEM_B_min", /* REGNODE_MAX +0x0f */ 1727 "WHILEM_B_min_fail", /* REGNODE_MAX +0x10 */ 1728 "WHILEM_B_max", /* REGNODE_MAX +0x11 */ 1729 "WHILEM_B_max_fail", /* REGNODE_MAX +0x12 */ 1730 "BRANCH_next", /* REGNODE_MAX +0x13 */ 1731 "BRANCH_next_fail", /* REGNODE_MAX +0x14 */ 1732 "CURLYM_A", /* REGNODE_MAX +0x15 */ 1733 "CURLYM_A_fail", /* REGNODE_MAX +0x16 */ 1734 "CURLYM_B", /* REGNODE_MAX +0x17 */ 1735 "CURLYM_B_fail", /* REGNODE_MAX +0x18 */ 1736 "IFMATCH_A", /* REGNODE_MAX +0x19 */ 1737 "IFMATCH_A_fail", /* REGNODE_MAX +0x1a */ 1738 "CURLY_B_min", /* REGNODE_MAX +0x1b */ 1739 "CURLY_B_min_fail", /* REGNODE_MAX +0x1c */ 1740 "CURLY_B_max", /* REGNODE_MAX +0x1d */ 1741 "CURLY_B_max_fail", /* REGNODE_MAX +0x1e */ 1742 "COMMIT_next", /* REGNODE_MAX +0x1f */ 1743 "COMMIT_next_fail", /* REGNODE_MAX +0x20 */ 1744 "MARKPOINT_next", /* REGNODE_MAX +0x21 */ 1745 "MARKPOINT_next_fail", /* REGNODE_MAX +0x22 */ 1746 "SKIP_next", /* REGNODE_MAX +0x23 */ 1747 "SKIP_next_fail", /* REGNODE_MAX +0x24 */ 1748 "CUTGROUP_next", /* REGNODE_MAX +0x25 */ 1749 "CUTGROUP_next_fail", /* REGNODE_MAX +0x26 */ 1750 "KEEPS_next", /* REGNODE_MAX +0x27 */ 1751 "KEEPS_next_fail", /* REGNODE_MAX +0x28 */ 1752 "REF_next", /* REGNODE_MAX +0x29 */ 1753 "REF_next_fail", /* REGNODE_MAX +0x2a */ 1754 }; 1755 #endif /* DOINIT */ 1756 1757 1758 /* PL_regnode_info[] - Opcode/state names in string form, for debugging */ 1759 1760 #ifndef DOINIT 1761 EXTCONST struct regnode_meta PL_regnode_info[]; 1762 #else 1763 EXTCONST struct regnode_meta PL_regnode_info[] = { 1764 { 1765 /* #0 op END */ 1766 .type = END, 1767 .arg_len = 0, 1768 .arg_len_varies = 0, 1769 .off_by_arg = 0 1770 }, 1771 { 1772 /* #1 op SUCCEED */ 1773 .type = END, 1774 .arg_len = 0, 1775 .arg_len_varies = 0, 1776 .off_by_arg = 0 1777 }, 1778 { 1779 /* #2 op SBOL */ 1780 .type = BOL, 1781 .arg_len = 0, 1782 .arg_len_varies = 0, 1783 .off_by_arg = 0 1784 }, 1785 { 1786 /* #3 op MBOL */ 1787 .type = BOL, 1788 .arg_len = 0, 1789 .arg_len_varies = 0, 1790 .off_by_arg = 0 1791 }, 1792 { 1793 /* #4 op SEOL */ 1794 .type = EOL, 1795 .arg_len = 0, 1796 .arg_len_varies = 0, 1797 .off_by_arg = 0 1798 }, 1799 { 1800 /* #5 op MEOL */ 1801 .type = EOL, 1802 .arg_len = 0, 1803 .arg_len_varies = 0, 1804 .off_by_arg = 0 1805 }, 1806 { 1807 /* #6 op EOS */ 1808 .type = EOL, 1809 .arg_len = 0, 1810 .arg_len_varies = 0, 1811 .off_by_arg = 0 1812 }, 1813 { 1814 /* #7 op GPOS */ 1815 .type = GPOS, 1816 .arg_len = 0, 1817 .arg_len_varies = 0, 1818 .off_by_arg = 0 1819 }, 1820 { 1821 /* #8 op BOUND */ 1822 .type = BOUND, 1823 .arg_len = 0, 1824 .arg_len_varies = 0, 1825 .off_by_arg = 0 1826 }, 1827 { 1828 /* #9 op BOUNDL */ 1829 .type = BOUND, 1830 .arg_len = 0, 1831 .arg_len_varies = 0, 1832 .off_by_arg = 0 1833 }, 1834 { 1835 /* #10 op BOUNDU */ 1836 .type = BOUND, 1837 .arg_len = 0, 1838 .arg_len_varies = 0, 1839 .off_by_arg = 0 1840 }, 1841 { 1842 /* #11 op BOUNDA */ 1843 .type = BOUND, 1844 .arg_len = 0, 1845 .arg_len_varies = 0, 1846 .off_by_arg = 0 1847 }, 1848 { 1849 /* #12 op NBOUND */ 1850 .type = NBOUND, 1851 .arg_len = 0, 1852 .arg_len_varies = 0, 1853 .off_by_arg = 0 1854 }, 1855 { 1856 /* #13 op NBOUNDL */ 1857 .type = NBOUND, 1858 .arg_len = 0, 1859 .arg_len_varies = 0, 1860 .off_by_arg = 0 1861 }, 1862 { 1863 /* #14 op NBOUNDU */ 1864 .type = NBOUND, 1865 .arg_len = 0, 1866 .arg_len_varies = 0, 1867 .off_by_arg = 0 1868 }, 1869 { 1870 /* #15 op NBOUNDA */ 1871 .type = NBOUND, 1872 .arg_len = 0, 1873 .arg_len_varies = 0, 1874 .off_by_arg = 0 1875 }, 1876 { 1877 /* #16 op REG_ANY */ 1878 .type = REG_ANY, 1879 .arg_len = 0, 1880 .arg_len_varies = 0, 1881 .off_by_arg = 0 1882 }, 1883 { 1884 /* #17 op SANY */ 1885 .type = REG_ANY, 1886 .arg_len = 0, 1887 .arg_len_varies = 0, 1888 .off_by_arg = 0 1889 }, 1890 { 1891 /* #18 op ANYOF */ 1892 .type = ANYOF, 1893 .arg_len = EXTRA_SIZE(tregnode_ANYOF), 1894 .arg_len_varies = 0, 1895 .off_by_arg = 0 1896 }, 1897 { 1898 /* #19 op ANYOFD */ 1899 .type = ANYOF, 1900 .arg_len = EXTRA_SIZE(tregnode_ANYOFD), 1901 .arg_len_varies = 0, 1902 .off_by_arg = 0 1903 }, 1904 { 1905 /* #20 op ANYOFL */ 1906 .type = ANYOF, 1907 .arg_len = EXTRA_SIZE(tregnode_ANYOFL), 1908 .arg_len_varies = 0, 1909 .off_by_arg = 0 1910 }, 1911 { 1912 /* #21 op ANYOFPOSIXL */ 1913 .type = ANYOF, 1914 .arg_len = EXTRA_SIZE(tregnode_ANYOFPOSIXL), 1915 .arg_len_varies = 0, 1916 .off_by_arg = 0 1917 }, 1918 { 1919 /* #22 op ANYOFH */ 1920 .type = ANYOFH, 1921 .arg_len = EXTRA_SIZE(tregnode_ANYOFH), 1922 .arg_len_varies = 0, 1923 .off_by_arg = 0 1924 }, 1925 { 1926 /* #23 op ANYOFHb */ 1927 .type = ANYOFH, 1928 .arg_len = EXTRA_SIZE(tregnode_ANYOFHb), 1929 .arg_len_varies = 0, 1930 .off_by_arg = 0 1931 }, 1932 { 1933 /* #24 op ANYOFHr */ 1934 .type = ANYOFH, 1935 .arg_len = EXTRA_SIZE(tregnode_ANYOFHr), 1936 .arg_len_varies = 0, 1937 .off_by_arg = 0 1938 }, 1939 { 1940 /* #25 op ANYOFHs */ 1941 .type = ANYOFH, 1942 .arg_len = EXTRA_SIZE(tregnode_ANYOFHs), 1943 .arg_len_varies = 1, 1944 .off_by_arg = 0 1945 }, 1946 { 1947 /* #26 op ANYOFR */ 1948 .type = ANYOFR, 1949 .arg_len = EXTRA_SIZE(tregnode_ANYOFR), 1950 .arg_len_varies = 0, 1951 .off_by_arg = 0 1952 }, 1953 { 1954 /* #27 op ANYOFRb */ 1955 .type = ANYOFR, 1956 .arg_len = EXTRA_SIZE(tregnode_ANYOFRb), 1957 .arg_len_varies = 0, 1958 .off_by_arg = 0 1959 }, 1960 { 1961 /* #28 op ANYOFHbbm */ 1962 .type = ANYOFHbbm, 1963 .arg_len = EXTRA_SIZE(tregnode_ANYOFHbbm), 1964 .arg_len_varies = 0, 1965 .off_by_arg = 0 1966 }, 1967 { 1968 /* #29 op ANYOFM */ 1969 .type = ANYOFM, 1970 .arg_len = EXTRA_SIZE(tregnode_ANYOFM), 1971 .arg_len_varies = 0, 1972 .off_by_arg = 0 1973 }, 1974 { 1975 /* #30 op NANYOFM */ 1976 .type = ANYOFM, 1977 .arg_len = EXTRA_SIZE(tregnode_NANYOFM), 1978 .arg_len_varies = 0, 1979 .off_by_arg = 0 1980 }, 1981 { 1982 /* #31 op POSIXD */ 1983 .type = POSIXD, 1984 .arg_len = 0, 1985 .arg_len_varies = 0, 1986 .off_by_arg = 0 1987 }, 1988 { 1989 /* #32 op POSIXL */ 1990 .type = POSIXD, 1991 .arg_len = 0, 1992 .arg_len_varies = 0, 1993 .off_by_arg = 0 1994 }, 1995 { 1996 /* #33 op POSIXU */ 1997 .type = POSIXD, 1998 .arg_len = 0, 1999 .arg_len_varies = 0, 2000 .off_by_arg = 0 2001 }, 2002 { 2003 /* #34 op POSIXA */ 2004 .type = POSIXD, 2005 .arg_len = 0, 2006 .arg_len_varies = 0, 2007 .off_by_arg = 0 2008 }, 2009 { 2010 /* #35 op NPOSIXD */ 2011 .type = NPOSIXD, 2012 .arg_len = 0, 2013 .arg_len_varies = 0, 2014 .off_by_arg = 0 2015 }, 2016 { 2017 /* #36 op NPOSIXL */ 2018 .type = NPOSIXD, 2019 .arg_len = 0, 2020 .arg_len_varies = 0, 2021 .off_by_arg = 0 2022 }, 2023 { 2024 /* #37 op NPOSIXU */ 2025 .type = NPOSIXD, 2026 .arg_len = 0, 2027 .arg_len_varies = 0, 2028 .off_by_arg = 0 2029 }, 2030 { 2031 /* #38 op NPOSIXA */ 2032 .type = NPOSIXD, 2033 .arg_len = 0, 2034 .arg_len_varies = 0, 2035 .off_by_arg = 0 2036 }, 2037 { 2038 /* #39 op CLUMP */ 2039 .type = CLUMP, 2040 .arg_len = 0, 2041 .arg_len_varies = 0, 2042 .off_by_arg = 0 2043 }, 2044 { 2045 /* #40 op BRANCH */ 2046 .type = BRANCH, 2047 .arg_len = EXTRA_SIZE(tregnode_BRANCH), 2048 .arg_len_varies = 0, 2049 .off_by_arg = 0 2050 }, 2051 { 2052 /* #41 op EXACT */ 2053 .type = EXACT, 2054 .arg_len = 0, 2055 .arg_len_varies = 1, 2056 .off_by_arg = 0 2057 }, 2058 { 2059 /* #42 op LEXACT */ 2060 .type = EXACT, 2061 .arg_len = EXTRA_SIZE(tregnode_LEXACT), 2062 .arg_len_varies = 1, 2063 .off_by_arg = 0 2064 }, 2065 { 2066 /* #43 op EXACTL */ 2067 .type = EXACT, 2068 .arg_len = 0, 2069 .arg_len_varies = 1, 2070 .off_by_arg = 0 2071 }, 2072 { 2073 /* #44 op EXACTF */ 2074 .type = EXACT, 2075 .arg_len = 0, 2076 .arg_len_varies = 1, 2077 .off_by_arg = 0 2078 }, 2079 { 2080 /* #45 op EXACTFL */ 2081 .type = EXACT, 2082 .arg_len = 0, 2083 .arg_len_varies = 1, 2084 .off_by_arg = 0 2085 }, 2086 { 2087 /* #46 op EXACTFU */ 2088 .type = EXACT, 2089 .arg_len = 0, 2090 .arg_len_varies = 1, 2091 .off_by_arg = 0 2092 }, 2093 { 2094 /* #47 op EXACTFAA */ 2095 .type = EXACT, 2096 .arg_len = 0, 2097 .arg_len_varies = 1, 2098 .off_by_arg = 0 2099 }, 2100 { 2101 /* #48 op EXACTFAA_NO_TRIE */ 2102 .type = EXACT, 2103 .arg_len = 0, 2104 .arg_len_varies = 1, 2105 .off_by_arg = 0 2106 }, 2107 { 2108 /* #49 op EXACTFUP */ 2109 .type = EXACT, 2110 .arg_len = 0, 2111 .arg_len_varies = 1, 2112 .off_by_arg = 0 2113 }, 2114 { 2115 /* #50 op EXACTFLU8 */ 2116 .type = EXACT, 2117 .arg_len = 0, 2118 .arg_len_varies = 1, 2119 .off_by_arg = 0 2120 }, 2121 { 2122 /* #51 op EXACT_REQ8 */ 2123 .type = EXACT, 2124 .arg_len = 0, 2125 .arg_len_varies = 1, 2126 .off_by_arg = 0 2127 }, 2128 { 2129 /* #52 op LEXACT_REQ8 */ 2130 .type = EXACT, 2131 .arg_len = EXTRA_SIZE(tregnode_LEXACT_REQ8), 2132 .arg_len_varies = 1, 2133 .off_by_arg = 0 2134 }, 2135 { 2136 /* #53 op EXACTFU_REQ8 */ 2137 .type = EXACT, 2138 .arg_len = 0, 2139 .arg_len_varies = 1, 2140 .off_by_arg = 0 2141 }, 2142 { 2143 /* #54 op EXACTFU_S_EDGE */ 2144 .type = EXACT, 2145 .arg_len = 0, 2146 .arg_len_varies = 1, 2147 .off_by_arg = 0 2148 }, 2149 { 2150 /* #55 op LNBREAK */ 2151 .type = LNBREAK, 2152 .arg_len = 0, 2153 .arg_len_varies = 0, 2154 .off_by_arg = 0 2155 }, 2156 { 2157 /* #56 op TRIE */ 2158 .type = TRIE, 2159 .arg_len = EXTRA_SIZE(tregnode_TRIE), 2160 .arg_len_varies = 0, 2161 .off_by_arg = 0 2162 }, 2163 { 2164 /* #57 op TRIEC */ 2165 .type = TRIE, 2166 .arg_len = EXTRA_SIZE(tregnode_TRIEC), 2167 .arg_len_varies = 0, 2168 .off_by_arg = 0 2169 }, 2170 { 2171 /* #58 op AHOCORASICK */ 2172 .type = TRIE, 2173 .arg_len = EXTRA_SIZE(tregnode_AHOCORASICK), 2174 .arg_len_varies = 0, 2175 .off_by_arg = 0 2176 }, 2177 { 2178 /* #59 op AHOCORASICKC */ 2179 .type = TRIE, 2180 .arg_len = EXTRA_SIZE(tregnode_AHOCORASICKC), 2181 .arg_len_varies = 0, 2182 .off_by_arg = 0 2183 }, 2184 { 2185 /* #60 op NOTHING */ 2186 .type = NOTHING, 2187 .arg_len = 0, 2188 .arg_len_varies = 0, 2189 .off_by_arg = 0 2190 }, 2191 { 2192 /* #61 op TAIL */ 2193 .type = NOTHING, 2194 .arg_len = 0, 2195 .arg_len_varies = 0, 2196 .off_by_arg = 0 2197 }, 2198 { 2199 /* #62 op STAR */ 2200 .type = STAR, 2201 .arg_len = 0, 2202 .arg_len_varies = 0, 2203 .off_by_arg = 0 2204 }, 2205 { 2206 /* #63 op PLUS */ 2207 .type = PLUS, 2208 .arg_len = 0, 2209 .arg_len_varies = 0, 2210 .off_by_arg = 0 2211 }, 2212 { 2213 /* #64 op CURLY */ 2214 .type = CURLY, 2215 .arg_len = EXTRA_SIZE(tregnode_CURLY), 2216 .arg_len_varies = 0, 2217 .off_by_arg = 0 2218 }, 2219 { 2220 /* #65 op CURLYN */ 2221 .type = CURLY, 2222 .arg_len = EXTRA_SIZE(tregnode_CURLYN), 2223 .arg_len_varies = 0, 2224 .off_by_arg = 0 2225 }, 2226 { 2227 /* #66 op CURLYM */ 2228 .type = CURLY, 2229 .arg_len = EXTRA_SIZE(tregnode_CURLYM), 2230 .arg_len_varies = 0, 2231 .off_by_arg = 0 2232 }, 2233 { 2234 /* #67 op CURLYX */ 2235 .type = CURLY, 2236 .arg_len = EXTRA_SIZE(tregnode_CURLYX), 2237 .arg_len_varies = 0, 2238 .off_by_arg = 0 2239 }, 2240 { 2241 /* #68 op WHILEM */ 2242 .type = WHILEM, 2243 .arg_len = 0, 2244 .arg_len_varies = 0, 2245 .off_by_arg = 0 2246 }, 2247 { 2248 /* #69 op OPEN */ 2249 .type = OPEN, 2250 .arg_len = EXTRA_SIZE(tregnode_OPEN), 2251 .arg_len_varies = 0, 2252 .off_by_arg = 0 2253 }, 2254 { 2255 /* #70 op CLOSE */ 2256 .type = CLOSE, 2257 .arg_len = EXTRA_SIZE(tregnode_CLOSE), 2258 .arg_len_varies = 0, 2259 .off_by_arg = 0 2260 }, 2261 { 2262 /* #71 op SROPEN */ 2263 .type = SROPEN, 2264 .arg_len = 0, 2265 .arg_len_varies = 0, 2266 .off_by_arg = 0 2267 }, 2268 { 2269 /* #72 op SRCLOSE */ 2270 .type = SRCLOSE, 2271 .arg_len = 0, 2272 .arg_len_varies = 0, 2273 .off_by_arg = 0 2274 }, 2275 { 2276 /* #73 op REF */ 2277 .type = REF, 2278 .arg_len = EXTRA_SIZE(tregnode_REF), 2279 .arg_len_varies = 0, 2280 .off_by_arg = 0 2281 }, 2282 { 2283 /* #74 op REFF */ 2284 .type = REF, 2285 .arg_len = EXTRA_SIZE(tregnode_REFF), 2286 .arg_len_varies = 0, 2287 .off_by_arg = 0 2288 }, 2289 { 2290 /* #75 op REFFL */ 2291 .type = REF, 2292 .arg_len = EXTRA_SIZE(tregnode_REFFL), 2293 .arg_len_varies = 0, 2294 .off_by_arg = 0 2295 }, 2296 { 2297 /* #76 op REFFU */ 2298 .type = REF, 2299 .arg_len = EXTRA_SIZE(tregnode_REFFU), 2300 .arg_len_varies = 0, 2301 .off_by_arg = 0 2302 }, 2303 { 2304 /* #77 op REFFA */ 2305 .type = REF, 2306 .arg_len = EXTRA_SIZE(tregnode_REFFA), 2307 .arg_len_varies = 0, 2308 .off_by_arg = 0 2309 }, 2310 { 2311 /* #78 op REFN */ 2312 .type = REF, 2313 .arg_len = EXTRA_SIZE(tregnode_REFN), 2314 .arg_len_varies = 0, 2315 .off_by_arg = 0 2316 }, 2317 { 2318 /* #79 op REFFN */ 2319 .type = REF, 2320 .arg_len = EXTRA_SIZE(tregnode_REFFN), 2321 .arg_len_varies = 0, 2322 .off_by_arg = 0 2323 }, 2324 { 2325 /* #80 op REFFLN */ 2326 .type = REF, 2327 .arg_len = EXTRA_SIZE(tregnode_REFFLN), 2328 .arg_len_varies = 0, 2329 .off_by_arg = 0 2330 }, 2331 { 2332 /* #81 op REFFUN */ 2333 .type = REF, 2334 .arg_len = EXTRA_SIZE(tregnode_REFFUN), 2335 .arg_len_varies = 0, 2336 .off_by_arg = 0 2337 }, 2338 { 2339 /* #82 op REFFAN */ 2340 .type = REF, 2341 .arg_len = EXTRA_SIZE(tregnode_REFFAN), 2342 .arg_len_varies = 0, 2343 .off_by_arg = 0 2344 }, 2345 { 2346 /* #83 op LONGJMP */ 2347 .type = LONGJMP, 2348 .arg_len = EXTRA_SIZE(tregnode_LONGJMP), 2349 .arg_len_varies = 0, 2350 .off_by_arg = 1 2351 }, 2352 { 2353 /* #84 op BRANCHJ */ 2354 .type = BRANCHJ, 2355 .arg_len = EXTRA_SIZE(tregnode_BRANCHJ), 2356 .arg_len_varies = 0, 2357 .off_by_arg = 1 2358 }, 2359 { 2360 /* #85 op IFMATCH */ 2361 .type = BRANCHJ, 2362 .arg_len = EXTRA_SIZE(tregnode_IFMATCH), 2363 .arg_len_varies = 0, 2364 .off_by_arg = 1 2365 }, 2366 { 2367 /* #86 op UNLESSM */ 2368 .type = BRANCHJ, 2369 .arg_len = EXTRA_SIZE(tregnode_UNLESSM), 2370 .arg_len_varies = 0, 2371 .off_by_arg = 1 2372 }, 2373 { 2374 /* #87 op SUSPEND */ 2375 .type = BRANCHJ, 2376 .arg_len = EXTRA_SIZE(tregnode_SUSPEND), 2377 .arg_len_varies = 0, 2378 .off_by_arg = 1 2379 }, 2380 { 2381 /* #88 op IFTHEN */ 2382 .type = BRANCHJ, 2383 .arg_len = EXTRA_SIZE(tregnode_IFTHEN), 2384 .arg_len_varies = 0, 2385 .off_by_arg = 1 2386 }, 2387 { 2388 /* #89 op GROUPP */ 2389 .type = GROUPP, 2390 .arg_len = EXTRA_SIZE(tregnode_GROUPP), 2391 .arg_len_varies = 0, 2392 .off_by_arg = 0 2393 }, 2394 { 2395 /* #90 op EVAL */ 2396 .type = EVAL, 2397 .arg_len = EXTRA_SIZE(tregnode_EVAL), 2398 .arg_len_varies = 0, 2399 .off_by_arg = 0 2400 }, 2401 { 2402 /* #91 op MINMOD */ 2403 .type = MINMOD, 2404 .arg_len = 0, 2405 .arg_len_varies = 0, 2406 .off_by_arg = 0 2407 }, 2408 { 2409 /* #92 op LOGICAL */ 2410 .type = LOGICAL, 2411 .arg_len = 0, 2412 .arg_len_varies = 0, 2413 .off_by_arg = 0 2414 }, 2415 { 2416 /* #93 op RENUM */ 2417 .type = BRANCHJ, 2418 .arg_len = EXTRA_SIZE(tregnode_RENUM), 2419 .arg_len_varies = 0, 2420 .off_by_arg = 1 2421 }, 2422 { 2423 /* #94 op GOSUB */ 2424 .type = GOSUB, 2425 .arg_len = EXTRA_SIZE(tregnode_GOSUB), 2426 .arg_len_varies = 0, 2427 .off_by_arg = 0 2428 }, 2429 { 2430 /* #95 op GROUPPN */ 2431 .type = GROUPPN, 2432 .arg_len = EXTRA_SIZE(tregnode_GROUPPN), 2433 .arg_len_varies = 0, 2434 .off_by_arg = 0 2435 }, 2436 { 2437 /* #96 op INSUBP */ 2438 .type = INSUBP, 2439 .arg_len = EXTRA_SIZE(tregnode_INSUBP), 2440 .arg_len_varies = 0, 2441 .off_by_arg = 0 2442 }, 2443 { 2444 /* #97 op DEFINEP */ 2445 .type = DEFINEP, 2446 .arg_len = EXTRA_SIZE(tregnode_DEFINEP), 2447 .arg_len_varies = 0, 2448 .off_by_arg = 0 2449 }, 2450 { 2451 /* #98 op ENDLIKE */ 2452 .type = ENDLIKE, 2453 .arg_len = 0, 2454 .arg_len_varies = 0, 2455 .off_by_arg = 0 2456 }, 2457 { 2458 /* #99 op OPFAIL */ 2459 .type = ENDLIKE, 2460 .arg_len = EXTRA_SIZE(tregnode_OPFAIL), 2461 .arg_len_varies = 0, 2462 .off_by_arg = 0 2463 }, 2464 { 2465 /* #100 op ACCEPT */ 2466 .type = ENDLIKE, 2467 .arg_len = EXTRA_SIZE(tregnode_ACCEPT), 2468 .arg_len_varies = 0, 2469 .off_by_arg = 0 2470 }, 2471 { 2472 /* #101 op VERB */ 2473 .type = VERB, 2474 .arg_len = EXTRA_SIZE(tregnode_VERB), 2475 .arg_len_varies = 0, 2476 .off_by_arg = 0 2477 }, 2478 { 2479 /* #102 op PRUNE */ 2480 .type = VERB, 2481 .arg_len = EXTRA_SIZE(tregnode_PRUNE), 2482 .arg_len_varies = 0, 2483 .off_by_arg = 0 2484 }, 2485 { 2486 /* #103 op MARKPOINT */ 2487 .type = VERB, 2488 .arg_len = EXTRA_SIZE(tregnode_MARKPOINT), 2489 .arg_len_varies = 0, 2490 .off_by_arg = 0 2491 }, 2492 { 2493 /* #104 op SKIP */ 2494 .type = VERB, 2495 .arg_len = EXTRA_SIZE(tregnode_SKIP), 2496 .arg_len_varies = 0, 2497 .off_by_arg = 0 2498 }, 2499 { 2500 /* #105 op COMMIT */ 2501 .type = VERB, 2502 .arg_len = EXTRA_SIZE(tregnode_COMMIT), 2503 .arg_len_varies = 0, 2504 .off_by_arg = 0 2505 }, 2506 { 2507 /* #106 op CUTGROUP */ 2508 .type = VERB, 2509 .arg_len = EXTRA_SIZE(tregnode_CUTGROUP), 2510 .arg_len_varies = 0, 2511 .off_by_arg = 0 2512 }, 2513 { 2514 /* #107 op KEEPS */ 2515 .type = KEEPS, 2516 .arg_len = 0, 2517 .arg_len_varies = 0, 2518 .off_by_arg = 0 2519 }, 2520 { 2521 /* #108 op LOOKBEHIND_END */ 2522 .type = END, 2523 .arg_len = 0, 2524 .arg_len_varies = 0, 2525 .off_by_arg = 0 2526 }, 2527 { 2528 /* #109 op OPTIMIZED */ 2529 .type = NOTHING, 2530 .arg_len = 0, 2531 .arg_len_varies = 0, 2532 .off_by_arg = 0 2533 }, 2534 { 2535 /* #110 op PSEUDO */ 2536 .type = PSEUDO, 2537 .arg_len = 0, 2538 .arg_len_varies = 0, 2539 .off_by_arg = 0 2540 }, 2541 { 2542 /* #111 op REGEX_SET */ 2543 .type = REGEX_SET, 2544 .arg_len = EXTRA_SIZE(tregnode_REGEX_SET), 2545 .arg_len_varies = 0, 2546 .off_by_arg = 0 2547 }, 2548 { 2549 /* #112 state TRIE_next */ 2550 .type = TRIE, 2551 .arg_len = 0, 2552 .arg_len_varies = 0, 2553 .off_by_arg = 0 2554 }, 2555 { 2556 /* #113 state TRIE_next_fail */ 2557 .type = TRIE, 2558 .arg_len = 0, 2559 .arg_len_varies = 0, 2560 .off_by_arg = 0 2561 }, 2562 { 2563 /* #114 state EVAL_B */ 2564 .type = EVAL, 2565 .arg_len = 0, 2566 .arg_len_varies = 0, 2567 .off_by_arg = 0 2568 }, 2569 { 2570 /* #115 state EVAL_B_fail */ 2571 .type = EVAL, 2572 .arg_len = 0, 2573 .arg_len_varies = 0, 2574 .off_by_arg = 0 2575 }, 2576 { 2577 /* #116 state EVAL_postponed_AB */ 2578 .type = EVAL, 2579 .arg_len = 0, 2580 .arg_len_varies = 0, 2581 .off_by_arg = 0 2582 }, 2583 { 2584 /* #117 state EVAL_postponed_AB_fail */ 2585 .type = EVAL, 2586 .arg_len = 0, 2587 .arg_len_varies = 0, 2588 .off_by_arg = 0 2589 }, 2590 { 2591 /* #118 state CURLYX_end */ 2592 .type = CURLYX, 2593 .arg_len = 0, 2594 .arg_len_varies = 0, 2595 .off_by_arg = 0 2596 }, 2597 { 2598 /* #119 state CURLYX_end_fail */ 2599 .type = CURLYX, 2600 .arg_len = 0, 2601 .arg_len_varies = 0, 2602 .off_by_arg = 0 2603 }, 2604 { 2605 /* #120 state WHILEM_A_pre */ 2606 .type = WHILEM, 2607 .arg_len = 0, 2608 .arg_len_varies = 0, 2609 .off_by_arg = 0 2610 }, 2611 { 2612 /* #121 state WHILEM_A_pre_fail */ 2613 .type = WHILEM, 2614 .arg_len = 0, 2615 .arg_len_varies = 0, 2616 .off_by_arg = 0 2617 }, 2618 { 2619 /* #122 state WHILEM_A_min */ 2620 .type = WHILEM, 2621 .arg_len = 0, 2622 .arg_len_varies = 0, 2623 .off_by_arg = 0 2624 }, 2625 { 2626 /* #123 state WHILEM_A_min_fail */ 2627 .type = WHILEM, 2628 .arg_len = 0, 2629 .arg_len_varies = 0, 2630 .off_by_arg = 0 2631 }, 2632 { 2633 /* #124 state WHILEM_A_max */ 2634 .type = WHILEM, 2635 .arg_len = 0, 2636 .arg_len_varies = 0, 2637 .off_by_arg = 0 2638 }, 2639 { 2640 /* #125 state WHILEM_A_max_fail */ 2641 .type = WHILEM, 2642 .arg_len = 0, 2643 .arg_len_varies = 0, 2644 .off_by_arg = 0 2645 }, 2646 { 2647 /* #126 state WHILEM_B_min */ 2648 .type = WHILEM, 2649 .arg_len = 0, 2650 .arg_len_varies = 0, 2651 .off_by_arg = 0 2652 }, 2653 { 2654 /* #127 state WHILEM_B_min_fail */ 2655 .type = WHILEM, 2656 .arg_len = 0, 2657 .arg_len_varies = 0, 2658 .off_by_arg = 0 2659 }, 2660 { 2661 /* #128 state WHILEM_B_max */ 2662 .type = WHILEM, 2663 .arg_len = 0, 2664 .arg_len_varies = 0, 2665 .off_by_arg = 0 2666 }, 2667 { 2668 /* #129 state WHILEM_B_max_fail */ 2669 .type = WHILEM, 2670 .arg_len = 0, 2671 .arg_len_varies = 0, 2672 .off_by_arg = 0 2673 }, 2674 { 2675 /* #130 state BRANCH_next */ 2676 .type = BRANCH, 2677 .arg_len = 0, 2678 .arg_len_varies = 0, 2679 .off_by_arg = 0 2680 }, 2681 { 2682 /* #131 state BRANCH_next_fail */ 2683 .type = BRANCH, 2684 .arg_len = 0, 2685 .arg_len_varies = 0, 2686 .off_by_arg = 0 2687 }, 2688 { 2689 /* #132 state CURLYM_A */ 2690 .type = CURLYM, 2691 .arg_len = 0, 2692 .arg_len_varies = 0, 2693 .off_by_arg = 0 2694 }, 2695 { 2696 /* #133 state CURLYM_A_fail */ 2697 .type = CURLYM, 2698 .arg_len = 0, 2699 .arg_len_varies = 0, 2700 .off_by_arg = 0 2701 }, 2702 { 2703 /* #134 state CURLYM_B */ 2704 .type = CURLYM, 2705 .arg_len = 0, 2706 .arg_len_varies = 0, 2707 .off_by_arg = 0 2708 }, 2709 { 2710 /* #135 state CURLYM_B_fail */ 2711 .type = CURLYM, 2712 .arg_len = 0, 2713 .arg_len_varies = 0, 2714 .off_by_arg = 0 2715 }, 2716 { 2717 /* #136 state IFMATCH_A */ 2718 .type = IFMATCH, 2719 .arg_len = 0, 2720 .arg_len_varies = 0, 2721 .off_by_arg = 0 2722 }, 2723 { 2724 /* #137 state IFMATCH_A_fail */ 2725 .type = IFMATCH, 2726 .arg_len = 0, 2727 .arg_len_varies = 0, 2728 .off_by_arg = 0 2729 }, 2730 { 2731 /* #138 state CURLY_B_min */ 2732 .type = CURLY, 2733 .arg_len = 0, 2734 .arg_len_varies = 0, 2735 .off_by_arg = 0 2736 }, 2737 { 2738 /* #139 state CURLY_B_min_fail */ 2739 .type = CURLY, 2740 .arg_len = 0, 2741 .arg_len_varies = 0, 2742 .off_by_arg = 0 2743 }, 2744 { 2745 /* #140 state CURLY_B_max */ 2746 .type = CURLY, 2747 .arg_len = 0, 2748 .arg_len_varies = 0, 2749 .off_by_arg = 0 2750 }, 2751 { 2752 /* #141 state CURLY_B_max_fail */ 2753 .type = CURLY, 2754 .arg_len = 0, 2755 .arg_len_varies = 0, 2756 .off_by_arg = 0 2757 }, 2758 { 2759 /* #142 state COMMIT_next */ 2760 .type = COMMIT, 2761 .arg_len = 0, 2762 .arg_len_varies = 0, 2763 .off_by_arg = 0 2764 }, 2765 { 2766 /* #143 state COMMIT_next_fail */ 2767 .type = COMMIT, 2768 .arg_len = 0, 2769 .arg_len_varies = 0, 2770 .off_by_arg = 0 2771 }, 2772 { 2773 /* #144 state MARKPOINT_next */ 2774 .type = MARKPOINT, 2775 .arg_len = 0, 2776 .arg_len_varies = 0, 2777 .off_by_arg = 0 2778 }, 2779 { 2780 /* #145 state MARKPOINT_next_fail */ 2781 .type = MARKPOINT, 2782 .arg_len = 0, 2783 .arg_len_varies = 0, 2784 .off_by_arg = 0 2785 }, 2786 { 2787 /* #146 state SKIP_next */ 2788 .type = SKIP, 2789 .arg_len = 0, 2790 .arg_len_varies = 0, 2791 .off_by_arg = 0 2792 }, 2793 { 2794 /* #147 state SKIP_next_fail */ 2795 .type = SKIP, 2796 .arg_len = 0, 2797 .arg_len_varies = 0, 2798 .off_by_arg = 0 2799 }, 2800 { 2801 /* #148 state CUTGROUP_next */ 2802 .type = CUTGROUP, 2803 .arg_len = 0, 2804 .arg_len_varies = 0, 2805 .off_by_arg = 0 2806 }, 2807 { 2808 /* #149 state CUTGROUP_next_fail */ 2809 .type = CUTGROUP, 2810 .arg_len = 0, 2811 .arg_len_varies = 0, 2812 .off_by_arg = 0 2813 }, 2814 { 2815 /* #150 state KEEPS_next */ 2816 .type = KEEPS, 2817 .arg_len = 0, 2818 .arg_len_varies = 0, 2819 .off_by_arg = 0 2820 }, 2821 { 2822 /* #151 state KEEPS_next_fail */ 2823 .type = KEEPS, 2824 .arg_len = 0, 2825 .arg_len_varies = 0, 2826 .off_by_arg = 0 2827 }, 2828 { 2829 /* #152 state REF_next */ 2830 .type = REF, 2831 .arg_len = 0, 2832 .arg_len_varies = 0, 2833 .off_by_arg = 0 2834 }, 2835 { 2836 /* #153 state REF_next_fail */ 2837 .type = REF, 2838 .arg_len = 0, 2839 .arg_len_varies = 0, 2840 .off_by_arg = 0 2841 } 2842 }; 2843 #endif /* DOINIT */ 2844 2845 /* PL_reg_extflags_name[] - Opcode/state names in string form, for debugging */ 2846 2847 #ifndef DOINIT 2848 EXTCONST char * PL_reg_extflags_name[]; 2849 #else 2850 EXTCONST char * const PL_reg_extflags_name[] = { 2851 /* Bits in extflags defined: 11111111111111110000111111111111 */ 2852 "MULTILINE", /* 0x00000001 */ 2853 "SINGLELINE", /* 0x00000002 */ 2854 "FOLD", /* 0x00000004 */ 2855 "EXTENDED", /* 0x00000008 */ 2856 "EXTENDED_MORE", /* 0x00000010 */ 2857 "NOCAPTURE", /* 0x00000020 */ 2858 "KEEPCOPY", /* 0x00000040 */ 2859 "CHARSET0", /* 0x00000080 : "CHARSET" - 0x00000380 */ 2860 "CHARSET1", /* 0x00000100 : "CHARSET" - 0x00000380 */ 2861 "CHARSET2", /* 0x00000200 : "CHARSET" - 0x00000380 */ 2862 "STRICT", /* 0x00000400 */ 2863 "SPLIT", /* 0x00000800 */ 2864 "UNUSED_BIT_12", /* 0x00001000 */ 2865 "UNUSED_BIT_13", /* 0x00002000 */ 2866 "UNUSED_BIT_14", /* 0x00004000 */ 2867 "UNUSED_BIT_15", /* 0x00008000 */ 2868 "NO_INPLACE_SUBST", /* 0x00010000 */ 2869 "EVAL_SEEN", /* 0x00020000 */ 2870 "UNBOUNDED_QUANTIFIER_SEEN",/* 0x00040000 */ 2871 "CHECK_ALL", /* 0x00080000 */ 2872 "MATCH_UTF8", /* 0x00100000 */ 2873 "USE_INTUIT_NOML", /* 0x00200000 */ 2874 "USE_INTUIT_ML", /* 0x00400000 */ 2875 "INTUIT_TAIL", /* 0x00800000 */ 2876 "IS_ANCHORED", /* 0x01000000 */ 2877 "COPY_DONE", /* 0x02000000 */ 2878 "TAINTED_SEEN", /* 0x04000000 */ 2879 "TAINTED", /* 0x08000000 */ 2880 "START_ONLY", /* 0x10000000 */ 2881 "SKIPWHITE", /* 0x20000000 */ 2882 "WHITE", /* 0x40000000 */ 2883 "NULL", /* 0x80000000 */ 2884 }; 2885 #endif /* DOINIT */ 2886 2887 #ifdef DEBUGGING 2888 # define REG_EXTFLAGS_NAME_SIZE 32 2889 #endif 2890 2891 /* PL_reg_intflags_name[] - Opcode/state names in string form, for debugging */ 2892 2893 #ifndef DOINIT 2894 EXTCONST char * PL_reg_intflags_name[]; 2895 #else 2896 EXTCONST char * const PL_reg_intflags_name[] = { 2897 "SKIP", /* (1<< 0) - 0x00000001 - PREGf_SKIP */ 2898 "IMPLICIT", /* (1<< 1) - 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */ 2899 "NAUGHTY", /* (1<< 2) - 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */ 2900 "VERBARG_SEEN", /* (1<< 3) - 0x00000008 - PREGf_VERBARG_SEEN */ 2901 "CUTGROUP_SEEN", /* (1<< 4) - 0x00000010 - PREGf_CUTGROUP_SEEN */ 2902 "USE_RE_EVAL", /* (1<< 5) - 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */ 2903 "NOSCAN", /* (1<< 6) - 0x00000040 - PREGf_NOSCAN */ 2904 "", /* (1<< 7) - 0x00000080 - *UNUSED* */ 2905 "GPOS_SEEN", /* (1<< 8) - 0x00000100 - PREGf_GPOS_SEEN */ 2906 "GPOS_FLOAT", /* (1<< 9) - 0x00000200 - PREGf_GPOS_FLOAT */ 2907 "ANCH_MBOL", /* (1<<10) - 0x00000400 - PREGf_ANCH_MBOL */ 2908 "ANCH_SBOL", /* (1<<11) - 0x00000800 - PREGf_ANCH_SBOL */ 2909 "ANCH_GPOS", /* (1<<12) - 0x00001000 - PREGf_ANCH_GPOS */ 2910 "RECURSE_SEEN", /* (1<<13) - 0x00002000 - PREGf_RECURSE_SEEN */ 2911 "PESSIMIZE_SEEN", /* (1<<14) - 0x00004000 - PREGf_PESSIMIZE_SEEN */ 2912 }; 2913 #endif /* DOINIT */ 2914 2915 #ifdef DEBUGGING 2916 # define REG_INTFLAGS_NAME_SIZE 15 2917 #endif 2918 2919 /* The following have no fixed length. U8 so we can do strchr() on it. */ 2920 #define REGNODE_VARIES(node) (PL_varies_bitmask[(node) >> 3] & (1 << ((node) & 7))) 2921 2922 #ifndef DOINIT 2923 EXTCONST U8 PL_varies[] __attribute__deprecated__; 2924 #else 2925 EXTCONST U8 PL_varies[] __attribute__deprecated__ = { 2926 CLUMP, BRANCH, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX, WHILEM, REF, 2927 REFF, REFFL, REFFU, REFFA, REFN, REFFN, REFFLN, REFFUN, REFFAN, 2928 BRANCHJ, SUSPEND, IFTHEN, 2929 0 2930 }; 2931 #endif /* DOINIT */ 2932 2933 #ifndef DOINIT 2934 EXTCONST U8 PL_varies_bitmask[]; 2935 #else 2936 EXTCONST U8 PL_varies_bitmask[] = { 2937 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x1F, 0xFE, 0x97, 0x01, 0x00, 0x00 2938 }; 2939 #endif /* DOINIT */ 2940 2941 /* The following always have a length of 1. U8 we can do strchr() on it. */ 2942 /* (Note that length 1 means "one character" under UTF8, not "one octet".) */ 2943 #define REGNODE_SIMPLE(node) (PL_simple_bitmask[(node) >> 3] & (1 << ((node) & 7))) 2944 2945 #ifndef DOINIT 2946 EXTCONST U8 PL_simple[] __attribute__deprecated__; 2947 #else 2948 EXTCONST U8 PL_simple[] __attribute__deprecated__ = { 2949 REG_ANY, SANY, ANYOF, ANYOFD, ANYOFL, ANYOFPOSIXL, ANYOFH, ANYOFHb, 2950 ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFHbbm, ANYOFM, NANYOFM, POSIXD, 2951 POSIXL, POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET, 2952 0 2953 }; 2954 #endif /* DOINIT */ 2955 2956 #ifndef DOINIT 2957 EXTCONST U8 PL_simple_bitmask[]; 2958 #else 2959 EXTCONST U8 PL_simple_bitmask[] = { 2960 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 2961 }; 2962 #endif /* DOINIT */ 2963 2964 /* Is 'op', known to be of type EXACT, folding? */ 2965 #define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT)))) 2966 2967 /* Do only UTF-8 target strings match 'op', known to be of type EXACT? */ 2968 #define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT)))) 2969 2970 #ifndef DOINIT 2971 EXTCONST U32 PL_EXACTFish_bitmask; 2972 EXTCONST U32 PL_EXACT_REQ8_bitmask; 2973 #else 2974 EXTCONST U32 PL_EXACTFish_bitmask = 0x33F8; 2975 EXTCONST U32 PL_EXACT_REQ8_bitmask = 0x1E00; 2976 #endif /* DOINIT */ 2977 2978 #endif /* defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */ 2979 2980 /* ex: set ro ft=c: */ 2981