xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/regnodes.h (revision 0:68f95e015346)
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	BOUNDL	10	/*  0xa Match "" at any word boundary */
17 #define	NBOUND	11	/*  0xb Match "" at any word non-boundary */
18 #define	NBOUNDL	12	/*  0xc Match "" at any word non-boundary */
19 #define	GPOS	13	/*  0xd Matches where last m//g left off. */
20 #define	REG_ANY	14	/*  0xe Match any one character (except newline). */
21 #define	SANY	15	/*  0xf Match any one character. */
22 #define	CANY	16	/* 0x10 Match any one byte. */
23 #define	ANYOF	17	/* 0x11 Match character in (or not in) this class. */
24 #define	ALNUM	18	/* 0x12 Match any alphanumeric character */
25 #define	ALNUML	19	/* 0x13 Match any alphanumeric char in locale */
26 #define	NALNUM	20	/* 0x14 Match any non-alphanumeric character */
27 #define	NALNUML	21	/* 0x15 Match any non-alphanumeric char in locale */
28 #define	SPACE	22	/* 0x16 Match any whitespace character */
29 #define	SPACEL	23	/* 0x17 Match any whitespace char in locale */
30 #define	NSPACE	24	/* 0x18 Match any non-whitespace character */
31 #define	NSPACEL	25	/* 0x19 Match any non-whitespace char in locale */
32 #define	DIGIT	26	/* 0x1a Match any numeric character */
33 #define	DIGITL	27	/* 0x1b Match any numeric character in locale */
34 #define	NDIGIT	28	/* 0x1c Match any non-numeric character */
35 #define	NDIGITL	29	/* 0x1d Match any non-numeric character in locale */
36 #define	CLUMP	30	/* 0x1e Match any combining character sequence */
37 #define	BRANCH	31	/* 0x1f Match this alternative, or the next... */
38 #define	BACK	32	/* 0x20 Match "", "next" ptr points backward. */
39 #define	EXACT	33	/* 0x21 Match this string (preceded by length). */
40 #define	EXACTF	34	/* 0x22 Match this string, folded (prec. by length). */
41 #define	EXACTFL	35	/* 0x23 Match this string, folded in locale (w/len). */
42 #define	NOTHING	36	/* 0x24 Match empty string. */
43 #define	TAIL	37	/* 0x25 Match empty string. Can jump here from outside. */
44 #define	STAR	38	/* 0x26 Match this (simple) thing 0 or more times. */
45 #define	PLUS	39	/* 0x27 Match this (simple) thing 1 or more times. */
46 #define	CURLY	40	/* 0x28 Match this simple thing {n,m} times. */
47 #define	CURLYN	41	/* 0x29 Match next-after-this simple thing  */
48 #define	CURLYM	42	/* 0x2a Match this medium-complex thing {n,m} times. */
49 #define	CURLYX	43	/* 0x2b Match this complex thing {n,m} times. */
50 #define	WHILEM	44	/* 0x2c Do curly processing and see if rest matches. */
51 #define	OPEN	45	/* 0x2d Mark this point in input as start of #n. */
52 #define	CLOSE	46	/* 0x2e Analogous to OPEN. */
53 #define	REF	47	/* 0x2f Match some already matched string */
54 #define	REFF	48	/* 0x30 Match already matched string, folded */
55 #define	REFFL	49	/* 0x31 Match already matched string, folded in loc. */
56 #define	IFMATCH	50	/* 0x32 Succeeds if the following matches. */
57 #define	UNLESSM	51	/* 0x33 Fails if the following matches. */
58 #define	SUSPEND	52	/* 0x34 "Independent" sub-RE. */
59 #define	IFTHEN	53	/* 0x35 Switch, should be preceeded by switcher . */
60 #define	GROUPP	54	/* 0x36 Whether the group matched. */
61 #define	LONGJMP	55	/* 0x37 Jump far away. */
62 #define	BRANCHJ	56	/* 0x38 BRANCH with long offset. */
63 #define	EVAL	57	/* 0x39 Execute some Perl code. */
64 #define	MINMOD	58	/* 0x3a Next operator is not greedy. */
65 #define	LOGICAL	59	/* 0x3b Next opcode should set the flag only. */
66 #define	RENUM	60	/* 0x3c Group with independently numbered parens. */
67 #define	OPTIMIZED	61	/* 0x3d Placeholder for dump. */
68 
69 #ifndef DOINIT
70 EXTCONST U8 PL_regkind[];
71 #else
72 EXTCONST U8 PL_regkind[] = {
73 	END,		/* END */
74 	END,		/* SUCCEED */
75 	BOL,		/* BOL */
76 	BOL,		/* MBOL */
77 	BOL,		/* SBOL */
78 	EOL,		/* EOS */
79 	EOL,		/* EOL */
80 	EOL,		/* MEOL */
81 	EOL,		/* SEOL */
82 	BOUND,		/* BOUND */
83 	BOUND,		/* BOUNDL */
84 	NBOUND,		/* NBOUND */
85 	NBOUND,		/* NBOUNDL */
86 	GPOS,		/* GPOS */
87 	REG_ANY,		/* REG_ANY */
88 	REG_ANY,		/* SANY */
89 	REG_ANY,		/* CANY */
90 	ANYOF,		/* ANYOF */
91 	ALNUM,		/* ALNUM */
92 	ALNUM,		/* ALNUML */
93 	NALNUM,		/* NALNUM */
94 	NALNUM,		/* NALNUML */
95 	SPACE,		/* SPACE */
96 	SPACE,		/* SPACEL */
97 	NSPACE,		/* NSPACE */
98 	NSPACE,		/* NSPACEL */
99 	DIGIT,		/* DIGIT */
100 	DIGIT,		/* DIGITL */
101 	NDIGIT,		/* NDIGIT */
102 	NDIGIT,		/* NDIGITL */
103 	CLUMP,		/* CLUMP */
104 	BRANCH,		/* BRANCH */
105 	BACK,		/* BACK */
106 	EXACT,		/* EXACT */
107 	EXACT,		/* EXACTF */
108 	EXACT,		/* EXACTFL */
109 	NOTHING,		/* NOTHING */
110 	NOTHING,		/* TAIL */
111 	STAR,		/* STAR */
112 	PLUS,		/* PLUS */
113 	CURLY,		/* CURLY */
114 	CURLY,		/* CURLYN */
115 	CURLY,		/* CURLYM */
116 	CURLY,		/* CURLYX */
117 	WHILEM,		/* WHILEM */
118 	OPEN,		/* OPEN */
119 	CLOSE,		/* CLOSE */
120 	REF,		/* REF */
121 	REF,		/* REFF */
122 	REF,		/* REFFL */
123 	BRANCHJ,		/* IFMATCH */
124 	BRANCHJ,		/* UNLESSM */
125 	BRANCHJ,		/* SUSPEND */
126 	BRANCHJ,		/* IFTHEN */
127 	GROUPP,		/* GROUPP */
128 	LONGJMP,		/* LONGJMP */
129 	BRANCHJ,		/* BRANCHJ */
130 	EVAL,		/* EVAL */
131 	MINMOD,		/* MINMOD */
132 	LOGICAL,		/* LOGICAL */
133 	BRANCHJ,		/* RENUM */
134 	NOTHING,		/* OPTIMIZED */
135 };
136 #endif
137 
138 
139 #ifdef REG_COMP_C
140 static const U8 regarglen[] = {
141 	0,		/* END */
142 	0,		/* SUCCEED */
143 	0,		/* BOL */
144 	0,		/* MBOL */
145 	0,		/* SBOL */
146 	0,		/* EOS */
147 	0,		/* EOL */
148 	0,		/* MEOL */
149 	0,		/* SEOL */
150 	0,		/* BOUND */
151 	0,		/* BOUNDL */
152 	0,		/* NBOUND */
153 	0,		/* NBOUNDL */
154 	0,		/* GPOS */
155 	0,		/* REG_ANY */
156 	0,		/* SANY */
157 	0,		/* CANY */
158 	0,		/* ANYOF */
159 	0,		/* ALNUM */
160 	0,		/* ALNUML */
161 	0,		/* NALNUM */
162 	0,		/* NALNUML */
163 	0,		/* SPACE */
164 	0,		/* SPACEL */
165 	0,		/* NSPACE */
166 	0,		/* NSPACEL */
167 	0,		/* DIGIT */
168 	0,		/* DIGITL */
169 	0,		/* NDIGIT */
170 	0,		/* NDIGITL */
171 	0,		/* CLUMP */
172 	0,		/* BRANCH */
173 	0,		/* BACK */
174 	0,		/* EXACT */
175 	0,		/* EXACTF */
176 	0,		/* EXACTFL */
177 	0,		/* NOTHING */
178 	0,		/* TAIL */
179 	0,		/* STAR */
180 	0,		/* PLUS */
181 	EXTRA_SIZE(struct regnode_2),		/* CURLY */
182 	EXTRA_SIZE(struct regnode_2),		/* CURLYN */
183 	EXTRA_SIZE(struct regnode_2),		/* CURLYM */
184 	EXTRA_SIZE(struct regnode_2),		/* CURLYX */
185 	0,		/* WHILEM */
186 	EXTRA_SIZE(struct regnode_1),		/* OPEN */
187 	EXTRA_SIZE(struct regnode_1),		/* CLOSE */
188 	EXTRA_SIZE(struct regnode_1),		/* REF */
189 	EXTRA_SIZE(struct regnode_1),		/* REFF */
190 	EXTRA_SIZE(struct regnode_1),		/* REFFL */
191 	EXTRA_SIZE(struct regnode_1),		/* IFMATCH */
192 	EXTRA_SIZE(struct regnode_1),		/* UNLESSM */
193 	EXTRA_SIZE(struct regnode_1),		/* SUSPEND */
194 	EXTRA_SIZE(struct regnode_1),		/* IFTHEN */
195 	EXTRA_SIZE(struct regnode_1),		/* GROUPP */
196 	EXTRA_SIZE(struct regnode_1),		/* LONGJMP */
197 	EXTRA_SIZE(struct regnode_1),		/* BRANCHJ */
198 	EXTRA_SIZE(struct regnode_1),		/* EVAL */
199 	0,		/* MINMOD */
200 	0,		/* LOGICAL */
201 	EXTRA_SIZE(struct regnode_1),		/* RENUM */
202 	0,		/* OPTIMIZED */
203 };
204 
205 static const char reg_off_by_arg[] = {
206 	0,		/* END */
207 	0,		/* SUCCEED */
208 	0,		/* BOL */
209 	0,		/* MBOL */
210 	0,		/* SBOL */
211 	0,		/* EOS */
212 	0,		/* EOL */
213 	0,		/* MEOL */
214 	0,		/* SEOL */
215 	0,		/* BOUND */
216 	0,		/* BOUNDL */
217 	0,		/* NBOUND */
218 	0,		/* NBOUNDL */
219 	0,		/* GPOS */
220 	0,		/* REG_ANY */
221 	0,		/* SANY */
222 	0,		/* CANY */
223 	0,		/* ANYOF */
224 	0,		/* ALNUM */
225 	0,		/* ALNUML */
226 	0,		/* NALNUM */
227 	0,		/* NALNUML */
228 	0,		/* SPACE */
229 	0,		/* SPACEL */
230 	0,		/* NSPACE */
231 	0,		/* NSPACEL */
232 	0,		/* DIGIT */
233 	0,		/* DIGITL */
234 	0,		/* NDIGIT */
235 	0,		/* NDIGITL */
236 	0,		/* CLUMP */
237 	0,		/* BRANCH */
238 	0,		/* BACK */
239 	0,		/* EXACT */
240 	0,		/* EXACTF */
241 	0,		/* EXACTFL */
242 	0,		/* NOTHING */
243 	0,		/* TAIL */
244 	0,		/* STAR */
245 	0,		/* PLUS */
246 	0,		/* CURLY */
247 	0,		/* CURLYN */
248 	0,		/* CURLYM */
249 	0,		/* CURLYX */
250 	0,		/* WHILEM */
251 	0,		/* OPEN */
252 	0,		/* CLOSE */
253 	0,		/* REF */
254 	0,		/* REFF */
255 	0,		/* REFFL */
256 	2,		/* IFMATCH */
257 	2,		/* UNLESSM */
258 	1,		/* SUSPEND */
259 	1,		/* IFTHEN */
260 	0,		/* GROUPP */
261 	1,		/* LONGJMP */
262 	1,		/* BRANCHJ */
263 	0,		/* EVAL */
264 	0,		/* MINMOD */
265 	0,		/* LOGICAL */
266 	1,		/* RENUM */
267 	0,		/* OPTIMIZED */
268 };
269 
270 #ifdef DEBUGGING
271 static const char * const reg_name[] = {
272 	"END",		/*    0 */
273 	"SUCCEED",		/*  0x1 */
274 	"BOL",		/*  0x2 */
275 	"MBOL",		/*  0x3 */
276 	"SBOL",		/*  0x4 */
277 	"EOS",		/*  0x5 */
278 	"EOL",		/*  0x6 */
279 	"MEOL",		/*  0x7 */
280 	"SEOL",		/*  0x8 */
281 	"BOUND",		/*  0x9 */
282 	"BOUNDL",		/*  0xa */
283 	"NBOUND",		/*  0xb */
284 	"NBOUNDL",		/*  0xc */
285 	"GPOS",		/*  0xd */
286 	"REG_ANY",		/*  0xe */
287 	"SANY",		/*  0xf */
288 	"CANY",		/* 0x10 */
289 	"ANYOF",		/* 0x11 */
290 	"ALNUM",		/* 0x12 */
291 	"ALNUML",		/* 0x13 */
292 	"NALNUM",		/* 0x14 */
293 	"NALNUML",		/* 0x15 */
294 	"SPACE",		/* 0x16 */
295 	"SPACEL",		/* 0x17 */
296 	"NSPACE",		/* 0x18 */
297 	"NSPACEL",		/* 0x19 */
298 	"DIGIT",		/* 0x1a */
299 	"DIGITL",		/* 0x1b */
300 	"NDIGIT",		/* 0x1c */
301 	"NDIGITL",		/* 0x1d */
302 	"CLUMP",		/* 0x1e */
303 	"BRANCH",		/* 0x1f */
304 	"BACK",		/* 0x20 */
305 	"EXACT",		/* 0x21 */
306 	"EXACTF",		/* 0x22 */
307 	"EXACTFL",		/* 0x23 */
308 	"NOTHING",		/* 0x24 */
309 	"TAIL",		/* 0x25 */
310 	"STAR",		/* 0x26 */
311 	"PLUS",		/* 0x27 */
312 	"CURLY",		/* 0x28 */
313 	"CURLYN",		/* 0x29 */
314 	"CURLYM",		/* 0x2a */
315 	"CURLYX",		/* 0x2b */
316 	"WHILEM",		/* 0x2c */
317 	"OPEN",		/* 0x2d */
318 	"CLOSE",		/* 0x2e */
319 	"REF",		/* 0x2f */
320 	"REFF",		/* 0x30 */
321 	"REFFL",		/* 0x31 */
322 	"IFMATCH",		/* 0x32 */
323 	"UNLESSM",		/* 0x33 */
324 	"SUSPEND",		/* 0x34 */
325 	"IFTHEN",		/* 0x35 */
326 	"GROUPP",		/* 0x36 */
327 	"LONGJMP",		/* 0x37 */
328 	"BRANCHJ",		/* 0x38 */
329 	"EVAL",		/* 0x39 */
330 	"MINMOD",		/* 0x3a */
331 	"LOGICAL",		/* 0x3b */
332 	"RENUM",		/* 0x3c */
333 	"OPTIMIZED",		/* 0x3d */
334 };
335 
336 static const int reg_num = 62;
337 
338 #endif /* DEBUGGING */
339 #endif /* REG_COMP_C */
340 
341