#!/usr/bin/env perl

use strict;
use warnings;
use lib 'lib';

use Cpanel::JSON::XS;
use Gherkin::Parser;

package App::GherkinGenerateAst;
$App::GherkinGenerateAst::VERSION = '3.2.0002';
sub run {
    my ($class, $fh, @file_list) = @_;

    my $json = Cpanel::JSON::XS->new->utf8->space_before(0)->space_after(1)
        ->indent->canonical;

    my $parser = Gherkin::Parser->new();

    for my $file (@file_list) {
        my $base;
        $base = $json->encode( $parser->parse($file) );

        # JSON::XS uses a triple indent(?!)
        $base =~ s!^(\s+)!'  ' x ((length $1) / 3)!meg;
        print $fh $base;
    }

}

__PACKAGE__->run(\*STDOUT, @ARGV) unless caller;

