#!/usr/bin/ruby require 'compiler' require 'environment' # zpracovavani argumentu if ARGV.size < 1 STDERR.puts "Usage: #$0 input output [draws]" STDERR.puts " input - Input Krunimir file" STDERR.puts " output - Output PNG file (default is test.png)" STDERR.puts " forwards - Number of draws (default means everything is drawn)" exit end input_file = ARGV.shift output_file = ARGV.shift || "test.png" forwards = ARGV.shift.to_i begin # kompilace Krunimirova kodu do bloku Ruby compiler = Krunimir::Compiler.new File.read(input_file) compiled = compiler.compile # spusteni vznikleho bloku v Krunimirove prostredi environment = Krunimir::Environment.new(compiled) environment.draw(forwards) environment.save_to(output_file) rescue Exception => e STDERR.puts "#{e.class} occured: #{e.message}" e.backtrace.each do |line| STDERR.puts " #{line}" end exit 1 end