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