#!/usr/bin/env perl
use utf8;
use strict;
use warnings;
use Encode qw/decode/;
use Acme::Aheui;

binmode STDIN,':utf8';

my ($filename) = @ARGV;

my $usage = << '__USAGE__';
Usage:
  aheui filename  : program read from source file
  aheui           : program read from stdin until an empty line
__USAGE__

die $usage if ($filename && $filename =~ /^--?h(elp)?$/);

my $source;
if ($filename) {
    open(FH, $filename) or die "cannot open $filename\n";
    $source = join '', <FH>;
    close(FH);
    $source = decode('utf-8', $source);
}
else {
    my @lines = ();
    while (my $line = <>) {
        if ($line =~ /^\r?\n$/) {
            last;
        }
        push @lines, $line;
    }
    $source = join '', @lines;
}

my $interpreter = Acme::Aheui->new( source => $source );
$interpreter->execute();
