| 875 |
#define STRING_COMMIT0 "COMMIT\0" |
#define STRING_COMMIT0 "COMMIT\0" |
| 876 |
#define STRING_F0 "F\0" |
#define STRING_F0 "F\0" |
| 877 |
#define STRING_FAIL0 "FAIL\0" |
#define STRING_FAIL0 "FAIL\0" |
| 878 |
|
#define STRING_MARK0 "MARK\0" |
| 879 |
#define STRING_PRUNE0 "PRUNE\0" |
#define STRING_PRUNE0 "PRUNE\0" |
| 880 |
#define STRING_SKIP0 "SKIP\0" |
#define STRING_SKIP0 "SKIP\0" |
| 881 |
#define STRING_THEN "THEN" |
#define STRING_THEN "THEN" |
| 1128 |
#define STRING_COMMIT0 STR_C STR_O STR_M STR_M STR_I STR_T "\0" |
#define STRING_COMMIT0 STR_C STR_O STR_M STR_M STR_I STR_T "\0" |
| 1129 |
#define STRING_F0 STR_F "\0" |
#define STRING_F0 STR_F "\0" |
| 1130 |
#define STRING_FAIL0 STR_F STR_A STR_I STR_L "\0" |
#define STRING_FAIL0 STR_F STR_A STR_I STR_L "\0" |
| 1131 |
|
#define STRING_MARK0 STR_M STR_A STR_R STR_K "\0" |
| 1132 |
#define STRING_PRUNE0 STR_P STR_R STR_U STR_N STR_E "\0" |
#define STRING_PRUNE0 STR_P STR_R STR_U STR_N STR_E "\0" |
| 1133 |
#define STRING_SKIP0 STR_S STR_K STR_I STR_P "\0" |
#define STRING_SKIP0 STR_S STR_K STR_I STR_P "\0" |
| 1134 |
#define STRING_THEN STR_T STR_H STR_E STR_N |
#define STRING_THEN STR_T STR_H STR_E STR_N |
| 1380 |
|
|
| 1381 |
/* These are backtracking control verbs */ |
/* These are backtracking control verbs */ |
| 1382 |
|
|
| 1383 |
OP_PRUNE, /* 107 */ |
OP_MARK, /* 107 always has an argument */ |
| 1384 |
OP_SKIP, /* 108 */ |
OP_PRUNE, /* 108 */ |
| 1385 |
OP_THEN, /* 109 */ |
OP_PRUNE_ARG, /* 109 same, but with argument */ |
| 1386 |
OP_COMMIT, /* 110 */ |
OP_SKIP, /* 110 */ |
| 1387 |
|
OP_SKIP_ARG, /* 111 same, but with argument */ |
| 1388 |
|
OP_THEN, /* 112 */ |
| 1389 |
|
OP_THEN_ARG, /* 113 same, but with argument */ |
| 1390 |
|
OP_COMMIT, /* 114 */ |
| 1391 |
|
|
| 1392 |
/* These are forced failure and success verbs */ |
/* These are forced failure and success verbs */ |
| 1393 |
|
|
| 1394 |
OP_FAIL, /* 111 */ |
OP_FAIL, /* 115 */ |
| 1395 |
OP_ACCEPT, /* 112 */ |
OP_ACCEPT, /* 116 */ |
| 1396 |
OP_CLOSE, /* 113 Used before OP_ACCEPT to close open captures */ |
OP_CLOSE, /* 117 Used before OP_ACCEPT to close open captures */ |
| 1397 |
|
|
| 1398 |
/* This is used to skip a subpattern with a {0} quantifier */ |
/* This is used to skip a subpattern with a {0} quantifier */ |
| 1399 |
|
|
| 1400 |
OP_SKIPZERO, /* 114 */ |
OP_SKIPZERO, /* 118 */ |
| 1401 |
|
|
| 1402 |
/* This is not an opcode, but is used to check that tables indexed by opcode |
/* This is not an opcode, but is used to check that tables indexed by opcode |
| 1403 |
are the correct length, in order to catch updating errors - there have been |
are the correct length, in order to catch updating errors - there have been |
| 1408 |
|
|
| 1409 |
/* *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro |
/* *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro |
| 1410 |
definitions that follow must also be updated to match. There are also tables |
definitions that follow must also be updated to match. There are also tables |
| 1411 |
called "coptable" cna "poptable" in pcre_dfa_exec.c that must be updated. */ |
called "coptable" and "poptable" in pcre_dfa_exec.c that must be updated. */ |
| 1412 |
|
|
| 1413 |
|
|
| 1414 |
/* This macro defines textual names for all the opcodes. These are used only |
/* This macro defines textual names for all the opcodes. These are used only |
| 1433 |
"Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond", \ |
"Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond", \ |
| 1434 |
"Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def", \ |
"Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def", \ |
| 1435 |
"Brazero", "Braminzero", \ |
"Brazero", "Braminzero", \ |
| 1436 |
"*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT", \ |
"*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP", \ |
| 1437 |
|
"*THEN", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT", \ |
| 1438 |
"Close", "Skip zero" |
"Close", "Skip zero" |
| 1439 |
|
|
| 1440 |
|
|
| 1500 |
3, 3, /* RREF, NRREF */ \ |
3, 3, /* RREF, NRREF */ \ |
| 1501 |
1, /* DEF */ \ |
1, /* DEF */ \ |
| 1502 |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
| 1503 |
1, 1, 1, 1, /* PRUNE, SKIP, THEN, COMMIT, */ \ |
3, 1, 3, /* MARK, PRUNE, PRUNE_ARG, */ \ |
| 1504 |
1, 1, 3, 1 /* FAIL, ACCEPT, CLOSE, SKIPZERO */ |
1, 3, 1, 3, /* SKIP, SKIP_ARG, THEN, THEN_ARG, */ \ |
| 1505 |
|
1, 1, 1, 3, 1 /* COMMIT, FAIL, ACCEPT, CLOSE, SKIPZERO */ |
| 1506 |
|
|
| 1507 |
|
|
| 1508 |
/* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion" |
/* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion" |
| 1520 |
ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, |
ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, |
| 1521 |
ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, |
ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, |
| 1522 |
ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, |
ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, |
| 1523 |
ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERRCOUNT }; |
ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERRCOUNT }; |
| 1524 |
|
|
| 1525 |
/* 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 |
| 1526 |
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 |
| 1682 |
int eptrn; /* Next free eptrblock */ |
int eptrn; /* Next free eptrblock */ |
| 1683 |
recursion_info *recursive; /* Linked list of recursion data */ |
recursion_info *recursive; /* Linked list of recursion data */ |
| 1684 |
void *callout_data; /* To pass back to callouts */ |
void *callout_data; /* To pass back to callouts */ |
| 1685 |
|
const uschar *mark; /* Mark pointer to pass back */ |
| 1686 |
} match_data; |
} match_data; |
| 1687 |
|
|
| 1688 |
/* A similar structure is used for the same purpose by the DFA matching |
/* A similar structure is used for the same purpose by the DFA matching |