require "option_parser" require "./src/spec" def print_tree(tree, indent = 0) indent.times { STDOUT << " " } case tree when Pegasus::Generated::TerminalTree STDOUT << "Terminal: " STDOUT.puts tree.string when Pegasus::Generated::NonterminalTree STDOUT << "Nonterminal: " << tree.name STDOUT.puts tree.children.each { |it| print_tree(it, indent + 1) } end end recipe_file_name = "some-non-existant-file" OptionParser.parse! do |parser| parser.on "-f file", "--file file", "File to parse." do |f| recipe_file_name = f end parser.on "-h", "--help", "Show this help" do puts parser exit 0 end end specs = Specs.parse recipe_file_name pp! specs