summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-19 05:40:47 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-19 05:40:47 +0000
commit04165c20fe286d3123eff634412bdf871fc9da41 (patch)
tree70d9fe8a6b688bfd6d66445bba62abf2985ee712
parent1e63c302db089512f5376ee7778943b662b53d84 (diff)
* 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
-rw-r--r--ChangeLog9
-rw-r--r--ext/ripper/lib/ripper/core.rb5
-rwxr-xr-xext/ripper/tools/list-parse-event-ids.rb16
3 files changed, 20 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index f91151f004..139fcc79cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon Sep 19 14:39:46 2005 Minero Aoki <aamine@loveruby.net>
+
+ * 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.
+
Mon Sep 19 07:45:37 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
* ext/openssl/ossl_pkey.h, ossl_pkey_rsa.c, ossl_pkey_dsa.c:
diff --git a/ext/ripper/lib/ripper/core.rb b/ext/ripper/lib/ripper/core.rb
index 3a50a40c83..b16f465c34 100644
--- a/ext/ripper/lib/ripper/core.rb
+++ b/ext/ripper/lib/ripper/core.rb
@@ -61,7 +61,6 @@ class Ripper
:def => 3,
:defined => 1,
:defs => 5,
- :do_block => 1,
:do_block => 2,
:dot2 => 2,
:dot3 => 2,
@@ -388,10 +387,6 @@ class Ripper
a
end
- def on_do_block(a)
- a
- end
-
def on_do_block(a, b)
a
end
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