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 ();