diff libinterp/corefcn/input.h @ 27502:f62f1170ad98

in base_reader, store reference to interpreter instead of lexer * input.h, input.cc (base_reader::m_interpreter): New data member. (base_reader::m_lexer): Delete. (terminal_reader, file_reader, eval_string_reader, input_reader): Change class constructors to accept interpreter object instead of lexer. Change all uses. (base_reader::octave_gets, file_reader::get_input): Access interpreter state using stored reference to interpreter instead of global functions.
author John W. Eaton <jwe@octave.org>
date Wed, 16 Oct 2019 08:45:39 -0400
parents c23aee2104de
children 1bc237447e56
line wrap: on
line diff
--- a/libinterp/corefcn/input.h	Wed Oct 16 13:29:11 2019 +0900
+++ b/libinterp/corefcn/input.h	Wed Oct 16 08:45:39 2019 -0400
@@ -54,7 +54,6 @@
 namespace octave
 {
   class interpreter;
-  class base_lexer;
 
   class input_system
   {
@@ -198,12 +197,12 @@
 
     friend class input_reader;
 
-    base_reader (base_lexer& lxr)
-      : m_count (1), m_pflag (0), m_lexer (lxr)
+    base_reader (interpreter& interp)
+      : m_interpreter (interp), m_count (1), m_pflag (0)
     { }
 
     base_reader (const base_reader& x)
-      : m_count (1), m_pflag (x.m_pflag), m_lexer (x.m_lexer)
+      : m_interpreter (x.m_interpreter), m_count (1), m_pflag (x.m_pflag)
     { }
 
     virtual ~base_reader (void) = default;
@@ -229,26 +228,22 @@
 
     std::string octave_gets (bool& eof);
 
-    virtual bool reading_fcn_file (void) const;
-
-    virtual bool reading_classdef_file (void) const;
-
-    virtual bool reading_script_file (void) const;
-
     virtual bool input_from_terminal (void) const { return false; }
 
     virtual bool input_from_file (void) const { return false; }
 
     virtual bool input_from_eval_string (void) const { return false; }
 
+  protected:
+
+    interpreter& m_interpreter;
+
   private:
 
     refcount<octave_idx_type> m_count;
 
     int m_pflag;
 
-    base_lexer& m_lexer;
-
     static const std::string s_in_src;
   };
 
@@ -256,11 +251,11 @@
   {
   public:
 
-    input_reader (base_lexer& lxr);
+    input_reader (interpreter& interp);
 
-    input_reader (FILE *file, base_lexer& lxr);
+    input_reader (interpreter& interp, FILE *file);
 
-    input_reader (const std::string& str, base_lexer& lxr);
+    input_reader (interpreter& interp, const std::string& str);
 
     input_reader (const input_reader& ir)
     {