| 408 |
|
|
| 409 |
/* When UTF-8 encoding is being used, a character is no longer just a single |
/* When UTF-8 encoding is being used, a character is no longer just a single |
| 410 |
byte. The macros for character handling generate simple sequences when used in |
byte. The macros for character handling generate simple sequences when used in |
| 411 |
byte-mode, and more complicated ones for UTF-8 characters. BACKCHAR should |
byte-mode, and more complicated ones for UTF-8 characters. GETCHARLENTEST is |
| 412 |
never be called in byte mode. To make sure it can never even appear when UTF-8 |
not used when UTF-8 is not supported, so it is not defined, and BACKCHAR should |
| 413 |
support is omitted, we don't even define it. */ |
never be called in byte mode. To make sure they can never even appear when |
| 414 |
|
UTF-8 support is omitted, we don't even define them. */ |
| 415 |
|
|
| 416 |
#ifndef SUPPORT_UTF8 |
#ifndef SUPPORT_UTF8 |
| 417 |
#define GETCHAR(c, eptr) c = *eptr; |
#define GETCHAR(c, eptr) c = *eptr; |
| 419 |
#define GETCHARINC(c, eptr) c = *eptr++; |
#define GETCHARINC(c, eptr) c = *eptr++; |
| 420 |
#define GETCHARINCTEST(c, eptr) c = *eptr++; |
#define GETCHARINCTEST(c, eptr) c = *eptr++; |
| 421 |
#define GETCHARLEN(c, eptr, len) c = *eptr; |
#define GETCHARLEN(c, eptr, len) c = *eptr; |
| 422 |
|
/* #define GETCHARLENTEST(c, eptr, len) */ |
| 423 |
/* #define BACKCHAR(eptr) */ |
/* #define BACKCHAR(eptr) */ |
| 424 |
|
|
| 425 |
#else /* SUPPORT_UTF8 */ |
#else /* SUPPORT_UTF8 */ |
| 426 |
|
|
| 427 |
|
/* These macros were originally written in the form of loops that used data |
| 428 |
|
from the tables whose names start with _pcre_utf8_table. They were rewritten by |
| 429 |
|
a user so as not to use loops, because in some environments this gives a |
| 430 |
|
significant performance advantage, and it seems never to do any harm. */ |
| 431 |
|
|
| 432 |
|
/* Base macro to pick up the remaining bytes of a UTF-8 character, not |
| 433 |
|
advancing the pointer. */ |
| 434 |
|
|
| 435 |
|
#define GETUTF8(c, eptr) \ |
| 436 |
|
{ \ |
| 437 |
|
if ((c & 0x20) == 0) \ |
| 438 |
|
c = ((c & 0x1f) << 6) | (eptr[1] & 0x3f); \ |
| 439 |
|
else if ((c & 0x10) == 0) \ |
| 440 |
|
c = ((c & 0x0f) << 12) | ((eptr[1] & 0x3f) << 6) | (eptr[2] & 0x3f); \ |
| 441 |
|
else if ((c & 0x08) == 0) \ |
| 442 |
|
c = ((c & 0x07) << 18) | ((eptr[1] & 0x3f) << 12) | \ |
| 443 |
|
((eptr[2] & 0x3f) << 6) | (eptr[3] & 0x3f); \ |
| 444 |
|
else if ((c & 0x04) == 0) \ |
| 445 |
|
c = ((c & 0x03) << 24) | ((eptr[1] & 0x3f) << 18) | \ |
| 446 |
|
((eptr[2] & 0x3f) << 12) | ((eptr[3] & 0x3f) << 6) | \ |
| 447 |
|
(eptr[4] & 0x3f); \ |
| 448 |
|
else \ |
| 449 |
|
c = ((c & 0x01) << 30) | ((eptr[1] & 0x3f) << 24) | \ |
| 450 |
|
((eptr[2] & 0x3f) << 18) | ((eptr[3] & 0x3f) << 12) | \ |
| 451 |
|
((eptr[4] & 0x3f) << 6) | (eptr[5] & 0x3f); \ |
| 452 |
|
} |
| 453 |
|
|
| 454 |
/* Get the next UTF-8 character, not advancing the pointer. This is called when |
/* Get the next UTF-8 character, not advancing the pointer. This is called when |
| 455 |
we know we are in UTF-8 mode. */ |
we know we are in UTF-8 mode. */ |
| 456 |
|
|
| 457 |
#define GETCHAR(c, eptr) \ |
#define GETCHAR(c, eptr) \ |
| 458 |
c = *eptr; \ |
c = *eptr; \ |
| 459 |
if (c >= 0xc0) \ |
if (c >= 0xc0) GETUTF8(c, eptr); |
|
{ \ |
|
|
int gcii; \ |
|
|
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
|
|
int gcss = 6*gcaa; \ |
|
|
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
|
|
for (gcii = 1; gcii <= gcaa; gcii++) \ |
|
|
{ \ |
|
|
gcss -= 6; \ |
|
|
c |= (eptr[gcii] & 0x3f) << gcss; \ |
|
|
} \ |
|
|
} |
|
| 460 |
|
|
| 461 |
/* Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the |
/* Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the |
| 462 |
pointer. */ |
pointer. */ |
| 463 |
|
|
| 464 |
#define GETCHARTEST(c, eptr) \ |
#define GETCHARTEST(c, eptr) \ |
| 465 |
c = *eptr; \ |
c = *eptr; \ |
| 466 |
if (utf8 && c >= 0xc0) \ |
if (utf8 && c >= 0xc0) GETUTF8(c, eptr); |
| 467 |
|
|
| 468 |
|
/* Base macro to pick up the remaining bytes of a UTF-8 character, advancing |
| 469 |
|
the pointer. */ |
| 470 |
|
|
| 471 |
|
#define GETUTF8INC(c, eptr) \ |
| 472 |
{ \ |
{ \ |
| 473 |
int gcii; \ |
if ((c & 0x20) == 0) \ |
| 474 |
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
c = ((c & 0x1f) << 6) | (*eptr++ & 0x3f); \ |
| 475 |
int gcss = 6*gcaa; \ |
else if ((c & 0x10) == 0) \ |
| 476 |
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
{ \ |
| 477 |
for (gcii = 1; gcii <= gcaa; gcii++) \ |
c = ((c & 0x0f) << 12) | ((*eptr & 0x3f) << 6) | (eptr[1] & 0x3f); \ |
| 478 |
|
eptr += 2; \ |
| 479 |
|
} \ |
| 480 |
|
else if ((c & 0x08) == 0) \ |
| 481 |
|
{ \ |
| 482 |
|
c = ((c & 0x07) << 18) | ((*eptr & 0x3f) << 12) | \ |
| 483 |
|
((eptr[1] & 0x3f) << 6) | (eptr[2] & 0x3f); \ |
| 484 |
|
eptr += 3; \ |
| 485 |
|
} \ |
| 486 |
|
else if ((c & 0x04) == 0) \ |
| 487 |
{ \ |
{ \ |
| 488 |
gcss -= 6; \ |
c = ((c & 0x03) << 24) | ((*eptr & 0x3f) << 18) | \ |
| 489 |
c |= (eptr[gcii] & 0x3f) << gcss; \ |
((eptr[1] & 0x3f) << 12) | ((eptr[2] & 0x3f) << 6) | \ |
| 490 |
|
(eptr[3] & 0x3f); \ |
| 491 |
|
eptr += 4; \ |
| 492 |
|
} \ |
| 493 |
|
else \ |
| 494 |
|
{ \ |
| 495 |
|
c = ((c & 0x01) << 30) | ((*eptr & 0x3f) << 24) | \ |
| 496 |
|
((eptr[1] & 0x3f) << 18) | ((eptr[2] & 0x3f) << 12) | \ |
| 497 |
|
((eptr[3] & 0x3f) << 6) | (eptr[4] & 0x3f); \ |
| 498 |
|
eptr += 5; \ |
| 499 |
} \ |
} \ |
| 500 |
} |
} |
| 501 |
|
|
| 504 |
|
|
| 505 |
#define GETCHARINC(c, eptr) \ |
#define GETCHARINC(c, eptr) \ |
| 506 |
c = *eptr++; \ |
c = *eptr++; \ |
| 507 |
if (c >= 0xc0) \ |
if (c >= 0xc0) GETUTF8INC(c, eptr); |
|
{ \ |
|
|
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
|
|
int gcss = 6*gcaa; \ |
|
|
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
|
|
while (gcaa-- > 0) \ |
|
|
{ \ |
|
|
gcss -= 6; \ |
|
|
c |= (*eptr++ & 0x3f) << gcss; \ |
|
|
} \ |
|
|
} |
|
| 508 |
|
|
| 509 |
/* Get the next character, testing for UTF-8 mode, and advancing the pointer. |
/* Get the next character, testing for UTF-8 mode, and advancing the pointer. |
| 510 |
This is called when we don't know if we are in UTF-8 mode. */ |
This is called when we don't know if we are in UTF-8 mode. */ |
| 511 |
|
|
| 512 |
#define GETCHARINCTEST(c, eptr) \ |
#define GETCHARINCTEST(c, eptr) \ |
| 513 |
c = *eptr++; \ |
c = *eptr++; \ |
| 514 |
if (utf8 && c >= 0xc0) \ |
if (utf8 && c >= 0xc0) GETUTF8INC(c, eptr); |
| 515 |
|
|
| 516 |
|
/* Base macro to pick up the remaining bytes of a UTF-8 character, not |
| 517 |
|
advancing the pointer, incrementing the length. */ |
| 518 |
|
|
| 519 |
|
#define GETUTF8LEN(c, eptr, len) \ |
| 520 |
{ \ |
{ \ |
| 521 |
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
if ((c & 0x20) == 0) \ |
| 522 |
int gcss = 6*gcaa; \ |
{ \ |
| 523 |
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
c = ((c & 0x1f) << 6) | (eptr[1] & 0x3f); \ |
| 524 |
while (gcaa-- > 0) \ |
len++; \ |
| 525 |
|
} \ |
| 526 |
|
else if ((c & 0x10) == 0) \ |
| 527 |
{ \ |
{ \ |
| 528 |
gcss -= 6; \ |
c = ((c & 0x0f) << 12) | ((eptr[1] & 0x3f) << 6) | (eptr[2] & 0x3f); \ |
| 529 |
c |= (*eptr++ & 0x3f) << gcss; \ |
len += 2; \ |
| 530 |
|
} \ |
| 531 |
|
else if ((c & 0x08) == 0) \ |
| 532 |
|
{\ |
| 533 |
|
c = ((c & 0x07) << 18) | ((eptr[1] & 0x3f) << 12) | \ |
| 534 |
|
((eptr[2] & 0x3f) << 6) | (eptr[3] & 0x3f); \ |
| 535 |
|
len += 3; \ |
| 536 |
|
} \ |
| 537 |
|
else if ((c & 0x04) == 0) \ |
| 538 |
|
{ \ |
| 539 |
|
c = ((c & 0x03) << 24) | ((eptr[1] & 0x3f) << 18) | \ |
| 540 |
|
((eptr[2] & 0x3f) << 12) | ((eptr[3] & 0x3f) << 6) | \ |
| 541 |
|
(eptr[4] & 0x3f); \ |
| 542 |
|
len += 4; \ |
| 543 |
|
} \ |
| 544 |
|
else \ |
| 545 |
|
{\ |
| 546 |
|
c = ((c & 0x01) << 30) | ((eptr[1] & 0x3f) << 24) | \ |
| 547 |
|
((eptr[2] & 0x3f) << 18) | ((eptr[3] & 0x3f) << 12) | \ |
| 548 |
|
((eptr[4] & 0x3f) << 6) | (eptr[5] & 0x3f); \ |
| 549 |
|
len += 5; \ |
| 550 |
} \ |
} \ |
| 551 |
} |
} |
| 552 |
|
|
| 555 |
|
|
| 556 |
#define GETCHARLEN(c, eptr, len) \ |
#define GETCHARLEN(c, eptr, len) \ |
| 557 |
c = *eptr; \ |
c = *eptr; \ |
| 558 |
if (c >= 0xc0) \ |
if (c >= 0xc0) GETUTF8LEN(c, eptr, len); |
|
{ \ |
|
|
int gcii; \ |
|
|
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
|
|
int gcss = 6*gcaa; \ |
|
|
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
|
|
for (gcii = 1; gcii <= gcaa; gcii++) \ |
|
|
{ \ |
|
|
gcss -= 6; \ |
|
|
c |= (eptr[gcii] & 0x3f) << gcss; \ |
|
|
} \ |
|
|
len += gcaa; \ |
|
|
} |
|
| 559 |
|
|
| 560 |
/* Get the next UTF-8 character, testing for UTF-8 mode, not advancing the |
/* Get the next UTF-8 character, testing for UTF-8 mode, not advancing the |
| 561 |
pointer, incrementing length if there are extra bytes. This is called when we |
pointer, incrementing length if there are extra bytes. This is called when we |
| 563 |
|
|
| 564 |
#define GETCHARLENTEST(c, eptr, len) \ |
#define GETCHARLENTEST(c, eptr, len) \ |
| 565 |
c = *eptr; \ |
c = *eptr; \ |
| 566 |
if (utf8 && c >= 0xc0) \ |
if (utf8 && c >= 0xc0) GETUTF8LEN(c, eptr, len); |
|
{ \ |
|
|
int gcii; \ |
|
|
int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ |
|
|
int gcss = 6*gcaa; \ |
|
|
c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ |
|
|
for (gcii = 1; gcii <= gcaa; gcii++) \ |
|
|
{ \ |
|
|
gcss -= 6; \ |
|
|
c |= (eptr[gcii] & 0x3f) << gcss; \ |
|
|
} \ |
|
|
len += gcaa; \ |
|
|
} |
|
| 567 |
|
|
| 568 |
/* If the pointer is not at the start of a character, move it back until |
/* If the pointer is not at the start of a character, move it back until |
| 569 |
it is. This is called only in UTF-8 mode - we don't put a test within the macro |
it is. This is called only in UTF-8 mode - we don't put a test within the macro |
| 571 |
|
|
| 572 |
#define BACKCHAR(eptr) while((*eptr & 0xc0) == 0x80) eptr-- |
#define BACKCHAR(eptr) while((*eptr & 0xc0) == 0x80) eptr-- |
| 573 |
|
|
| 574 |
#endif |
#endif /* SUPPORT_UTF8 */ |
| 575 |
|
|
| 576 |
|
|
| 577 |
/* In case there is no definition of offsetof() provided - though any proper |
/* In case there is no definition of offsetof() provided - though any proper |
| 615 |
PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8| \ |
PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8| \ |
| 616 |
PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE| \ |
PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE| \ |
| 617 |
PCRE_DUPNAMES|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \ |
PCRE_DUPNAMES|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE| \ |
| 618 |
PCRE_JAVASCRIPT_COMPAT|PCRE_UCP) |
PCRE_JAVASCRIPT_COMPAT|PCRE_UCP|PCRE_NO_START_OPTIMIZE) |
| 619 |
|
|
| 620 |
#define PUBLIC_EXEC_OPTIONS \ |
#define PUBLIC_EXEC_OPTIONS \ |
| 621 |
(PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NOTEMPTY_ATSTART| \ |
(PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NOTEMPTY_ATSTART| \ |
| 932 |
|
|
| 933 |
#define STRING_DEFINE "DEFINE" |
#define STRING_DEFINE "DEFINE" |
| 934 |
|
|
| 935 |
#define STRING_CR_RIGHTPAR "CR)" |
#define STRING_CR_RIGHTPAR "CR)" |
| 936 |
#define STRING_LF_RIGHTPAR "LF)" |
#define STRING_LF_RIGHTPAR "LF)" |
| 937 |
#define STRING_CRLF_RIGHTPAR "CRLF)" |
#define STRING_CRLF_RIGHTPAR "CRLF)" |
| 938 |
#define STRING_ANY_RIGHTPAR "ANY)" |
#define STRING_ANY_RIGHTPAR "ANY)" |
| 939 |
#define STRING_ANYCRLF_RIGHTPAR "ANYCRLF)" |
#define STRING_ANYCRLF_RIGHTPAR "ANYCRLF)" |
| 940 |
#define STRING_BSR_ANYCRLF_RIGHTPAR "BSR_ANYCRLF)" |
#define STRING_BSR_ANYCRLF_RIGHTPAR "BSR_ANYCRLF)" |
| 941 |
#define STRING_BSR_UNICODE_RIGHTPAR "BSR_UNICODE)" |
#define STRING_BSR_UNICODE_RIGHTPAR "BSR_UNICODE)" |
| 942 |
#define STRING_UTF8_RIGHTPAR "UTF8)" |
#define STRING_UTF8_RIGHTPAR "UTF8)" |
| 943 |
#define STRING_UCP_RIGHTPAR "UCP)" |
#define STRING_UCP_RIGHTPAR "UCP)" |
| 944 |
|
#define STRING_NO_START_OPT_RIGHTPAR "NO_START_OPT)" |
| 945 |
|
|
| 946 |
#else /* SUPPORT_UTF8 */ |
#else /* SUPPORT_UTF8 */ |
| 947 |
|
|
| 1187 |
|
|
| 1188 |
#define STRING_DEFINE STR_D STR_E STR_F STR_I STR_N STR_E |
#define STRING_DEFINE STR_D STR_E STR_F STR_I STR_N STR_E |
| 1189 |
|
|
| 1190 |
#define STRING_CR_RIGHTPAR STR_C STR_R STR_RIGHT_PARENTHESIS |
#define STRING_CR_RIGHTPAR STR_C STR_R STR_RIGHT_PARENTHESIS |
| 1191 |
#define STRING_LF_RIGHTPAR STR_L STR_F STR_RIGHT_PARENTHESIS |
#define STRING_LF_RIGHTPAR STR_L STR_F STR_RIGHT_PARENTHESIS |
| 1192 |
#define STRING_CRLF_RIGHTPAR STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
#define STRING_CRLF_RIGHTPAR STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
| 1193 |
#define STRING_ANY_RIGHTPAR STR_A STR_N STR_Y STR_RIGHT_PARENTHESIS |
#define STRING_ANY_RIGHTPAR STR_A STR_N STR_Y STR_RIGHT_PARENTHESIS |
| 1194 |
#define STRING_ANYCRLF_RIGHTPAR STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
#define STRING_ANYCRLF_RIGHTPAR STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
| 1195 |
#define STRING_BSR_ANYCRLF_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
#define STRING_BSR_ANYCRLF_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS |
| 1196 |
#define STRING_BSR_UNICODE_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_U STR_N STR_I STR_C STR_O STR_D STR_E STR_RIGHT_PARENTHESIS |
#define STRING_BSR_UNICODE_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_U STR_N STR_I STR_C STR_O STR_D STR_E STR_RIGHT_PARENTHESIS |
| 1197 |
#define STRING_UTF8_RIGHTPAR STR_U STR_T STR_F STR_8 STR_RIGHT_PARENTHESIS |
#define STRING_UTF8_RIGHTPAR STR_U STR_T STR_F STR_8 STR_RIGHT_PARENTHESIS |
| 1198 |
#define STRING_UCP_RIGHTPAR STR_U STR_C STR_P STR_RIGHT_PARENTHESIS |
#define STRING_UCP_RIGHTPAR STR_U STR_C STR_P STR_RIGHT_PARENTHESIS |
| 1199 |
|
#define STRING_NO_START_OPT_RIGHTPAR STR_N STR_O STR_UNDERSCORE STR_S STR_T STR_A STR_R STR_T STR_UNDERSCORE STR_O STR_P STR_T STR_RIGHT_PARENTHESIS |
| 1200 |
|
|
| 1201 |
#endif /* SUPPORT_UTF8 */ |
#endif /* SUPPORT_UTF8 */ |
| 1202 |
|
|
| 1254 |
their negation. Also, they must appear in the same order as in the opcode |
their negation. Also, they must appear in the same order as in the opcode |
| 1255 |
definitions below, up to ESC_z. There's a dummy for OP_ALLANY because it |
definitions below, up to ESC_z. There's a dummy for OP_ALLANY because it |
| 1256 |
corresponds to "." in DOTALL mode rather than an escape sequence. It is also |
corresponds to "." in DOTALL mode rather than an escape sequence. It is also |
| 1257 |
used for [^] in JavaScript compatibility mode. In non-DOTALL mode, "." behaves |
used for [^] in JavaScript compatibility mode. In non-DOTALL mode, "." behaves |
| 1258 |
like \N. |
like \N. |
| 1259 |
|
|
| 1260 |
The special values ESC_DU, ESC_du, etc. are used instead of ESC_D, ESC_d, etc. |
The special values ESC_DU, ESC_du, etc. are used instead of ESC_D, ESC_d, etc. |
| 1271 |
|
|
| 1272 |
enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, |
enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, |
| 1273 |
ESC_W, ESC_w, ESC_N, ESC_dum, ESC_C, ESC_P, ESC_p, ESC_R, ESC_H, |
ESC_W, ESC_w, ESC_N, ESC_dum, ESC_C, ESC_P, ESC_p, ESC_R, ESC_H, |
| 1274 |
ESC_h, ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, |
ESC_h, ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, |
| 1275 |
ESC_E, ESC_Q, ESC_g, ESC_k, |
ESC_E, ESC_Q, ESC_g, ESC_k, |
| 1276 |
ESC_DU, ESC_du, ESC_SU, ESC_su, ESC_WU, ESC_wu, |
ESC_DU, ESC_du, ESC_SU, ESC_su, ESC_WU, ESC_wu, |
| 1277 |
ESC_REF }; |
ESC_REF }; |
| 1278 |
|
|
| 1279 |
/* Opcode table: Starting from 1 (i.e. after OP_END), the values up to |
/* Opcode table: Starting from 1 (i.e. after OP_END), the values up to |
| 1550 |
3, 3, /* RREF, NRREF */ \ |
3, 3, /* RREF, NRREF */ \ |
| 1551 |
1, /* DEF */ \ |
1, /* DEF */ \ |
| 1552 |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
| 1553 |
3, 1, 3, /* MARK, PRUNE, PRUNE_ARG, */ \ |
3, 1, 3, /* MARK, PRUNE, PRUNE_ARG */ \ |
| 1554 |
1, 3, 1, 3, /* SKIP, SKIP_ARG, THEN, THEN_ARG, */ \ |
1, 3, /* SKIP, SKIP_ARG */ \ |
| 1555 |
|
1+LINK_SIZE, 3+LINK_SIZE, /* THEN, THEN_ARG */ \ |
| 1556 |
1, 1, 1, 3, 1 /* COMMIT, FAIL, ACCEPT, CLOSE, SKIPZERO */ |
1, 1, 1, 3, 1 /* COMMIT, FAIL, ACCEPT, CLOSE, SKIPZERO */ |
| 1557 |
|
|
| 1558 |
|
|
| 1571 |
ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, |
ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, |
| 1572 |
ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, |
ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, |
| 1573 |
ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, |
ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, |
| 1574 |
ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERRCOUNT }; |
ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, |
| 1575 |
|
ERRCOUNT }; |
| 1576 |
|
|
| 1577 |
/* The real format of the start of the pcre block; the index of names and the |
/* The real format of the start of the pcre block; the index of names and the |
| 1578 |
code vector run on as long as necessary after the end. We store an explicit |
code vector run on as long as necessary after the end. We store an explicit |
| 1715 |
BOOL noteol; /* NOTEOL flag */ |
BOOL noteol; /* NOTEOL flag */ |
| 1716 |
BOOL utf8; /* UTF8 flag */ |
BOOL utf8; /* UTF8 flag */ |
| 1717 |
BOOL jscript_compat; /* JAVASCRIPT_COMPAT flag */ |
BOOL jscript_compat; /* JAVASCRIPT_COMPAT flag */ |
| 1718 |
BOOL use_ucp; /* PCRE_UCP flag */ |
BOOL use_ucp; /* PCRE_UCP flag */ |
| 1719 |
BOOL endonly; /* Dollar not before final \n */ |
BOOL endonly; /* Dollar not before final \n */ |
| 1720 |
BOOL notempty; /* Empty string match not wanted */ |
BOOL notempty; /* Empty string match not wanted */ |
| 1721 |
BOOL notempty_atstart; /* Empty string match at start not wanted */ |
BOOL notempty_atstart; /* Empty string match at start not wanted */ |