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: */ 343