summaryrefslogtreecommitdiff
path: root/regexp.h
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2006-04-16 23:30:36 +0000
committerDave Mitchell <davem@fdisolutions.com>2006-04-16 23:30:36 +0000
commit77cb431f8c908a31b286bd0ba26649cb6041bd72 (patch)
treeaf874bc3fae848d84f4eacb116fd232866e50890 /regexp.h
parent86545054c8c657e55c285668ee20752b2f2574b8 (diff)
downloadperl-77cb431f8c908a31b286bd0ba26649cb6041bd72.tar.gz
generalize the 'continue on success' mechanism of deferred REs
p4raw-id: //depot/perl@27855
Diffstat (limited to 'regexp.h')
-rw-r--r--regexp.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/regexp.h b/regexp.h
index 0491d347c1..455f04838a 100644
--- a/regexp.h
+++ b/regexp.h
@@ -214,20 +214,26 @@ typedef struct regmatch_state {
I32 ln; /* len or last */
union {
+
+ /* this is a fake union member that matches the first element
+ * of each member that needs to store positive backtrack
+ * information */
+ struct {
+ struct regmatch_state *prev_yes_state;
+ } yes;
+
struct {
reg_trie_accepted *accept_buff;
U32 accepted; /* how many accepting states we have seen */
} trie;
struct {
+ /* this first element must match u.yes */
+ struct regmatch_state *prev_yes_state;
regexp *prev_rex;
int toggleutf;
CHECKPOINT cp; /* remember current savestack indexes */
CHECKPOINT lastcp;
- struct regmatch_state *prev_eval; /* save cur_eval */
- struct regmatch_slab *prev_slab;
- int depth;
-
} eval;
struct {