Mercurial > hg > octave-avbm
diff libinterp/parse-tree/lex.h @ 16110:7302f8a4df83
use pointer for global lexical_feedback structure
* lex.h, lex.ll (curr_lexer): Rename from lexer_flags.
Declare as pointer. Change all uses.
* lex.h (lexical_feedback): Make copy constructor and operator=
private.
* toplev.cc (main_loop): Protect existing and initialize new
curr_lexer.
* input.cc (get_debug_input): Likewise.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 26 Feb 2013 01:10:08 -0500 |
parents | 3b791008b88e |
children | 3ec4f6488569 |
line wrap: on
line diff
--- a/libinterp/parse-tree/lex.h +++ b/libinterp/parse-tree/lex.h @@ -175,74 +175,6 @@ init (); } - lexical_feedback (const lexical_feedback& lf) - : convert_spaces_to_comma (lf.convert_spaces_to_comma), - do_comma_insert (lf.do_comma_insert), - at_beginning_of_statement (lf.at_beginning_of_statement), - looking_at_anon_fcn_args (lf.looking_at_anon_fcn_args), - looking_at_return_list (lf.looking_at_return_list), - looking_at_parameter_list (lf.looking_at_parameter_list), - looking_at_decl_list (lf.looking_at_decl_list), - looking_at_initializer_expression (lf.looking_at_initializer_expression), - looking_at_matrix_or_assign_lhs (lf.looking_at_matrix_or_assign_lhs), - looking_for_object_index (lf.looking_for_object_index), - looking_at_indirect_ref (lf.looking_at_indirect_ref), - parsing_class_method (lf.parsing_class_method), - maybe_classdef_get_set_method (lf.maybe_classdef_get_set_method), - parsing_classdef (lf.parsing_classdef), - quote_is_transpose (lf.quote_is_transpose), - parser_end_of_input (lf.parser_end_of_input), - input_line_number (lf.input_line_number), - current_input_column (lf.current_input_column), - bracketflag (lf.bracketflag), - braceflag (lf.braceflag), - looping (lf.looping), - defining_func (lf.defining_func), - looking_at_function_handle (lf.looking_at_function_handle), - block_comment_nesting_level (lf.block_comment_nesting_level), - looking_at_object_index (lf.looking_at_object_index), - parsed_function_name (lf.parsed_function_name), - pending_local_variables (lf.pending_local_variables), - nesting_level (lf.nesting_level) - { } - - lexical_feedback& operator = (const lexical_feedback& lf) - { - if (&lf != this) - { - convert_spaces_to_comma = lf.convert_spaces_to_comma; - do_comma_insert = lf.do_comma_insert; - at_beginning_of_statement = lf.at_beginning_of_statement; - looking_at_anon_fcn_args = lf.looking_at_anon_fcn_args; - looking_at_return_list = lf.looking_at_return_list; - looking_at_parameter_list = lf.looking_at_parameter_list; - looking_at_decl_list = lf.looking_at_decl_list; - looking_at_initializer_expression = lf.looking_at_initializer_expression; - looking_at_matrix_or_assign_lhs = lf.looking_at_matrix_or_assign_lhs; - looking_for_object_index = lf.looking_for_object_index; - looking_at_indirect_ref = lf.looking_at_indirect_ref; - parsing_class_method = lf.parsing_class_method; - maybe_classdef_get_set_method = lf.maybe_classdef_get_set_method; - parsing_classdef = lf.parsing_classdef; - quote_is_transpose = lf.quote_is_transpose; - parser_end_of_input = lf.parser_end_of_input; - input_line_number = lf.input_line_number; - current_input_column = lf.current_input_column; - bracketflag = lf.bracketflag; - braceflag = lf.braceflag; - looping = lf.looping; - defining_func = lf.defining_func; - looking_at_function_handle = lf.looking_at_function_handle; - block_comment_nesting_level = lf.block_comment_nesting_level, - looking_at_object_index = lf.looking_at_object_index; - parsed_function_name = lf.parsed_function_name; - pending_local_variables = lf.pending_local_variables; - nesting_level = lf.nesting_level; - } - - return *this; - } - ~lexical_feedback (void) { } void init (void) @@ -347,6 +279,14 @@ // Is the closest nesting level a square bracket, squiggly brace or // a paren? bbp_nesting_level nesting_level; + +private: + + // No copying! + + lexical_feedback (const lexical_feedback&); + + lexical_feedback& operator = (const lexical_feedback&); }; class @@ -370,7 +310,7 @@ extern std::string grab_comment_block (stream_reader& reader, bool at_bol, bool& eof); -// Flags that need to be shared between the lexer and parser. -extern lexical_feedback lexer_flags; +// The current state of the lexer. +extern lexical_feedback *curr_lexer; #endif