source: trunk/third/perl/regnodes.h @ 14545

Revision 14545, 12.5 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14544, which included commits to RCS files with non-trunk default branches.
Line 
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 in utf8 */
32#define ALNUML  26      /* 0x1a Match any alphanumeric char in locale */
33#define ALNUMLUTF8      27      /* 0x1b Match any alphanumeric char in locale+utf8 */
34#define NALNUM  28      /* 0x1c Match any non-alphanumeric character */
35#define NALNUMUTF8      29      /* 0x1d Match any non-alphanumeric character in utf8 */
36#define NALNUML 30      /* 0x1e Match any non-alphanumeric char in locale */
37#define NALNUMLUTF8     31      /* 0x1f Match any non-alphanumeric char in locale+utf8 */
38#define SPACE   32      /* 0x20 Match any whitespace character */
39#define SPACEUTF8       33      /* 0x21 Match any whitespace character in utf8 */
40#define SPACEL  34      /* 0x22 Match any whitespace char in locale */
41#define SPACELUTF8      35      /* 0x23 Match any whitespace char in locale+utf8 */
42#define NSPACE  36      /* 0x24 Match any non-whitespace character */
43#define NSPACEUTF8      37      /* 0x25 Match any non-whitespace character in utf8 */
44#define NSPACEL 38      /* 0x26 Match any non-whitespace char in locale */
45#define NSPACELUTF8     39      /* 0x27 Match any non-whitespace char in locale+utf8 */
46#define DIGIT   40      /* 0x28 Match any numeric character */
47#define DIGITUTF8       41      /* 0x29 Match any numeric character in utf8 */
48#define DIGITL  42      /* 0x2a Match any numeric character in locale */
49#define DIGITLUTF8      43      /* 0x2b Match any numeric character in locale+utf8 */
50#define NDIGIT  44      /* 0x2c Match any non-numeric character */
51#define NDIGITUTF8      45      /* 0x2d Match any non-numeric character in utf8 */
52#define NDIGITL 46      /* 0x2e Match any non-numeric character in locale */
53#define NDIGITLUTF8     47      /* 0x2f Match any non-numeric character in locale+utf8 */
54#define CLUMP   48      /* 0x30 Match any combining character sequence */
55#define BRANCH  49      /* 0x31 Match this alternative, or the next... */
56#define BACK    50      /* 0x32 Match "", "next" ptr points backward. */
57#define EXACT   51      /* 0x33 Match this string (preceded by length). */
58#define EXACTF  52      /* 0x34 Match this string, folded (prec. by length). */
59#define EXACTFL 53      /* 0x35 Match this string, folded in locale (w/len). */
60#define NOTHING 54      /* 0x36 Match empty string. */
61#define TAIL    55      /* 0x37 Match empty string. Can jump here from outside. */
62#define STAR    56      /* 0x38 Match this (simple) thing 0 or more times. */
63#define PLUS    57      /* 0x39 Match this (simple) thing 1 or more times. */
64#define CURLY   58      /* 0x3a Match this simple thing {n,m} times. */
65#define CURLYN  59      /* 0x3b Match next-after-this simple thing  */
66#define CURLYM  60      /* 0x3c Match this medium-complex thing {n,m} times. */
67#define CURLYX  61      /* 0x3d Match this complex thing {n,m} times. */
68#define WHILEM  62      /* 0x3e Do curly processing and see if rest matches. */
69#define OPEN    63      /* 0x3f Mark this point in input as start of #n. */
70#define CLOSE   64      /* 0x40 Analogous to OPEN. */
71#define REF     65      /* 0x41 Match some already matched string */
72#define REFF    66      /* 0x42 Match already matched string, folded */
73#define REFFL   67      /* 0x43 Match already matched string, folded in loc. */
74#define IFMATCH 68      /* 0x44 Succeeds if the following matches. */
75#define UNLESSM 69      /* 0x45 Fails if the following matches. */
76#define SUSPEND 70      /* 0x46 "Independent" sub-RE. */
77#define IFTHEN  71      /* 0x47 Switch, should be preceeded by switcher . */
78#define GROUPP  72      /* 0x48 Whether the group matched. */
79#define LONGJMP 73      /* 0x49 Jump far away. */
80#define BRANCHJ 74      /* 0x4a BRANCH with long offset. */
81#define EVAL    75      /* 0x4b Execute some Perl code. */
82#define MINMOD  76      /* 0x4c Next operator is not greedy. */
83#define LOGICAL 77      /* 0x4d Next opcode should set the flag only. */
84#define RENUM   78      /* 0x4e Group with independently numbered parens. */
85#define OPTIMIZED       79      /* 0x4f Placeholder for dump. */
86
87#ifndef DOINIT
88EXTCONST U8 PL_regkind[];
89#else
90EXTCONST U8 PL_regkind[] = {
91        END,            /* END */
92        END,            /* SUCCEED */
93        BOL,            /* BOL */
94        BOL,            /* MBOL */
95        BOL,            /* SBOL */
96        EOL,            /* EOS */
97        EOL,            /* EOL */
98        EOL,            /* MEOL */
99        EOL,            /* SEOL */
100        BOUND,          /* BOUND */
101        BOUND,          /* BOUNDUTF8 */
102        BOUND,          /* BOUNDL */
103        BOUND,          /* BOUNDLUTF8 */
104        NBOUND,         /* NBOUND */
105        NBOUND,         /* NBOUNDUTF8 */
106        NBOUND,         /* NBOUNDL */
107        NBOUND,         /* NBOUNDLUTF8 */
108        GPOS,           /* GPOS */
109        REG_ANY,                /* REG_ANY */
110        REG_ANY,                /* ANYUTF8 */
111        REG_ANY,                /* SANY */
112        REG_ANY,                /* SANYUTF8 */
113        ANYOF,          /* ANYOF */
114        ANYOF,          /* ANYOFUTF8 */
115        ALNUM,          /* ALNUM */
116        ALNUM,          /* ALNUMUTF8 */
117        ALNUM,          /* ALNUML */
118        ALNUM,          /* ALNUMLUTF8 */
119        NALNUM,         /* NALNUM */
120        NALNUM,         /* NALNUMUTF8 */
121        NALNUM,         /* NALNUML */
122        NALNUM,         /* NALNUMLUTF8 */
123        SPACE,          /* SPACE */
124        SPACE,          /* SPACEUTF8 */
125        SPACE,          /* SPACEL */
126        SPACE,          /* SPACELUTF8 */
127        NSPACE,         /* NSPACE */
128        NSPACE,         /* NSPACEUTF8 */
129        NSPACE,         /* NSPACEL */
130        NSPACE,         /* NSPACELUTF8 */
131        DIGIT,          /* DIGIT */
132        DIGIT,          /* DIGITUTF8 */
133        DIGIT,          /* DIGITL */
134        DIGIT,          /* DIGITLUTF8 */
135        NDIGIT,         /* NDIGIT */
136        NDIGIT,         /* NDIGITUTF8 */
137        NDIGIT,         /* NDIGITL */
138        NDIGIT,         /* NDIGITLUTF8 */
139        CLUMP,          /* CLUMP */
140        BRANCH,         /* BRANCH */
141        BACK,           /* BACK */
142        EXACT,          /* EXACT */
143        EXACT,          /* EXACTF */
144        EXACT,          /* EXACTFL */
145        NOTHING,                /* NOTHING */
146        NOTHING,                /* TAIL */
147        STAR,           /* STAR */
148        PLUS,           /* PLUS */
149        CURLY,          /* CURLY */
150        CURLY,          /* CURLYN */
151        CURLY,          /* CURLYM */
152        CURLY,          /* CURLYX */
153        WHILEM,         /* WHILEM */
154        OPEN,           /* OPEN */
155        CLOSE,          /* CLOSE */
156        REF,            /* REF */
157        REF,            /* REFF */
158        REF,            /* REFFL */
159        BRANCHJ,                /* IFMATCH */
160        BRANCHJ,                /* UNLESSM */
161        BRANCHJ,                /* SUSPEND */
162        BRANCHJ,                /* IFTHEN */
163        GROUPP,         /* GROUPP */
164        LONGJMP,                /* LONGJMP */
165        BRANCHJ,                /* BRANCHJ */
166        EVAL,           /* EVAL */
167        MINMOD,         /* MINMOD */
168        LOGICAL,                /* LOGICAL */
169        BRANCHJ,                /* RENUM */
170        NOTHING,                /* OPTIMIZED */
171};
172#endif
173
174
175#ifdef REG_COMP_C
176const static U8 regarglen[] = {
177        0,              /* END */
178        0,              /* SUCCEED */
179        0,              /* BOL */
180        0,              /* MBOL */
181        0,              /* SBOL */
182        0,              /* EOS */
183        0,              /* EOL */
184        0,              /* MEOL */
185        0,              /* SEOL */
186        0,              /* BOUND */
187        0,              /* BOUNDUTF8 */
188        0,              /* BOUNDL */
189        0,              /* BOUNDLUTF8 */
190        0,              /* NBOUND */
191        0,              /* NBOUNDUTF8 */
192        0,              /* NBOUNDL */
193        0,              /* NBOUNDLUTF8 */
194        0,              /* GPOS */
195        0,              /* REG_ANY */
196        0,              /* ANYUTF8 */
197        0,              /* SANY */
198        0,              /* SANYUTF8 */
199        0,              /* ANYOF */
200        EXTRA_SIZE(struct regnode_1),           /* ANYOFUTF8 */
201        0,              /* ALNUM */
202        0,              /* ALNUMUTF8 */
203        0,              /* ALNUML */
204        0,              /* ALNUMLUTF8 */
205        0,              /* NALNUM */
206        0,              /* NALNUMUTF8 */
207        0,              /* NALNUML */
208        0,              /* NALNUMLUTF8 */
209        0,              /* SPACE */
210        0,              /* SPACEUTF8 */
211        0,              /* SPACEL */
212        0,              /* SPACELUTF8 */
213        0,              /* NSPACE */
214        0,              /* NSPACEUTF8 */
215        0,              /* NSPACEL */
216        0,              /* NSPACELUTF8 */
217        0,              /* DIGIT */
218        0,              /* DIGITUTF8 */
219        0,              /* DIGITL */
220        0,              /* DIGITLUTF8 */
221        0,              /* NDIGIT */
222        0,              /* NDIGITUTF8 */
223        0,              /* NDIGITL */
224        0,              /* NDIGITLUTF8 */
225        0,              /* CLUMP */
226        0,              /* BRANCH */
227        0,              /* BACK */
228        0,              /* EXACT */
229        0,              /* EXACTF */
230        0,              /* EXACTFL */
231        0,              /* NOTHING */
232        0,              /* TAIL */
233        0,              /* STAR */
234        0,              /* PLUS */
235        EXTRA_SIZE(struct regnode_2),           /* CURLY */
236        EXTRA_SIZE(struct regnode_2),           /* CURLYN */
237        EXTRA_SIZE(struct regnode_2),           /* CURLYM */
238        EXTRA_SIZE(struct regnode_2),           /* CURLYX */
239        0,              /* WHILEM */
240        EXTRA_SIZE(struct regnode_1),           /* OPEN */
241        EXTRA_SIZE(struct regnode_1),           /* CLOSE */
242        EXTRA_SIZE(struct regnode_1),           /* REF */
243        EXTRA_SIZE(struct regnode_1),           /* REFF */
244        EXTRA_SIZE(struct regnode_1),           /* REFFL */
245        EXTRA_SIZE(struct regnode_1),           /* IFMATCH */
246        EXTRA_SIZE(struct regnode_1),           /* UNLESSM */
247        EXTRA_SIZE(struct regnode_1),           /* SUSPEND */
248        EXTRA_SIZE(struct regnode_1),           /* IFTHEN */
249        EXTRA_SIZE(struct regnode_1),           /* GROUPP */
250        EXTRA_SIZE(struct regnode_1),           /* LONGJMP */
251        EXTRA_SIZE(struct regnode_1),           /* BRANCHJ */
252        EXTRA_SIZE(struct regnode_1),           /* EVAL */
253        0,              /* MINMOD */
254        0,              /* LOGICAL */
255        EXTRA_SIZE(struct regnode_1),           /* RENUM */
256        0,              /* OPTIMIZED */
257};
258
259const static char reg_off_by_arg[] = {
260        0,              /* END */
261        0,              /* SUCCEED */
262        0,              /* BOL */
263        0,              /* MBOL */
264        0,              /* SBOL */
265        0,              /* EOS */
266        0,              /* EOL */
267        0,              /* MEOL */
268        0,              /* SEOL */
269        0,              /* BOUND */
270        0,              /* BOUNDUTF8 */
271        0,              /* BOUNDL */
272        0,              /* BOUNDLUTF8 */
273        0,              /* NBOUND */
274        0,              /* NBOUNDUTF8 */
275        0,              /* NBOUNDL */
276        0,              /* NBOUNDLUTF8 */
277        0,              /* GPOS */
278        0,              /* REG_ANY */
279        0,              /* ANYUTF8 */
280        0,              /* SANY */
281        0,              /* SANYUTF8 */
282        0,              /* ANYOF */
283        0,              /* ANYOFUTF8 */
284        0,              /* ALNUM */
285        0,              /* ALNUMUTF8 */
286        0,              /* ALNUML */
287        0,              /* ALNUMLUTF8 */
288        0,              /* NALNUM */
289        0,              /* NALNUMUTF8 */
290        0,              /* NALNUML */
291        0,              /* NALNUMLUTF8 */
292        0,              /* SPACE */
293        0,              /* SPACEUTF8 */
294        0,              /* SPACEL */
295        0,              /* SPACELUTF8 */
296        0,              /* NSPACE */
297        0,              /* NSPACEUTF8 */
298        0,              /* NSPACEL */
299        0,              /* NSPACELUTF8 */
300        0,              /* DIGIT */
301        0,              /* DIGITUTF8 */
302        0,              /* DIGITL */
303        0,              /* DIGITLUTF8 */
304        0,              /* NDIGIT */
305        0,              /* NDIGITUTF8 */
306        0,              /* NDIGITL */
307        0,              /* NDIGITLUTF8 */
308        0,              /* CLUMP */
309        0,              /* BRANCH */
310        0,              /* BACK */
311        0,              /* EXACT */
312        0,              /* EXACTF */
313        0,              /* EXACTFL */
314        0,              /* NOTHING */
315        0,              /* TAIL */
316        0,              /* STAR */
317        0,              /* PLUS */
318        0,              /* CURLY */
319        0,              /* CURLYN */
320        0,              /* CURLYM */
321        0,              /* CURLYX */
322        0,              /* WHILEM */
323        0,              /* OPEN */
324        0,              /* CLOSE */
325        0,              /* REF */
326        0,              /* REFF */
327        0,              /* REFFL */
328        2,              /* IFMATCH */
329        2,              /* UNLESSM */
330        1,              /* SUSPEND */
331        1,              /* IFTHEN */
332        0,              /* GROUPP */
333        1,              /* LONGJMP */
334        1,              /* BRANCHJ */
335        0,              /* EVAL */
336        0,              /* MINMOD */
337        0,              /* LOGICAL */
338        1,              /* RENUM */
339        0,              /* OPTIMIZED */
340};
341
342#ifdef DEBUGGING
343const static char * const reg_name[] = {
344        "END",          /*    0 */
345        "SUCCEED",              /*  0x1 */
346        "BOL",          /*  0x2 */
347        "MBOL",         /*  0x3 */
348        "SBOL",         /*  0x4 */
349        "EOS",          /*  0x5 */
350        "EOL",          /*  0x6 */
351        "MEOL",         /*  0x7 */
352        "SEOL",         /*  0x8 */
353        "BOUND",                /*  0x9 */
354        "BOUNDUTF8",            /*  0xa */
355        "BOUNDL",               /*  0xb */
356        "BOUNDLUTF8",           /*  0xc */
357        "NBOUND",               /*  0xd */
358        "NBOUNDUTF8",           /*  0xe */
359        "NBOUNDL",              /*  0xf */
360        "NBOUNDLUTF8",          /* 0x10 */
361        "GPOS",         /* 0x11 */
362        "REG_ANY",              /* 0x12 */
363        "ANYUTF8",              /* 0x13 */
364        "SANY",         /* 0x14 */
365        "SANYUTF8",             /* 0x15 */
366        "ANYOF",                /* 0x16 */
367        "ANYOFUTF8",            /* 0x17 */
368        "ALNUM",                /* 0x18 */
369        "ALNUMUTF8",            /* 0x19 */
370        "ALNUML",               /* 0x1a */
371        "ALNUMLUTF8",           /* 0x1b */
372        "NALNUM",               /* 0x1c */
373        "NALNUMUTF8",           /* 0x1d */
374        "NALNUML",              /* 0x1e */
375        "NALNUMLUTF8",          /* 0x1f */
376        "SPACE",                /* 0x20 */
377        "SPACEUTF8",            /* 0x21 */
378        "SPACEL",               /* 0x22 */
379        "SPACELUTF8",           /* 0x23 */
380        "NSPACE",               /* 0x24 */
381        "NSPACEUTF8",           /* 0x25 */
382        "NSPACEL",              /* 0x26 */
383        "NSPACELUTF8",          /* 0x27 */
384        "DIGIT",                /* 0x28 */
385        "DIGITUTF8",            /* 0x29 */
386        "DIGITL",               /* 0x2a */
387        "DIGITLUTF8",           /* 0x2b */
388        "NDIGIT",               /* 0x2c */
389        "NDIGITUTF8",           /* 0x2d */
390        "NDIGITL",              /* 0x2e */
391        "NDIGITLUTF8",          /* 0x2f */
392        "CLUMP",                /* 0x30 */
393        "BRANCH",               /* 0x31 */
394        "BACK",         /* 0x32 */
395        "EXACT",                /* 0x33 */
396        "EXACTF",               /* 0x34 */
397        "EXACTFL",              /* 0x35 */
398        "NOTHING",              /* 0x36 */
399        "TAIL",         /* 0x37 */
400        "STAR",         /* 0x38 */
401        "PLUS",         /* 0x39 */
402        "CURLY",                /* 0x3a */
403        "CURLYN",               /* 0x3b */
404        "CURLYM",               /* 0x3c */
405        "CURLYX",               /* 0x3d */
406        "WHILEM",               /* 0x3e */
407        "OPEN",         /* 0x3f */
408        "CLOSE",                /* 0x40 */
409        "REF",          /* 0x41 */
410        "REFF",         /* 0x42 */
411        "REFFL",                /* 0x43 */
412        "IFMATCH",              /* 0x44 */
413        "UNLESSM",              /* 0x45 */
414        "SUSPEND",              /* 0x46 */
415        "IFTHEN",               /* 0x47 */
416        "GROUPP",               /* 0x48 */
417        "LONGJMP",              /* 0x49 */
418        "BRANCHJ",              /* 0x4a */
419        "EVAL",         /* 0x4b */
420        "MINMOD",               /* 0x4c */
421        "LOGICAL",              /* 0x4d */
422        "RENUM",                /* 0x4e */
423        "OPTIMIZED",            /* 0x4f */
424};
425
426const static int reg_num = 80;
427
428#endif /* DEBUGGING */
429#endif /* REG_COMP_C */
430
Note: See TracBrowser for help on using the repository browser.