This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Avoid core dumps resulting from humongous array indices
[perl5.git] / regnodes.h
1 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
2    This file is built by regcomp.pl from regcomp.sym.
3    Any changes made here will be lost!
4 */
5
6 #define END     0       /*    0 End of program. */
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. */
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 */
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. */
24 #define REG_ANY 18      /* 0x12 Match any one character (except newline). */
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 */
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. */
154
155 #ifndef DOINIT
156 EXTCONST U8 PL_regkind[];
157 #else
158 EXTCONST U8 PL_regkind[] = {
159         END,            /* END */
160         END,            /* SUCCEED */
161         BOL,            /* BOL */
162         BOL,            /* MBOL */
163         BOL,            /* SBOL */
164         EOL,            /* EOS */
165         EOL,            /* EOL */
166         EOL,            /* MEOL */
167         EOL,            /* SEOL */
168         BOUND,          /* BOUND */
169         BOUND,          /* BOUNDUTF8 */
170         BOUND,          /* BOUNDL */
171         BOUND,          /* BOUNDLUTF8 */
172         NBOUND,         /* NBOUND */
173         NBOUND,         /* NBOUNDUTF8 */
174         NBOUND,         /* NBOUNDL */
175         NBOUND,         /* NBOUNDLUTF8 */
176         GPOS,           /* GPOS */
177         REG_ANY,                /* REG_ANY */
178         REG_ANY,                /* ANYUTF8 */
179         REG_ANY,                /* SANY */
180         REG_ANY,                /* SANYUTF8 */
181         ANYOF,          /* ANYOF */
182         ANYOF,          /* ANYOFUTF8 */
183         ALNUM,          /* ALNUM */
184         ALNUM,          /* ALNUMUTF8 */
185         ALNUM,          /* ALNUML */
186         ALNUM,          /* ALNUMLUTF8 */
187         NALNUM,         /* NALNUM */
188         NALNUM,         /* NALNUMUTF8 */
189         NALNUM,         /* NALNUML */
190         NALNUM,         /* NALNUMLUTF8 */
191         SPACE,          /* SPACE */
192         SPACE,          /* SPACEUTF8 */
193         SPACE,          /* SPACEL */
194         SPACE,          /* SPACELUTF8 */
195         NSPACE,         /* NSPACE */
196         NSPACE,         /* NSPACEUTF8 */
197         NSPACE,         /* NSPACEL */
198         NSPACE,         /* NSPACELUTF8 */
199         DIGIT,          /* DIGIT */
200         DIGIT,          /* DIGITUTF8 */
201         DIGIT,          /* DIGITL */
202         DIGIT,          /* DIGITLUTF8 */
203         NDIGIT,         /* NDIGIT */
204         NDIGIT,         /* NDIGITUTF8 */
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 */
275         CLUMP,          /* CLUMP */
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
312 const static U8 regarglen[] = {
313         0,              /* END */
314         0,              /* SUCCEED */
315         0,              /* BOL */
316         0,              /* MBOL */
317         0,              /* SBOL */
318         0,              /* EOS */
319         0,              /* EOL */
320         0,              /* MEOL */
321         0,              /* SEOL */
322         0,              /* BOUND */
323         0,              /* BOUNDUTF8 */
324         0,              /* BOUNDL */
325         0,              /* BOUNDLUTF8 */
326         0,              /* NBOUND */
327         0,              /* NBOUNDUTF8 */
328         0,              /* NBOUNDL */
329         0,              /* NBOUNDLUTF8 */
330         0,              /* GPOS */
331         0,              /* REG_ANY */
332         0,              /* ANYUTF8 */
333         0,              /* SANY */
334         0,              /* SANYUTF8 */
335         0,              /* ANYOF */
336         EXTRA_SIZE(struct regnode_1),           /* ANYOFUTF8 */
337         0,              /* ALNUM */
338         0,              /* ALNUMUTF8 */
339         0,              /* ALNUML */
340         0,              /* ALNUMLUTF8 */
341         0,              /* NALNUM */
342         0,              /* NALNUMUTF8 */
343         0,              /* NALNUML */
344         0,              /* NALNUMLUTF8 */
345         0,              /* SPACE */
346         0,              /* SPACEUTF8 */
347         0,              /* SPACEL */
348         0,              /* SPACELUTF8 */
349         0,              /* NSPACE */
350         0,              /* NSPACEUTF8 */
351         0,              /* NSPACEL */
352         0,              /* NSPACELUTF8 */
353         0,              /* DIGIT */
354         0,              /* DIGITUTF8 */
355         0,              /* DIGITL */
356         0,              /* DIGITLUTF8 */
357         0,              /* NDIGIT */
358         0,              /* NDIGITUTF8 */
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 */
429         0,              /* CLUMP */
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
463 const static char reg_off_by_arg[] = {
464         0,              /* END */
465         0,              /* SUCCEED */
466         0,              /* BOL */
467         0,              /* MBOL */
468         0,              /* SBOL */
469         0,              /* EOS */
470         0,              /* EOL */
471         0,              /* MEOL */
472         0,              /* SEOL */
473         0,              /* BOUND */
474         0,              /* BOUNDUTF8 */
475         0,              /* BOUNDL */
476         0,              /* BOUNDLUTF8 */
477         0,              /* NBOUND */
478         0,              /* NBOUNDUTF8 */
479         0,              /* NBOUNDL */
480         0,              /* NBOUNDLUTF8 */
481         0,              /* GPOS */
482         0,              /* REG_ANY */
483         0,              /* ANYUTF8 */
484         0,              /* SANY */
485         0,              /* SANYUTF8 */
486         0,              /* ANYOF */
487         0,              /* ANYOFUTF8 */
488         0,              /* ALNUM */
489         0,              /* ALNUMUTF8 */
490         0,              /* ALNUML */
491         0,              /* ALNUMLUTF8 */
492         0,              /* NALNUM */
493         0,              /* NALNUMUTF8 */
494         0,              /* NALNUML */
495         0,              /* NALNUMLUTF8 */
496         0,              /* SPACE */
497         0,              /* SPACEUTF8 */
498         0,              /* SPACEL */
499         0,              /* SPACELUTF8 */
500         0,              /* NSPACE */
501         0,              /* NSPACEUTF8 */
502         0,              /* NSPACEL */
503         0,              /* NSPACELUTF8 */
504         0,              /* DIGIT */
505         0,              /* DIGITUTF8 */
506         0,              /* DIGITL */
507         0,              /* DIGITLUTF8 */
508         0,              /* NDIGIT */
509         0,              /* NDIGITUTF8 */
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 */
580         0,              /* CLUMP */
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 };
613
614 #ifdef DEBUGGING
615 const 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 */
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 */
764 };
765
766 const static int reg_num = 148;
767
768 #endif /* DEBUGGING */
769 #endif /* REG_COMP_C */
770