# HG changeset patch # User John W. Eaton # Date 1361847580 18000 # Node ID b7de58feb2d3658665e3f528fae265f6f63d523d # Parent c8974e28da59088876651e112ad79bd9341d7316 move block_comment_nesting_level to lexical_feedback_class * lex.h, lex.ll (block_comment_nesting_level): Move global variable to lexical_feedback class. Change all uses. (reset_parser): Don't reset block_comment_nesting_level. diff -r c8974e28da59 -r b7de58feb2d3 libinterp/parse-tree/lex.h --- a/libinterp/parse-tree/lex.h Mon Feb 25 21:54:15 2013 -0500 +++ b/libinterp/parse-tree/lex.h Mon Feb 25 21:59:40 2013 -0500 @@ -150,6 +150,7 @@ input_line_number (1), current_input_column (1), bracketflag (0), braceflag (0), looping (0), defining_func (0), looking_at_function_handle (0), + block_comment_nesting_level (0), looking_at_object_index (), parsed_function_name (), pending_local_variables (), nesting_level () { @@ -180,6 +181,7 @@ 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), @@ -213,6 +215,7 @@ 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; @@ -308,6 +311,9 @@ // Nonzero means we are parsing a function handle. int looking_at_function_handle; + // Nestng level for blcok comments. + int block_comment_nesting_level; + // If the front of the list is TRUE, the closest paren, brace, or // bracket nesting is an index for an object. std::list looking_at_object_index; diff -r c8974e28da59 -r b7de58feb2d3 libinterp/parse-tree/lex.ll --- a/libinterp/parse-tree/lex.ll Mon Feb 25 21:54:15 2013 -0500 +++ b/libinterp/parse-tree/lex.ll Mon Feb 25 21:59:40 2013 -0500 @@ -235,10 +235,6 @@ static unsigned int Vtoken_count = 0; -// The start state that was in effect when the beginning of a block -// comment was noticed. -static int block_comment_nesting_level = 0; - // Internal variable for lexer debugging state. static bool lexer_debug_flag = false; @@ -661,7 +657,7 @@ <> { LEXER_DEBUG ("<>"); - if (block_comment_nesting_level != 0) + if (lexer_flags.block_comment_nesting_level != 0) { warning ("block comment open at end of input"); @@ -839,7 +835,7 @@ lexer_flags.input_line_number++; lexer_flags.current_input_column = 1; - block_comment_nesting_level++; + lexer_flags.block_comment_nesting_level++; promptflag--; bool eof = false; @@ -1063,9 +1059,6 @@ // We do want a prompt by default. promptflag = 1; - // We are not in a block comment. - block_comment_nesting_level = 0; - // Clear out the stack of token info used to track line and column // numbers. while (! token_stack.empty ()) @@ -1680,15 +1673,15 @@ if (type == '{') { - block_comment_nesting_level++; + lexer_flags.block_comment_nesting_level++; promptflag--; } else { - block_comment_nesting_level--; + lexer_flags.block_comment_nesting_level--; promptflag++; - if (block_comment_nesting_level == 0) + if (lexer_flags.block_comment_nesting_level == 0) { buf += grab_comment_block (reader, true, eof); @@ -1788,7 +1781,7 @@ at_bol = true; done = true; - block_comment_nesting_level++; + lexer_flags.block_comment_nesting_level++; promptflag--; buf += grab_block_comment (reader, eof);