diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-19 05:40:47 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-19 05:40:47 +0000 |
commit | 04165c20fe286d3123eff634412bdf871fc9da41 (patch) | |
tree | 70d9fe8a6b688bfd6d66445bba62abf2985ee712 /ext/ripper/tools | |
parent | 1e63c302db089512f5376ee7778943b662b53d84 (diff) | |
download | ruby-04165c20fe286d3123eff634412bdf871fc9da41.tar.gz |
* parse.y (do_block): do_block event dispatches 2 args. [ruby-dev:26964]
* ext/ripper/lib/ripper/core.rb: updated.
* ext/ripper/tools/list-parser-event-ids.rb: check arity mismatch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/ripper/tools')
-rwxr-xr-x | ext/ripper/tools/list-parse-event-ids.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/ext/ripper/tools/list-parse-event-ids.rb b/ext/ripper/tools/list-parse-event-ids.rb index 84c7e4c445..a8566fcbcf 100755 --- a/ext/ripper/tools/list-parse-event-ids.rb +++ b/ext/ripper/tools/list-parse-event-ids.rb @@ -17,17 +17,23 @@ def main end def extract_ids(f) - results = [] + ids = {} f.each do |line| - next if /\A\#\s*define\s+s?dispatch/ === line - next if /ripper_dispatch/ === line + next if /\A\#\s*define\s+s?dispatch/ =~ line + next if /ripper_dispatch/ =~ line if a = line.scan(/dispatch(\d)\((\w+)/) a.each do |arity, event| - results.push [event, arity.to_i] + if ids[event] + unless ids[event] == arity.to_i + $stderr.puts "arity mismatch: #{event} (#{ids[event]} vs #{arity})" + exit 1 + end + end + ids[event] = arity.to_i end end end - results.uniq.sort + ids.to_a.sort end main |