diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | parse.y | 1 | ||||
-rw-r--r-- | test/ripper/test_scanner_events.rb | 5 |
3 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Sun Aug 16 23:58:22 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (yylex): should dispatch scan-event even when follows + just after delayed-token. [ruby-dev:37855] [Bug #1071] + Sun Aug 16 22:20:16 2009 Tadayoshi Funaba <tadf@dotrb.org> * lib/date/format.rb: reverted. @@ -7612,7 +7612,6 @@ yylex(void *p) #ifdef RIPPER if (!NIL_P(parser->delayed)) { ripper_dispatch_delayed_token(parser, t); - return t; } if (t != 0) ripper_dispatch_scan_event(parser, t); diff --git a/test/ripper/test_scanner_events.rb b/test/ripper/test_scanner_events.rb index 4389946104..6599165700 100644 --- a/test/ripper/test_scanner_events.rb +++ b/test/ripper/test_scanner_events.rb @@ -63,6 +63,11 @@ class TestRipper_ScannerEvents < Test::Unit::TestCase [[2, 0], :on_tstring_content, "heredoc\n"], [[3, 0], :on_heredoc_end, "EOS"]], Ripper.lex("<<EOS\nheredoc\nEOS") + assert_equal [[[1, 0], :on_regexp_beg, "/"], + [[1, 1], :on_tstring_content, "foo\n"], + [[2, 0], :on_tstring_content, "bar"], + [[2, 3], :on_regexp_end, "/"]], + Ripper.lex("/foo\nbar/") end def test_location |