Sha256: 2ff053c8dfb2bea765c59f8faa3a584b86174ef6952d5cb2e16993da84a15d42
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
#!/usr/bin/env ruby require "razyk" require "optparse" module RazyK class Application def initialize @program = nil @step = false @web_server = false @optparse = option_parser end def option_parser OptionParser.new do |opt| opt.on("-e 'program'", "specify LazyK program string. Omit [programfile]") do |prog| @program = prog end opt.on("-s", "--step", "step execution. Dump combinator tree by each step") do @step = true end opt.on("--server [PORT]", "start web server") do |port| @port = Integer(port || 9292) @step = true @web_server = true end end end private :option_parser def run(argv) @optparse.parse!(argv) if @web_server require "razyk/webapp" app = RazyK::WebApp.new # This should work, but rack-1.2.1 fails. :app don't overwrite config.ru #Rack::Server.start(:app => app, :Port => @port) trap(:INT) do if Rack::Handler::WEBrick.respond_to?(:shutdown) Rack::Handler::WEBrick.shutdown else exit end end Rack::Handler::WEBrick.run(app, :Port => @port) return end if @program.nil? if argv.empty? raise "please specify LazyK program file" end filepath = argv.shift @program = IO.read(filepath) end if @step RazyK.run(@program) do |vm| $stderr.puts vm.tree.inspect end else RazyK.run(@program) end end end end app = RazyK::Application.new app.run(ARGV)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
razyk-0.0.1 | bin/razyk |
razyk-0.0.0 | bin/razyk |