changeset 18245:1f072ae35ede stable

fix parsing of single quote after continuation and comment (bug #41048) * lex.ll (octave_base_lexer::handle_continuation): Preserve state of at_beginning_of_statement across call to finish_comment. * parser.tst: New test.
author John W. Eaton <jwe@octave.org>
date Wed, 08 Jan 2014 01:26:49 -0500
parents 36057e2411f8
children 043ce3787849 8193ef6d07fc
files libinterp/parse-tree/lex.ll test/parser.tst
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/lex.ll	Tue Jan 07 22:06:37 2014 -0500
+++ b/libinterp/parse-tree/lex.ll	Wed Jan 08 01:26:49 2014 -0500
@@ -2531,7 +2531,15 @@
     {
       comment_text = &yytxt[offset];
 
+      // finish_comment sets at_beginning_of_statement to true but
+      // that's not be correct if we are handling a continued
+      // statement.  Preserve the current state.
+
+      bool saved_bos = at_beginning_of_statement;
+
       finish_comment (octave_comment_elt::end_of_line);
+
+      at_beginning_of_statement = saved_bos;
     }
 
   decrement_promptflag ();
--- a/test/parser.tst	Tue Jan 07 22:06:37 2014 -0500
+++ b/test/parser.tst	Wed Jan 08 01:26:49 2014 -0500
@@ -283,3 +283,7 @@
 %! xyz(1) = 1; xyz /= 1;
 %! assert (xyz, 1);
 
+%!test
+%! a = [97 ... % comment
+%!      'b'];
+%! assert (a, 'ab');