summaryrefslogtreecommitdiffstats
path: root/generic/regcomp.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2015-10-19 17:42:43 (GMT)
committerdgp <dgp@users.sourceforge.net>2015-10-19 17:42:43 (GMT)
commitb8c0c06fdf9f099f27f114fc9c92b7786dce13a5 (patch)
tree5ac5633bb80171473d9ef18687b9800b3dadc464 /generic/regcomp.c
parentb22ebcce6b9f2e861a4c9fed13421df0c76769d6 (diff)
downloadtcl-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.c7
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 *);