[MacRuby] #1477: Macirb no longer understands blocks with more than one argument

MacRuby ruby-noreply at macosforge.org
Wed Mar 28 17:27:17 PDT 2012


#1477: Macirb no longer understands blocks with more than one argument
--------------------------------+-------------------------------------------
 Reporter:  lastobelus@…        |       Owner:  lsansonetti@…        
     Type:  defect              |      Status:  new                  
 Priority:  blocker             |   Milestone:                       
Component:  MacRuby             |    Keywords:                       
--------------------------------+-------------------------------------------

Comment(by watson1978@…):

 Hmm, it looks like Bugs have mixed into Ripper.

 {{{
 require 'ripper'

 class Parser < Ripper::SexpBuilder
   ms = Ripper::SexpBuilder.new('').methods
   defs = ms.map { |s| s.to_s }
     .select { |s| s.start_with?('on_') }
     .map { |s| %Q{
   def #{s}(*args)
     print '#{s}: '
     p args
   end
     }}.join
   eval(defs)
 end

 def parse(src)
   puts "****" + src.inspect + "****"
   Parser.new(src).parse
 end

 parse "def test(a,b)"
 }}}

 {{{
 $ macruby_select 0.10 t.rb
 ****"def test(a,b)"****
 on_kw: ["def"]
 on_sp: [" "]
 on_ident: ["test"]
 on_lparen: ["("]
 on_ident: ["a"]
 on_comma: [","]
 on_ident: ["b"]
 on_rparen: [")"]
 on_params: [[["a"], ["b"]], nil, nil, nil, nil]
 on_paren: [[[["a"], ["b"]], nil, nil, nil, nil]]
 on_parse_error: ["syntax error, unexpected $end"]

 $ macruby t.rb
 ****"def test(a,b)"****
 on_kw: ["def"]
 on_sp: [" "]
 on_ident: ["test"]
 on_lparen: ["("]
 on_ident: ["a"]
 on_comma: [","]
 on_ident: ["b"]
 on_rparen: [")"]
 on_parse_error: ["duplicated argument name"]  # <= unexpected
 on_params: [[["a"], ["b"]], nil, nil, nil, nil]
 on_paren: [[[["a"], ["b"]], nil, nil, nil, nil]]
 on_parse_error: ["syntax error, unexpected $end"]
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/1477#comment:1>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list