changeset 16122:6884401b2fbb

move reset_parser lexer helper function to lexical_feedback class * lex.h, lex.ll (reset_parser): Declare as member function of lexical_feedback class. Change all uses. (cleanup_parser): Don't call reset parser. * parse.h (reset_parser): Delete decl.
author John W. Eaton <jwe@octave.org>
date Tue, 26 Feb 2013 12:43:15 -0500
parents bdf365c5c9bf
children a484e39d1f22
files libinterp/interpfcn/input.cc libinterp/interpfcn/toplev.cc libinterp/parse-tree/lex.h libinterp/parse-tree/lex.ll libinterp/parse-tree/oct-parse.yy libinterp/parse-tree/parse.h
diffstat 6 files changed, 7 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/interpfcn/input.cc	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/interpfcn/input.cc	Tue Feb 26 12:43:15 2013 -0500
@@ -686,7 +686,7 @@
     {
       reset_error_handler ();
 
-      reset_parser ();
+      curr_lexer->reset_parser ();
 
       // Save current value of global_command.
       frame.protect_var (global_command);
--- a/libinterp/interpfcn/toplev.cc	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/interpfcn/toplev.cc	Tue Feb 26 12:43:15 2013 -0500
@@ -574,7 +574,7 @@
 
           reset_error_handler ();
 
-          reset_parser ();
+          curr_lexer->reset_parser ();
 
           if (symbol_table::at_top_level ())
             tree_evaluator::reset_debug_state ();
--- a/libinterp/parse-tree/lex.h	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/parse-tree/lex.h	Tue Feb 26 12:43:15 2013 -0500
@@ -205,6 +205,8 @@
     looking_at_object_index.push_front (false);
   }
 
+  void reset_parser (void);
+
   int octave_read (char *buf, unsigned int max_size);
 
   void do_comma_insert_check (void);
--- a/libinterp/parse-tree/lex.ll	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/parse-tree/lex.ll	Tue Feb 26 12:43:15 2013 -0500
@@ -976,12 +976,8 @@
 
 %%
 
-// Fix things up for errors or interrupts.  The parser is never called
-// recursively, so it is always safe to reinitialize its state before
-// doing any parsing.
-
 void
-reset_parser (void)
+lexical_feedback::reset_parser (void)
 {
   // Start off on the right foot.
   BEGIN (INITIAL);
@@ -1209,8 +1205,6 @@
 void
 cleanup_parser (void)
 {
-  reset_parser ();
-
   clear_all_buffers ();
 }
 
--- a/libinterp/parse-tree/oct-parse.yy	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/parse-tree/oct-parse.yy	Tue Feb 26 12:43:15 2013 -0500
@@ -3503,7 +3503,7 @@
       curr_lexer = new lexical_feedback ();
       frame.add_fcn (lexical_feedback::cleanup, curr_lexer);
 
-      reset_parser ();
+      curr_lexer->reset_parser ();
 
       std::string help_txt = gobble_leading_white_space (ffile, eof);
 
@@ -4344,7 +4344,7 @@
 
   do
     {
-      reset_parser ();
+      curr_lexer->reset_parser ();
 
       frame.protect_var (global_command);
 
--- a/libinterp/parse-tree/parse.h	Tue Feb 26 12:26:02 2013 -0500
+++ b/libinterp/parse-tree/parse.h	Tue Feb 26 12:43:15 2013 -0500
@@ -29,7 +29,6 @@
 
 #include <stack>
 
-extern void reset_parser (void);
 extern int octave_lex (void);
 
 class tree;