class Kaguya::CLI
Public Class Methods
new(argv)
click to toggle source
# File lib/kaguya/cli.rb, line 13 def initialize(argv) @argv = argv.dup parser.parse!(@argv) end
start(argv)
click to toggle source
# File lib/kaguya/cli.rb, line 9 def self.start(argv) new(argv).run end
Public Instance Methods
run()
click to toggle source
# File lib/kaguya/cli.rb, line 18 def run source_file = File.open(@argv[0], 'r') parser = Parser.new(source_file) ast = parser.parse if @debug puts '=== AST ===' pp ast end compiler = Compiler.new(ast) iseq = compiler.compile if @debug puts '=== ISEQ ===' pp iseq puts '=== RUN ===' end vm = VM.new(iseq) vm.run end
Private Instance Methods
parser()
click to toggle source
# File lib/kaguya/cli.rb, line 43 def parser @parser ||= OptionParser.new do |opts| opts.banner = 'kaguya' opts.version = Kaguya::VERSION opts.on('-d', '--debug') { |d| @debug = d } end end