diff libinterp/parse-tree/lex.h @ 16194:b7ca669af528

reset lexical_feedback state before starting a new parse * lex.h, lex.cc (bbp_nesting_level::reset): New function. (lexical_feedback::reset, lexical_feedback::reset_token_stack): New functions. (lexical_feedback::~lexical_feedback): Call reset_token_stack to do the job. (octave_lexer::reset): Call lexical_feedback::reset.
author John W. Eaton <jwe@octave.org>
date Tue, 05 Mar 2013 10:19:47 -0500
parents d7392bf42fd1
children b52d2f9294b6
line wrap: on
line diff
--- a/libinterp/parse-tree/lex.h	Tue Mar 05 10:19:38 2013 -0500
+++ b/libinterp/parse-tree/lex.h	Tue Mar 05 10:19:47 2013 -0500
@@ -106,6 +106,12 @@
 
     ~bbp_nesting_level (void) { }
 
+    void reset (void)
+    {
+      while (! context.empty ())
+        context.pop ();
+    }
+
     void bracket (void) { context.push (BRACKET); }
 
     bool is_bracket (void)
@@ -176,7 +182,9 @@
   ~lexical_feedback (void);
 
   void init (void);
-  
+
+  void reset (void);
+
   // true means that we have encountered eof on the input stream.
   bool end_of_input;
 
@@ -280,6 +288,8 @@
 
 private:
 
+  void reset_token_stack (void);
+
   // No copying!
 
   lexical_feedback (const lexical_feedback&);