aboutsummaryrefslogtreecommitdiffstats
path: root/test/ripper
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-27 19:20:11 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-27 23:08:45 +0900
commitc40003da25543b0f828911af56108ee16af35236 (patch)
tree1854f80559ea56c766cf3debcfdd7eb45c287730 /test/ripper
parentb3602f1d20baa4e5f29b2baff2c265461af78f56 (diff)
downloadruby-c40003da25543b0f828911af56108ee16af35236.tar.gz
Ripper#token
* parse.y (ripper_token): added Ripper#token which returns the current token string. [EXPERIMENTAL]
Diffstat (limited to 'test/ripper')
-rw-r--r--test/ripper/test_scanner_events.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/test/ripper/test_scanner_events.rb b/test/ripper/test_scanner_events.rb
index 5fab5649ee..b46fcb5a9d 100644
--- a/test/ripper/test_scanner_events.rb
+++ b/test/ripper/test_scanner_events.rb
@@ -24,8 +24,9 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase
lexer = Ripper::Lexer.new(str)
if error
lexer.singleton_class.class_eval do
- define_method(:compile_error, error)
- define_method(:on_parse_error, error)
+ define_method(:on_parse_error) {|ev|
+ yield __callee__, ev, token()
+ }
end
end
lexer.lex.select {|_1,type,_2| type == sym }.map {|_1,_2,tok| tok }
@@ -937,8 +938,8 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase
assert_equal ["?\\M-H"], scan('CHAR', '?\\M-H')
err = nil
- assert_equal ["?\\M"], scan('CHAR', '?\\M ') {|e| err = [__callee__, e]}
- assert_equal([:on_parse_error, "Invalid escape character syntax"], err)
+ assert_equal ["?\\M"], scan('CHAR', '?\\M ') {|*e| err = e}
+ assert_equal([:on_parse_error, "Invalid escape character syntax", "?\\M "], err)
end
def test_label