diff options
author | dgp <dgp@users.sourceforge.net> | 2015-10-19 17:42:43 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2015-10-19 17:42:43 (GMT) |
commit | b8c0c06fdf9f099f27f114fc9c92b7786dce13a5 (patch) | |
tree | 5ac5633bb80171473d9ef18687b9800b3dadc464 /generic/regcomp.c | |
parent | b22ebcce6b9f2e861a4c9fed13421df0c76769d6 (diff) | |
download | tcl-b8c0c06fdf9f099f27f114fc9c92b7786dce13a5.zip tcl-b8c0c06fdf9f099f27f114fc9c92b7786dce13a5.tar.gz tcl-b8c0c06fdf9f099f27f114fc9c92b7786dce13a5.tar.bz2 |
Adaptation of the patch re-fixconstraintloops.patch from
http://www.postgresql.org/message-id/19394.1444865029@sss.pgh.pa.us
Diffstat (limited to 'generic/regcomp.c')
-rw-r--r-- | generic/regcomp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/regcomp.c b/generic/regcomp.c index b1c02d8..27bb736 100644 --- a/generic/regcomp.c +++ b/generic/regcomp.c @@ -149,6 +149,13 @@ static int combine(struct arc *, struct arc *); static void fixempties(struct nfa *, FILE *); static struct state *emptyreachable(struct state *, struct state *); static void replaceempty(struct nfa *, struct state *, struct state *); +static int isconstraintarc(struct arc *); +static int hasconstraintout(struct state *); +static void fixconstraintloops(struct nfa *, FILE *); +static int findconstraintloop(struct nfa *, struct state *); +static void breakconstraintloop(struct nfa *, struct state *); +static void clonesuccessorstates(struct nfa *, struct state *, struct state *, + struct state *, struct arc *, char *, char *, int); static void cleanup(struct nfa *); static void markreachable(struct nfa *, struct state *, struct state *, struct state *); static void markcanreach(struct nfa *, struct state *, struct state *, struct state *); |