This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix bug in change#3728 that might free COPs prematurely;
[perl5.git] / regnodes.h
CommitLineData
d09b2d29 1/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
885f9e59 2 This file is built by regcomp.pl from regcomp.sym.
d09b2d29
IZ
3 Any changes made here will be lost!
4*/
5
22c35a8c 6#define END 0 /* 0 End of program. */
d09b2d29
IZ
7#define SUCCEED 1 /* 0x1 Return from a subroutine, basically. */
8#define BOL 2 /* 0x2 Match "" at beginning of line. */
9#define MBOL 3 /* 0x3 Same, assuming multiline. */
10#define SBOL 4 /* 0x4 Same, assuming singleline. */
b85d18e9
IZ
11#define EOS 5 /* 0x5 Match "" at end of string. */
12#define EOL 6 /* 0x6 Match "" at end of line. */
13#define MEOL 7 /* 0x7 Same, assuming multiline. */
14#define SEOL 8 /* 0x8 Same, assuming singleline. */
15#define BOUND 9 /* 0x9 Match "" at any word boundary */
a0ed51b3
LW
16#define BOUNDUTF8 10 /* 0xa Match "" at any word boundary */
17#define BOUNDL 11 /* 0xb Match "" at any word boundary */
18#define BOUNDLUTF8 12 /* 0xc Match "" at any word boundary */
19#define NBOUND 13 /* 0xd Match "" at any word non-boundary */
20#define NBOUNDUTF8 14 /* 0xe Match "" at any word non-boundary */
21#define NBOUNDL 15 /* 0xf Match "" at any word non-boundary */
22#define NBOUNDLUTF8 16 /* 0x10 Match "" at any word non-boundary */
23#define GPOS 17 /* 0x11 Matches where last m//g left off. */
22c35a8c 24#define REG_ANY 18 /* 0x12 Match any one character (except newline). */
a0ed51b3
LW
25#define ANYUTF8 19 /* 0x13 Match any one Unicode character (except newline). */
26#define SANY 20 /* 0x14 Match any one character. */
27#define SANYUTF8 21 /* 0x15 Match any one Unicode character. */
28#define ANYOF 22 /* 0x16 Match character in (or not in) this class. */
29#define ANYOFUTF8 23 /* 0x17 Match character in (or not in) this class. */
30#define ALNUM 24 /* 0x18 Match any alphanumeric character */
31#define ALNUMUTF8 25 /* 0x19 Match any alphanumeric character */
32#define ALNUML 26 /* 0x1a Match any alphanumeric char in locale */
33#define ALNUMLUTF8 27 /* 0x1b Match any alphanumeric char in locale */
34#define NALNUM 28 /* 0x1c Match any non-alphanumeric character */
35#define NALNUMUTF8 29 /* 0x1d Match any non-alphanumeric character */
36#define NALNUML 30 /* 0x1e Match any non-alphanumeric char in locale */
37#define NALNUMLUTF8 31 /* 0x1f Match any non-alphanumeric char in locale */
38#define SPACE 32 /* 0x20 Match any whitespace character */
39#define SPACEUTF8 33 /* 0x21 Match any whitespace character */
40#define SPACEL 34 /* 0x22 Match any whitespace char in locale */
41#define SPACELUTF8 35 /* 0x23 Match any whitespace char in locale */
42#define NSPACE 36 /* 0x24 Match any non-whitespace character */
43#define NSPACEUTF8 37 /* 0x25 Match any non-whitespace character */
44#define NSPACEL 38 /* 0x26 Match any non-whitespace char in locale */
45#define NSPACELUTF8 39 /* 0x27 Match any non-whitespace char in locale */
46#define DIGIT 40 /* 0x28 Match any numeric character */
47#define DIGITUTF8 41 /* 0x29 Match any numeric character */
b8c5462f
JH
48#define DIGITL 42 /* 0x2a Match any numeric character in locale */
49#define DIGITLUTF8 43 /* 0x2b Match any numeric character in locale */
50#define NDIGIT 44 /* 0x2c Match any non-numeric character */
51#define NDIGITUTF8 45 /* 0x2d Match any non-numeric character */
52#define NDIGITL 46 /* 0x2e Match any non-numeric character in locale */
53#define NDIGITLUTF8 47 /* 0x2f Match any non-numeric character in locale */
54#define ALNUMC 48 /* 0x30 Match any alphanumeric character */
55#define ALNUMCUTF8 49 /* 0x31 Match any alphanumeric character */
56#define ALNUMCL 50 /* 0x32 Match any alphanumeric character in locale */
57#define ALNUMCLUTF8 51 /* 0x33 Match any alphanumeric character in locale */
58#define NALNUMC 52 /* 0x34 Match any non-alphanumeric character */
59#define NALNUMCUTF8 53 /* 0x35 Match any non-alphanumeric character */
60#define NALNUMCL 54 /* 0x36 Match any non-alphanumeric character in locale */
61#define NALNUMCLUTF8 55 /* 0x37 Match any non-alphanumeric character in locale */
62#define ALPHA 56 /* 0x38 Match any alphabetic character */
63#define ALPHAUTF8 57 /* 0x39 Match any alphabetic character */
64#define ALPHAL 58 /* 0x3a Match any alphabetic character in locale */
65#define ALPHALUTF8 59 /* 0x3b Match any alphabetic character in locale */
66#define NALPHA 60 /* 0x3c Match any non-alphabetic character */
67#define NALPHAUTF8 61 /* 0x3d Match any non-alphabetic character */
68#define NALPHAL 62 /* 0x3e Match any non-alphabetic character in locale */
69#define NALPHALUTF8 63 /* 0x3f Match any non-alphabetic character in locale */
70#define ASCII 64 /* 0x40 Match any ASCII character */
71#define NASCII 65 /* 0x41 Match any non-ASCII character */
72#define CNTRL 66 /* 0x42 Match any control character */
73#define CNTRLUTF8 67 /* 0x43 Match any control character */
74#define CNTRLL 68 /* 0x44 Match any control character in locale */
75#define CNTRLLUTF8 69 /* 0x45 Match any control character in locale */
76#define NCNTRL 70 /* 0x46 Match any non-control character */
77#define NCNTRLUTF8 71 /* 0x47 Match any non-control character */
78#define NCNTRLL 72 /* 0x48 Match any non-control character in locale */
79#define NCNTRLLUTF8 73 /* 0x49 Match any non-control character in locale */
80#define GRAPH 74 /* 0x4a Match any graphical character */
81#define GRAPHUTF8 75 /* 0x4b Match any graphical character */
82#define GRAPHL 76 /* 0x4c Match any graphical character in locale */
83#define GRAPHLUTF8 77 /* 0x4d Match any graphical character in locale */
84#define NGRAPH 78 /* 0x4e Match any non-graphical character */
85#define NGRAPHUTF8 79 /* 0x4f Match any non-graphical character */
86#define NGRAPHL 80 /* 0x50 Match any non-graphical character in locale */
87#define NGRAPHLUTF8 81 /* 0x51 Match any non-graphical character in locale */
88#define LOWER 82 /* 0x52 Match any lowercase character */
89#define LOWERUTF8 83 /* 0x53 Match any lowercase character */
90#define LOWERL 84 /* 0x54 Match any lowercase character in locale */
91#define LOWERLUTF8 85 /* 0x55 Match any lowercase character in locale */
92#define NLOWER 86 /* 0x56 Match any non-lowercase character */
93#define NLOWERUTF8 87 /* 0x57 Match any non-lowercase character */
94#define NLOWERL 88 /* 0x58 Match any non-lowercase character in locale */
95#define NLOWERLUTF8 89 /* 0x59 Match any non-lowercase character in locale */
96#define PRINT 90 /* 0x5a Match any printable character */
97#define PRINTUTF8 91 /* 0x5b Match any printable character */
98#define PRINTL 92 /* 0x5c Match any printable character in locale */
99#define PRINTLUTF8 93 /* 0x5d Match any printable character in locale */
100#define NPRINT 94 /* 0x5e Match any non-printable character */
101#define NPRINTUTF8 95 /* 0x5f Match any non-printable character */
102#define NPRINTL 96 /* 0x60 Match any non-printable character in locale */
103#define NPRINTLUTF8 97 /* 0x61 Match any non-printable character in locale */
104#define PUNCT 98 /* 0x62 Match any punctuation character */
105#define PUNCTUTF8 99 /* 0x63 Match any punctuation character */
106#define PUNCTL 100 /* 0x64 Match any punctuation character in locale */
107#define PUNCTLUTF8 101 /* 0x65 Match any punctuation character in locale */
108#define NPUNCT 102 /* 0x66 Match any non-punctuation character */
109#define NPUNCTUTF8 103 /* 0x67 Match any non-punctuation character */
110#define NPUNCTL 104 /* 0x68 Match any non-punctuation character in locale */
111#define NPUNCTLUTF8 105 /* 0x69 Match any non-punctuation character in locale */
112#define UPPER 106 /* 0x6a Match any uppercase character */
113#define UPPERUTF8 107 /* 0x6b Match any uppercase character */
114#define UPPERL 108 /* 0x6c Match any uppercase character in locale */
115#define UPPERLUTF8 109 /* 0x6d Match any uppercase character in locale */
116#define NUPPER 110 /* 0x6e Match any non-uppercase character */
117#define NUPPERUTF8 111 /* 0x6f Match any non-uppercase character */
118#define NUPPERL 112 /* 0x70 Match any non-uppercase character in locale */
119#define NUPPERLUTF8 113 /* 0x71 Match any non-uppercase character in locale */
120#define XDIGIT 114 /* 0x72 Match any hexdigit character */
121#define NXDIGIT 115 /* 0x73 Match any non-hexdigit character */
122#define CLUMP 116 /* 0x74 Match any combining character sequence */
123#define BRANCH 117 /* 0x75 Match this alternative, or the next... */
124#define BACK 118 /* 0x76 Match "", "next" ptr points backward. */
125#define EXACT 119 /* 0x77 Match this string (preceded by length). */
126#define EXACTF 120 /* 0x78 Match this string, folded (prec. by length). */
127#define EXACTFL 121 /* 0x79 Match this string, folded in locale (w/len). */
128#define NOTHING 122 /* 0x7a Match empty string. */
129#define TAIL 123 /* 0x7b Match empty string. Can jump here from outside. */
130#define STAR 124 /* 0x7c Match this (simple) thing 0 or more times. */
131#define PLUS 125 /* 0x7d Match this (simple) thing 1 or more times. */
132#define CURLY 126 /* 0x7e Match this simple thing {n,m} times. */
133#define CURLYN 127 /* 0x7f Match next-after-this simple thing */
134#define CURLYM 128 /* 0x80 Match this medium-complex thing {n,m} times. */
135#define CURLYX 129 /* 0x81 Match this complex thing {n,m} times. */
136#define WHILEM 130 /* 0x82 Do curly processing and see if rest matches. */
137#define OPEN 131 /* 0x83 Mark this point in input as start of #n. */
138#define CLOSE 132 /* 0x84 Analogous to OPEN. */
139#define REF 133 /* 0x85 Match some already matched string */
140#define REFF 134 /* 0x86 Match already matched string, folded */
141#define REFFL 135 /* 0x87 Match already matched string, folded in loc. */
142#define IFMATCH 136 /* 0x88 Succeeds if the following matches. */
143#define UNLESSM 137 /* 0x89 Fails if the following matches. */
144#define SUSPEND 138 /* 0x8a "Independent" sub-RE. */
145#define IFTHEN 139 /* 0x8b Switch, should be preceeded by switcher . */
146#define GROUPP 140 /* 0x8c Whether the group matched. */
147#define LONGJMP 141 /* 0x8d Jump far away. */
148#define BRANCHJ 142 /* 0x8e BRANCH with long offset. */
149#define EVAL 143 /* 0x8f Execute some Perl code. */
150#define MINMOD 144 /* 0x90 Next operator is not greedy. */
151#define LOGICAL 145 /* 0x91 Next opcode should set the flag only. */
152#define RENUM 146 /* 0x92 Group with independently numbered parens. */
153#define OPTIMIZED 147 /* 0x93 Placeholder for dump. */
d09b2d29
IZ
154
155#ifndef DOINIT
22c35a8c 156EXTCONST U8 PL_regkind[];
d09b2d29 157#else
22c35a8c 158EXTCONST U8 PL_regkind[] = {
d09b2d29
IZ
159 END, /* END */
160 END, /* SUCCEED */
161 BOL, /* BOL */
162 BOL, /* MBOL */
163 BOL, /* SBOL */
b85d18e9 164 EOL, /* EOS */
d09b2d29
IZ
165 EOL, /* EOL */
166 EOL, /* MEOL */
167 EOL, /* SEOL */
168 BOUND, /* BOUND */
a0ed51b3 169 BOUND, /* BOUNDUTF8 */
d09b2d29 170 BOUND, /* BOUNDL */
a0ed51b3 171 BOUND, /* BOUNDLUTF8 */
d09b2d29 172 NBOUND, /* NBOUND */
a0ed51b3 173 NBOUND, /* NBOUNDUTF8 */
d09b2d29 174 NBOUND, /* NBOUNDL */
a0ed51b3 175 NBOUND, /* NBOUNDLUTF8 */
d09b2d29 176 GPOS, /* GPOS */
22c35a8c
GS
177 REG_ANY, /* REG_ANY */
178 REG_ANY, /* ANYUTF8 */
179 REG_ANY, /* SANY */
180 REG_ANY, /* SANYUTF8 */
d09b2d29 181 ANYOF, /* ANYOF */
a0ed51b3 182 ANYOF, /* ANYOFUTF8 */
d09b2d29 183 ALNUM, /* ALNUM */
a0ed51b3 184 ALNUM, /* ALNUMUTF8 */
d09b2d29 185 ALNUM, /* ALNUML */
a0ed51b3 186 ALNUM, /* ALNUMLUTF8 */
d09b2d29 187 NALNUM, /* NALNUM */
a0ed51b3 188 NALNUM, /* NALNUMUTF8 */
d09b2d29 189 NALNUM, /* NALNUML */
a0ed51b3 190 NALNUM, /* NALNUMLUTF8 */
d09b2d29 191 SPACE, /* SPACE */
a0ed51b3 192 SPACE, /* SPACEUTF8 */
d09b2d29 193 SPACE, /* SPACEL */
a0ed51b3 194 SPACE, /* SPACELUTF8 */
d09b2d29 195 NSPACE, /* NSPACE */
a0ed51b3 196 NSPACE, /* NSPACEUTF8 */
d09b2d29 197 NSPACE, /* NSPACEL */
a0ed51b3 198 NSPACE, /* NSPACELUTF8 */
d09b2d29 199 DIGIT, /* DIGIT */
a0ed51b3 200 DIGIT, /* DIGITUTF8 */
b8c5462f
JH
201 DIGIT, /* DIGITL */
202 DIGIT, /* DIGITLUTF8 */
d09b2d29 203 NDIGIT, /* NDIGIT */
a0ed51b3 204 NDIGIT, /* NDIGITUTF8 */
b8c5462f
JH
205 NDIGIT, /* NDIGITL */
206 NDIGIT, /* NDIGITLUTF8 */
207 ALNUMC, /* ALNUMC */
208 ALNUMC, /* ALNUMCUTF8 */
209 ALNUMC, /* ALNUMCL */
210 ALNUMC, /* ALNUMCLUTF8 */
211 NALNUMC, /* NALNUMC */
212 NALNUMC, /* NALNUMCUTF8 */
213 NALNUMC, /* NALNUMCL */
214 NALNUMC, /* NALNUMCLUTF8 */
215 ALPHA, /* ALPHA */
216 ALPHA, /* ALPHAUTF8 */
217 ALPHA, /* ALPHAL */
218 ALPHA, /* ALPHALUTF8 */
219 NALPHA, /* NALPHA */
220 NALPHA, /* NALPHAUTF8 */
221 NALPHA, /* NALPHAL */
222 NALPHA, /* NALPHALUTF8 */
223 ASCII, /* ASCII */
224 NASCII, /* NASCII */
225 CNTRL, /* CNTRL */
226 CNTRL, /* CNTRLUTF8 */
227 CNTRL, /* CNTRLL */
228 CNTRL, /* CNTRLLUTF8 */
229 NCNTRL, /* NCNTRL */
230 NCNTRL, /* NCNTRLUTF8 */
231 NCNTRL, /* NCNTRLL */
232 NCNTRL, /* NCNTRLLUTF8 */
233 GRAPH, /* GRAPH */
234 GRAPH, /* GRAPHUTF8 */
235 GRAPH, /* GRAPHL */
236 GRAPH, /* GRAPHLUTF8 */
237 NGRAPH, /* NGRAPH */
238 NGRAPH, /* NGRAPHUTF8 */
239 NGRAPH, /* NGRAPHL */
240 NGRAPH, /* NGRAPHLUTF8 */
241 LOWER, /* LOWER */
242 LOWER, /* LOWERUTF8 */
243 LOWER, /* LOWERL */
244 LOWER, /* LOWERLUTF8 */
245 NLOWER, /* NLOWER */
246 NLOWER, /* NLOWERUTF8 */
247 NLOWER, /* NLOWERL */
248 NLOWER, /* NLOWERLUTF8 */
249 PRINT, /* PRINT */
250 PRINT, /* PRINTUTF8 */
251 PRINT, /* PRINTL */
252 PRINT, /* PRINTLUTF8 */
253 NPRINT, /* NPRINT */
254 NPRINT, /* NPRINTUTF8 */
255 NPRINT, /* NPRINTL */
256 NPRINT, /* NPRINTLUTF8 */
257 PUNCT, /* PUNCT */
258 PUNCT, /* PUNCTUTF8 */
259 PUNCT, /* PUNCTL */
260 PUNCT, /* PUNCTLUTF8 */
261 NPUNCT, /* NPUNCT */
262 NPUNCT, /* NPUNCTUTF8 */
263 NPUNCT, /* NPUNCTL */
264 NPUNCT, /* NPUNCTLUTF8 */
265 UPPER, /* UPPER */
266 UPPER, /* UPPERUTF8 */
267 UPPER, /* UPPERL */
268 UPPER, /* UPPERLUTF8 */
269 NUPPER, /* NUPPER */
270 NUPPER, /* NUPPERUTF8 */
271 NUPPER, /* NUPPERL */
272 NUPPER, /* NUPPERLUTF8 */
273 XDIGIT, /* XDIGIT */
274 NXDIGIT, /* NXDIGIT */
a0ed51b3 275 CLUMP, /* CLUMP */
d09b2d29
IZ
276 BRANCH, /* BRANCH */
277 BACK, /* BACK */
278 EXACT, /* EXACT */
279 EXACT, /* EXACTF */
280 EXACT, /* EXACTFL */
281 NOTHING, /* NOTHING */
282 NOTHING, /* TAIL */
283 STAR, /* STAR */
284 PLUS, /* PLUS */
285 CURLY, /* CURLY */
286 CURLY, /* CURLYN */
287 CURLY, /* CURLYM */
288 CURLY, /* CURLYX */
289 WHILEM, /* WHILEM */
290 OPEN, /* OPEN */
291 CLOSE, /* CLOSE */
292 REF, /* REF */
293 REF, /* REFF */
294 REF, /* REFFL */
295 BRANCHJ, /* IFMATCH */
296 BRANCHJ, /* UNLESSM */
297 BRANCHJ, /* SUSPEND */
298 BRANCHJ, /* IFTHEN */
299 GROUPP, /* GROUPP */
300 LONGJMP, /* LONGJMP */
301 BRANCHJ, /* BRANCHJ */
302 EVAL, /* EVAL */
303 MINMOD, /* MINMOD */
304 LOGICAL, /* LOGICAL */
305 BRANCHJ, /* RENUM */
306 NOTHING, /* OPTIMIZED */
307};
308#endif
309
310
311#ifdef REG_COMP_C
312const static U8 regarglen[] = {
313 0, /* END */
314 0, /* SUCCEED */
315 0, /* BOL */
316 0, /* MBOL */
317 0, /* SBOL */
b85d18e9 318 0, /* EOS */
d09b2d29
IZ
319 0, /* EOL */
320 0, /* MEOL */
321 0, /* SEOL */
322 0, /* BOUND */
a0ed51b3 323 0, /* BOUNDUTF8 */
d09b2d29 324 0, /* BOUNDL */
a0ed51b3 325 0, /* BOUNDLUTF8 */
d09b2d29 326 0, /* NBOUND */
a0ed51b3 327 0, /* NBOUNDUTF8 */
d09b2d29 328 0, /* NBOUNDL */
a0ed51b3 329 0, /* NBOUNDLUTF8 */
d09b2d29 330 0, /* GPOS */
22c35a8c 331 0, /* REG_ANY */
a0ed51b3 332 0, /* ANYUTF8 */
d09b2d29 333 0, /* SANY */
a0ed51b3 334 0, /* SANYUTF8 */
d09b2d29 335 0, /* ANYOF */
a0ed51b3 336 EXTRA_SIZE(struct regnode_1), /* ANYOFUTF8 */
d09b2d29 337 0, /* ALNUM */
a0ed51b3 338 0, /* ALNUMUTF8 */
d09b2d29 339 0, /* ALNUML */
a0ed51b3 340 0, /* ALNUMLUTF8 */
d09b2d29 341 0, /* NALNUM */
a0ed51b3 342 0, /* NALNUMUTF8 */
d09b2d29 343 0, /* NALNUML */
a0ed51b3 344 0, /* NALNUMLUTF8 */
d09b2d29 345 0, /* SPACE */
a0ed51b3 346 0, /* SPACEUTF8 */
d09b2d29 347 0, /* SPACEL */
a0ed51b3 348 0, /* SPACELUTF8 */
d09b2d29 349 0, /* NSPACE */
a0ed51b3 350 0, /* NSPACEUTF8 */
d09b2d29 351 0, /* NSPACEL */
a0ed51b3 352 0, /* NSPACELUTF8 */
d09b2d29 353 0, /* DIGIT */
a0ed51b3 354 0, /* DIGITUTF8 */
b8c5462f
JH
355 0, /* DIGITL */
356 0, /* DIGITLUTF8 */
d09b2d29 357 0, /* NDIGIT */
a0ed51b3 358 0, /* NDIGITUTF8 */
b8c5462f
JH
359 0, /* NDIGITL */
360 0, /* NDIGITLUTF8 */
361 0, /* ALNUMC */
362 0, /* ALNUMCUTF8 */
363 0, /* ALNUMCL */
364 0, /* ALNUMCLUTF8 */
365 0, /* NALNUMC */
366 0, /* NALNUMCUTF8 */
367 0, /* NALNUMCL */
368 0, /* NALNUMCLUTF8 */
369 0, /* ALPHA */
370 0, /* ALPHAUTF8 */
371 0, /* ALPHAL */
372 0, /* ALPHALUTF8 */
373 0, /* NALPHA */
374 0, /* NALPHAUTF8 */
375 0, /* NALPHAL */
376 0, /* NALPHALUTF8 */
377 0, /* ASCII */
378 0, /* NASCII */
379 0, /* CNTRL */
380 0, /* CNTRLUTF8 */
381 0, /* CNTRLL */
382 0, /* CNTRLLUTF8 */
383 0, /* NCNTRL */
384 0, /* NCNTRLUTF8 */
385 0, /* NCNTRLL */
386 0, /* NCNTRLLUTF8 */
387 0, /* GRAPH */
388 0, /* GRAPHUTF8 */
389 0, /* GRAPHL */
390 0, /* GRAPHLUTF8 */
391 0, /* NGRAPH */
392 0, /* NGRAPHUTF8 */
393 0, /* NGRAPHL */
394 0, /* NGRAPHLUTF8 */
395 0, /* LOWER */
396 0, /* LOWERUTF8 */
397 0, /* LOWERL */
398 0, /* LOWERLUTF8 */
399 0, /* NLOWER */
400 0, /* NLOWERUTF8 */
401 0, /* NLOWERL */
402 0, /* NLOWERLUTF8 */
403 0, /* PRINT */
404 0, /* PRINTUTF8 */
405 0, /* PRINTL */
406 0, /* PRINTLUTF8 */
407 0, /* NPRINT */
408 0, /* NPRINTUTF8 */
409 0, /* NPRINTL */
410 0, /* NPRINTLUTF8 */
411 0, /* PUNCT */
412 0, /* PUNCTUTF8 */
413 0, /* PUNCTL */
414 0, /* PUNCTLUTF8 */
415 0, /* NPUNCT */
416 0, /* NPUNCTUTF8 */
417 0, /* NPUNCTL */
418 0, /* NPUNCTLUTF8 */
419 0, /* UPPER */
420 0, /* UPPERUTF8 */
421 0, /* UPPERL */
422 0, /* UPPERLUTF8 */
423 0, /* NUPPER */
424 0, /* NUPPERUTF8 */
425 0, /* NUPPERL */
426 0, /* NUPPERLUTF8 */
427 0, /* XDIGIT */
428 0, /* NXDIGIT */
a0ed51b3 429 0, /* CLUMP */
d09b2d29
IZ
430 0, /* BRANCH */
431 0, /* BACK */
432 0, /* EXACT */
433 0, /* EXACTF */
434 0, /* EXACTFL */
435 0, /* NOTHING */
436 0, /* TAIL */
437 0, /* STAR */
438 0, /* PLUS */
439 EXTRA_SIZE(struct regnode_2), /* CURLY */
440 EXTRA_SIZE(struct regnode_2), /* CURLYN */
441 EXTRA_SIZE(struct regnode_2), /* CURLYM */
442 EXTRA_SIZE(struct regnode_2), /* CURLYX */
443 0, /* WHILEM */
444 EXTRA_SIZE(struct regnode_1), /* OPEN */
445 EXTRA_SIZE(struct regnode_1), /* CLOSE */
446 EXTRA_SIZE(struct regnode_1), /* REF */
447 EXTRA_SIZE(struct regnode_1), /* REFF */
448 EXTRA_SIZE(struct regnode_1), /* REFFL */
449 EXTRA_SIZE(struct regnode_1), /* IFMATCH */
450 EXTRA_SIZE(struct regnode_1), /* UNLESSM */
451 EXTRA_SIZE(struct regnode_1), /* SUSPEND */
452 EXTRA_SIZE(struct regnode_1), /* IFTHEN */
453 EXTRA_SIZE(struct regnode_1), /* GROUPP */
454 EXTRA_SIZE(struct regnode_1), /* LONGJMP */
455 EXTRA_SIZE(struct regnode_1), /* BRANCHJ */
456 EXTRA_SIZE(struct regnode_1), /* EVAL */
457 0, /* MINMOD */
458 0, /* LOGICAL */
459 EXTRA_SIZE(struct regnode_1), /* RENUM */
460 0, /* OPTIMIZED */
461};
462
463const static char reg_off_by_arg[] = {
464 0, /* END */
465 0, /* SUCCEED */
466 0, /* BOL */
467 0, /* MBOL */
468 0, /* SBOL */
b85d18e9 469 0, /* EOS */
d09b2d29
IZ
470 0, /* EOL */
471 0, /* MEOL */
472 0, /* SEOL */
473 0, /* BOUND */
a0ed51b3 474 0, /* BOUNDUTF8 */
d09b2d29 475 0, /* BOUNDL */
a0ed51b3 476 0, /* BOUNDLUTF8 */
d09b2d29 477 0, /* NBOUND */
a0ed51b3 478 0, /* NBOUNDUTF8 */
d09b2d29 479 0, /* NBOUNDL */
a0ed51b3 480 0, /* NBOUNDLUTF8 */
d09b2d29 481 0, /* GPOS */
22c35a8c 482 0, /* REG_ANY */
a0ed51b3 483 0, /* ANYUTF8 */
d09b2d29 484 0, /* SANY */
a0ed51b3 485 0, /* SANYUTF8 */
d09b2d29 486 0, /* ANYOF */
a0ed51b3 487 0, /* ANYOFUTF8 */
d09b2d29 488 0, /* ALNUM */
a0ed51b3 489 0, /* ALNUMUTF8 */
d09b2d29 490 0, /* ALNUML */
a0ed51b3 491 0, /* ALNUMLUTF8 */
d09b2d29 492 0, /* NALNUM */
a0ed51b3 493 0, /* NALNUMUTF8 */
d09b2d29 494 0, /* NALNUML */
a0ed51b3 495 0, /* NALNUMLUTF8 */
d09b2d29 496 0, /* SPACE */
a0ed51b3 497 0, /* SPACEUTF8 */
d09b2d29 498 0, /* SPACEL */
a0ed51b3 499 0, /* SPACELUTF8 */
d09b2d29 500 0, /* NSPACE */
a0ed51b3 501 0, /* NSPACEUTF8 */
d09b2d29 502 0, /* NSPACEL */
a0ed51b3 503 0, /* NSPACELUTF8 */
d09b2d29 504 0, /* DIGIT */
a0ed51b3 505 0, /* DIGITUTF8 */
b8c5462f
JH
506 0, /* DIGITL */
507 0, /* DIGITLUTF8 */
d09b2d29 508 0, /* NDIGIT */
a0ed51b3 509 0, /* NDIGITUTF8 */
b8c5462f
JH
510 0, /* NDIGITL */
511 0, /* NDIGITLUTF8 */
512 0, /* ALNUMC */
513 0, /* ALNUMCUTF8 */
514 0, /* ALNUMCL */
515 0, /* ALNUMCLUTF8 */
516 0, /* NALNUMC */
517 0, /* NALNUMCUTF8 */
518 0, /* NALNUMCL */
519 0, /* NALNUMCLUTF8 */
520 0, /* ALPHA */
521 0, /* ALPHAUTF8 */
522 0, /* ALPHAL */
523 0, /* ALPHALUTF8 */
524 0, /* NALPHA */
525 0, /* NALPHAUTF8 */
526 0, /* NALPHAL */
527 0, /* NALPHALUTF8 */
528 0, /* ASCII */
529 0, /* NASCII */
530 0, /* CNTRL */
531 0, /* CNTRLUTF8 */
532 0, /* CNTRLL */
533 0, /* CNTRLLUTF8 */
534 0, /* NCNTRL */
535 0, /* NCNTRLUTF8 */
536 0, /* NCNTRLL */
537 0, /* NCNTRLLUTF8 */
538 0, /* GRAPH */
539 0, /* GRAPHUTF8 */
540 0, /* GRAPHL */
541 0, /* GRAPHLUTF8 */
542 0, /* NGRAPH */
543 0, /* NGRAPHUTF8 */
544 0, /* NGRAPHL */
545 0, /* NGRAPHLUTF8 */
546 0, /* LOWER */
547 0, /* LOWERUTF8 */
548 0, /* LOWERL */
549 0, /* LOWERLUTF8 */
550 0, /* NLOWER */
551 0, /* NLOWERUTF8 */
552 0, /* NLOWERL */
553 0, /* NLOWERLUTF8 */
554 0, /* PRINT */
555 0, /* PRINTUTF8 */
556 0, /* PRINTL */
557 0, /* PRINTLUTF8 */
558 0, /* NPRINT */
559 0, /* NPRINTUTF8 */
560 0, /* NPRINTL */
561 0, /* NPRINTLUTF8 */
562 0, /* PUNCT */
563 0, /* PUNCTUTF8 */
564 0, /* PUNCTL */
565 0, /* PUNCTLUTF8 */
566 0, /* NPUNCT */
567 0, /* NPUNCTUTF8 */
568 0, /* NPUNCTL */
569 0, /* NPUNCTLUTF8 */
570 0, /* UPPER */
571 0, /* UPPERUTF8 */
572 0, /* UPPERL */
573 0, /* UPPERLUTF8 */
574 0, /* NUPPER */
575 0, /* NUPPERUTF8 */
576 0, /* NUPPERL */
577 0, /* NUPPERLUTF8 */
578 0, /* XDIGIT */
579 0, /* NXDIGIT */
a0ed51b3 580 0, /* CLUMP */
d09b2d29
IZ
581 0, /* BRANCH */
582 0, /* BACK */
583 0, /* EXACT */
584 0, /* EXACTF */
585 0, /* EXACTFL */
586 0, /* NOTHING */
587 0, /* TAIL */
588 0, /* STAR */
589 0, /* PLUS */
590 0, /* CURLY */
591 0, /* CURLYN */
592 0, /* CURLYM */
593 0, /* CURLYX */
594 0, /* WHILEM */
595 0, /* OPEN */
596 0, /* CLOSE */
597 0, /* REF */
598 0, /* REFF */
599 0, /* REFFL */
600 2, /* IFMATCH */
601 2, /* UNLESSM */
602 1, /* SUSPEND */
603 1, /* IFTHEN */
604 0, /* GROUPP */
605 1, /* LONGJMP */
606 1, /* BRANCHJ */
607 0, /* EVAL */
608 0, /* MINMOD */
609 0, /* LOGICAL */
610 1, /* RENUM */
611 0, /* OPTIMIZED */
612};
885f9e59
GS
613
614#ifdef DEBUGGING
615const static char * const reg_name[] = {
616 "END", /* 0 */
617 "SUCCEED", /* 0x1 */
618 "BOL", /* 0x2 */
619 "MBOL", /* 0x3 */
620 "SBOL", /* 0x4 */
621 "EOS", /* 0x5 */
622 "EOL", /* 0x6 */
623 "MEOL", /* 0x7 */
624 "SEOL", /* 0x8 */
625 "BOUND", /* 0x9 */
626 "BOUNDUTF8", /* 0xa */
627 "BOUNDL", /* 0xb */
628 "BOUNDLUTF8", /* 0xc */
629 "NBOUND", /* 0xd */
630 "NBOUNDUTF8", /* 0xe */
631 "NBOUNDL", /* 0xf */
632 "NBOUNDLUTF8", /* 0x10 */
633 "GPOS", /* 0x11 */
634 "REG_ANY", /* 0x12 */
635 "ANYUTF8", /* 0x13 */
636 "SANY", /* 0x14 */
637 "SANYUTF8", /* 0x15 */
638 "ANYOF", /* 0x16 */
639 "ANYOFUTF8", /* 0x17 */
640 "ALNUM", /* 0x18 */
641 "ALNUMUTF8", /* 0x19 */
642 "ALNUML", /* 0x1a */
643 "ALNUMLUTF8", /* 0x1b */
644 "NALNUM", /* 0x1c */
645 "NALNUMUTF8", /* 0x1d */
646 "NALNUML", /* 0x1e */
647 "NALNUMLUTF8", /* 0x1f */
648 "SPACE", /* 0x20 */
649 "SPACEUTF8", /* 0x21 */
650 "SPACEL", /* 0x22 */
651 "SPACELUTF8", /* 0x23 */
652 "NSPACE", /* 0x24 */
653 "NSPACEUTF8", /* 0x25 */
654 "NSPACEL", /* 0x26 */
655 "NSPACELUTF8", /* 0x27 */
656 "DIGIT", /* 0x28 */
657 "DIGITUTF8", /* 0x29 */
b8c5462f
JH
658 "DIGITL", /* 0x2a */
659 "DIGITLUTF8", /* 0x2b */
660 "NDIGIT", /* 0x2c */
661 "NDIGITUTF8", /* 0x2d */
662 "NDIGITL", /* 0x2e */
663 "NDIGITLUTF8", /* 0x2f */
664 "ALNUMC", /* 0x30 */
665 "ALNUMCUTF8", /* 0x31 */
666 "ALNUMCL", /* 0x32 */
667 "ALNUMCLUTF8", /* 0x33 */
668 "NALNUMC", /* 0x34 */
669 "NALNUMCUTF8", /* 0x35 */
670 "NALNUMCL", /* 0x36 */
671 "NALNUMCLUTF8", /* 0x37 */
672 "ALPHA", /* 0x38 */
673 "ALPHAUTF8", /* 0x39 */
674 "ALPHAL", /* 0x3a */
675 "ALPHALUTF8", /* 0x3b */
676 "NALPHA", /* 0x3c */
677 "NALPHAUTF8", /* 0x3d */
678 "NALPHAL", /* 0x3e */
679 "NALPHALUTF8", /* 0x3f */
680 "ASCII", /* 0x40 */
681 "NASCII", /* 0x41 */
682 "CNTRL", /* 0x42 */
683 "CNTRLUTF8", /* 0x43 */
684 "CNTRLL", /* 0x44 */
685 "CNTRLLUTF8", /* 0x45 */
686 "NCNTRL", /* 0x46 */
687 "NCNTRLUTF8", /* 0x47 */
688 "NCNTRLL", /* 0x48 */
689 "NCNTRLLUTF8", /* 0x49 */
690 "GRAPH", /* 0x4a */
691 "GRAPHUTF8", /* 0x4b */
692 "GRAPHL", /* 0x4c */
693 "GRAPHLUTF8", /* 0x4d */
694 "NGRAPH", /* 0x4e */
695 "NGRAPHUTF8", /* 0x4f */
696 "NGRAPHL", /* 0x50 */
697 "NGRAPHLUTF8", /* 0x51 */
698 "LOWER", /* 0x52 */
699 "LOWERUTF8", /* 0x53 */
700 "LOWERL", /* 0x54 */
701 "LOWERLUTF8", /* 0x55 */
702 "NLOWER", /* 0x56 */
703 "NLOWERUTF8", /* 0x57 */
704 "NLOWERL", /* 0x58 */
705 "NLOWERLUTF8", /* 0x59 */
706 "PRINT", /* 0x5a */
707 "PRINTUTF8", /* 0x5b */
708 "PRINTL", /* 0x5c */
709 "PRINTLUTF8", /* 0x5d */
710 "NPRINT", /* 0x5e */
711 "NPRINTUTF8", /* 0x5f */
712 "NPRINTL", /* 0x60 */
713 "NPRINTLUTF8", /* 0x61 */
714 "PUNCT", /* 0x62 */
715 "PUNCTUTF8", /* 0x63 */
716 "PUNCTL", /* 0x64 */
717 "PUNCTLUTF8", /* 0x65 */
718 "NPUNCT", /* 0x66 */
719 "NPUNCTUTF8", /* 0x67 */
720 "NPUNCTL", /* 0x68 */
721 "NPUNCTLUTF8", /* 0x69 */
722 "UPPER", /* 0x6a */
723 "UPPERUTF8", /* 0x6b */
724 "UPPERL", /* 0x6c */
725 "UPPERLUTF8", /* 0x6d */
726 "NUPPER", /* 0x6e */
727 "NUPPERUTF8", /* 0x6f */
728 "NUPPERL", /* 0x70 */
729 "NUPPERLUTF8", /* 0x71 */
730 "XDIGIT", /* 0x72 */
731 "NXDIGIT", /* 0x73 */
732 "CLUMP", /* 0x74 */
733 "BRANCH", /* 0x75 */
734 "BACK", /* 0x76 */
735 "EXACT", /* 0x77 */
736 "EXACTF", /* 0x78 */
737 "EXACTFL", /* 0x79 */
738 "NOTHING", /* 0x7a */
739 "TAIL", /* 0x7b */
740 "STAR", /* 0x7c */
741 "PLUS", /* 0x7d */
742 "CURLY", /* 0x7e */
743 "CURLYN", /* 0x7f */
744 "CURLYM", /* 0x80 */
745 "CURLYX", /* 0x81 */
746 "WHILEM", /* 0x82 */
747 "OPEN", /* 0x83 */
748 "CLOSE", /* 0x84 */
749 "REF", /* 0x85 */
750 "REFF", /* 0x86 */
751 "REFFL", /* 0x87 */
752 "IFMATCH", /* 0x88 */
753 "UNLESSM", /* 0x89 */
754 "SUSPEND", /* 0x8a */
755 "IFTHEN", /* 0x8b */
756 "GROUPP", /* 0x8c */
757 "LONGJMP", /* 0x8d */
758 "BRANCHJ", /* 0x8e */
759 "EVAL", /* 0x8f */
760 "MINMOD", /* 0x90 */
761 "LOGICAL", /* 0x91 */
762 "RENUM", /* 0x92 */
763 "OPTIMIZED", /* 0x93 */
885f9e59
GS
764};
765
b8c5462f 766const static int reg_num = 148;
885f9e59
GS
767
768#endif /* DEBUGGING */
d09b2d29
IZ
769#endif /* REG_COMP_C */
770