diff options
Diffstat (limited to 'Parser')
-rw-r--r-- | Parser/grammar1.c | 10 |
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 * |