Updated WIN32 code specific sections. Changed header.
[idzebra-moved-to-github.git] / dfa / lexer.c
index 9729d9e..ace18cc 100644 (file)
@@ -1,10 +1,39 @@
 /*
- * Copyright (C) 1994, Index Data I/S 
+ * Copyright (C) 1994-1999, Index Data
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: lexer.c,v $
- * Revision 1.2  1994-09-27 16:31:20  adam
+ * Revision 1.11  1999-02-02 14:50:10  adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.10  1996/10/29 13:57:27  adam
+ * Include of zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.9  1996/05/14 11:33:41  adam
+ * MEMDEBUG turned off by default.
+ *
+ * Revision 1.8  1995/09/28  09:18:54  adam
+ * Removed various preprocessor defines.
+ *
+ * Revision 1.7  1995/09/04  12:33:27  adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * 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
@@ -22,7 +51,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include <util.h>
+#include <zebrautl.h>
 #include <dfa.h>
 #include "imalloc.h"
 #include "lexer.h"
@@ -40,11 +69,6 @@ void error (const char *format, ...)
     exit (1);
 }
 
-#ifdef YACC
-extern int yydebug;
-#else
-extern int alexdebug;
-#endif
 int ccluse = 0;
 
 static int lexer_options (int argc, char **argv)
@@ -58,16 +82,9 @@ 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':
-#ifdef YACC
-                    yydebug = 1;
-#else
-                    alexdebug = 1;
-#endif
-                    continue;
                case 'c':
                     ccluse = 1;
                     continue;
@@ -103,37 +120,36 @@ 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
-    yydebug = 0;
-#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);
-            }
-#ifdef MEMDEBUG
+        if (**++argv != '-' && **argv)
+        {
+            ++no;
+            
+            i = read_file (*argv, dfa);
+            if (i)
+                return i;
+            dfa_mkstate (dfa);
+
+#if MEMDEBUG
+    imemstat();
+#endif
+        }
+    dfa_delete (&dfa);
+#if MEMDEBUG
     imemstat();
 #endif
     if (!no)