| 1445 |
OP_KETRMIN, /* 116 order. They are for groups the repeat for ever. */ |
OP_KETRMIN, /* 116 order. They are for groups the repeat for ever. */ |
| 1446 |
OP_KETRPOS, /* 117 Possessive unlimited repeat. */ |
OP_KETRPOS, /* 117 Possessive unlimited repeat. */ |
| 1447 |
|
|
| 1448 |
/* The assertions must come before BRA, CBRA, ONCE, and COND.*/ |
/* The assertions must come before BRA, CBRA, ONCE, and COND, and the four |
| 1449 |
|
asserts must remain in order. */ |
| 1450 |
|
|
| 1451 |
OP_ASSERT, /* 118 Positive lookahead */ |
OP_ASSERT, /* 118 Positive lookahead */ |
| 1452 |
OP_ASSERT_NOT, /* 119 Negative lookahead */ |
OP_ASSERT_NOT, /* 119 Negative lookahead */ |
| 1456 |
|
|
| 1457 |
/* ONCE, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come after the assertions, |
/* ONCE, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come after the assertions, |
| 1458 |
with ONCE first, as there's a test for >= ONCE for a subpattern that isn't an |
with ONCE first, as there's a test for >= ONCE for a subpattern that isn't an |
| 1459 |
assertion. The POS versions must immediately follow the non-POS versions in |
assertion. The POS versions must immediately follow the non-POS versions in |
| 1460 |
each case. */ |
each case. */ |
| 1461 |
|
|
| 1462 |
OP_ONCE, /* 123 Atomic group */ |
OP_ONCE, /* 123 Atomic group */ |
| 1485 |
|
|
| 1486 |
OP_BRAZERO, /* 139 These two must remain together and in this */ |
OP_BRAZERO, /* 139 These two must remain together and in this */ |
| 1487 |
OP_BRAMINZERO, /* 140 order. */ |
OP_BRAMINZERO, /* 140 order. */ |
| 1488 |
OP_BRAPOSZERO, /* 141 */ |
OP_BRAPOSZERO, /* 141 */ |
| 1489 |
|
|
| 1490 |
/* These are backtracking control verbs */ |
/* These are backtracking control verbs */ |
| 1491 |
|
|
| 1502 |
|
|
| 1503 |
OP_FAIL, /* 150 */ |
OP_FAIL, /* 150 */ |
| 1504 |
OP_ACCEPT, /* 151 */ |
OP_ACCEPT, /* 151 */ |
| 1505 |
OP_CLOSE, /* 152 Used before OP_ACCEPT to close open captures */ |
OP_ASSERT_ACCEPT, /* 152 Used inside assertions */ |
| 1506 |
|
OP_CLOSE, /* 153 Used before OP_ACCEPT to close open captures */ |
| 1507 |
|
|
| 1508 |
/* This is used to skip a subpattern with a {0} quantifier */ |
/* This is used to skip a subpattern with a {0} quantifier */ |
| 1509 |
|
|
| 1510 |
OP_SKIPZERO, /* 153 */ |
OP_SKIPZERO, /* 154 */ |
| 1511 |
|
|
| 1512 |
/* 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 |
| 1513 |
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 |
| 1559 |
"Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def", \ |
"Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def", \ |
| 1560 |
"Brazero", "Braminzero", "Braposzero", \ |
"Brazero", "Braminzero", "Braposzero", \ |
| 1561 |
"*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP", \ |
"*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP", \ |
| 1562 |
"*THEN", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT", \ |
"*THEN", "*THEN", "*COMMIT", "*FAIL", \ |
| 1563 |
|
"*ACCEPT", "*ASSERT_ACCEPT", \ |
| 1564 |
"Close", "Skip zero" |
"Close", "Skip zero" |
| 1565 |
|
|
| 1566 |
|
|
| 1642 |
3, 1, 3, /* MARK, PRUNE, PRUNE_ARG */ \ |
3, 1, 3, /* MARK, PRUNE, PRUNE_ARG */ \ |
| 1643 |
1, 3, /* SKIP, SKIP_ARG */ \ |
1, 3, /* SKIP, SKIP_ARG */ \ |
| 1644 |
1+LINK_SIZE, 3+LINK_SIZE, /* THEN, THEN_ARG */ \ |
1+LINK_SIZE, 3+LINK_SIZE, /* THEN, THEN_ARG */ \ |
| 1645 |
1, 1, 1, 3, 1 /* COMMIT, FAIL, ACCEPT, CLOSE, SKIPZERO */ \ |
1, 1, 1, 1, /* COMMIT, FAIL, ACCEPT, ASSERT_ACCEPT */ \ |
| 1646 |
|
3, 1 /* CLOSE, SKIPZERO */ |
| 1647 |
|
|
| 1648 |
/* 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" |
| 1649 |
condition. */ |
condition. */ |
| 1741 |
int final_bracount; /* Saved value after first pass */ |
int final_bracount; /* Saved value after first pass */ |
| 1742 |
int top_backref; /* Maximum back reference */ |
int top_backref; /* Maximum back reference */ |
| 1743 |
unsigned int backref_map; /* Bitmap of low back refs */ |
unsigned int backref_map; /* Bitmap of low back refs */ |
| 1744 |
|
int assert_depth; /* Depth of nested assertions */ |
| 1745 |
int external_options; /* External (initial) options */ |
int external_options; /* External (initial) options */ |
| 1746 |
int external_flags; /* External flag bits to be set */ |
int external_flags; /* External flag bits to be set */ |
| 1747 |
int req_varyopt; /* "After variable item" flag for reqbyte */ |
int req_varyopt; /* "After variable item" flag for reqbyte */ |
| 1798 |
int name_entry_size; /* Size of entry in names table */ |
int name_entry_size; /* Size of entry in names table */ |
| 1799 |
uschar *name_table; /* Table of names */ |
uschar *name_table; /* Table of names */ |
| 1800 |
uschar nl[4]; /* Newline string when fixed */ |
uschar nl[4]; /* Newline string when fixed */ |
| 1801 |
const uschar *lcc; /* Points to lower casing table */ |
const uschar *lcc; /* Points to lower casing table */ |
| 1802 |
const uschar *ctypes; /* Points to table of type maps */ |
const uschar *ctypes; /* Points to table of type maps */ |
| 1803 |
BOOL offset_overflow; /* Set if too many extractions */ |
BOOL offset_overflow; /* Set if too many extractions */ |
| 1804 |
BOOL notbol; /* NOTBOL flag */ |
BOOL notbol; /* NOTBOL flag */ |
| 1805 |
BOOL noteol; /* NOTEOL flag */ |
BOOL noteol; /* NOTEOL flag */ |
| 1811 |
BOOL notempty_atstart; /* Empty string match at start not wanted */ |
BOOL notempty_atstart; /* Empty string match at start not wanted */ |
| 1812 |
BOOL hitend; /* Hit the end of the subject at some point */ |
BOOL hitend; /* Hit the end of the subject at some point */ |
| 1813 |
BOOL bsr_anycrlf; /* \R is just any CRLF, not full Unicode */ |
BOOL bsr_anycrlf; /* \R is just any CRLF, not full Unicode */ |
| 1814 |
const uschar *start_code; /* For use when recursing */ |
const uschar *start_code; /* For use when recursing */ |
| 1815 |
USPTR start_subject; /* Start of the subject string */ |
USPTR start_subject; /* Start of the subject string */ |
| 1816 |
USPTR end_subject; /* End of the subject string */ |
USPTR end_subject; /* End of the subject string */ |
| 1817 |
USPTR start_match_ptr; /* Start of matched string */ |
USPTR start_match_ptr; /* Start of matched string */ |
| 1821 |
int end_offset_top; /* Highwater mark at end of match */ |
int end_offset_top; /* Highwater mark at end of match */ |
| 1822 |
int capture_last; /* Most recent capture number */ |
int capture_last; /* Most recent capture number */ |
| 1823 |
int start_offset; /* The start offset value */ |
int start_offset; /* The start offset value */ |
| 1824 |
int match_function_type; /* Set for certain special calls of MATCH() */ |
int match_function_type; /* Set for certain special calls of MATCH() */ |
| 1825 |
eptrblock *eptrchain; /* Chain of eptrblocks for tail recursions */ |
eptrblock *eptrchain; /* Chain of eptrblocks for tail recursions */ |
| 1826 |
int eptrn; /* Next free eptrblock */ |
int eptrn; /* Next free eptrblock */ |
| 1827 |
recursion_info *recursive; /* Linked list of recursion data */ |
recursion_info *recursive; /* Linked list of recursion data */ |
| 1828 |
void *callout_data; /* To pass back to callouts */ |
void *callout_data; /* To pass back to callouts */ |
| 1829 |
const uschar *mark; /* Mark pointer to pass back */ |
const uschar *mark; /* Mark pointer to pass back */ |
| 1830 |
} match_data; |
} match_data; |
| 1831 |
|
|
| 1832 |
/* 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 |