#!/usr/bin/env perl

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

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

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

    my $json = Cpanel::JSON::XS->new->utf8->canonical;

    my $parser = Gherkin::Parser->new(
        Gherkin::AstBuilder->new(
            sub {
                my $id = $next_id++;
                return "$id";
            })
        );

    for my $file (@file_list) {
        print $fh $json->encode( $parser->parse($file, $file) );
        print "\n"
    }

}

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