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!
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. */
156 EXTCONST U8 PL_regkind[];
158 EXTCONST U8 PL_regkind[] = {
169 BOUND, /* BOUNDUTF8 */
171 BOUND, /* BOUNDLUTF8 */
173 NBOUND, /* NBOUNDUTF8 */
174 NBOUND, /* NBOUNDL */
175 NBOUND, /* NBOUNDLUTF8 */
177 REG_ANY, /* REG_ANY */
178 REG_ANY, /* ANYUTF8 */
180 REG_ANY, /* SANYUTF8 */
182 ANYOF, /* ANYOFUTF8 */
184 ALNUM, /* ALNUMUTF8 */
186 ALNUM, /* ALNUMLUTF8 */
188 NALNUM, /* NALNUMUTF8 */
189 NALNUM, /* NALNUML */
190 NALNUM, /* NALNUMLUTF8 */
192 SPACE, /* SPACEUTF8 */
194 SPACE, /* SPACELUTF8 */
196 NSPACE, /* NSPACEUTF8 */
197 NSPACE, /* NSPACEL */
198 NSPACE, /* NSPACELUTF8 */
200 DIGIT, /* DIGITUTF8 */
202 DIGIT, /* DIGITLUTF8 */
204 NDIGIT, /* NDIGITUTF8 */
205 NDIGIT, /* NDIGITL */
206 NDIGIT, /* NDIGITLUTF8 */
208 ALNUMC, /* ALNUMCUTF8 */
209 ALNUMC, /* ALNUMCL */
210 ALNUMC, /* ALNUMCLUTF8 */
211 NALNUMC, /* NALNUMC */
212 NALNUMC, /* NALNUMCUTF8 */
213 NALNUMC, /* NALNUMCL */
214 NALNUMC, /* NALNUMCLUTF8 */
216 ALPHA, /* ALPHAUTF8 */
218 ALPHA, /* ALPHALUTF8 */
220 NALPHA, /* NALPHAUTF8 */
221 NALPHA, /* NALPHAL */
222 NALPHA, /* NALPHALUTF8 */
226 CNTRL, /* CNTRLUTF8 */
228 CNTRL, /* CNTRLLUTF8 */
230 NCNTRL, /* NCNTRLUTF8 */
231 NCNTRL, /* NCNTRLL */
232 NCNTRL, /* NCNTRLLUTF8 */
234 GRAPH, /* GRAPHUTF8 */
236 GRAPH, /* GRAPHLUTF8 */
238 NGRAPH, /* NGRAPHUTF8 */
239 NGRAPH, /* NGRAPHL */
240 NGRAPH, /* NGRAPHLUTF8 */
242 LOWER, /* LOWERUTF8 */
244 LOWER, /* LOWERLUTF8 */
246 NLOWER, /* NLOWERUTF8 */
247 NLOWER, /* NLOWERL */
248 NLOWER, /* NLOWERLUTF8 */
250 PRINT, /* PRINTUTF8 */
252 PRINT, /* PRINTLUTF8 */
254 NPRINT, /* NPRINTUTF8 */
255 NPRINT, /* NPRINTL */
256 NPRINT, /* NPRINTLUTF8 */
258 PUNCT, /* PUNCTUTF8 */
260 PUNCT, /* PUNCTLUTF8 */
262 NPUNCT, /* NPUNCTUTF8 */
263 NPUNCT, /* NPUNCTL */
264 NPUNCT, /* NPUNCTLUTF8 */
266 UPPER, /* UPPERUTF8 */
268 UPPER, /* UPPERLUTF8 */
270 NUPPER, /* NUPPERUTF8 */
271 NUPPER, /* NUPPERL */
272 NUPPER, /* NUPPERLUTF8 */
274 NXDIGIT, /* NXDIGIT */
281 NOTHING, /* NOTHING */
295 BRANCHJ, /* IFMATCH */
296 BRANCHJ, /* UNLESSM */
297 BRANCHJ, /* SUSPEND */
298 BRANCHJ, /* IFTHEN */
300 LONGJMP, /* LONGJMP */
301 BRANCHJ, /* BRANCHJ */
304 LOGICAL, /* LOGICAL */
306 NOTHING, /* OPTIMIZED */
312 const static U8 regarglen[] = {
336 EXTRA_SIZE(struct regnode_1), /* ANYOFUTF8 */
368 0, /* NALNUMCLUTF8 */
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 */
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 */
459 EXTRA_SIZE(struct regnode_1), /* RENUM */
463 const static char reg_off_by_arg[] = {
519 0, /* NALNUMCLUTF8 */
615 const static char * const reg_name[] = {
626 "BOUNDUTF8", /* 0xa */
628 "BOUNDLUTF8", /* 0xc */
630 "NBOUNDUTF8", /* 0xe */
632 "NBOUNDLUTF8", /* 0x10 */
634 "REG_ANY", /* 0x12 */
635 "ANYUTF8", /* 0x13 */
637 "SANYUTF8", /* 0x15 */
639 "ANYOFUTF8", /* 0x17 */
641 "ALNUMUTF8", /* 0x19 */
643 "ALNUMLUTF8", /* 0x1b */
645 "NALNUMUTF8", /* 0x1d */
646 "NALNUML", /* 0x1e */
647 "NALNUMLUTF8", /* 0x1f */
649 "SPACEUTF8", /* 0x21 */
651 "SPACELUTF8", /* 0x23 */
653 "NSPACEUTF8", /* 0x25 */
654 "NSPACEL", /* 0x26 */
655 "NSPACELUTF8", /* 0x27 */
657 "DIGITUTF8", /* 0x29 */
659 "DIGITLUTF8", /* 0x2b */
661 "NDIGITUTF8", /* 0x2d */
662 "NDIGITL", /* 0x2e */
663 "NDIGITLUTF8", /* 0x2f */
665 "ALNUMCUTF8", /* 0x31 */
666 "ALNUMCL", /* 0x32 */
667 "ALNUMCLUTF8", /* 0x33 */
668 "NALNUMC", /* 0x34 */
669 "NALNUMCUTF8", /* 0x35 */
670 "NALNUMCL", /* 0x36 */
671 "NALNUMCLUTF8", /* 0x37 */
673 "ALPHAUTF8", /* 0x39 */
675 "ALPHALUTF8", /* 0x3b */
677 "NALPHAUTF8", /* 0x3d */
678 "NALPHAL", /* 0x3e */
679 "NALPHALUTF8", /* 0x3f */
683 "CNTRLUTF8", /* 0x43 */
685 "CNTRLLUTF8", /* 0x45 */
687 "NCNTRLUTF8", /* 0x47 */
688 "NCNTRLL", /* 0x48 */
689 "NCNTRLLUTF8", /* 0x49 */
691 "GRAPHUTF8", /* 0x4b */
693 "GRAPHLUTF8", /* 0x4d */
695 "NGRAPHUTF8", /* 0x4f */
696 "NGRAPHL", /* 0x50 */
697 "NGRAPHLUTF8", /* 0x51 */
699 "LOWERUTF8", /* 0x53 */
701 "LOWERLUTF8", /* 0x55 */
703 "NLOWERUTF8", /* 0x57 */
704 "NLOWERL", /* 0x58 */
705 "NLOWERLUTF8", /* 0x59 */
707 "PRINTUTF8", /* 0x5b */
709 "PRINTLUTF8", /* 0x5d */
711 "NPRINTUTF8", /* 0x5f */
712 "NPRINTL", /* 0x60 */
713 "NPRINTLUTF8", /* 0x61 */
715 "PUNCTUTF8", /* 0x63 */
717 "PUNCTLUTF8", /* 0x65 */
719 "NPUNCTUTF8", /* 0x67 */
720 "NPUNCTL", /* 0x68 */
721 "NPUNCTLUTF8", /* 0x69 */
723 "UPPERUTF8", /* 0x6b */
725 "UPPERLUTF8", /* 0x6d */
727 "NUPPERUTF8", /* 0x6f */
728 "NUPPERL", /* 0x70 */
729 "NUPPERLUTF8", /* 0x71 */
731 "NXDIGIT", /* 0x73 */
737 "EXACTFL", /* 0x79 */
738 "NOTHING", /* 0x7a */
752 "IFMATCH", /* 0x88 */
753 "UNLESSM", /* 0x89 */
754 "SUSPEND", /* 0x8a */
757 "LONGJMP", /* 0x8d */
758 "BRANCHJ", /* 0x8e */
761 "LOGICAL", /* 0x91 */
763 "OPTIMIZED", /* 0x93 */
766 const static int reg_num = 148;
768 #endif /* DEBUGGING */
769 #endif /* REG_COMP_C */