#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),"../lib"))
require 'gherkin/pickles/compiler'
require 'gherkin/parser'
require 'json'

compiler = Gherkin::Pickles::Compiler.new
parser = Gherkin::Parser.new
parser.stop_at_first_error = false
files = ARGV.any? ? ARGV : (STDIN.tty? ? [] : [STDIN])
start_time = Time.now
files.each do |file|
  begin
    File.open(file) do |io|
      feature = parser.parse(io)
      pickles = compiler.compile(feature, file);
      puts JSON.generate(pickles)
    end
  rescue Gherkin::ParserError => e
    STDERR.puts e.message
    exit 1
  end
end
end_time = Time.now
STDERR.puts (end_time - start_time)*1000 if ENV['GHERKIN_PERF']
