summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Parser/grammar1.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Parser/grammar1.c b/Parser/grammar1.c
index 612f491..ee8933f 100644
--- a/Parser/grammar1.c
+++ b/Parser/grammar1.c
@@ -36,8 +36,15 @@ finddfa(g, type)
grammar *g;
register int type;
{
- register int i;
register dfa *d;
+#if 1
+ /* Massive speed-up */
+ d = &g->g_dfa[type - NT_OFFSET];
+ assert(d->d_type == type);
+ return d;
+#else
+ /* Old, slow version */
+ register int i;
for (i = g->g_ndfas, d = g->g_dfa; --i >= 0; d++) {
if (d->d_type == type)
@@ -45,6 +52,7 @@ finddfa(g, type)
}
assert(0);
/* NOTREACHED */
+#endif
}
char *