X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Flexer.c;h=1a8bd30b7b42b26e23be0ed596dae79aa1bee0d1;hp=998b69fb2884ec9fd487983536e694128b7b78d2;hb=ecb3935e78cd9bcfdebafdee0834cfb1060d7b5e;hpb=c1ecb833ce85c0dc62550a4183975c7397bd4f7c diff --git a/dfa/lexer.c b/dfa/lexer.c index 998b69f..1a8bd30 100644 --- a/dfa/lexer.c +++ b/dfa/lexer.c @@ -1,23 +1,26 @@ -/* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: lexer.c,v $ - * 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 - * 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... - */ +/* $Id: lexer.c,v 1.15 2006-05-10 08:13:18 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS + +This file is part of the Zebra server. + +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 Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + + #include #include @@ -25,7 +28,7 @@ #include #include -#include +#include #include #include "imalloc.h" #include "lexer.h" @@ -43,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) @@ -64,13 +62,6 @@ static int lexer_options (int argc, char **argv) case 's': dfa_verbose = 1; continue; - case 't': -#ifdef YACC - yydebug = 1; -#else - alexdebug = 1; -#endif - continue; case 'c': ccluse = 1; continue; @@ -106,15 +97,10 @@ 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; @@ -126,17 +112,21 @@ int main (int argc, char **argv) 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) @@ -147,3 +137,11 @@ int main (int argc, char **argv) return 0; } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +