mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
insns2vm.rb: make #generate_parser private
which is only used by #router. To make it private, we need to stop defining them on top-level. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
be27efdb83
commit
c8e5796f61
2 changed files with 76 additions and 73 deletions
|
@ -6,7 +6,7 @@
|
||||||
require_relative 'ruby_vm/scripts/insns2vm'
|
require_relative 'ruby_vm/scripts/insns2vm'
|
||||||
|
|
||||||
if $0 == __FILE__
|
if $0 == __FILE__
|
||||||
router(ARGV).each do |(path, generator)|
|
RubyVM::Insns2VM.router(ARGV).each do |(path, generator)|
|
||||||
str = generator.generate path
|
str = generator.generate path
|
||||||
path.open 'wb:utf-8' do |fp|
|
path.open 'wb:utf-8' do |fp|
|
||||||
fp.write str
|
fp.write str
|
||||||
|
|
|
@ -13,78 +13,81 @@
|
||||||
require 'optparse'
|
require 'optparse'
|
||||||
require_relative '../controllers/application_controller.rb'
|
require_relative '../controllers/application_controller.rb'
|
||||||
|
|
||||||
def router argv
|
module RubyVM::Insns2VM
|
||||||
options = { destdir: Dir.getwd }
|
def self.router argv
|
||||||
targets = generate_parser(options).parse argv
|
options = { destdir: Dir.getwd }
|
||||||
return targets.map do |i|
|
targets = generate_parser(options).parse argv
|
||||||
next ApplicationController.new.generate i, options[:destdir]
|
return targets.map do |i|
|
||||||
end
|
next ApplicationController.new.generate i, options[:destdir]
|
||||||
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
|
|
||||||
|
|
||||||
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 "-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 "-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 "-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 "-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.
|
|
||||||
end
|
end
|
||||||
end
|
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 "--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 "-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 "-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 "-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 "-V", "--[no-]verbose", <<-'end'
|
||||||
|
Please let us ignore this and be modest.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
private_class_method :generate_parser
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue