diff libinterp/parse-tree/lex.h @ 17731:f79bf671a493

eliminate global LEXER variable * input.h, input.cc (octave_base_reader::lexer): New member variable. (octave_base_reader::octave_base_reader): Initialize lexer. (octave_base_reader::octave_base_reader (const octave_base_reader&)): Also copy pflag and lexer. (octave_base_reader::reading_fcn_file, octave_base_reader::reading_classdef_file, octave_base_reader::reading_script_file): New functions. (octave_base_reader::do_input_echo): Call reading_script file instead of using global LEXER variable. (get_user_input): Don't user global LEXER variable. Only check interactive and forced_interactive to decide whether to temporarily set forced_interactive to true. (octave_terminal_reader::octave_terminal_reader, octave_file_reader::octave_file_reader, octave_eval_string_reader::octave_eval_string_reader, octave_input_reader::octave_input_reader): New optional arg, lexer. * toplev.cc (main_loop): Don't user global LEXER variable. Eliminate unused unwind_protect frame. * lex.h, lex.ll (octave_base_lexer::cleanup): Delete unused function. (octave_lexer::octave_lexer): Pass this to input_reader initializer. * parse.h, oct-parse.in.yy (octave_base_parser::init): Delete unneded function. (octave_base_parser::octave_base_parser, octave_push_parser::init, octave_push_parser::octave_push_parser): Don't call octave_base_parser::init. (eval_string): Don't use global LEXER variable. Eliminate unused unwind_protect frame.
author John W. Eaton <jwe@octave.org>
date Tue, 22 Oct 2013 18:43:36 -0400
parents efbe746f8fa8
children 8ad59bef27b5
line wrap: on
line diff
--- a/libinterp/parse-tree/lex.h	Tue Oct 22 14:32:21 2013 -0700
+++ b/libinterp/parse-tree/lex.h	Tue Oct 22 18:43:36 2013 -0400
@@ -682,9 +682,6 @@
 
   int show_token (int tok);
 
-  // For unwind protect.
-  static void cleanup (octave_base_lexer *lexer) { delete lexer; }
-
 protected:
 
   std::stack<int> start_state_stack;
@@ -702,15 +699,15 @@
 public:
 
   octave_lexer (void)
-    : octave_base_lexer (), input_reader ()
+    : octave_base_lexer (), input_reader (this)
   { }
 
   octave_lexer (FILE *file)
-    : octave_base_lexer (), input_reader (file)
+    : octave_base_lexer (), input_reader (file, this)
   { }
 
   octave_lexer (const std::string& eval_string)
-    : octave_base_lexer (), input_reader (eval_string)
+    : octave_base_lexer (), input_reader (eval_string, this)
   { }
 
   void reset (void)