summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/regc_nfa.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/generic/regc_nfa.c b/generic/regc_nfa.c
index 5e2ad3a..baf4592 100644
--- a/generic/regc_nfa.c
+++ b/generic/regc_nfa.c
@@ -1306,15 +1306,15 @@ fixempties(
*/
for (s = nfa->states; s != NULL && !NISERR(); s = nexts) {
nexts = s->next;
- if (s->nouts == 1 && !s->flag) {
- a = s->outs;
- assert(a != NULL && a->outchain == NULL);
- if (a->type == EMPTY) {
- if (s != a->to)
- moveins(nfa, s, a->to);
- dropstate(nfa, s);
- }
- }
+ if (s->flag || s->nouts != 1)
+ continue;
+ a = s->outs;
+ assert(a != NULL && a->outchain == NULL);
+ if (a->type != EMPTY)
+ continue;
+ if (s != a->to)
+ moveins(nfa, s, a->to);
+ dropstate(nfa, s);
}
/*
@@ -1324,16 +1324,16 @@ fixempties(
for (s = nfa->states; s != NULL && !NISERR(); s = nexts) {
nexts = s->next;
/* while we're at it, ensure tmp fields are clear for next step */
- s->tmp = NULL;
- if (s->nins == 1 && !s->flag) {
- a = s->ins;
- assert(a != NULL && a->inchain == NULL);
- if (a->type == EMPTY) {
- if (s != a->from)
- moveouts(nfa, s, a->from);
- dropstate(nfa, s);
- }
- }
+ assert(s->tmp = NULL);
+ if (s->flag || s->nins != 1)
+ continue;
+ a = s->ins;
+ assert(a != NULL && a->inchain == NULL);
+ if (a->type != EMPTY)
+ continue;
+ if (s != a->from)
+ moveouts(nfa, s, a->from);
+ dropstate(nfa, s);
}
/*