1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/ripper/test_scanner_events.rb: test spaces before heredoc mark.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aamine 2004-09-19 19:13:19 +00:00
parent 0ad4ae91ea
commit f43e22190c
2 changed files with 27 additions and 30 deletions

View file

@ -1,3 +1,8 @@
Mon Sep 20 04:13:00 2004 Minero Aoki <aamine@loveruby.net>
* test/ripper/test_scanner_events.rb: test spaces before heredoc
mark.
Mon Sep 20 03:46:54 2004 Minero Aoki <aamine@loveruby.net>
* parse.y [ripper]: spaces before heredoc marker was lost.

View file

@ -2,7 +2,7 @@
# test_scanner_events.rb
#
require 'ripper.so'
require 'ripper'
raise 'ripper version differ' unless Ripper::Version == '0.1.0'
require 'test/unit'
@ -10,38 +10,26 @@ class TestRipper_ScannerEvents < Test::Unit::TestCase
class R < Ripper
def R.scan(target, src)
r = new(src, target)
r.parse
r.tokens.map {|id, tok| tok }
end
def R.lex(src)
r = new(src, 'scan')
r.parse
r.tokens
new(src, target).parse.map {|id, tok| tok }
end
def initialize(src, target)
super src
@target = ('on__' + target).intern
@tokens = []
if target
@target = ('on__' + target).intern
else
@target = nil
end
end
attr_reader :tokens
def parse
@tokens = []
super
@tokens
end
def method_missing(mid, *args)
case mid.to_s
when /\Aon__scan/
if @target == :on__scan
@tokens.push args
else
@tokens.push args if @target == args[0]
end
when /\Aon__/
;
else
raise NoMethodError, "no such method: #{mid}"
end
def on__scan(type, tok)
@tokens.push [type,tok] if !@target or type == @target
end
def warn(fmt, *args)
@ -58,13 +46,17 @@ class TestRipper_ScannerEvents < Test::Unit::TestCase
def test_scan
assert_equal [],
R.scan('scan', '')
R.scan(nil, '')
assert_equal ['a'],
R.scan('scan', 'a')
R.scan(nil, 'a')
assert_equal ['1'],
R.scan('scan', '1')
R.scan(nil, '1')
assert_equal ['1', ';', 'def', ' ', 'm', '(', 'arg', ')', 'end'],
R.scan('scan', "1;def m(arg)end")
R.scan(nil, "1;def m(arg)end")
assert_equal ['print', '(', '<<EOS', "heredoc\n", "EOS\n", ')', "\n"],
R.scan(nil, "print(<<EOS)\nheredoc\nEOS\n")
assert_equal ['print', '(', ' ', '<<EOS', "heredoc\n", "EOS\n", ')', "\n"],
R.scan(nil, "print( <<EOS)\nheredoc\nEOS\n")
end
def test_backref