diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb index cff38c617d..06db264497 100644 --- a/ext/ripper/lib/ripper/lexer.rb +++ b/ext/ripper/lib/ripper/lexer.rb @@ -130,6 +130,7 @@ class Ripper @buf = [] @stack = [] super() + @buf = @stack.pop unless @stack.empty? if raise_errors and !@errors.empty? raise SyntaxError, @errors.map(&:message).join(' ;') end diff --git a/test/ripper/test_lexer.rb b/test/ripper/test_lexer.rb index f8e751da53..3eaeb8fefa 100644 --- a/test/ripper/test_lexer.rb +++ b/test/ripper/test_lexer.rb @@ -90,6 +90,16 @@ class TestRipper::Lexer < Test::Unit::TestCase assert_equal expect, Ripper.lex(src).map {|e| e[1]} end + def test_stack_at_on_heredoc_beg + src = "a <