Mercurial > hg > octave-lyh
comparison libinterp/parse-tree/lex.ll @ 16681:d3619d4d267c
recognize character string at beginning of statement (bug #38926, #38958)
* lex.ll ("'"): Always begin a character string if at the beginning of
a statement.
* oct-parse.in.yy (stmt_begin): New non-terminal.
(anon_fcn_handle, if_cmd_list1, elseif_clause, switch_case,
loop_command): Use it.
* pt-fcn-handle.cc, for.tst, if.tst, switch.tst, while.tst:
New tests.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 18 May 2013 16:21:32 -0400 |
parents | de79cdbbdf7c |
children | e1c6ad54259f d56cbc17566e |
comparison
equal
deleted
inserted
replaced
16680:de79cdbbdf7c | 16681:d3619d4d267c |
---|---|
861 && curr_lexer->space_follows_previous_token ()) | 861 && curr_lexer->space_follows_previous_token ()) |
862 { | 862 { |
863 yyless (0); | 863 yyless (0); |
864 curr_lexer->push_start_state (COMMAND_START); | 864 curr_lexer->push_start_state (COMMAND_START); |
865 } | 865 } |
866 else if (curr_lexer->at_beginning_of_statement) | |
867 { | |
868 curr_lexer->current_input_column++; | |
869 int retval = curr_lexer->handle_string ('\''); | |
870 return curr_lexer->count_token_internal (retval); | |
871 } | |
866 else | 872 else |
867 { | 873 { |
868 int tok = curr_lexer->previous_token_value (); | 874 int tok = curr_lexer->previous_token_value (); |
869 | 875 |
870 if (curr_lexer->whitespace_is_significant ()) | 876 if (curr_lexer->whitespace_is_significant ()) |