Do not build for Ubuntu raring, quantal (obsolete)
[idzebra-moved-to-github.git] / dfa / lexer.c
index 9729d9e..c71035f 100644 (file)
@@ -1,20 +1,26 @@
-/*
- * Copyright (C) 1994, Index Data I/S 
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
- *
- * $Log: lexer.c,v $
- * 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
- * First version of dfa module in alex. This version uses yacc to parse
- * regular expressions. This should be hand-made instead.
- *
- *
- * Adam Dickmeiss.      1992-1993
- * This module is actually very old...
- */
+/* This file is part of the Zebra server.
+   Copyright (C) Index Data
+
+Zebra is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+*/
+
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 #include <stdio.h>
 #include <assert.h>
 
@@ -22,7 +28,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include <util.h>
+#include <idzebra/util.h>
 #include <dfa.h>
 #include "imalloc.h"
 #include "lexer.h"
@@ -40,11 +46,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 +59,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 +97,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)
@@ -144,3 +137,12 @@ int main (int argc, char **argv)
     return 0;
 }
 
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+