1 /* -*- buffer-read-only: t -*-
2 !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3 This file is built by regen/regcomp.pl from regcomp.sym.
4 Any changes made here will be lost!
7 #if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)
10 /* typedefs for regex nodes - one typedef per node type */
12 typedef struct regnode_2L tregnode_ACCEPT;
13 typedef struct regnode_1 tregnode_AHOCORASICK;
14 typedef struct regnode_charclass tregnode_AHOCORASICKC;
15 typedef struct regnode_charclass tregnode_ANYOF;
16 typedef struct regnode_charclass tregnode_ANYOFD;
17 typedef struct regnode_1 tregnode_ANYOFH;
18 typedef struct regnode_1 tregnode_ANYOFHb;
19 typedef struct regnode_bbm tregnode_ANYOFHbbm;
20 typedef struct regnode_1 tregnode_ANYOFHr;
21 typedef struct regnode_1 tregnode_ANYOFHs;
22 typedef struct regnode_charclass tregnode_ANYOFL;
23 typedef struct regnode_1 tregnode_ANYOFM;
24 typedef struct regnode_charclass_posixl tregnode_ANYOFPOSIXL;
25 typedef struct regnode_1 tregnode_ANYOFR;
26 typedef struct regnode_1 tregnode_ANYOFRb;
27 typedef struct regnode tregnode_BOUND;
28 typedef struct regnode tregnode_BOUNDA;
29 typedef struct regnode tregnode_BOUNDL;
30 typedef struct regnode tregnode_BOUNDU;
31 typedef struct regnode tregnode_BRANCH;
32 typedef struct regnode_1 tregnode_BRANCHJ;
33 typedef struct regnode_1 tregnode_CLOSE;
34 typedef struct regnode tregnode_CLUMP;
35 typedef struct regnode_1 tregnode_COMMIT;
36 typedef struct regnode_2 tregnode_CURLY;
37 typedef struct regnode_2 tregnode_CURLYM;
38 typedef struct regnode_2 tregnode_CURLYN;
39 typedef struct regnode_2 tregnode_CURLYX;
40 typedef struct regnode_1 tregnode_CUTGROUP;
41 typedef struct regnode_1 tregnode_DEFINEP;
42 typedef struct regnode tregnode_END;
43 typedef struct regnode tregnode_ENDLIKE;
44 typedef struct regnode tregnode_EOS;
45 typedef struct regnode_2L tregnode_EVAL;
46 typedef struct regnode tregnode_EXACT;
47 typedef struct regnode tregnode_EXACTF;
48 typedef struct regnode tregnode_EXACTFAA;
49 typedef struct regnode tregnode_EXACTFAA_NO_TRIE;
50 typedef struct regnode tregnode_EXACTFL;
51 typedef struct regnode tregnode_EXACTFLU8;
52 typedef struct regnode tregnode_EXACTFU;
53 typedef struct regnode tregnode_EXACTFUP;
54 typedef struct regnode tregnode_EXACTFU_REQ8;
55 typedef struct regnode tregnode_EXACTFU_S_EDGE;
56 typedef struct regnode tregnode_EXACTL;
57 typedef struct regnode tregnode_EXACT_REQ8;
58 typedef struct regnode_2L tregnode_GOSUB;
59 typedef struct regnode tregnode_GPOS;
60 typedef struct regnode_1 tregnode_GROUPP;
61 typedef struct regnode_1 tregnode_GROUPPN;
62 typedef struct regnode_1 tregnode_IFMATCH;
63 typedef struct regnode_1 tregnode_IFTHEN;
64 typedef struct regnode_1 tregnode_INSUBP;
65 typedef struct regnode tregnode_KEEPS;
66 typedef struct regnode_1 tregnode_LEXACT;
67 typedef struct regnode_1 tregnode_LEXACT_REQ8;
68 typedef struct regnode tregnode_LNBREAK;
69 typedef struct regnode tregnode_LOGICAL;
70 typedef struct regnode_1 tregnode_LONGJMP;
71 typedef struct regnode tregnode_LOOKBEHIND_END;
72 typedef struct regnode_1 tregnode_MARKPOINT;
73 typedef struct regnode tregnode_MBOL;
74 typedef struct regnode tregnode_MEOL;
75 typedef struct regnode tregnode_MINMOD;
76 typedef struct regnode_1 tregnode_NANYOFM;
77 typedef struct regnode tregnode_NBOUND;
78 typedef struct regnode tregnode_NBOUNDA;
79 typedef struct regnode tregnode_NBOUNDL;
80 typedef struct regnode tregnode_NBOUNDU;
81 typedef struct regnode tregnode_NOTHING;
82 typedef struct regnode tregnode_NPOSIXA;
83 typedef struct regnode tregnode_NPOSIXD;
84 typedef struct regnode tregnode_NPOSIXL;
85 typedef struct regnode tregnode_NPOSIXU;
86 typedef struct regnode_1 tregnode_OPEN;
87 typedef struct regnode_1 tregnode_OPFAIL;
88 typedef struct regnode tregnode_OPTIMIZED;
89 typedef struct regnode tregnode_PLUS;
90 typedef struct regnode tregnode_POSIXA;
91 typedef struct regnode tregnode_POSIXD;
92 typedef struct regnode tregnode_POSIXL;
93 typedef struct regnode tregnode_POSIXU;
94 typedef struct regnode_1 tregnode_PRUNE;
95 typedef struct regnode tregnode_PSEUDO;
96 typedef struct regnode_1 tregnode_REF;
97 typedef struct regnode_1 tregnode_REFF;
98 typedef struct regnode_1 tregnode_REFFA;
99 typedef struct regnode_1 tregnode_REFFAN;
100 typedef struct regnode_1 tregnode_REFFL;
101 typedef struct regnode_1 tregnode_REFFLN;
102 typedef struct regnode_1 tregnode_REFFN;
103 typedef struct regnode_1 tregnode_REFFU;
104 typedef struct regnode_1 tregnode_REFFUN;
105 typedef struct regnode_1 tregnode_REFN;
106 typedef struct regnode_p tregnode_REGEX_SET;
107 typedef struct regnode tregnode_REG_ANY;
108 typedef struct regnode_1 tregnode_RENUM;
109 typedef struct regnode tregnode_SANY;
110 typedef struct regnode tregnode_SBOL;
111 typedef struct regnode tregnode_SEOL;
112 typedef struct regnode_1 tregnode_SKIP;
113 typedef struct regnode tregnode_SRCLOSE;
114 typedef struct regnode tregnode_SROPEN;
115 typedef struct regnode tregnode_STAR;
116 typedef struct regnode tregnode_SUCCEED;
117 typedef struct regnode_1 tregnode_SUSPEND;
118 typedef struct regnode tregnode_TAIL;
119 typedef struct regnode_1 tregnode_TRIE;
120 typedef struct regnode_charclass tregnode_TRIEC;
121 typedef struct regnode_1 tregnode_UNLESSM;
122 typedef struct regnode_1 tregnode_VERB;
123 typedef struct regnode tregnode_WHILEM;
127 /* Regops and State definitions */
129 #define REGNODE_MAX 111
130 #define REGMATCH_STATE_MAX 151
132 /* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte'); */
133 #define with_t_UTF8ness(op, t_utf8) (((op) << 1) + (cBOOL(t_utf8)))
134 /* -- same, but also with pattern (p8, pb) -- */
135 #define with_tp_UTF8ness(op, t_utf8, p_utf8) \
136 (((op) << 2) + (cBOOL(t_utf8) << 1) + cBOOL(p_utf8))
138 /* The #defines below give both the basic regnode and the expanded version for
139 switching on utf8ness */
140 #define END 0 /* 0x00 End of program. */
141 #define END_tb 0 /* 0x000 */
142 #define END_t8 1 /* 0x001 */
143 #define END_tb_pb 0 /* 0x000 */
144 #define END_tb_p8 1 /* 0x001 */
145 #define END_t8_pb 2 /* 0x002 */
146 #define END_t8_p8 3 /* 0x003 */
148 #define SUCCEED 1 /* 0x01 Return from a
149 subroutine, basically. */
150 #define SUCCEED_tb 2 /* 0x002 */
151 #define SUCCEED_t8 3 /* 0x003 */
152 #define SUCCEED_tb_pb 4 /* 0x004 */
153 #define SUCCEED_tb_p8 5 /* 0x005 */
154 #define SUCCEED_t8_pb 6 /* 0x006 */
155 #define SUCCEED_t8_p8 7 /* 0x007 */
157 #define SBOL 2 /* 0x02 Match "" at beginning
158 of line: /^/, /\A/ */
159 #define SBOL_tb 4 /* 0x004 */
160 #define SBOL_t8 5 /* 0x005 */
161 #define SBOL_tb_pb 8 /* 0x008 */
162 #define SBOL_tb_p8 9 /* 0x009 */
163 #define SBOL_t8_pb 10 /* 0x00a */
164 #define SBOL_t8_p8 11 /* 0x00b */
166 #define BOL 2 /* 0x02 Match "" at beginning
167 of line: /^/, /\A/ */
168 #define BOL_tb 4 /* 0x004 */
169 #define BOL_t8 5 /* 0x005 */
170 #define BOL_tb_pb 8 /* 0x008 */
171 #define BOL_tb_p8 9 /* 0x009 */
172 #define BOL_t8_pb 10 /* 0x00a */
173 #define BOL_t8_p8 11 /* 0x00b */
175 #define MBOL 3 /* 0x03 Same, assuming
177 #define MBOL_tb 6 /* 0x006 */
178 #define MBOL_t8 7 /* 0x007 */
179 #define MBOL_tb_pb 12 /* 0x00c */
180 #define MBOL_tb_p8 13 /* 0x00d */
181 #define MBOL_t8_pb 14 /* 0x00e */
182 #define MBOL_t8_p8 15 /* 0x00f */
184 #define SEOL 4 /* 0x04 Match "" at end of
186 #define SEOL_tb 8 /* 0x008 */
187 #define SEOL_t8 9 /* 0x009 */
188 #define SEOL_tb_pb 16 /* 0x010 */
189 #define SEOL_tb_p8 17 /* 0x011 */
190 #define SEOL_t8_pb 18 /* 0x012 */
191 #define SEOL_t8_p8 19 /* 0x013 */
193 #define EOL 4 /* 0x04 Match "" at end of
195 #define EOL_tb 8 /* 0x008 */
196 #define EOL_t8 9 /* 0x009 */
197 #define EOL_tb_pb 16 /* 0x010 */
198 #define EOL_tb_p8 17 /* 0x011 */
199 #define EOL_t8_pb 18 /* 0x012 */
200 #define EOL_t8_p8 19 /* 0x013 */
202 #define MEOL 5 /* 0x05 Same, assuming
204 #define MEOL_tb 10 /* 0x00a */
205 #define MEOL_t8 11 /* 0x00b */
206 #define MEOL_tb_pb 20 /* 0x014 */
207 #define MEOL_tb_p8 21 /* 0x015 */
208 #define MEOL_t8_pb 22 /* 0x016 */
209 #define MEOL_t8_p8 23 /* 0x017 */
211 #define EOS 6 /* 0x06 Match "" at end of
213 #define EOS_tb 12 /* 0x00c */
214 #define EOS_t8 13 /* 0x00d */
215 #define EOS_tb_pb 24 /* 0x018 */
216 #define EOS_tb_p8 25 /* 0x019 */
217 #define EOS_t8_pb 26 /* 0x01a */
218 #define EOS_t8_p8 27 /* 0x01b */
220 #define GPOS 7 /* 0x07 Matches where last m//g
222 #define GPOS_tb 14 /* 0x00e */
223 #define GPOS_t8 15 /* 0x00f */
224 #define GPOS_tb_pb 28 /* 0x01c */
225 #define GPOS_tb_p8 29 /* 0x01d */
226 #define GPOS_t8_pb 30 /* 0x01e */
227 #define GPOS_t8_p8 31 /* 0x01f */
229 #define BOUND 8 /* 0x08 Like BOUNDA for
230 non-utf8, otherwise like
232 #define BOUND_tb 16 /* 0x010 */
233 #define BOUND_t8 17 /* 0x011 */
234 #define BOUND_tb_pb 32 /* 0x020 */
235 #define BOUND_tb_p8 33 /* 0x021 */
236 #define BOUND_t8_pb 34 /* 0x022 */
237 #define BOUND_t8_p8 35 /* 0x023 */
239 #define BOUNDL 9 /* 0x09 Like BOUND/BOUNDU, but
240 \w and \W are defined by
242 #define BOUNDL_tb 18 /* 0x012 */
243 #define BOUNDL_t8 19 /* 0x013 */
244 #define BOUNDL_tb_pb 36 /* 0x024 */
245 #define BOUNDL_tb_p8 37 /* 0x025 */
246 #define BOUNDL_t8_pb 38 /* 0x026 */
247 #define BOUNDL_t8_p8 39 /* 0x027 */
249 #define BOUNDU 10 /* 0x0a Match "" at any
250 boundary of a given type
252 #define BOUNDU_tb 20 /* 0x014 */
253 #define BOUNDU_t8 21 /* 0x015 */
254 #define BOUNDU_tb_pb 40 /* 0x028 */
255 #define BOUNDU_tb_p8 41 /* 0x029 */
256 #define BOUNDU_t8_pb 42 /* 0x02a */
257 #define BOUNDU_t8_p8 43 /* 0x02b */
259 #define BOUNDA 11 /* 0x0b Match "" at any
260 boundary between \w\W or
263 #define BOUNDA_tb 22 /* 0x016 */
264 #define BOUNDA_t8 23 /* 0x017 */
265 #define BOUNDA_tb_pb 44 /* 0x02c */
266 #define BOUNDA_tb_p8 45 /* 0x02d */
267 #define BOUNDA_t8_pb 46 /* 0x02e */
268 #define BOUNDA_t8_p8 47 /* 0x02f */
270 #define NBOUND 12 /* 0x0c Like NBOUNDA for
271 non-utf8, otherwise like
273 #define NBOUND_tb 24 /* 0x018 */
274 #define NBOUND_t8 25 /* 0x019 */
275 #define NBOUND_tb_pb 48 /* 0x030 */
276 #define NBOUND_tb_p8 49 /* 0x031 */
277 #define NBOUND_t8_pb 50 /* 0x032 */
278 #define NBOUND_t8_p8 51 /* 0x033 */
280 #define NBOUNDL 13 /* 0x0d Like NBOUND/NBOUNDU,
281 but \w and \W are defined by
283 #define NBOUNDL_tb 26 /* 0x01a */
284 #define NBOUNDL_t8 27 /* 0x01b */
285 #define NBOUNDL_tb_pb 52 /* 0x034 */
286 #define NBOUNDL_tb_p8 53 /* 0x035 */
287 #define NBOUNDL_t8_pb 54 /* 0x036 */
288 #define NBOUNDL_t8_p8 55 /* 0x037 */
290 #define NBOUNDU 14 /* 0x0e Match "" at any
291 non-boundary of a given type
292 using using /u rules. */
293 #define NBOUNDU_tb 28 /* 0x01c */
294 #define NBOUNDU_t8 29 /* 0x01d */
295 #define NBOUNDU_tb_pb 56 /* 0x038 */
296 #define NBOUNDU_tb_p8 57 /* 0x039 */
297 #define NBOUNDU_t8_pb 58 /* 0x03a */
298 #define NBOUNDU_t8_p8 59 /* 0x03b */
300 #define NBOUNDA 15 /* 0x0f Match "" betweeen any
301 \w\w or \W\W, where \w is
303 #define NBOUNDA_tb 30 /* 0x01e */
304 #define NBOUNDA_t8 31 /* 0x01f */
305 #define NBOUNDA_tb_pb 60 /* 0x03c */
306 #define NBOUNDA_tb_p8 61 /* 0x03d */
307 #define NBOUNDA_t8_pb 62 /* 0x03e */
308 #define NBOUNDA_t8_p8 63 /* 0x03f */
310 #define REG_ANY 16 /* 0x10 Match any one character
312 #define REG_ANY_tb 32 /* 0x020 */
313 #define REG_ANY_t8 33 /* 0x021 */
314 #define REG_ANY_tb_pb 64 /* 0x040 */
315 #define REG_ANY_tb_p8 65 /* 0x041 */
316 #define REG_ANY_t8_pb 66 /* 0x042 */
317 #define REG_ANY_t8_p8 67 /* 0x043 */
319 #define SANY 17 /* 0x11 Match any one
321 #define SANY_tb 34 /* 0x022 */
322 #define SANY_t8 35 /* 0x023 */
323 #define SANY_tb_pb 68 /* 0x044 */
324 #define SANY_tb_p8 69 /* 0x045 */
325 #define SANY_t8_pb 70 /* 0x046 */
326 #define SANY_t8_p8 71 /* 0x047 */
328 #define ANYOF 18 /* 0x12 Match character in (or
329 not in) this class, single
331 #define ANYOF_tb 36 /* 0x024 */
332 #define ANYOF_t8 37 /* 0x025 */
333 #define ANYOF_tb_pb 72 /* 0x048 */
334 #define ANYOF_tb_p8 73 /* 0x049 */
335 #define ANYOF_t8_pb 74 /* 0x04a */
336 #define ANYOF_t8_p8 75 /* 0x04b */
338 #define ANYOFD 19 /* 0x13 Like ANYOF, but /d is
340 #define ANYOFD_tb 38 /* 0x026 */
341 #define ANYOFD_t8 39 /* 0x027 */
342 #define ANYOFD_tb_pb 76 /* 0x04c */
343 #define ANYOFD_tb_p8 77 /* 0x04d */
344 #define ANYOFD_t8_pb 78 /* 0x04e */
345 #define ANYOFD_t8_p8 79 /* 0x04f */
347 #define ANYOFL 20 /* 0x14 Like ANYOF, but /l is
349 #define ANYOFL_tb 40 /* 0x028 */
350 #define ANYOFL_t8 41 /* 0x029 */
351 #define ANYOFL_tb_pb 80 /* 0x050 */
352 #define ANYOFL_tb_p8 81 /* 0x051 */
353 #define ANYOFL_t8_pb 82 /* 0x052 */
354 #define ANYOFL_t8_p8 83 /* 0x053 */
356 #define ANYOFPOSIXL 21 /* 0x15 Like ANYOFL, but
357 matches [[:posix:]] classes
359 #define ANYOFPOSIXL_tb 42 /* 0x02a */
360 #define ANYOFPOSIXL_t8 43 /* 0x02b */
361 #define ANYOFPOSIXL_tb_pb 84 /* 0x054 */
362 #define ANYOFPOSIXL_tb_p8 85 /* 0x055 */
363 #define ANYOFPOSIXL_t8_pb 86 /* 0x056 */
364 #define ANYOFPOSIXL_t8_p8 87 /* 0x057 */
366 #define ANYOFH 22 /* 0x16 Like ANYOF, but only
367 has "High" matches, none in
368 the bitmap; the flags field
370 matchable UTF-8 start byte
372 #define ANYOFH_tb 44 /* 0x02c */
373 #define ANYOFH_t8 45 /* 0x02d */
374 #define ANYOFH_tb_pb 88 /* 0x058 */
375 #define ANYOFH_tb_p8 89 /* 0x059 */
376 #define ANYOFH_t8_pb 90 /* 0x05a */
377 #define ANYOFH_t8_p8 91 /* 0x05b */
379 #define ANYOFHb 23 /* 0x17 Like ANYOFH, but all
380 matches share the same UTF-8
381 start byte, given in the
383 #define ANYOFHb_tb 46 /* 0x02e */
384 #define ANYOFHb_t8 47 /* 0x02f */
385 #define ANYOFHb_tb_pb 92 /* 0x05c */
386 #define ANYOFHb_tb_p8 93 /* 0x05d */
387 #define ANYOFHb_t8_pb 94 /* 0x05e */
388 #define ANYOFHb_t8_p8 95 /* 0x05f */
390 #define ANYOFHr 24 /* 0x18 Like ANYOFH, but the
391 flags field contains packed
392 bounds for all matchable
393 UTF-8 start bytes. */
394 #define ANYOFHr_tb 48 /* 0x030 */
395 #define ANYOFHr_t8 49 /* 0x031 */
396 #define ANYOFHr_tb_pb 96 /* 0x060 */
397 #define ANYOFHr_tb_p8 97 /* 0x061 */
398 #define ANYOFHr_t8_pb 98 /* 0x062 */
399 #define ANYOFHr_t8_p8 99 /* 0x063 */
401 #define ANYOFHs 25 /* 0x19 Like ANYOFHb, but has a
402 string field that gives the
403 leading matchable UTF-8
404 bytes; flags field is len */
405 #define ANYOFHs_tb 50 /* 0x032 */
406 #define ANYOFHs_t8 51 /* 0x033 */
407 #define ANYOFHs_tb_pb 100 /* 0x064 */
408 #define ANYOFHs_tb_p8 101 /* 0x065 */
409 #define ANYOFHs_t8_pb 102 /* 0x066 */
410 #define ANYOFHs_t8_p8 103 /* 0x067 */
412 #define ANYOFR 26 /* 0x1a Matches any character
413 in the range given by its
414 packed args: upper 12 bits
415 is the max delta from the
416 base lower 20; the flags
417 field contains the lowest
418 matchable UTF-8 start byte
420 #define ANYOFR_tb 52 /* 0x034 */
421 #define ANYOFR_t8 53 /* 0x035 */
422 #define ANYOFR_tb_pb 104 /* 0x068 */
423 #define ANYOFR_tb_p8 105 /* 0x069 */
424 #define ANYOFR_t8_pb 106 /* 0x06a */
425 #define ANYOFR_t8_p8 107 /* 0x06b */
427 #define ANYOFRb 27 /* 0x1b Like ANYOFR, but all
428 matches share the same UTF-8
429 start byte, given in the
431 #define ANYOFRb_tb 54 /* 0x036 */
432 #define ANYOFRb_t8 55 /* 0x037 */
433 #define ANYOFRb_tb_pb 108 /* 0x06c */
434 #define ANYOFRb_tb_p8 109 /* 0x06d */
435 #define ANYOFRb_t8_pb 110 /* 0x06e */
436 #define ANYOFRb_t8_p8 111 /* 0x06f */
438 #define ANYOFHbbm 28 /* 0x1c Like ANYOFHb, but only
439 for 2-byte UTF-8 characters;
440 uses a bitmap to match the
442 #define ANYOFHbbm_tb 56 /* 0x038 */
443 #define ANYOFHbbm_t8 57 /* 0x039 */
444 #define ANYOFHbbm_tb_pb 112 /* 0x070 */
445 #define ANYOFHbbm_tb_p8 113 /* 0x071 */
446 #define ANYOFHbbm_t8_pb 114 /* 0x072 */
447 #define ANYOFHbbm_t8_p8 115 /* 0x073 */
449 #define ANYOFM 29 /* 0x1d Like ANYOF, but matches
451 determined by the mask and
453 #define ANYOFM_tb 58 /* 0x03a */
454 #define ANYOFM_t8 59 /* 0x03b */
455 #define ANYOFM_tb_pb 116 /* 0x074 */
456 #define ANYOFM_tb_p8 117 /* 0x075 */
457 #define ANYOFM_t8_pb 118 /* 0x076 */
458 #define ANYOFM_t8_p8 119 /* 0x077 */
460 #define NANYOFM 30 /* 0x1e complement of ANYOFM */
461 #define NANYOFM_tb 60 /* 0x03c */
462 #define NANYOFM_t8 61 /* 0x03d */
463 #define NANYOFM_tb_pb 120 /* 0x078 */
464 #define NANYOFM_tb_p8 121 /* 0x079 */
465 #define NANYOFM_t8_pb 122 /* 0x07a */
466 #define NANYOFM_t8_p8 123 /* 0x07b */
468 #define POSIXD 31 /* 0x1f Some [[:class:]] under
469 /d; the FLAGS field gives
471 #define POSIXD_tb 62 /* 0x03e */
472 #define POSIXD_t8 63 /* 0x03f */
473 #define POSIXD_tb_pb 124 /* 0x07c */
474 #define POSIXD_tb_p8 125 /* 0x07d */
475 #define POSIXD_t8_pb 126 /* 0x07e */
476 #define POSIXD_t8_p8 127 /* 0x07f */
478 #define POSIXL 32 /* 0x20 Some [[:class:]] under
479 /l; the FLAGS field gives
481 #define POSIXL_tb 64 /* 0x040 */
482 #define POSIXL_t8 65 /* 0x041 */
483 #define POSIXL_tb_pb 128 /* 0x080 */
484 #define POSIXL_tb_p8 129 /* 0x081 */
485 #define POSIXL_t8_pb 130 /* 0x082 */
486 #define POSIXL_t8_p8 131 /* 0x083 */
488 #define POSIXU 33 /* 0x21 Some [[:class:]] under
489 /u; the FLAGS field gives
491 #define POSIXU_tb 66 /* 0x042 */
492 #define POSIXU_t8 67 /* 0x043 */
493 #define POSIXU_tb_pb 132 /* 0x084 */
494 #define POSIXU_tb_p8 133 /* 0x085 */
495 #define POSIXU_t8_pb 134 /* 0x086 */
496 #define POSIXU_t8_p8 135 /* 0x087 */
498 #define POSIXA 34 /* 0x22 Some [[:class:]] under
499 /a; the FLAGS field gives
501 #define POSIXA_tb 68 /* 0x044 */
502 #define POSIXA_t8 69 /* 0x045 */
503 #define POSIXA_tb_pb 136 /* 0x088 */
504 #define POSIXA_tb_p8 137 /* 0x089 */
505 #define POSIXA_t8_pb 138 /* 0x08a */
506 #define POSIXA_t8_p8 139 /* 0x08b */
508 #define NPOSIXD 35 /* 0x23 complement of POSIXD,
510 #define NPOSIXD_tb 70 /* 0x046 */
511 #define NPOSIXD_t8 71 /* 0x047 */
512 #define NPOSIXD_tb_pb 140 /* 0x08c */
513 #define NPOSIXD_tb_p8 141 /* 0x08d */
514 #define NPOSIXD_t8_pb 142 /* 0x08e */
515 #define NPOSIXD_t8_p8 143 /* 0x08f */
517 #define NPOSIXL 36 /* 0x24 complement of POSIXL,
519 #define NPOSIXL_tb 72 /* 0x048 */
520 #define NPOSIXL_t8 73 /* 0x049 */
521 #define NPOSIXL_tb_pb 144 /* 0x090 */
522 #define NPOSIXL_tb_p8 145 /* 0x091 */
523 #define NPOSIXL_t8_pb 146 /* 0x092 */
524 #define NPOSIXL_t8_p8 147 /* 0x093 */
526 #define NPOSIXU 37 /* 0x25 complement of POSIXU,
528 #define NPOSIXU_tb 74 /* 0x04a */
529 #define NPOSIXU_t8 75 /* 0x04b */
530 #define NPOSIXU_tb_pb 148 /* 0x094 */
531 #define NPOSIXU_tb_p8 149 /* 0x095 */
532 #define NPOSIXU_t8_pb 150 /* 0x096 */
533 #define NPOSIXU_t8_p8 151 /* 0x097 */
535 #define NPOSIXA 38 /* 0x26 complement of POSIXA,
537 #define NPOSIXA_tb 76 /* 0x04c */
538 #define NPOSIXA_t8 77 /* 0x04d */
539 #define NPOSIXA_tb_pb 152 /* 0x098 */
540 #define NPOSIXA_tb_p8 153 /* 0x099 */
541 #define NPOSIXA_t8_pb 154 /* 0x09a */
542 #define NPOSIXA_t8_p8 155 /* 0x09b */
544 #define CLUMP 39 /* 0x27 Match any extended
545 grapheme cluster sequence */
546 #define CLUMP_tb 78 /* 0x04e */
547 #define CLUMP_t8 79 /* 0x04f */
548 #define CLUMP_tb_pb 156 /* 0x09c */
549 #define CLUMP_tb_p8 157 /* 0x09d */
550 #define CLUMP_t8_pb 158 /* 0x09e */
551 #define CLUMP_t8_p8 159 /* 0x09f */
553 #define BRANCH 40 /* 0x28 Match this alternative,
555 #define BRANCH_tb 80 /* 0x050 */
556 #define BRANCH_t8 81 /* 0x051 */
557 #define BRANCH_tb_pb 160 /* 0x0a0 */
558 #define BRANCH_tb_p8 161 /* 0x0a1 */
559 #define BRANCH_t8_pb 162 /* 0x0a2 */
560 #define BRANCH_t8_p8 163 /* 0x0a3 */
562 #define EXACT 41 /* 0x29 Match this string
563 (flags field is the length).
565 #define EXACT_tb 82 /* 0x052 */
566 #define EXACT_t8 83 /* 0x053 */
567 #define EXACT_tb_pb 164 /* 0x0a4 */
568 #define EXACT_tb_p8 165 /* 0x0a5 */
569 #define EXACT_t8_pb 166 /* 0x0a6 */
570 #define EXACT_t8_p8 167 /* 0x0a7 */
572 #define LEXACT 42 /* 0x2a Match this long string
573 (preceded by length; flags
575 #define LEXACT_tb 84 /* 0x054 */
576 #define LEXACT_t8 85 /* 0x055 */
577 #define LEXACT_tb_pb 168 /* 0x0a8 */
578 #define LEXACT_tb_p8 169 /* 0x0a9 */
579 #define LEXACT_t8_pb 170 /* 0x0aa */
580 #define LEXACT_t8_p8 171 /* 0x0ab */
582 #define EXACTL 43 /* 0x2b Like EXACT, but /l is
584 locale-related warnings can
586 #define EXACTL_tb 86 /* 0x056 */
587 #define EXACTL_t8 87 /* 0x057 */
588 #define EXACTL_tb_pb 172 /* 0x0ac */
589 #define EXACTL_tb_p8 173 /* 0x0ad */
590 #define EXACTL_t8_pb 174 /* 0x0ae */
591 #define EXACTL_t8_p8 175 /* 0x0af */
593 #define EXACTF 44 /* 0x2c Like EXACT, but match
594 using /id rules; (string not
597 #define EXACTF_tb 88 /* 0x058 */
598 #define EXACTF_t8 89 /* 0x059 */
599 #define EXACTF_tb_pb 176 /* 0x0b0 */
600 #define EXACTF_tb_p8 177 /* 0x0b1 */
601 #define EXACTF_t8_pb 178 /* 0x0b2 */
602 #define EXACTF_t8_p8 179 /* 0x0b3 */
604 #define EXACTFL 45 /* 0x2d Like EXACT, but match
605 using /il rules; (string not
606 likely to be folded) */
607 #define EXACTFL_tb 90 /* 0x05a */
608 #define EXACTFL_t8 91 /* 0x05b */
609 #define EXACTFL_tb_pb 180 /* 0x0b4 */
610 #define EXACTFL_tb_p8 181 /* 0x0b5 */
611 #define EXACTFL_t8_pb 182 /* 0x0b6 */
612 #define EXACTFL_t8_p8 183 /* 0x0b7 */
614 #define EXACTFU 46 /* 0x2e Like EXACT, but match
615 using /iu rules; (string
617 #define EXACTFU_tb 92 /* 0x05c */
618 #define EXACTFU_t8 93 /* 0x05d */
619 #define EXACTFU_tb_pb 184 /* 0x0b8 */
620 #define EXACTFU_tb_p8 185 /* 0x0b9 */
621 #define EXACTFU_t8_pb 186 /* 0x0ba */
622 #define EXACTFU_t8_p8 187 /* 0x0bb */
624 #define EXACTFAA 47 /* 0x2f Like EXACT, but match
625 using /iaa rules; (string
626 folded except MICRO in
627 non-UTF8 patterns; doesn't
628 contain SHARP S unless
629 UTF-8; folded length <=
631 #define EXACTFAA_tb 94 /* 0x05e */
632 #define EXACTFAA_t8 95 /* 0x05f */
633 #define EXACTFAA_tb_pb 188 /* 0x0bc */
634 #define EXACTFAA_tb_p8 189 /* 0x0bd */
635 #define EXACTFAA_t8_pb 190 /* 0x0be */
636 #define EXACTFAA_t8_p8 191 /* 0x0bf */
638 #define EXACTFAA_NO_TRIE 48 /* 0x30 Like EXACTFAA, (string
639 not UTF-8, folded except:
640 MICRO, SHARP S; folded
641 length <= unfolded, not
642 currently trie-able) */
643 #define EXACTFAA_NO_TRIE_tb 96 /* 0x060 */
644 #define EXACTFAA_NO_TRIE_t8 97 /* 0x061 */
645 #define EXACTFAA_NO_TRIE_tb_pb 192 /* 0x0c0 */
646 #define EXACTFAA_NO_TRIE_tb_p8 193 /* 0x0c1 */
647 #define EXACTFAA_NO_TRIE_t8_pb 194 /* 0x0c2 */
648 #define EXACTFAA_NO_TRIE_t8_p8 195 /* 0x0c3 */
650 #define EXACTFUP 49 /* 0x31 Like EXACT, but match
651 using /iu rules; (string not
652 UTF-8, folded except MICRO:
653 hence Problematic) */
654 #define EXACTFUP_tb 98 /* 0x062 */
655 #define EXACTFUP_t8 99 /* 0x063 */
656 #define EXACTFUP_tb_pb 196 /* 0x0c4 */
657 #define EXACTFUP_tb_p8 197 /* 0x0c5 */
658 #define EXACTFUP_t8_pb 198 /* 0x0c6 */
659 #define EXACTFUP_t8_p8 199 /* 0x0c7 */
661 #define EXACTFLU8 50 /* 0x32 Like EXACTFU, but use
662 /il, UTF-8, (string is
663 folded, and everything in it
665 #define EXACTFLU8_tb 100 /* 0x064 */
666 #define EXACTFLU8_t8 101 /* 0x065 */
667 #define EXACTFLU8_tb_pb 200 /* 0x0c8 */
668 #define EXACTFLU8_tb_p8 201 /* 0x0c9 */
669 #define EXACTFLU8_t8_pb 202 /* 0x0ca */
670 #define EXACTFLU8_t8_p8 203 /* 0x0cb */
672 #define EXACT_REQ8 51 /* 0x33 Like EXACT, but only
673 UTF-8 encoded targets can
675 #define EXACT_REQ8_tb 102 /* 0x066 */
676 #define EXACT_REQ8_t8 103 /* 0x067 */
677 #define EXACT_REQ8_tb_pb 204 /* 0x0cc */
678 #define EXACT_REQ8_tb_p8 205 /* 0x0cd */
679 #define EXACT_REQ8_t8_pb 206 /* 0x0ce */
680 #define EXACT_REQ8_t8_p8 207 /* 0x0cf */
682 #define LEXACT_REQ8 52 /* 0x34 Like LEXACT, but only
683 UTF-8 encoded targets can
685 #define LEXACT_REQ8_tb 104 /* 0x068 */
686 #define LEXACT_REQ8_t8 105 /* 0x069 */
687 #define LEXACT_REQ8_tb_pb 208 /* 0x0d0 */
688 #define LEXACT_REQ8_tb_p8 209 /* 0x0d1 */
689 #define LEXACT_REQ8_t8_pb 210 /* 0x0d2 */
690 #define LEXACT_REQ8_t8_p8 211 /* 0x0d3 */
692 #define EXACTFU_REQ8 53 /* 0x35 Like EXACTFU, but only
693 UTF-8 encoded targets can
695 #define EXACTFU_REQ8_tb 106 /* 0x06a */
696 #define EXACTFU_REQ8_t8 107 /* 0x06b */
697 #define EXACTFU_REQ8_tb_pb 212 /* 0x0d4 */
698 #define EXACTFU_REQ8_tb_p8 213 /* 0x0d5 */
699 #define EXACTFU_REQ8_t8_pb 214 /* 0x0d6 */
700 #define EXACTFU_REQ8_t8_p8 215 /* 0x0d7 */
702 #define EXACTFU_S_EDGE 54 /* 0x36 /di rules, but nothing
703 in it precludes /ui, except
704 begins and/or ends with
705 [Ss]; (string not UTF-8;
706 compile-time only) */
707 #define EXACTFU_S_EDGE_tb 108 /* 0x06c */
708 #define EXACTFU_S_EDGE_t8 109 /* 0x06d */
709 #define EXACTFU_S_EDGE_tb_pb 216 /* 0x0d8 */
710 #define EXACTFU_S_EDGE_tb_p8 217 /* 0x0d9 */
711 #define EXACTFU_S_EDGE_t8_pb 218 /* 0x0da */
712 #define EXACTFU_S_EDGE_t8_p8 219 /* 0x0db */
714 #define LNBREAK 55 /* 0x37 generic newline pattern
716 #define LNBREAK_tb 110 /* 0x06e */
717 #define LNBREAK_t8 111 /* 0x06f */
718 #define LNBREAK_tb_pb 220 /* 0x0dc */
719 #define LNBREAK_tb_p8 221 /* 0x0dd */
720 #define LNBREAK_t8_pb 222 /* 0x0de */
721 #define LNBREAK_t8_p8 223 /* 0x0df */
723 #define TRIE 56 /* 0x38 Match many
724 EXACT(F[ALU]?)? at once.
726 #define TRIE_tb 112 /* 0x070 */
727 #define TRIE_t8 113 /* 0x071 */
728 #define TRIE_tb_pb 224 /* 0x0e0 */
729 #define TRIE_tb_p8 225 /* 0x0e1 */
730 #define TRIE_t8_pb 226 /* 0x0e2 */
731 #define TRIE_t8_p8 227 /* 0x0e3 */
733 #define TRIEC 57 /* 0x39 Same as TRIE, but with
734 embedded charclass data */
735 #define TRIEC_tb 114 /* 0x072 */
736 #define TRIEC_t8 115 /* 0x073 */
737 #define TRIEC_tb_pb 228 /* 0x0e4 */
738 #define TRIEC_tb_p8 229 /* 0x0e5 */
739 #define TRIEC_t8_pb 230 /* 0x0e6 */
740 #define TRIEC_t8_p8 231 /* 0x0e7 */
742 #define AHOCORASICK 58 /* 0x3a Aho Corasick stclass.
744 #define AHOCORASICK_tb 116 /* 0x074 */
745 #define AHOCORASICK_t8 117 /* 0x075 */
746 #define AHOCORASICK_tb_pb 232 /* 0x0e8 */
747 #define AHOCORASICK_tb_p8 233 /* 0x0e9 */
748 #define AHOCORASICK_t8_pb 234 /* 0x0ea */
749 #define AHOCORASICK_t8_p8 235 /* 0x0eb */
751 #define AHOCORASICKC 59 /* 0x3b Same as AHOCORASICK,
752 but with embedded charclass
754 #define AHOCORASICKC_tb 118 /* 0x076 */
755 #define AHOCORASICKC_t8 119 /* 0x077 */
756 #define AHOCORASICKC_tb_pb 236 /* 0x0ec */
757 #define AHOCORASICKC_tb_p8 237 /* 0x0ed */
758 #define AHOCORASICKC_t8_pb 238 /* 0x0ee */
759 #define AHOCORASICKC_t8_p8 239 /* 0x0ef */
761 #define NOTHING 60 /* 0x3c Match empty string. */
762 #define NOTHING_tb 120 /* 0x078 */
763 #define NOTHING_t8 121 /* 0x079 */
764 #define NOTHING_tb_pb 240 /* 0x0f0 */
765 #define NOTHING_tb_p8 241 /* 0x0f1 */
766 #define NOTHING_t8_pb 242 /* 0x0f2 */
767 #define NOTHING_t8_p8 243 /* 0x0f3 */
769 #define TAIL 61 /* 0x3d Match empty string. Can
770 jump here from outside. */
771 #define TAIL_tb 122 /* 0x07a */
772 #define TAIL_t8 123 /* 0x07b */
773 #define TAIL_tb_pb 244 /* 0x0f4 */
774 #define TAIL_tb_p8 245 /* 0x0f5 */
775 #define TAIL_t8_pb 246 /* 0x0f6 */
776 #define TAIL_t8_p8 247 /* 0x0f7 */
778 #define STAR 62 /* 0x3e Match this (simple)
779 thing 0 or more times:
780 /A{0,}B/ where A is width 1
782 #define STAR_tb 124 /* 0x07c */
783 #define STAR_t8 125 /* 0x07d */
784 #define STAR_tb_pb 248 /* 0x0f8 */
785 #define STAR_tb_p8 249 /* 0x0f9 */
786 #define STAR_t8_pb 250 /* 0x0fa */
787 #define STAR_t8_p8 251 /* 0x0fb */
789 #define PLUS 63 /* 0x3f Match this (simple)
790 thing 1 or more times:
791 /A{1,}B/ where A is width 1
793 #define PLUS_tb 126 /* 0x07e */
794 #define PLUS_t8 127 /* 0x07f */
795 #define PLUS_tb_pb 252 /* 0x0fc */
796 #define PLUS_tb_p8 253 /* 0x0fd */
797 #define PLUS_t8_pb 254 /* 0x0fe */
798 #define PLUS_t8_p8 255 /* 0x0ff */
800 #define CURLY 64 /* 0x40 Match this (simple)
801 thing {n,m} times: /A{m,n}B/
802 where A is width 1 char */
803 #define CURLY_tb 128 /* 0x080 */
804 #define CURLY_t8 129 /* 0x081 */
805 #define CURLY_tb_pb 256 /* 0x100 */
806 #define CURLY_tb_p8 257 /* 0x101 */
807 #define CURLY_t8_pb 258 /* 0x102 */
808 #define CURLY_t8_p8 259 /* 0x103 */
810 #define CURLYN 65 /* 0x41 Capture next-after-this
811 simple thing: /(A){m,n}B/
812 where A is width 1 char */
813 #define CURLYN_tb 130 /* 0x082 */
814 #define CURLYN_t8 131 /* 0x083 */
815 #define CURLYN_tb_pb 260 /* 0x104 */
816 #define CURLYN_tb_p8 261 /* 0x105 */
817 #define CURLYN_t8_pb 262 /* 0x106 */
818 #define CURLYN_t8_p8 263 /* 0x107 */
820 #define CURLYM 66 /* 0x42 Capture this
821 medium-complex thing {n,m}
822 times: /(A){m,n}B/ where A
824 #define CURLYM_tb 132 /* 0x084 */
825 #define CURLYM_t8 133 /* 0x085 */
826 #define CURLYM_tb_pb 264 /* 0x108 */
827 #define CURLYM_tb_p8 265 /* 0x109 */
828 #define CURLYM_t8_pb 266 /* 0x10a */
829 #define CURLYM_t8_p8 267 /* 0x10b */
831 #define CURLYX 67 /* 0x43 Match/Capture this
832 complex thing {n,m} times.
834 #define CURLYX_tb 134 /* 0x086 */
835 #define CURLYX_t8 135 /* 0x087 */
836 #define CURLYX_tb_pb 268 /* 0x10c */
837 #define CURLYX_tb_p8 269 /* 0x10d */
838 #define CURLYX_t8_pb 270 /* 0x10e */
839 #define CURLYX_t8_p8 271 /* 0x10f */
841 #define WHILEM 68 /* 0x44 Do curly processing and
842 see if rest matches. */
843 #define WHILEM_tb 136 /* 0x088 */
844 #define WHILEM_t8 137 /* 0x089 */
845 #define WHILEM_tb_pb 272 /* 0x110 */
846 #define WHILEM_tb_p8 273 /* 0x111 */
847 #define WHILEM_t8_pb 274 /* 0x112 */
848 #define WHILEM_t8_p8 275 /* 0x113 */
850 #define OPEN 69 /* 0x45 Mark this point in
851 input as start of #n. */
852 #define OPEN_tb 138 /* 0x08a */
853 #define OPEN_t8 139 /* 0x08b */
854 #define OPEN_tb_pb 276 /* 0x114 */
855 #define OPEN_tb_p8 277 /* 0x115 */
856 #define OPEN_t8_pb 278 /* 0x116 */
857 #define OPEN_t8_p8 279 /* 0x117 */
859 #define CLOSE 70 /* 0x46 Close corresponding
861 #define CLOSE_tb 140 /* 0x08c */
862 #define CLOSE_t8 141 /* 0x08d */
863 #define CLOSE_tb_pb 280 /* 0x118 */
864 #define CLOSE_tb_p8 281 /* 0x119 */
865 #define CLOSE_t8_pb 282 /* 0x11a */
866 #define CLOSE_t8_p8 283 /* 0x11b */
868 #define SROPEN 71 /* 0x47 Same as OPEN, but for
870 #define SROPEN_tb 142 /* 0x08e */
871 #define SROPEN_t8 143 /* 0x08f */
872 #define SROPEN_tb_pb 284 /* 0x11c */
873 #define SROPEN_tb_p8 285 /* 0x11d */
874 #define SROPEN_t8_pb 286 /* 0x11e */
875 #define SROPEN_t8_p8 287 /* 0x11f */
877 #define SRCLOSE 72 /* 0x48 Close preceding SROPEN
879 #define SRCLOSE_tb 144 /* 0x090 */
880 #define SRCLOSE_t8 145 /* 0x091 */
881 #define SRCLOSE_tb_pb 288 /* 0x120 */
882 #define SRCLOSE_tb_p8 289 /* 0x121 */
883 #define SRCLOSE_t8_pb 290 /* 0x122 */
884 #define SRCLOSE_t8_p8 291 /* 0x123 */
886 #define REF 73 /* 0x49 Match some already
888 #define REF_tb 146 /* 0x092 */
889 #define REF_t8 147 /* 0x093 */
890 #define REF_tb_pb 292 /* 0x124 */
891 #define REF_tb_p8 293 /* 0x125 */
892 #define REF_t8_pb 294 /* 0x126 */
893 #define REF_t8_p8 295 /* 0x127 */
895 #define REFF 74 /* 0x4a Match already matched
896 string, using /di rules. */
897 #define REFF_tb 148 /* 0x094 */
898 #define REFF_t8 149 /* 0x095 */
899 #define REFF_tb_pb 296 /* 0x128 */
900 #define REFF_tb_p8 297 /* 0x129 */
901 #define REFF_t8_pb 298 /* 0x12a */
902 #define REFF_t8_p8 299 /* 0x12b */
904 #define REFFL 75 /* 0x4b Match already matched
905 string, using /li rules. */
906 #define REFFL_tb 150 /* 0x096 */
907 #define REFFL_t8 151 /* 0x097 */
908 #define REFFL_tb_pb 300 /* 0x12c */
909 #define REFFL_tb_p8 301 /* 0x12d */
910 #define REFFL_t8_pb 302 /* 0x12e */
911 #define REFFL_t8_p8 303 /* 0x12f */
913 #define REFFU 76 /* 0x4c Match already matched
915 #define REFFU_tb 152 /* 0x098 */
916 #define REFFU_t8 153 /* 0x099 */
917 #define REFFU_tb_pb 304 /* 0x130 */
918 #define REFFU_tb_p8 305 /* 0x131 */
919 #define REFFU_t8_pb 306 /* 0x132 */
920 #define REFFU_t8_p8 307 /* 0x133 */
922 #define REFFA 77 /* 0x4d Match already matched
923 string, using /aai rules. */
924 #define REFFA_tb 154 /* 0x09a */
925 #define REFFA_t8 155 /* 0x09b */
926 #define REFFA_tb_pb 308 /* 0x134 */
927 #define REFFA_tb_p8 309 /* 0x135 */
928 #define REFFA_t8_pb 310 /* 0x136 */
929 #define REFFA_t8_p8 311 /* 0x137 */
931 #define REFN 78 /* 0x4e Match some already
933 #define REFN_tb 156 /* 0x09c */
934 #define REFN_t8 157 /* 0x09d */
935 #define REFN_tb_pb 312 /* 0x138 */
936 #define REFN_tb_p8 313 /* 0x139 */
937 #define REFN_t8_pb 314 /* 0x13a */
938 #define REFN_t8_p8 315 /* 0x13b */
940 #define REFFN 79 /* 0x4f Match already matched
941 string, using /di rules. */
942 #define REFFN_tb 158 /* 0x09e */
943 #define REFFN_t8 159 /* 0x09f */
944 #define REFFN_tb_pb 316 /* 0x13c */
945 #define REFFN_tb_p8 317 /* 0x13d */
946 #define REFFN_t8_pb 318 /* 0x13e */
947 #define REFFN_t8_p8 319 /* 0x13f */
949 #define REFFLN 80 /* 0x50 Match already matched
950 string, using /li rules. */
951 #define REFFLN_tb 160 /* 0x0a0 */
952 #define REFFLN_t8 161 /* 0x0a1 */
953 #define REFFLN_tb_pb 320 /* 0x140 */
954 #define REFFLN_tb_p8 321 /* 0x141 */
955 #define REFFLN_t8_pb 322 /* 0x142 */
956 #define REFFLN_t8_p8 323 /* 0x143 */
958 #define REFFUN 81 /* 0x51 Match already matched
959 string, using /ui rules. */
960 #define REFFUN_tb 162 /* 0x0a2 */
961 #define REFFUN_t8 163 /* 0x0a3 */
962 #define REFFUN_tb_pb 324 /* 0x144 */
963 #define REFFUN_tb_p8 325 /* 0x145 */
964 #define REFFUN_t8_pb 326 /* 0x146 */
965 #define REFFUN_t8_p8 327 /* 0x147 */
967 #define REFFAN 82 /* 0x52 Match already matched
968 string, using /aai rules. */
969 #define REFFAN_tb 164 /* 0x0a4 */
970 #define REFFAN_t8 165 /* 0x0a5 */
971 #define REFFAN_tb_pb 328 /* 0x148 */
972 #define REFFAN_tb_p8 329 /* 0x149 */
973 #define REFFAN_t8_pb 330 /* 0x14a */
974 #define REFFAN_t8_p8 331 /* 0x14b */
976 #define LONGJMP 83 /* 0x53 Jump far away. */
977 #define LONGJMP_tb 166 /* 0x0a6 */
978 #define LONGJMP_t8 167 /* 0x0a7 */
979 #define LONGJMP_tb_pb 332 /* 0x14c */
980 #define LONGJMP_tb_p8 333 /* 0x14d */
981 #define LONGJMP_t8_pb 334 /* 0x14e */
982 #define LONGJMP_t8_p8 335 /* 0x14f */
984 #define BRANCHJ 84 /* 0x54 BRANCH with long
986 #define BRANCHJ_tb 168 /* 0x0a8 */
987 #define BRANCHJ_t8 169 /* 0x0a9 */
988 #define BRANCHJ_tb_pb 336 /* 0x150 */
989 #define BRANCHJ_tb_p8 337 /* 0x151 */
990 #define BRANCHJ_t8_pb 338 /* 0x152 */
991 #define BRANCHJ_t8_p8 339 /* 0x153 */
993 #define IFMATCH 85 /* 0x55 Succeeds if the
994 following matches; non-zero
995 flags "f", next_off "o"
996 means lookbehind assertion
998 characters before current */
999 #define IFMATCH_tb 170 /* 0x0aa */
1000 #define IFMATCH_t8 171 /* 0x0ab */
1001 #define IFMATCH_tb_pb 340 /* 0x154 */
1002 #define IFMATCH_tb_p8 341 /* 0x155 */
1003 #define IFMATCH_t8_pb 342 /* 0x156 */
1004 #define IFMATCH_t8_p8 343 /* 0x157 */
1006 #define UNLESSM 86 /* 0x56 Fails if the following
1007 matches; non-zero flags "f",
1009 lookbehind assertion
1011 characters before current */
1012 #define UNLESSM_tb 172 /* 0x0ac */
1013 #define UNLESSM_t8 173 /* 0x0ad */
1014 #define UNLESSM_tb_pb 344 /* 0x158 */
1015 #define UNLESSM_tb_p8 345 /* 0x159 */
1016 #define UNLESSM_t8_pb 346 /* 0x15a */
1017 #define UNLESSM_t8_p8 347 /* 0x15b */
1019 #define SUSPEND 87 /* 0x57 "Independent" sub-RE.
1021 #define SUSPEND_tb 174 /* 0x0ae */
1022 #define SUSPEND_t8 175 /* 0x0af */
1023 #define SUSPEND_tb_pb 348 /* 0x15c */
1024 #define SUSPEND_tb_p8 349 /* 0x15d */
1025 #define SUSPEND_t8_pb 350 /* 0x15e */
1026 #define SUSPEND_t8_p8 351 /* 0x15f */
1028 #define IFTHEN 88 /* 0x58 Switch, should be
1029 preceded by switcher. */
1030 #define IFTHEN_tb 176 /* 0x0b0 */
1031 #define IFTHEN_t8 177 /* 0x0b1 */
1032 #define IFTHEN_tb_pb 352 /* 0x160 */
1033 #define IFTHEN_tb_p8 353 /* 0x161 */
1034 #define IFTHEN_t8_pb 354 /* 0x162 */
1035 #define IFTHEN_t8_p8 355 /* 0x163 */
1037 #define GROUPP 89 /* 0x59 Whether the group
1039 #define GROUPP_tb 178 /* 0x0b2 */
1040 #define GROUPP_t8 179 /* 0x0b3 */
1041 #define GROUPP_tb_pb 356 /* 0x164 */
1042 #define GROUPP_tb_p8 357 /* 0x165 */
1043 #define GROUPP_t8_pb 358 /* 0x166 */
1044 #define GROUPP_t8_p8 359 /* 0x167 */
1046 #define EVAL 90 /* 0x5a Execute some Perl code.
1048 #define EVAL_tb 180 /* 0x0b4 */
1049 #define EVAL_t8 181 /* 0x0b5 */
1050 #define EVAL_tb_pb 360 /* 0x168 */
1051 #define EVAL_tb_p8 361 /* 0x169 */
1052 #define EVAL_t8_pb 362 /* 0x16a */
1053 #define EVAL_t8_p8 363 /* 0x16b */
1055 #define MINMOD 91 /* 0x5b Next operator is not
1057 #define MINMOD_tb 182 /* 0x0b6 */
1058 #define MINMOD_t8 183 /* 0x0b7 */
1059 #define MINMOD_tb_pb 364 /* 0x16c */
1060 #define MINMOD_tb_p8 365 /* 0x16d */
1061 #define MINMOD_t8_pb 366 /* 0x16e */
1062 #define MINMOD_t8_p8 367 /* 0x16f */
1064 #define LOGICAL 92 /* 0x5c Next opcode should set
1066 #define LOGICAL_tb 184 /* 0x0b8 */
1067 #define LOGICAL_t8 185 /* 0x0b9 */
1068 #define LOGICAL_tb_pb 368 /* 0x170 */
1069 #define LOGICAL_tb_p8 369 /* 0x171 */
1070 #define LOGICAL_t8_pb 370 /* 0x172 */
1071 #define LOGICAL_t8_p8 371 /* 0x173 */
1073 #define RENUM 93 /* 0x5d Group with
1074 independently numbered
1076 #define RENUM_tb 186 /* 0x0ba */
1077 #define RENUM_t8 187 /* 0x0bb */
1078 #define RENUM_tb_pb 372 /* 0x174 */
1079 #define RENUM_tb_p8 373 /* 0x175 */
1080 #define RENUM_t8_pb 374 /* 0x176 */
1081 #define RENUM_t8_p8 375 /* 0x177 */
1083 #define GOSUB 94 /* 0x5e recurse to paren arg1
1084 at (signed) ofs arg2 */
1085 #define GOSUB_tb 188 /* 0x0bc */
1086 #define GOSUB_t8 189 /* 0x0bd */
1087 #define GOSUB_tb_pb 376 /* 0x178 */
1088 #define GOSUB_tb_p8 377 /* 0x179 */
1089 #define GOSUB_t8_pb 378 /* 0x17a */
1090 #define GOSUB_t8_p8 379 /* 0x17b */
1092 #define GROUPPN 95 /* 0x5f Whether the group
1094 #define GROUPPN_tb 190 /* 0x0be */
1095 #define GROUPPN_t8 191 /* 0x0bf */
1096 #define GROUPPN_tb_pb 380 /* 0x17c */
1097 #define GROUPPN_tb_p8 381 /* 0x17d */
1098 #define GROUPPN_t8_pb 382 /* 0x17e */
1099 #define GROUPPN_t8_p8 383 /* 0x17f */
1101 #define INSUBP 96 /* 0x60 Whether we are in a
1102 specific recurse. */
1103 #define INSUBP_tb 192 /* 0x0c0 */
1104 #define INSUBP_t8 193 /* 0x0c1 */
1105 #define INSUBP_tb_pb 384 /* 0x180 */
1106 #define INSUBP_tb_p8 385 /* 0x181 */
1107 #define INSUBP_t8_pb 386 /* 0x182 */
1108 #define INSUBP_t8_p8 387 /* 0x183 */
1110 #define DEFINEP 97 /* 0x61 Never execute directly.
1112 #define DEFINEP_tb 194 /* 0x0c2 */
1113 #define DEFINEP_t8 195 /* 0x0c3 */
1114 #define DEFINEP_tb_pb 388 /* 0x184 */
1115 #define DEFINEP_tb_p8 389 /* 0x185 */
1116 #define DEFINEP_t8_pb 390 /* 0x186 */
1117 #define DEFINEP_t8_p8 391 /* 0x187 */
1119 #define ENDLIKE 98 /* 0x62 Used only for the type
1121 #define ENDLIKE_tb 196 /* 0x0c4 */
1122 #define ENDLIKE_t8 197 /* 0x0c5 */
1123 #define ENDLIKE_tb_pb 392 /* 0x188 */
1124 #define ENDLIKE_tb_p8 393 /* 0x189 */
1125 #define ENDLIKE_t8_pb 394 /* 0x18a */
1126 #define ENDLIKE_t8_p8 395 /* 0x18b */
1128 #define OPFAIL 99 /* 0x63 Same as (?!), but with
1130 #define OPFAIL_tb 198 /* 0x0c6 */
1131 #define OPFAIL_t8 199 /* 0x0c7 */
1132 #define OPFAIL_tb_pb 396 /* 0x18c */
1133 #define OPFAIL_tb_p8 397 /* 0x18d */
1134 #define OPFAIL_t8_pb 398 /* 0x18e */
1135 #define OPFAIL_t8_p8 399 /* 0x18f */
1137 #define ACCEPT 100 /* 0x64 Accepts the current
1138 matched string, with verbar
1140 #define ACCEPT_tb 200 /* 0x0c8 */
1141 #define ACCEPT_t8 201 /* 0x0c9 */
1142 #define ACCEPT_tb_pb 400 /* 0x190 */
1143 #define ACCEPT_tb_p8 401 /* 0x191 */
1144 #define ACCEPT_t8_pb 402 /* 0x192 */
1145 #define ACCEPT_t8_p8 403 /* 0x193 */
1147 #define VERB 101 /* 0x65 Used only for the type
1149 #define VERB_tb 202 /* 0x0ca */
1150 #define VERB_t8 203 /* 0x0cb */
1151 #define VERB_tb_pb 404 /* 0x194 */
1152 #define VERB_tb_p8 405 /* 0x195 */
1153 #define VERB_t8_pb 406 /* 0x196 */
1154 #define VERB_t8_p8 407 /* 0x197 */
1156 #define PRUNE 102 /* 0x66 Pattern fails at this
1158 no-backtracking through this
1160 #define PRUNE_tb 204 /* 0x0cc */
1161 #define PRUNE_t8 205 /* 0x0cd */
1162 #define PRUNE_tb_pb 408 /* 0x198 */
1163 #define PRUNE_tb_p8 409 /* 0x199 */
1164 #define PRUNE_t8_pb 410 /* 0x19a */
1165 #define PRUNE_t8_p8 411 /* 0x19b */
1167 #define MARKPOINT 103 /* 0x67 Push the current
1168 location for rollback by
1170 #define MARKPOINT_tb 206 /* 0x0ce */
1171 #define MARKPOINT_t8 207 /* 0x0cf */
1172 #define MARKPOINT_tb_pb 412 /* 0x19c */
1173 #define MARKPOINT_tb_p8 413 /* 0x19d */
1174 #define MARKPOINT_t8_pb 414 /* 0x19e */
1175 #define MARKPOINT_t8_p8 415 /* 0x19f */
1177 #define SKIP 104 /* 0x68 On failure skip forward
1178 (to the mark) before
1180 #define SKIP_tb 208 /* 0x0d0 */
1181 #define SKIP_t8 209 /* 0x0d1 */
1182 #define SKIP_tb_pb 416 /* 0x1a0 */
1183 #define SKIP_tb_p8 417 /* 0x1a1 */
1184 #define SKIP_t8_pb 418 /* 0x1a2 */
1185 #define SKIP_t8_p8 419 /* 0x1a3 */
1187 #define COMMIT 105 /* 0x69 Pattern fails outright
1188 if backtracking through this
1190 #define COMMIT_tb 210 /* 0x0d2 */
1191 #define COMMIT_t8 211 /* 0x0d3 */
1192 #define COMMIT_tb_pb 420 /* 0x1a4 */
1193 #define COMMIT_tb_p8 421 /* 0x1a5 */
1194 #define COMMIT_t8_pb 422 /* 0x1a6 */
1195 #define COMMIT_t8_p8 423 /* 0x1a7 */
1197 #define CUTGROUP 106 /* 0x6a On failure go to the
1198 next alternation in the
1200 #define CUTGROUP_tb 212 /* 0x0d4 */
1201 #define CUTGROUP_t8 213 /* 0x0d5 */
1202 #define CUTGROUP_tb_pb 424 /* 0x1a8 */
1203 #define CUTGROUP_tb_p8 425 /* 0x1a9 */
1204 #define CUTGROUP_t8_pb 426 /* 0x1aa */
1205 #define CUTGROUP_t8_p8 427 /* 0x1ab */
1207 #define KEEPS 107 /* 0x6b $& begins here. */
1208 #define KEEPS_tb 214 /* 0x0d6 */
1209 #define KEEPS_t8 215 /* 0x0d7 */
1210 #define KEEPS_tb_pb 428 /* 0x1ac */
1211 #define KEEPS_tb_p8 429 /* 0x1ad */
1212 #define KEEPS_t8_pb 430 /* 0x1ae */
1213 #define KEEPS_t8_p8 431 /* 0x1af */
1215 #define LOOKBEHIND_END 108 /* 0x6c Return from lookbehind
1216 (IFMATCH/UNLESSM) and
1217 validate position */
1218 #define LOOKBEHIND_END_tb 216 /* 0x0d8 */
1219 #define LOOKBEHIND_END_t8 217 /* 0x0d9 */
1220 #define LOOKBEHIND_END_tb_pb 432 /* 0x1b0 */
1221 #define LOOKBEHIND_END_tb_p8 433 /* 0x1b1 */
1222 #define LOOKBEHIND_END_t8_pb 434 /* 0x1b2 */
1223 #define LOOKBEHIND_END_t8_p8 435 /* 0x1b3 */
1225 #define OPTIMIZED 109 /* 0x6d Placeholder for dump.
1227 #define OPTIMIZED_tb 218 /* 0x0da */
1228 #define OPTIMIZED_t8 219 /* 0x0db */
1229 #define OPTIMIZED_tb_pb 436 /* 0x1b4 */
1230 #define OPTIMIZED_tb_p8 437 /* 0x1b5 */
1231 #define OPTIMIZED_t8_pb 438 /* 0x1b6 */
1232 #define OPTIMIZED_t8_p8 439 /* 0x1b7 */
1234 #define PSEUDO 110 /* 0x6e Pseudo opcode for
1236 #define PSEUDO_tb 220 /* 0x0dc */
1237 #define PSEUDO_t8 221 /* 0x0dd */
1238 #define PSEUDO_tb_pb 440 /* 0x1b8 */
1239 #define PSEUDO_tb_p8 441 /* 0x1b9 */
1240 #define PSEUDO_t8_pb 442 /* 0x1ba */
1241 #define PSEUDO_t8_p8 443 /* 0x1bb */
1243 #define REGEX_SET 111 /* 0x6f Regex set, temporary
1245 pre-optimization compilation
1247 #define REGEX_SET_tb 222 /* 0x0de */
1248 #define REGEX_SET_t8 223 /* 0x0df */
1249 #define REGEX_SET_tb_pb 444 /* 0x1bc */
1250 #define REGEX_SET_tb_p8 445 /* 0x1bd */
1251 #define REGEX_SET_t8_pb 446 /* 0x1be */
1252 #define REGEX_SET_t8_p8 447 /* 0x1bf */
1254 /* ------------ States ------------- */
1255 #define TRIE_next 112 /* 0x70 state for TRIE */
1256 #define TRIE_next_tb 224 /* 0x0e0 */
1257 #define TRIE_next_t8 225 /* 0x0e1 */
1258 #define TRIE_next_tb_pb 448 /* 0x1c0 */
1259 #define TRIE_next_tb_p8 449 /* 0x1c1 */
1260 #define TRIE_next_t8_pb 450 /* 0x1c2 */
1261 #define TRIE_next_t8_p8 451 /* 0x1c3 */
1263 #define TRIE_next_fail 113 /* 0x71 state for TRIE */
1264 #define TRIE_next_fail_tb 226 /* 0x0e2 */
1265 #define TRIE_next_fail_t8 227 /* 0x0e3 */
1266 #define TRIE_next_fail_tb_pb 452 /* 0x1c4 */
1267 #define TRIE_next_fail_tb_p8 453 /* 0x1c5 */
1268 #define TRIE_next_fail_t8_pb 454 /* 0x1c6 */
1269 #define TRIE_next_fail_t8_p8 455 /* 0x1c7 */
1271 #define EVAL_B 114 /* 0x72 state for EVAL */
1272 #define EVAL_B_tb 228 /* 0x0e4 */
1273 #define EVAL_B_t8 229 /* 0x0e5 */
1274 #define EVAL_B_tb_pb 456 /* 0x1c8 */
1275 #define EVAL_B_tb_p8 457 /* 0x1c9 */
1276 #define EVAL_B_t8_pb 458 /* 0x1ca */
1277 #define EVAL_B_t8_p8 459 /* 0x1cb */
1279 #define EVAL_B_fail 115 /* 0x73 state for EVAL */
1280 #define EVAL_B_fail_tb 230 /* 0x0e6 */
1281 #define EVAL_B_fail_t8 231 /* 0x0e7 */
1282 #define EVAL_B_fail_tb_pb 460 /* 0x1cc */
1283 #define EVAL_B_fail_tb_p8 461 /* 0x1cd */
1284 #define EVAL_B_fail_t8_pb 462 /* 0x1ce */
1285 #define EVAL_B_fail_t8_p8 463 /* 0x1cf */
1287 #define EVAL_postponed_AB 116 /* 0x74 state for EVAL */
1288 #define EVAL_postponed_AB_tb 232 /* 0x0e8 */
1289 #define EVAL_postponed_AB_t8 233 /* 0x0e9 */
1290 #define EVAL_postponed_AB_tb_pb 464 /* 0x1d0 */
1291 #define EVAL_postponed_AB_tb_p8 465 /* 0x1d1 */
1292 #define EVAL_postponed_AB_t8_pb 466 /* 0x1d2 */
1293 #define EVAL_postponed_AB_t8_p8 467 /* 0x1d3 */
1295 #define EVAL_postponed_AB_fail 117 /* 0x75 state for EVAL */
1296 #define EVAL_postponed_AB_fail_tb 234 /* 0x0ea */
1297 #define EVAL_postponed_AB_fail_t8 235 /* 0x0eb */
1298 #define EVAL_postponed_AB_fail_tb_pb 468 /* 0x1d4 */
1299 #define EVAL_postponed_AB_fail_tb_p8 469 /* 0x1d5 */
1300 #define EVAL_postponed_AB_fail_t8_pb 470 /* 0x1d6 */
1301 #define EVAL_postponed_AB_fail_t8_p8 471 /* 0x1d7 */
1303 #define CURLYX_end 118 /* 0x76 state for CURLYX */
1304 #define CURLYX_end_tb 236 /* 0x0ec */
1305 #define CURLYX_end_t8 237 /* 0x0ed */
1306 #define CURLYX_end_tb_pb 472 /* 0x1d8 */
1307 #define CURLYX_end_tb_p8 473 /* 0x1d9 */
1308 #define CURLYX_end_t8_pb 474 /* 0x1da */
1309 #define CURLYX_end_t8_p8 475 /* 0x1db */
1311 #define CURLYX_end_fail 119 /* 0x77 state for CURLYX */
1312 #define CURLYX_end_fail_tb 238 /* 0x0ee */
1313 #define CURLYX_end_fail_t8 239 /* 0x0ef */
1314 #define CURLYX_end_fail_tb_pb 476 /* 0x1dc */
1315 #define CURLYX_end_fail_tb_p8 477 /* 0x1dd */
1316 #define CURLYX_end_fail_t8_pb 478 /* 0x1de */
1317 #define CURLYX_end_fail_t8_p8 479 /* 0x1df */
1319 #define WHILEM_A_pre 120 /* 0x78 state for WHILEM */
1320 #define WHILEM_A_pre_tb 240 /* 0x0f0 */
1321 #define WHILEM_A_pre_t8 241 /* 0x0f1 */
1322 #define WHILEM_A_pre_tb_pb 480 /* 0x1e0 */
1323 #define WHILEM_A_pre_tb_p8 481 /* 0x1e1 */
1324 #define WHILEM_A_pre_t8_pb 482 /* 0x1e2 */
1325 #define WHILEM_A_pre_t8_p8 483 /* 0x1e3 */
1327 #define WHILEM_A_pre_fail 121 /* 0x79 state for WHILEM */
1328 #define WHILEM_A_pre_fail_tb 242 /* 0x0f2 */
1329 #define WHILEM_A_pre_fail_t8 243 /* 0x0f3 */
1330 #define WHILEM_A_pre_fail_tb_pb 484 /* 0x1e4 */
1331 #define WHILEM_A_pre_fail_tb_p8 485 /* 0x1e5 */
1332 #define WHILEM_A_pre_fail_t8_pb 486 /* 0x1e6 */
1333 #define WHILEM_A_pre_fail_t8_p8 487 /* 0x1e7 */
1335 #define WHILEM_A_min 122 /* 0x7a state for WHILEM */
1336 #define WHILEM_A_min_tb 244 /* 0x0f4 */
1337 #define WHILEM_A_min_t8 245 /* 0x0f5 */
1338 #define WHILEM_A_min_tb_pb 488 /* 0x1e8 */
1339 #define WHILEM_A_min_tb_p8 489 /* 0x1e9 */
1340 #define WHILEM_A_min_t8_pb 490 /* 0x1ea */
1341 #define WHILEM_A_min_t8_p8 491 /* 0x1eb */
1343 #define WHILEM_A_min_fail 123 /* 0x7b state for WHILEM */
1344 #define WHILEM_A_min_fail_tb 246 /* 0x0f6 */
1345 #define WHILEM_A_min_fail_t8 247 /* 0x0f7 */
1346 #define WHILEM_A_min_fail_tb_pb 492 /* 0x1ec */
1347 #define WHILEM_A_min_fail_tb_p8 493 /* 0x1ed */
1348 #define WHILEM_A_min_fail_t8_pb 494 /* 0x1ee */
1349 #define WHILEM_A_min_fail_t8_p8 495 /* 0x1ef */
1351 #define WHILEM_A_max 124 /* 0x7c state for WHILEM */
1352 #define WHILEM_A_max_tb 248 /* 0x0f8 */
1353 #define WHILEM_A_max_t8 249 /* 0x0f9 */
1354 #define WHILEM_A_max_tb_pb 496 /* 0x1f0 */
1355 #define WHILEM_A_max_tb_p8 497 /* 0x1f1 */
1356 #define WHILEM_A_max_t8_pb 498 /* 0x1f2 */
1357 #define WHILEM_A_max_t8_p8 499 /* 0x1f3 */
1359 #define WHILEM_A_max_fail 125 /* 0x7d state for WHILEM */
1360 #define WHILEM_A_max_fail_tb 250 /* 0x0fa */
1361 #define WHILEM_A_max_fail_t8 251 /* 0x0fb */
1362 #define WHILEM_A_max_fail_tb_pb 500 /* 0x1f4 */
1363 #define WHILEM_A_max_fail_tb_p8 501 /* 0x1f5 */
1364 #define WHILEM_A_max_fail_t8_pb 502 /* 0x1f6 */
1365 #define WHILEM_A_max_fail_t8_p8 503 /* 0x1f7 */
1367 #define WHILEM_B_min 126 /* 0x7e state for WHILEM */
1368 #define WHILEM_B_min_tb 252 /* 0x0fc */
1369 #define WHILEM_B_min_t8 253 /* 0x0fd */
1370 #define WHILEM_B_min_tb_pb 504 /* 0x1f8 */
1371 #define WHILEM_B_min_tb_p8 505 /* 0x1f9 */
1372 #define WHILEM_B_min_t8_pb 506 /* 0x1fa */
1373 #define WHILEM_B_min_t8_p8 507 /* 0x1fb */
1375 #define WHILEM_B_min_fail 127 /* 0x7f state for WHILEM */
1376 #define WHILEM_B_min_fail_tb 254 /* 0x0fe */
1377 #define WHILEM_B_min_fail_t8 255 /* 0x0ff */
1378 #define WHILEM_B_min_fail_tb_pb 508 /* 0x1fc */
1379 #define WHILEM_B_min_fail_tb_p8 509 /* 0x1fd */
1380 #define WHILEM_B_min_fail_t8_pb 510 /* 0x1fe */
1381 #define WHILEM_B_min_fail_t8_p8 511 /* 0x1ff */
1383 #define WHILEM_B_max 128 /* 0x80 state for WHILEM */
1384 #define WHILEM_B_max_tb 256 /* 0x100 */
1385 #define WHILEM_B_max_t8 257 /* 0x101 */
1386 #define WHILEM_B_max_tb_pb 512 /* 0x200 */
1387 #define WHILEM_B_max_tb_p8 513 /* 0x201 */
1388 #define WHILEM_B_max_t8_pb 514 /* 0x202 */
1389 #define WHILEM_B_max_t8_p8 515 /* 0x203 */
1391 #define WHILEM_B_max_fail 129 /* 0x81 state for WHILEM */
1392 #define WHILEM_B_max_fail_tb 258 /* 0x102 */
1393 #define WHILEM_B_max_fail_t8 259 /* 0x103 */
1394 #define WHILEM_B_max_fail_tb_pb 516 /* 0x204 */
1395 #define WHILEM_B_max_fail_tb_p8 517 /* 0x205 */
1396 #define WHILEM_B_max_fail_t8_pb 518 /* 0x206 */
1397 #define WHILEM_B_max_fail_t8_p8 519 /* 0x207 */
1399 #define BRANCH_next 130 /* 0x82 state for BRANCH */
1400 #define BRANCH_next_tb 260 /* 0x104 */
1401 #define BRANCH_next_t8 261 /* 0x105 */
1402 #define BRANCH_next_tb_pb 520 /* 0x208 */
1403 #define BRANCH_next_tb_p8 521 /* 0x209 */
1404 #define BRANCH_next_t8_pb 522 /* 0x20a */
1405 #define BRANCH_next_t8_p8 523 /* 0x20b */
1407 #define BRANCH_next_fail 131 /* 0x83 state for BRANCH */
1408 #define BRANCH_next_fail_tb 262 /* 0x106 */
1409 #define BRANCH_next_fail_t8 263 /* 0x107 */
1410 #define BRANCH_next_fail_tb_pb 524 /* 0x20c */
1411 #define BRANCH_next_fail_tb_p8 525 /* 0x20d */
1412 #define BRANCH_next_fail_t8_pb 526 /* 0x20e */
1413 #define BRANCH_next_fail_t8_p8 527 /* 0x20f */
1415 #define CURLYM_A 132 /* 0x84 state for CURLYM */
1416 #define CURLYM_A_tb 264 /* 0x108 */
1417 #define CURLYM_A_t8 265 /* 0x109 */
1418 #define CURLYM_A_tb_pb 528 /* 0x210 */
1419 #define CURLYM_A_tb_p8 529 /* 0x211 */
1420 #define CURLYM_A_t8_pb 530 /* 0x212 */
1421 #define CURLYM_A_t8_p8 531 /* 0x213 */
1423 #define CURLYM_A_fail 133 /* 0x85 state for CURLYM */
1424 #define CURLYM_A_fail_tb 266 /* 0x10a */
1425 #define CURLYM_A_fail_t8 267 /* 0x10b */
1426 #define CURLYM_A_fail_tb_pb 532 /* 0x214 */
1427 #define CURLYM_A_fail_tb_p8 533 /* 0x215 */
1428 #define CURLYM_A_fail_t8_pb 534 /* 0x216 */
1429 #define CURLYM_A_fail_t8_p8 535 /* 0x217 */
1431 #define CURLYM_B 134 /* 0x86 state for CURLYM */
1432 #define CURLYM_B_tb 268 /* 0x10c */
1433 #define CURLYM_B_t8 269 /* 0x10d */
1434 #define CURLYM_B_tb_pb 536 /* 0x218 */
1435 #define CURLYM_B_tb_p8 537 /* 0x219 */
1436 #define CURLYM_B_t8_pb 538 /* 0x21a */
1437 #define CURLYM_B_t8_p8 539 /* 0x21b */
1439 #define CURLYM_B_fail 135 /* 0x87 state for CURLYM */
1440 #define CURLYM_B_fail_tb 270 /* 0x10e */
1441 #define CURLYM_B_fail_t8 271 /* 0x10f */
1442 #define CURLYM_B_fail_tb_pb 540 /* 0x21c */
1443 #define CURLYM_B_fail_tb_p8 541 /* 0x21d */
1444 #define CURLYM_B_fail_t8_pb 542 /* 0x21e */
1445 #define CURLYM_B_fail_t8_p8 543 /* 0x21f */
1447 #define IFMATCH_A 136 /* 0x88 state for IFMATCH */
1448 #define IFMATCH_A_tb 272 /* 0x110 */
1449 #define IFMATCH_A_t8 273 /* 0x111 */
1450 #define IFMATCH_A_tb_pb 544 /* 0x220 */
1451 #define IFMATCH_A_tb_p8 545 /* 0x221 */
1452 #define IFMATCH_A_t8_pb 546 /* 0x222 */
1453 #define IFMATCH_A_t8_p8 547 /* 0x223 */
1455 #define IFMATCH_A_fail 137 /* 0x89 state for IFMATCH */
1456 #define IFMATCH_A_fail_tb 274 /* 0x112 */
1457 #define IFMATCH_A_fail_t8 275 /* 0x113 */
1458 #define IFMATCH_A_fail_tb_pb 548 /* 0x224 */
1459 #define IFMATCH_A_fail_tb_p8 549 /* 0x225 */
1460 #define IFMATCH_A_fail_t8_pb 550 /* 0x226 */
1461 #define IFMATCH_A_fail_t8_p8 551 /* 0x227 */
1463 #define CURLY_B_min 138 /* 0x8a state for CURLY */
1464 #define CURLY_B_min_tb 276 /* 0x114 */
1465 #define CURLY_B_min_t8 277 /* 0x115 */
1466 #define CURLY_B_min_tb_pb 552 /* 0x228 */
1467 #define CURLY_B_min_tb_p8 553 /* 0x229 */
1468 #define CURLY_B_min_t8_pb 554 /* 0x22a */
1469 #define CURLY_B_min_t8_p8 555 /* 0x22b */
1471 #define CURLY_B_min_fail 139 /* 0x8b state for CURLY */
1472 #define CURLY_B_min_fail_tb 278 /* 0x116 */
1473 #define CURLY_B_min_fail_t8 279 /* 0x117 */
1474 #define CURLY_B_min_fail_tb_pb 556 /* 0x22c */
1475 #define CURLY_B_min_fail_tb_p8 557 /* 0x22d */
1476 #define CURLY_B_min_fail_t8_pb 558 /* 0x22e */
1477 #define CURLY_B_min_fail_t8_p8 559 /* 0x22f */
1479 #define CURLY_B_max 140 /* 0x8c state for CURLY */
1480 #define CURLY_B_max_tb 280 /* 0x118 */
1481 #define CURLY_B_max_t8 281 /* 0x119 */
1482 #define CURLY_B_max_tb_pb 560 /* 0x230 */
1483 #define CURLY_B_max_tb_p8 561 /* 0x231 */
1484 #define CURLY_B_max_t8_pb 562 /* 0x232 */
1485 #define CURLY_B_max_t8_p8 563 /* 0x233 */
1487 #define CURLY_B_max_fail 141 /* 0x8d state for CURLY */
1488 #define CURLY_B_max_fail_tb 282 /* 0x11a */
1489 #define CURLY_B_max_fail_t8 283 /* 0x11b */
1490 #define CURLY_B_max_fail_tb_pb 564 /* 0x234 */
1491 #define CURLY_B_max_fail_tb_p8 565 /* 0x235 */
1492 #define CURLY_B_max_fail_t8_pb 566 /* 0x236 */
1493 #define CURLY_B_max_fail_t8_p8 567 /* 0x237 */
1495 #define COMMIT_next 142 /* 0x8e state for COMMIT */
1496 #define COMMIT_next_tb 284 /* 0x11c */
1497 #define COMMIT_next_t8 285 /* 0x11d */
1498 #define COMMIT_next_tb_pb 568 /* 0x238 */
1499 #define COMMIT_next_tb_p8 569 /* 0x239 */
1500 #define COMMIT_next_t8_pb 570 /* 0x23a */
1501 #define COMMIT_next_t8_p8 571 /* 0x23b */
1503 #define COMMIT_next_fail 143 /* 0x8f state for COMMIT */
1504 #define COMMIT_next_fail_tb 286 /* 0x11e */
1505 #define COMMIT_next_fail_t8 287 /* 0x11f */
1506 #define COMMIT_next_fail_tb_pb 572 /* 0x23c */
1507 #define COMMIT_next_fail_tb_p8 573 /* 0x23d */
1508 #define COMMIT_next_fail_t8_pb 574 /* 0x23e */
1509 #define COMMIT_next_fail_t8_p8 575 /* 0x23f */
1511 #define MARKPOINT_next 144 /* 0x90 state for MARKPOINT */
1512 #define MARKPOINT_next_tb 288 /* 0x120 */
1513 #define MARKPOINT_next_t8 289 /* 0x121 */
1514 #define MARKPOINT_next_tb_pb 576 /* 0x240 */
1515 #define MARKPOINT_next_tb_p8 577 /* 0x241 */
1516 #define MARKPOINT_next_t8_pb 578 /* 0x242 */
1517 #define MARKPOINT_next_t8_p8 579 /* 0x243 */
1519 #define MARKPOINT_next_fail 145 /* 0x91 state for MARKPOINT */
1520 #define MARKPOINT_next_fail_tb 290 /* 0x122 */
1521 #define MARKPOINT_next_fail_t8 291 /* 0x123 */
1522 #define MARKPOINT_next_fail_tb_pb 580 /* 0x244 */
1523 #define MARKPOINT_next_fail_tb_p8 581 /* 0x245 */
1524 #define MARKPOINT_next_fail_t8_pb 582 /* 0x246 */
1525 #define MARKPOINT_next_fail_t8_p8 583 /* 0x247 */
1527 #define SKIP_next 146 /* 0x92 state for SKIP */
1528 #define SKIP_next_tb 292 /* 0x124 */
1529 #define SKIP_next_t8 293 /* 0x125 */
1530 #define SKIP_next_tb_pb 584 /* 0x248 */
1531 #define SKIP_next_tb_p8 585 /* 0x249 */
1532 #define SKIP_next_t8_pb 586 /* 0x24a */
1533 #define SKIP_next_t8_p8 587 /* 0x24b */
1535 #define SKIP_next_fail 147 /* 0x93 state for SKIP */
1536 #define SKIP_next_fail_tb 294 /* 0x126 */
1537 #define SKIP_next_fail_t8 295 /* 0x127 */
1538 #define SKIP_next_fail_tb_pb 588 /* 0x24c */
1539 #define SKIP_next_fail_tb_p8 589 /* 0x24d */
1540 #define SKIP_next_fail_t8_pb 590 /* 0x24e */
1541 #define SKIP_next_fail_t8_p8 591 /* 0x24f */
1543 #define CUTGROUP_next 148 /* 0x94 state for CUTGROUP */
1544 #define CUTGROUP_next_tb 296 /* 0x128 */
1545 #define CUTGROUP_next_t8 297 /* 0x129 */
1546 #define CUTGROUP_next_tb_pb 592 /* 0x250 */
1547 #define CUTGROUP_next_tb_p8 593 /* 0x251 */
1548 #define CUTGROUP_next_t8_pb 594 /* 0x252 */
1549 #define CUTGROUP_next_t8_p8 595 /* 0x253 */
1551 #define CUTGROUP_next_fail 149 /* 0x95 state for CUTGROUP */
1552 #define CUTGROUP_next_fail_tb 298 /* 0x12a */
1553 #define CUTGROUP_next_fail_t8 299 /* 0x12b */
1554 #define CUTGROUP_next_fail_tb_pb 596 /* 0x254 */
1555 #define CUTGROUP_next_fail_tb_p8 597 /* 0x255 */
1556 #define CUTGROUP_next_fail_t8_pb 598 /* 0x256 */
1557 #define CUTGROUP_next_fail_t8_p8 599 /* 0x257 */
1559 #define KEEPS_next 150 /* 0x96 state for KEEPS */
1560 #define KEEPS_next_tb 300 /* 0x12c */
1561 #define KEEPS_next_t8 301 /* 0x12d */
1562 #define KEEPS_next_tb_pb 600 /* 0x258 */
1563 #define KEEPS_next_tb_p8 601 /* 0x259 */
1564 #define KEEPS_next_t8_pb 602 /* 0x25a */
1565 #define KEEPS_next_t8_p8 603 /* 0x25b */
1567 #define KEEPS_next_fail 151 /* 0x97 state for KEEPS */
1568 #define KEEPS_next_fail_tb 302 /* 0x12e */
1569 #define KEEPS_next_fail_t8 303 /* 0x12f */
1570 #define KEEPS_next_fail_tb_pb 604 /* 0x25c */
1571 #define KEEPS_next_fail_tb_p8 605 /* 0x25d */
1572 #define KEEPS_next_fail_t8_pb 606 /* 0x25e */
1573 #define KEEPS_next_fail_t8_p8 607 /* 0x25f */
1576 /* PL_regnode_name[] - Opcode/state names in string form, for debugging */
1579 EXTCONST char * PL_regnode_name[];
1581 EXTCONST char * const PL_regnode_name[] = {
1583 "SUCCEED", /* 0x01 */
1591 "BOUNDL", /* 0x09 */
1592 "BOUNDU", /* 0x0a */
1593 "BOUNDA", /* 0x0b */
1594 "NBOUND", /* 0x0c */
1595 "NBOUNDL", /* 0x0d */
1596 "NBOUNDU", /* 0x0e */
1597 "NBOUNDA", /* 0x0f */
1598 "REG_ANY", /* 0x10 */
1601 "ANYOFD", /* 0x13 */
1602 "ANYOFL", /* 0x14 */
1603 "ANYOFPOSIXL", /* 0x15 */
1604 "ANYOFH", /* 0x16 */
1605 "ANYOFHb", /* 0x17 */
1606 "ANYOFHr", /* 0x18 */
1607 "ANYOFHs", /* 0x19 */
1608 "ANYOFR", /* 0x1a */
1609 "ANYOFRb", /* 0x1b */
1610 "ANYOFHbbm", /* 0x1c */
1611 "ANYOFM", /* 0x1d */
1612 "NANYOFM", /* 0x1e */
1613 "POSIXD", /* 0x1f */
1614 "POSIXL", /* 0x20 */
1615 "POSIXU", /* 0x21 */
1616 "POSIXA", /* 0x22 */
1617 "NPOSIXD", /* 0x23 */
1618 "NPOSIXL", /* 0x24 */
1619 "NPOSIXU", /* 0x25 */
1620 "NPOSIXA", /* 0x26 */
1622 "BRANCH", /* 0x28 */
1624 "LEXACT", /* 0x2a */
1625 "EXACTL", /* 0x2b */
1626 "EXACTF", /* 0x2c */
1627 "EXACTFL", /* 0x2d */
1628 "EXACTFU", /* 0x2e */
1629 "EXACTFAA", /* 0x2f */
1630 "EXACTFAA_NO_TRIE", /* 0x30 */
1631 "EXACTFUP", /* 0x31 */
1632 "EXACTFLU8", /* 0x32 */
1633 "EXACT_REQ8", /* 0x33 */
1634 "LEXACT_REQ8", /* 0x34 */
1635 "EXACTFU_REQ8", /* 0x35 */
1636 "EXACTFU_S_EDGE", /* 0x36 */
1637 "LNBREAK", /* 0x37 */
1640 "AHOCORASICK", /* 0x3a */
1641 "AHOCORASICKC", /* 0x3b */
1642 "NOTHING", /* 0x3c */
1647 "CURLYN", /* 0x41 */
1648 "CURLYM", /* 0x42 */
1649 "CURLYX", /* 0x43 */
1650 "WHILEM", /* 0x44 */
1653 "SROPEN", /* 0x47 */
1654 "SRCLOSE", /* 0x48 */
1662 "REFFLN", /* 0x50 */
1663 "REFFUN", /* 0x51 */
1664 "REFFAN", /* 0x52 */
1665 "LONGJMP", /* 0x53 */
1666 "BRANCHJ", /* 0x54 */
1667 "IFMATCH", /* 0x55 */
1668 "UNLESSM", /* 0x56 */
1669 "SUSPEND", /* 0x57 */
1670 "IFTHEN", /* 0x58 */
1671 "GROUPP", /* 0x59 */
1673 "MINMOD", /* 0x5b */
1674 "LOGICAL", /* 0x5c */
1677 "GROUPPN", /* 0x5f */
1678 "INSUBP", /* 0x60 */
1679 "DEFINEP", /* 0x61 */
1680 "ENDLIKE", /* 0x62 */
1681 "OPFAIL", /* 0x63 */
1682 "ACCEPT", /* 0x64 */
1685 "MARKPOINT", /* 0x67 */
1687 "COMMIT", /* 0x69 */
1688 "CUTGROUP", /* 0x6a */
1690 "LOOKBEHIND_END", /* 0x6c */
1691 "OPTIMIZED", /* 0x6d */
1692 "PSEUDO", /* 0x6e */
1693 "REGEX_SET", /* 0x6f */
1694 /* ------------ States ------------- */
1695 "TRIE_next", /* REGNODE_MAX +0x01 */
1696 "TRIE_next_fail", /* REGNODE_MAX +0x02 */
1697 "EVAL_B", /* REGNODE_MAX +0x03 */
1698 "EVAL_B_fail", /* REGNODE_MAX +0x04 */
1699 "EVAL_postponed_AB", /* REGNODE_MAX +0x05 */
1700 "EVAL_postponed_AB_fail", /* REGNODE_MAX +0x06 */
1701 "CURLYX_end", /* REGNODE_MAX +0x07 */
1702 "CURLYX_end_fail", /* REGNODE_MAX +0x08 */
1703 "WHILEM_A_pre", /* REGNODE_MAX +0x09 */
1704 "WHILEM_A_pre_fail", /* REGNODE_MAX +0x0a */
1705 "WHILEM_A_min", /* REGNODE_MAX +0x0b */
1706 "WHILEM_A_min_fail", /* REGNODE_MAX +0x0c */
1707 "WHILEM_A_max", /* REGNODE_MAX +0x0d */
1708 "WHILEM_A_max_fail", /* REGNODE_MAX +0x0e */
1709 "WHILEM_B_min", /* REGNODE_MAX +0x0f */
1710 "WHILEM_B_min_fail", /* REGNODE_MAX +0x10 */
1711 "WHILEM_B_max", /* REGNODE_MAX +0x11 */
1712 "WHILEM_B_max_fail", /* REGNODE_MAX +0x12 */
1713 "BRANCH_next", /* REGNODE_MAX +0x13 */
1714 "BRANCH_next_fail", /* REGNODE_MAX +0x14 */
1715 "CURLYM_A", /* REGNODE_MAX +0x15 */
1716 "CURLYM_A_fail", /* REGNODE_MAX +0x16 */
1717 "CURLYM_B", /* REGNODE_MAX +0x17 */
1718 "CURLYM_B_fail", /* REGNODE_MAX +0x18 */
1719 "IFMATCH_A", /* REGNODE_MAX +0x19 */
1720 "IFMATCH_A_fail", /* REGNODE_MAX +0x1a */
1721 "CURLY_B_min", /* REGNODE_MAX +0x1b */
1722 "CURLY_B_min_fail", /* REGNODE_MAX +0x1c */
1723 "CURLY_B_max", /* REGNODE_MAX +0x1d */
1724 "CURLY_B_max_fail", /* REGNODE_MAX +0x1e */
1725 "COMMIT_next", /* REGNODE_MAX +0x1f */
1726 "COMMIT_next_fail", /* REGNODE_MAX +0x20 */
1727 "MARKPOINT_next", /* REGNODE_MAX +0x21 */
1728 "MARKPOINT_next_fail", /* REGNODE_MAX +0x22 */
1729 "SKIP_next", /* REGNODE_MAX +0x23 */
1730 "SKIP_next_fail", /* REGNODE_MAX +0x24 */
1731 "CUTGROUP_next", /* REGNODE_MAX +0x25 */
1732 "CUTGROUP_next_fail", /* REGNODE_MAX +0x26 */
1733 "KEEPS_next", /* REGNODE_MAX +0x27 */
1734 "KEEPS_next_fail", /* REGNODE_MAX +0x28 */
1739 /* PL_regnode_info[] - Opcode/state names in string form, for debugging */
1742 EXTCONST struct regnode_meta PL_regnode_info[];
1744 EXTCONST struct regnode_meta PL_regnode_info[] = {
1749 .arg_len_varies = 0,
1756 .arg_len_varies = 0,
1763 .arg_len_varies = 0,
1770 .arg_len_varies = 0,
1777 .arg_len_varies = 0,
1784 .arg_len_varies = 0,
1791 .arg_len_varies = 0,
1798 .arg_len_varies = 0,
1805 .arg_len_varies = 0,
1812 .arg_len_varies = 0,
1819 .arg_len_varies = 0,
1826 .arg_len_varies = 0,
1833 .arg_len_varies = 0,
1837 /* #13 op NBOUNDL */
1840 .arg_len_varies = 0,
1844 /* #14 op NBOUNDU */
1847 .arg_len_varies = 0,
1851 /* #15 op NBOUNDA */
1854 .arg_len_varies = 0,
1858 /* #16 op REG_ANY */
1861 .arg_len_varies = 0,
1868 .arg_len_varies = 0,
1874 .arg_len = EXTRA_SIZE(tregnode_ANYOF),
1875 .arg_len_varies = 0,
1881 .arg_len = EXTRA_SIZE(tregnode_ANYOFD),
1882 .arg_len_varies = 0,
1888 .arg_len = EXTRA_SIZE(tregnode_ANYOFL),
1889 .arg_len_varies = 0,
1893 /* #21 op ANYOFPOSIXL */
1895 .arg_len = EXTRA_SIZE(tregnode_ANYOFPOSIXL),
1896 .arg_len_varies = 0,
1902 .arg_len = EXTRA_SIZE(tregnode_ANYOFH),
1903 .arg_len_varies = 0,
1907 /* #23 op ANYOFHb */
1909 .arg_len = EXTRA_SIZE(tregnode_ANYOFHb),
1910 .arg_len_varies = 0,
1914 /* #24 op ANYOFHr */
1916 .arg_len = EXTRA_SIZE(tregnode_ANYOFHr),
1917 .arg_len_varies = 0,
1921 /* #25 op ANYOFHs */
1923 .arg_len = EXTRA_SIZE(tregnode_ANYOFHs),
1924 .arg_len_varies = 1,
1930 .arg_len = EXTRA_SIZE(tregnode_ANYOFR),
1931 .arg_len_varies = 0,
1935 /* #27 op ANYOFRb */
1937 .arg_len = EXTRA_SIZE(tregnode_ANYOFRb),
1938 .arg_len_varies = 0,
1942 /* #28 op ANYOFHbbm */
1944 .arg_len = EXTRA_SIZE(tregnode_ANYOFHbbm),
1945 .arg_len_varies = 0,
1951 .arg_len = EXTRA_SIZE(tregnode_ANYOFM),
1952 .arg_len_varies = 0,
1956 /* #30 op NANYOFM */
1958 .arg_len = EXTRA_SIZE(tregnode_NANYOFM),
1959 .arg_len_varies = 0,
1966 .arg_len_varies = 0,
1973 .arg_len_varies = 0,
1980 .arg_len_varies = 0,
1987 .arg_len_varies = 0,
1991 /* #35 op NPOSIXD */
1994 .arg_len_varies = 0,
1998 /* #36 op NPOSIXL */
2001 .arg_len_varies = 0,
2005 /* #37 op NPOSIXU */
2008 .arg_len_varies = 0,
2012 /* #38 op NPOSIXA */
2015 .arg_len_varies = 0,
2022 .arg_len_varies = 0,
2029 .arg_len_varies = 0,
2036 .arg_len_varies = 1,
2042 .arg_len = EXTRA_SIZE(tregnode_LEXACT),
2043 .arg_len_varies = 1,
2050 .arg_len_varies = 1,
2057 .arg_len_varies = 1,
2061 /* #45 op EXACTFL */
2064 .arg_len_varies = 1,
2068 /* #46 op EXACTFU */
2071 .arg_len_varies = 1,
2075 /* #47 op EXACTFAA */
2078 .arg_len_varies = 1,
2082 /* #48 op EXACTFAA_NO_TRIE */
2085 .arg_len_varies = 1,
2089 /* #49 op EXACTFUP */
2092 .arg_len_varies = 1,
2096 /* #50 op EXACTFLU8 */
2099 .arg_len_varies = 1,
2103 /* #51 op EXACT_REQ8 */
2106 .arg_len_varies = 1,
2110 /* #52 op LEXACT_REQ8 */
2112 .arg_len = EXTRA_SIZE(tregnode_LEXACT_REQ8),
2113 .arg_len_varies = 1,
2117 /* #53 op EXACTFU_REQ8 */
2120 .arg_len_varies = 1,
2124 /* #54 op EXACTFU_S_EDGE */
2127 .arg_len_varies = 1,
2131 /* #55 op LNBREAK */
2134 .arg_len_varies = 0,
2140 .arg_len = EXTRA_SIZE(tregnode_TRIE),
2141 .arg_len_varies = 0,
2147 .arg_len = EXTRA_SIZE(tregnode_TRIEC),
2148 .arg_len_varies = 0,
2152 /* #58 op AHOCORASICK */
2154 .arg_len = EXTRA_SIZE(tregnode_AHOCORASICK),
2155 .arg_len_varies = 0,
2159 /* #59 op AHOCORASICKC */
2161 .arg_len = EXTRA_SIZE(tregnode_AHOCORASICKC),
2162 .arg_len_varies = 0,
2166 /* #60 op NOTHING */
2169 .arg_len_varies = 0,
2176 .arg_len_varies = 0,
2183 .arg_len_varies = 0,
2190 .arg_len_varies = 0,
2196 .arg_len = EXTRA_SIZE(tregnode_CURLY),
2197 .arg_len_varies = 0,
2203 .arg_len = EXTRA_SIZE(tregnode_CURLYN),
2204 .arg_len_varies = 0,
2210 .arg_len = EXTRA_SIZE(tregnode_CURLYM),
2211 .arg_len_varies = 0,
2217 .arg_len = EXTRA_SIZE(tregnode_CURLYX),
2218 .arg_len_varies = 0,
2225 .arg_len_varies = 0,
2231 .arg_len = EXTRA_SIZE(tregnode_OPEN),
2232 .arg_len_varies = 0,
2238 .arg_len = EXTRA_SIZE(tregnode_CLOSE),
2239 .arg_len_varies = 0,
2246 .arg_len_varies = 0,
2250 /* #72 op SRCLOSE */
2253 .arg_len_varies = 0,
2259 .arg_len = EXTRA_SIZE(tregnode_REF),
2260 .arg_len_varies = 0,
2266 .arg_len = EXTRA_SIZE(tregnode_REFF),
2267 .arg_len_varies = 0,
2273 .arg_len = EXTRA_SIZE(tregnode_REFFL),
2274 .arg_len_varies = 0,
2280 .arg_len = EXTRA_SIZE(tregnode_REFFU),
2281 .arg_len_varies = 0,
2287 .arg_len = EXTRA_SIZE(tregnode_REFFA),
2288 .arg_len_varies = 0,
2294 .arg_len = EXTRA_SIZE(tregnode_REFN),
2295 .arg_len_varies = 0,
2301 .arg_len = EXTRA_SIZE(tregnode_REFFN),
2302 .arg_len_varies = 0,
2308 .arg_len = EXTRA_SIZE(tregnode_REFFLN),
2309 .arg_len_varies = 0,
2315 .arg_len = EXTRA_SIZE(tregnode_REFFUN),
2316 .arg_len_varies = 0,
2322 .arg_len = EXTRA_SIZE(tregnode_REFFAN),
2323 .arg_len_varies = 0,
2327 /* #83 op LONGJMP */
2329 .arg_len = EXTRA_SIZE(tregnode_LONGJMP),
2330 .arg_len_varies = 0,
2334 /* #84 op BRANCHJ */
2336 .arg_len = EXTRA_SIZE(tregnode_BRANCHJ),
2337 .arg_len_varies = 0,
2341 /* #85 op IFMATCH */
2343 .arg_len = EXTRA_SIZE(tregnode_IFMATCH),
2344 .arg_len_varies = 0,
2348 /* #86 op UNLESSM */
2350 .arg_len = EXTRA_SIZE(tregnode_UNLESSM),
2351 .arg_len_varies = 0,
2355 /* #87 op SUSPEND */
2357 .arg_len = EXTRA_SIZE(tregnode_SUSPEND),
2358 .arg_len_varies = 0,
2364 .arg_len = EXTRA_SIZE(tregnode_IFTHEN),
2365 .arg_len_varies = 0,
2371 .arg_len = EXTRA_SIZE(tregnode_GROUPP),
2372 .arg_len_varies = 0,
2378 .arg_len = EXTRA_SIZE(tregnode_EVAL),
2379 .arg_len_varies = 0,
2386 .arg_len_varies = 0,
2390 /* #92 op LOGICAL */
2393 .arg_len_varies = 0,
2399 .arg_len = EXTRA_SIZE(tregnode_RENUM),
2400 .arg_len_varies = 0,
2406 .arg_len = EXTRA_SIZE(tregnode_GOSUB),
2407 .arg_len_varies = 0,
2411 /* #95 op GROUPPN */
2413 .arg_len = EXTRA_SIZE(tregnode_GROUPPN),
2414 .arg_len_varies = 0,
2420 .arg_len = EXTRA_SIZE(tregnode_INSUBP),
2421 .arg_len_varies = 0,
2425 /* #97 op DEFINEP */
2427 .arg_len = EXTRA_SIZE(tregnode_DEFINEP),
2428 .arg_len_varies = 0,
2432 /* #98 op ENDLIKE */
2435 .arg_len_varies = 0,
2441 .arg_len = EXTRA_SIZE(tregnode_OPFAIL),
2442 .arg_len_varies = 0,
2446 /* #100 op ACCEPT */
2448 .arg_len = EXTRA_SIZE(tregnode_ACCEPT),
2449 .arg_len_varies = 0,
2455 .arg_len = EXTRA_SIZE(tregnode_VERB),
2456 .arg_len_varies = 0,
2462 .arg_len = EXTRA_SIZE(tregnode_PRUNE),
2463 .arg_len_varies = 0,
2467 /* #103 op MARKPOINT */
2469 .arg_len = EXTRA_SIZE(tregnode_MARKPOINT),
2470 .arg_len_varies = 0,
2476 .arg_len = EXTRA_SIZE(tregnode_SKIP),
2477 .arg_len_varies = 0,
2481 /* #105 op COMMIT */
2483 .arg_len = EXTRA_SIZE(tregnode_COMMIT),
2484 .arg_len_varies = 0,
2488 /* #106 op CUTGROUP */
2490 .arg_len = EXTRA_SIZE(tregnode_CUTGROUP),
2491 .arg_len_varies = 0,
2498 .arg_len_varies = 0,
2502 /* #108 op LOOKBEHIND_END */
2505 .arg_len_varies = 0,
2509 /* #109 op OPTIMIZED */
2512 .arg_len_varies = 0,
2516 /* #110 op PSEUDO */
2519 .arg_len_varies = 0,
2523 /* #111 op REGEX_SET */
2525 .arg_len = EXTRA_SIZE(tregnode_REGEX_SET),
2526 .arg_len_varies = 0,
2530 /* #112 state TRIE_next */
2533 .arg_len_varies = 0,
2537 /* #113 state TRIE_next_fail */
2540 .arg_len_varies = 0,
2544 /* #114 state EVAL_B */
2547 .arg_len_varies = 0,
2551 /* #115 state EVAL_B_fail */
2554 .arg_len_varies = 0,
2558 /* #116 state EVAL_postponed_AB */
2561 .arg_len_varies = 0,
2565 /* #117 state EVAL_postponed_AB_fail */
2568 .arg_len_varies = 0,
2572 /* #118 state CURLYX_end */
2575 .arg_len_varies = 0,
2579 /* #119 state CURLYX_end_fail */
2582 .arg_len_varies = 0,
2586 /* #120 state WHILEM_A_pre */
2589 .arg_len_varies = 0,
2593 /* #121 state WHILEM_A_pre_fail */
2596 .arg_len_varies = 0,
2600 /* #122 state WHILEM_A_min */
2603 .arg_len_varies = 0,
2607 /* #123 state WHILEM_A_min_fail */
2610 .arg_len_varies = 0,
2614 /* #124 state WHILEM_A_max */
2617 .arg_len_varies = 0,
2621 /* #125 state WHILEM_A_max_fail */
2624 .arg_len_varies = 0,
2628 /* #126 state WHILEM_B_min */
2631 .arg_len_varies = 0,
2635 /* #127 state WHILEM_B_min_fail */
2638 .arg_len_varies = 0,
2642 /* #128 state WHILEM_B_max */
2645 .arg_len_varies = 0,
2649 /* #129 state WHILEM_B_max_fail */
2652 .arg_len_varies = 0,
2656 /* #130 state BRANCH_next */
2659 .arg_len_varies = 0,
2663 /* #131 state BRANCH_next_fail */
2666 .arg_len_varies = 0,
2670 /* #132 state CURLYM_A */
2673 .arg_len_varies = 0,
2677 /* #133 state CURLYM_A_fail */
2680 .arg_len_varies = 0,
2684 /* #134 state CURLYM_B */
2687 .arg_len_varies = 0,
2691 /* #135 state CURLYM_B_fail */
2694 .arg_len_varies = 0,
2698 /* #136 state IFMATCH_A */
2701 .arg_len_varies = 0,
2705 /* #137 state IFMATCH_A_fail */
2708 .arg_len_varies = 0,
2712 /* #138 state CURLY_B_min */
2715 .arg_len_varies = 0,
2719 /* #139 state CURLY_B_min_fail */
2722 .arg_len_varies = 0,
2726 /* #140 state CURLY_B_max */
2729 .arg_len_varies = 0,
2733 /* #141 state CURLY_B_max_fail */
2736 .arg_len_varies = 0,
2740 /* #142 state COMMIT_next */
2743 .arg_len_varies = 0,
2747 /* #143 state COMMIT_next_fail */
2750 .arg_len_varies = 0,
2754 /* #144 state MARKPOINT_next */
2757 .arg_len_varies = 0,
2761 /* #145 state MARKPOINT_next_fail */
2764 .arg_len_varies = 0,
2768 /* #146 state SKIP_next */
2771 .arg_len_varies = 0,
2775 /* #147 state SKIP_next_fail */
2778 .arg_len_varies = 0,
2782 /* #148 state CUTGROUP_next */
2785 .arg_len_varies = 0,
2789 /* #149 state CUTGROUP_next_fail */
2792 .arg_len_varies = 0,
2796 /* #150 state KEEPS_next */
2799 .arg_len_varies = 0,
2803 /* #151 state KEEPS_next_fail */
2806 .arg_len_varies = 0,
2812 /* PL_reg_extflags_name[] - Opcode/state names in string form, for debugging */
2815 EXTCONST char * PL_reg_extflags_name[];
2817 EXTCONST char * const PL_reg_extflags_name[] = {
2818 /* Bits in extflags defined: 11111111111111110000111111111111 */
2819 "MULTILINE", /* 0x00000001 */
2820 "SINGLELINE", /* 0x00000002 */
2821 "FOLD", /* 0x00000004 */
2822 "EXTENDED", /* 0x00000008 */
2823 "EXTENDED_MORE", /* 0x00000010 */
2824 "NOCAPTURE", /* 0x00000020 */
2825 "KEEPCOPY", /* 0x00000040 */
2826 "CHARSET0", /* 0x00000080 : "CHARSET" - 0x00000380 */
2827 "CHARSET1", /* 0x00000100 : "CHARSET" - 0x00000380 */
2828 "CHARSET2", /* 0x00000200 : "CHARSET" - 0x00000380 */
2829 "STRICT", /* 0x00000400 */
2830 "SPLIT", /* 0x00000800 */
2831 "UNUSED_BIT_12", /* 0x00001000 */
2832 "UNUSED_BIT_13", /* 0x00002000 */
2833 "UNUSED_BIT_14", /* 0x00004000 */
2834 "UNUSED_BIT_15", /* 0x00008000 */
2835 "NO_INPLACE_SUBST", /* 0x00010000 */
2836 "EVAL_SEEN", /* 0x00020000 */
2837 "UNBOUNDED_QUANTIFIER_SEEN",/* 0x00040000 */
2838 "CHECK_ALL", /* 0x00080000 */
2839 "MATCH_UTF8", /* 0x00100000 */
2840 "USE_INTUIT_NOML", /* 0x00200000 */
2841 "USE_INTUIT_ML", /* 0x00400000 */
2842 "INTUIT_TAIL", /* 0x00800000 */
2843 "IS_ANCHORED", /* 0x01000000 */
2844 "COPY_DONE", /* 0x02000000 */
2845 "TAINTED_SEEN", /* 0x04000000 */
2846 "TAINTED", /* 0x08000000 */
2847 "START_ONLY", /* 0x10000000 */
2848 "SKIPWHITE", /* 0x20000000 */
2849 "WHITE", /* 0x40000000 */
2850 "NULL", /* 0x80000000 */
2855 # define REG_EXTFLAGS_NAME_SIZE 32
2858 /* PL_reg_intflags_name[] - Opcode/state names in string form, for debugging */
2861 EXTCONST char * PL_reg_intflags_name[];
2863 EXTCONST char * const PL_reg_intflags_name[] = {
2864 "SKIP", /* 0x00000001 - PREGf_SKIP */
2865 "IMPLICIT", /* 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */
2866 "NAUGHTY", /* 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */
2867 "VERBARG_SEEN", /* 0x00000008 - PREGf_VERBARG_SEEN */
2868 "CUTGROUP_SEEN", /* 0x00000010 - PREGf_CUTGROUP_SEEN */
2869 "USE_RE_EVAL", /* 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */
2870 "NOSCAN", /* 0x00000040 - PREGf_NOSCAN */
2871 "GPOS_SEEN", /* 0x00000100 - PREGf_GPOS_SEEN */
2872 "GPOS_FLOAT", /* 0x00000200 - PREGf_GPOS_FLOAT */
2873 "ANCH_MBOL", /* 0x00000400 - PREGf_ANCH_MBOL */
2874 "ANCH_SBOL", /* 0x00000800 - PREGf_ANCH_SBOL */
2875 "ANCH_GPOS", /* 0x00001000 - PREGf_ANCH_GPOS */
2876 "RECURSE_SEEN", /* 0x00002000 - PREGf_RECURSE_SEEN */
2881 # define REG_INTFLAGS_NAME_SIZE 13
2884 /* The following have no fixed length. U8 so we can do strchr() on it. */
2885 #define REGNODE_VARIES(node) (PL_varies_bitmask[(node) >> 3] & (1 << ((node) & 7)))
2888 EXTCONST U8 PL_varies[] __attribute__deprecated__;
2890 EXTCONST U8 PL_varies[] __attribute__deprecated__ = {
2891 CLUMP, BRANCH, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX, WHILEM, REF,
2892 REFF, REFFL, REFFU, REFFA, REFN, REFFN, REFFLN, REFFUN, REFFAN,
2893 BRANCHJ, SUSPEND, IFTHEN,
2899 EXTCONST U8 PL_varies_bitmask[];
2901 EXTCONST U8 PL_varies_bitmask[] = {
2902 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x1F, 0xFE, 0x97, 0x01, 0x00, 0x00
2906 /* The following always have a length of 1. U8 we can do strchr() on it. */
2907 /* (Note that length 1 means "one character" under UTF8, not "one octet".) */
2908 #define REGNODE_SIMPLE(node) (PL_simple_bitmask[(node) >> 3] & (1 << ((node) & 7)))
2911 EXTCONST U8 PL_simple[] __attribute__deprecated__;
2913 EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
2914 REG_ANY, SANY, ANYOF, ANYOFD, ANYOFL, ANYOFPOSIXL, ANYOFH, ANYOFHb,
2915 ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFHbbm, ANYOFM, NANYOFM, POSIXD,
2916 POSIXL, POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET,
2922 EXTCONST U8 PL_simple_bitmask[];
2924 EXTCONST U8 PL_simple_bitmask[] = {
2925 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80
2929 /* Is 'op', known to be of type EXACT, folding? */
2930 #define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
2932 /* Do only UTF-8 target strings match 'op', known to be of type EXACT? */
2933 #define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
2936 EXTCONST U32 PL_EXACTFish_bitmask;
2937 EXTCONST U32 PL_EXACT_REQ8_bitmask;
2939 EXTCONST U32 PL_EXACTFish_bitmask = 0x33F8;
2940 EXTCONST U32 PL_EXACT_REQ8_bitmask = 0x1E00;
2943 #endif /* defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */