diff options
Diffstat (limited to 'ext/ripper/tools/generate-ripper_rb.rb')
-rwxr-xr-x | ext/ripper/tools/generate-ripper_rb.rb | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/ext/ripper/tools/generate-ripper_rb.rb b/ext/ripper/tools/generate-ripper_rb.rb deleted file mode 100755 index 5c06ca40a4..0000000000 --- a/ext/ripper/tools/generate-ripper_rb.rb +++ /dev/null @@ -1,60 +0,0 @@ -# $Id$ - -def main - template, ids1, ids2 = *ARGV - print <<header -# This file is automatically generated from #{File.basename(template)} and parse.y. -# DO NOT MODIFY!!!!!! - -header - File.foreach(template) do |line| - case line - when /\A\#include ids1/ - print_items read_ids(ids1) - when /\A\#include ids2/ - print_items read_ids(ids2) - when /\A\#include handlers1/ - File.foreach(ids1) do |line| - id, arity = line.split - arity = arity.to_i - puts - puts " def on_#{id}#{paramdecl(arity)}" - puts " #{arity == 0 ? 'nil' : 'a'}" - puts " end" - end - when /\A\#include handlers2/ - File.foreach(ids2) do |line| - id, arity = line.split - arity = arity.to_i - puts - puts " def on_#{id}(token)" - puts " token" - puts " end" - end - when /\A\#include (.*)/ - raise "unknown operation: #include #{$1}" - else - print line - end - end -end - -def print_items(ids) - comma = '' - ids.each do |id, arity| - print comma; comma = ",\n" - print " #{id.intern.inspect} => #{arity}" - end - puts -end - -def read_ids(path) - File.readlines(path).map {|line| line.split } -end - -def paramdecl(n) - return '' if n == 0 - '(' + %w(a b c d e f g h i j k l m)[0, n].join(', ') + ')' -end - -main |