Mercurial > octave
comparison 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 |
comparison
equal
deleted
inserted
replaced
17730:580990c2ce04 | 17731:f79bf671a493 |
---|---|
680 | 680 |
681 int count_token_internal (int tok); | 681 int count_token_internal (int tok); |
682 | 682 |
683 int show_token (int tok); | 683 int show_token (int tok); |
684 | 684 |
685 // For unwind protect. | |
686 static void cleanup (octave_base_lexer *lexer) { delete lexer; } | |
687 | |
688 protected: | 685 protected: |
689 | 686 |
690 std::stack<int> start_state_stack; | 687 std::stack<int> start_state_stack; |
691 | 688 |
692 // No copying! | 689 // No copying! |
700 octave_lexer : public octave_base_lexer | 697 octave_lexer : public octave_base_lexer |
701 { | 698 { |
702 public: | 699 public: |
703 | 700 |
704 octave_lexer (void) | 701 octave_lexer (void) |
705 : octave_base_lexer (), input_reader () | 702 : octave_base_lexer (), input_reader (this) |
706 { } | 703 { } |
707 | 704 |
708 octave_lexer (FILE *file) | 705 octave_lexer (FILE *file) |
709 : octave_base_lexer (), input_reader (file) | 706 : octave_base_lexer (), input_reader (file, this) |
710 { } | 707 { } |
711 | 708 |
712 octave_lexer (const std::string& eval_string) | 709 octave_lexer (const std::string& eval_string) |
713 : octave_base_lexer (), input_reader (eval_string) | 710 : octave_base_lexer (), input_reader (eval_string, this) |
714 { } | 711 { } |
715 | 712 |
716 void reset (void) | 713 void reset (void) |
717 { | 714 { |
718 input_reader.reset (); | 715 input_reader.reset (); |