#!/usr/bin/perl
package main;

use strict;
use vars qw($PARSER $VERSION);

use LePage::Parser;
use LePage::Language::Base;
#FIXME: dynamic language loader :)
use LePage::Language::Perl;
use IO::Handle;

$VERSION = '0.3';

$PARSER = LePage::Parser->new();

die("syntax: mkp <grammarfile> <packagename>") unless (scalar @ARGV == 2);

my $grammar_file = $ARGV[0];
my $package = $ARGV[1];

my $grammar_def = qx(cat $grammar_file);
my ($grammar, $ctx) = $PARSER->parse($grammar_def);

if (my @errors = $ctx->error()) {
    foreach my $error (@errors) {
        print STDERR $error->[1], " at $grammar_file line ", $error->[0], "\n";
    }
    exit(1);
} else {
    $grammar->code(\*STDOUT, $package);
    exit(0);
}
