=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/lex.c,v retrieving revision 1.6 retrieving revision 1.9 diff -u -p -r1.6 -r1.9 --- OpenXM_contrib2/asir2000/parse/lex.c 2000/11/13 01:48:13 1.6 +++ OpenXM_contrib2/asir2000/parse/lex.c 2000/12/05 01:51:35 1.9 @@ -45,17 +45,15 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.5 2000/08/22 05:04:27 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/lex.c,v 1.8 2000/12/05 01:24:57 noro Exp $ */ #include #include "ca.h" #include "al.h" #include "base.h" #include "parse.h" -#if !defined(THINK_C) #include #include -#endif #include "y.tab.h" extern IN asir_infile; @@ -401,8 +399,7 @@ yylex() void purge_stdin() { -#if defined(VISUAL) -#elif defined(__FreeBSD__) +#if defined(__FreeBSD__) fpurge(stdin); #elif defined(linux) stdin->_IO_read_end = stdin->_IO_read_base; @@ -558,7 +555,11 @@ static int Getc() { if ((c = Egetc(asir_infile->fp)) == EOF) if ( NEXT(asir_infile) ) { closecurrentinput(); - c = Getc(); + /* if the input is the top level, generate error */ + if ( !NEXT(asir_infile) ) + error("end-of-file detected during parsing"); + else + c = Getc(); break; } else if ( read_exec_file || do_file ) asir_terminate(2);