X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dfa%2Flexer.c;h=85fa2e5b41c3753ed2deda0713305cec55815298;hb=a4e74639ad8d0c5db0b5d52b9f8412a1a5b3228d;hp=9729d9e7e5eb18b08a83b06114050ed58a93a0c9;hpb=25711769a3fb5c6bf0ab3eb9634bf74ba07dc48d;p=idzebra-moved-to-github.git diff --git a/dfa/lexer.c b/dfa/lexer.c index 9729d9e..85fa2e5 100644 --- a/dfa/lexer.c +++ b/dfa/lexer.c @@ -4,7 +4,21 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: lexer.c,v $ - * Revision 1.2 1994-09-27 16:31:20 adam + * Revision 1.6 1995-01-25 11:30:51 adam + * Simple error reporting when parsing regular expressions. + * Memory usage reduced. + * + * Revision 1.5 1995/01/24 16:00:22 adam + * Added -ansi to CFLAGS. + * Some changes to the dfa module. + * + * Revision 1.4 1994/10/04 17:46:44 adam + * Function options now returns arg with error option. + * + * Revision 1.3 1994/10/03 17:22:19 adam + * Optimization of grepper. + * + * Revision 1.2 1994/09/27 16:31:20 adam * First version of grepper: grep with error correction. * * Revision 1.1 1994/09/26 10:16:55 adam @@ -58,7 +72,7 @@ static int lexer_options (int argc, char **argv) case 'V': fprintf (stderr, "%s: %s %s\n", prog, __DATE__, __TIME__); continue; - case 'v': + case 's': dfa_verbose = 1; continue; case 't': @@ -103,8 +117,7 @@ static int lexer_options (int argc, char **argv) int main (int argc, char **argv) { int i, no = 0; - DFA *dfa; - DFA_states *dfas; + struct DFA *dfa; prog = *argv; #ifdef YACC @@ -112,27 +125,32 @@ int main (int argc, char **argv) #else alexdebug = 0; #endif + dfa = dfa_init (); i = lexer_options (argc, argv); if (i) return i; if (argc < 2) { - fprintf (stderr, "usage\n %s [-c] [-V] [-v] [-t] [-d[stf]] file\n", + fprintf (stderr, "usage\n %s [-c] [-V] [-s] [-t] [-d[stf]] file\n", prog); return 1; } else while (--argc > 0) - if (**++argv != '-' && **argv) - { - ++no; - i = read_file (*argv, &dfa); - if (i) - return i; - dfas = mk_dfas (dfa, 2000); - rm_dfa (&dfa); - rm_dfas (&dfas); - } + if (**++argv != '-' && **argv) + { + ++no; + + i = read_file (*argv, dfa); + if (i) + return i; + dfa_mkstate (dfa); + +#ifdef MEMDEBUG + imemstat(); +#endif + } + dfa_delete (&dfa); #ifdef MEMDEBUG imemstat(); #endif