# HG changeset patch # User jwe # Date 1045115536 0 # Node ID 115bffcecfd3f92f26af804b1ec048fad1db8d9a # Parent 1ced186d4b6b105a0ec15879da1f29d25c3d5572 [project @ 2003-02-13 05:52:16 by jwe] diff -r 1ced186d4b6b -r 115bffcecfd3 src/ChangeLog --- a/src/ChangeLog Tue Feb 11 16:10:09 2003 +0000 +++ b/src/ChangeLog Thu Feb 13 05:52:16 2003 +0000 @@ -1,3 +1,10 @@ +2003-02-12 John W. Eaton + + * error.cc (reset_error_handler): New function. + * toplev.cc (main_loop): Use it here. + * lex.l (reset_parser): Don't set error_state and warning_state here. + * parse.y (eval_string): Reset parser before calling yyparse. + 2003-01-29 John W. Eaton * data.cc (Ffmod): New function. diff -r 1ced186d4b6b -r 115bffcecfd3 src/error.cc --- a/src/error.cc Tue Feb 11 16:10:09 2003 +0000 +++ b/src/error.cc Thu Feb 13 05:52:16 2003 +0000 @@ -103,6 +103,15 @@ // The message buffer. static OSSTREAM *error_message_buffer = 0; +void +reset_error_handler (void) +{ + error_state = 0; + warning_state = 0; + buffer_error_messages = false; + discard_error_messages = false; +} + // Warning messages are never buffered. static void diff -r 1ced186d4b6b -r 115bffcecfd3 src/error.h --- a/src/error.h Tue Feb 11 16:10:09 2003 +0000 +++ b/src/error.h Thu Feb 13 05:52:16 2003 +0000 @@ -29,6 +29,8 @@ panic ("impossible state reached in file `%s' at line %d", \ __FILE__, __LINE__) +extern void reset_error_handler (void); + extern void message (const char *name, const char *fmt, ...); extern void usage (const char *fmt, ...); extern void warning (const char *fmt, ...); diff -r 1ced186d4b6b -r 115bffcecfd3 src/lex.l --- a/src/lex.l Tue Feb 11 16:10:09 2003 +0000 +++ b/src/lex.l Thu Feb 13 05:52:16 2003 +0000 @@ -842,8 +842,7 @@ { // Start off on the right foot. BEGIN 0; - error_state = 0; - warning_state = 0; + parser_end_of_input = false; end_tokens_expected = 0; diff -r 1ced186d4b6b -r 115bffcecfd3 src/parse.y --- a/src/parse.y Tue Feb 11 16:10:09 2003 +0000 +++ b/src/parse.y Thu Feb 13 05:52:16 2003 +0000 @@ -3595,6 +3595,8 @@ do { + reset_parser (); + parse_status = yyparse (); tree_statement_list *command = global_command; diff -r 1ced186d4b6b -r 115bffcecfd3 src/toplev.cc --- a/src/toplev.cc Tue Feb 11 16:10:09 2003 +0000 +++ b/src/toplev.cc Thu Feb 13 05:52:16 2003 +0000 @@ -142,6 +142,8 @@ { curr_sym_tab = top_level_sym_tab; + reset_error_handler (); + reset_parser (); retval = yyparse ();