Mercurial > octave
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) {