summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtool/insns2vm.rb2
-rw-r--r--tool/ruby_vm/scripts/insns2vm.rb123
2 files changed, 64 insertions, 61 deletions
diff --git a/tool/insns2vm.rb b/tool/insns2vm.rb
index 8117b789fb..027dc4e380 100755
--- a/tool/insns2vm.rb
+++ b/tool/insns2vm.rb
@@ -6,7 +6,7 @@
require_relative 'ruby_vm/scripts/insns2vm'
if $0 == __FILE__
- router(ARGV).each do |(path, generator)|
+ RubyVM::Insns2VM.router(ARGV).each do |(path, generator)|
str = generator.generate path
path.open 'wb:utf-8' do |fp|
fp.write str
diff --git a/tool/ruby_vm/scripts/insns2vm.rb b/tool/ruby_vm/scripts/insns2vm.rb
index a04394ab27..beb50087da 100644
--- a/tool/ruby_vm/scripts/insns2vm.rb
+++ b/tool/ruby_vm/scripts/insns2vm.rb
@@ -13,78 +13,81 @@
require 'optparse'
require_relative '../controllers/application_controller.rb'
-def router argv
- options = { destdir: Dir.getwd }
- targets = generate_parser(options).parse argv
- return targets.map do |i|
- next ApplicationController.new.generate i, options[:destdir]
+module RubyVM::Insns2VM
+ def self.router argv
+ options = { destdir: Dir.getwd }
+ targets = generate_parser(options).parse argv
+ return targets.map do |i|
+ next ApplicationController.new.generate i, options[:destdir]
+ end
end
-end
-def generate_parser(options)
- OptionParser.new do |this|
- this.on "-I", "--srcdir=DIR", <<-'end'
- Historically this option has been passed to the script. This is
- supposedly because at the beginning the script was placed
- outside of the ruby source tree. Decades passed since the merge
- of YARV, now I can safely assume this feature is obsolescent.
- Just ignore the passed value here.
- end
+ def self.generate_parser(options)
+ OptionParser.new do |this|
+ this.on "-I", "--srcdir=DIR", <<-'end'
+ Historically this option has been passed to the script. This is
+ supposedly because at the beginning the script was placed
+ outside of the ruby source tree. Decades passed since the merge
+ of YARV, now I can safely assume this feature is obsolescent.
+ Just ignore the passed value here.
+ end
- this.on "-L", "--vpath=SPEC", <<-'end'
- Likewise, this option is no longer supported.
- end
+ this.on "-L", "--vpath=SPEC", <<-'end'
+ Likewise, this option is no longer supported.
+ end
- this.on "--path-separator=SEP", /\A(?:\W\z|\.(\W).+)/, <<-'end'
- Old script says this option is a "separator for vpath". I am
- confident we no longer need this option.
- end
+ this.on "--path-separator=SEP", /\A(?:\W\z|\.(\W).+)/, <<-'end'
+ Old script says this option is a "separator for vpath". I am
+ confident we no longer need this option.
+ end
- this.on "-Dname", "--enable=name[,name...]", Array, <<-'end'
- This option used to override VM option that is defined in
- vm_opts.h. Now it is officially unsupported because vm_opts.h to
- remain mismatched with this option must break things. Just edit
- vm_opts.h directly.
- end
+ this.on "-Dname", "--enable=name[,name...]", Array, <<-'end'
+ This option used to override VM option that is defined in
+ vm_opts.h. Now it is officially unsupported because vm_opts.h to
+ remain mismatched with this option must break things. Just edit
+ vm_opts.h directly.
+ end
- this.on "-Uname", "--disable=name[,name...]", Array, <<-'end'
- This option used to override VM option that is defined in
- vm_opts.h. Now it is officially unsupported because vm_opts.h to
- remain mismatched with this option must break things. Just edit
- vm_opts.h directly.
- end
+ this.on "-Uname", "--disable=name[,name...]", Array, <<-'end'
+ This option used to override VM option that is defined in
+ vm_opts.h. Now it is officially unsupported because vm_opts.h to
+ remain mismatched with this option must break things. Just edit
+ vm_opts.h directly.
+ end
- this.on "-i", "--insnsdef=FILE", "--instructions-def", <<-'end'
- This option used to specify alternative path to insns.def. For
- the same reason to ignore -I, we no longer support this.
- end
+ this.on "-i", "--insnsdef=FILE", "--instructions-def", <<-'end'
+ This option used to specify alternative path to insns.def. For
+ the same reason to ignore -I, we no longer support this.
+ end
- this.on "-o", "--opt-operanddef=FILE", "--opt-operand-def", <<-'end'
- This option used to specify alternative path to opt_operand.def.
- For the same reason to ignore -I, we no longer support this.
- end
+ this.on "-o", "--opt-operanddef=FILE", "--opt-operand-def", <<-'end'
+ This option used to specify alternative path to opt_operand.def.
+ For the same reason to ignore -I, we no longer support this.
+ end
- this.on "-u", "--opt-insnunifdef=FILE", "--opt-insn-unif-def", <<-'end'
- This option used to specify alternative path to
- opt_insn_unif.def. For the same reason to ignore -I, we no
- longer support this.
- end
+ this.on "-u", "--opt-insnunifdef=FILE", "--opt-insn-unif-def", <<-'end'
+ This option used to specify alternative path to
+ opt_insn_unif.def. For the same reason to ignore -I, we no
+ longer support this.
+ end
- this.on "-C", "--[no-]use-const", <<-'end'
- We use const whenever possible now so this option is ignored.
- The author believes that C compilers can constant-fold.
- end
+ this.on "-C", "--[no-]use-const", <<-'end'
+ We use const whenever possible now so this option is ignored.
+ The author believes that C compilers can constant-fold.
+ end
- this.on "-d", "--destdir", "--output-directory=DIR", <<-'begin' do |dir|
- THIS IS THE ONLY OPTION THAT WORKS today. Change destination
- directory from the current working directory to the given path.
- begin
- raise "directory was not found in '#{dir}'" unless Dir.eixst?(dir)
- options[:destdir] = dir
- end
+ this.on "-d", "--destdir", "--output-directory=DIR", <<-'begin' do |dir|
+ THIS IS THE ONLY OPTION THAT WORKS today. Change destination
+ directory from the current working directory to the given path.
+ begin
+ raise "directory was not found in '#{dir}'" unless Dir.eixst?(dir)
+ options[:destdir] = dir
+ end
- this.on "-V", "--[no-]verbose", <<-'end'
- Please let us ignore this and be modest.
+ this.on "-V", "--[no-]verbose", <<-'end'
+ Please let us ignore this and be modest.
+ end
end
end
+ private_class_method :generate_parser
end