#!/usr/bin/env perl
BEGIN { $|=1; }
use warnings;
use utf8;
use feature 'unicode_strings';
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';

my ($binDir) = $0 =~ /^(.*)\/.*/;

eval(require "$binDir/addfejl2.subs");
if ($@) {
    print "Couldn't load addfejl2.subs!\n";
    return -1;
}

eval(require "$binDir/levenshtein.pl");
if ($@) {
    print "Couldn't load levenshtein.pl!\n";
    return -1;
}

my $korrekt;
my $sim;
my $fonsim;
my $freq;
my $fon;
if ($ENV{DANGRAM_USEDB} == 1) {
    use DB_File;
use DBM_Filter;
use Encode;
    my $lexDir = $ENV{DANGRAM_LEX} || "/usr/local/visl/lex/";
#    print "--$lexDir\n";
my $Tfreq =     tie %freq, "DB_File", "$lexDir/fuldformer_freq.db", O_RDONLY;
$Tfreq->Filter_Push('utf8');
my $Tsim =     tie %sim, "DB_File", "$lexDir/fuldformer_stam.db", O_RDONLY;
$Tsim->Filter_Push('utf8');
my $Tfonsim =     tie %fonsim, "DB_File", "$lexDir/fuldformer_fonstam.db", O_RDONLY;
$Tfonsim->Filter_Push('utf8');
my $Tfon =     tie %fon, "DB_File", "$lexDir/dan.fon.db", O_RDONLY;
$Tfon->Filter_Push('utf8');
my $Tkorrekt =     tie %korrekt, "DB_File", "$lexDir/fejlliste.db", O_RDONLY;
$Tkorrekt->Filter_Push('utf8');
my $Tval =     tie %val, "DB_File", "$lexDir/dan.val.db", O_RDONLY;
$Tval->Filter_Push('utf8');
} else {
    $korrekt = LoadCorrections();
    ($freq, $sim, $fonsim) = LoadFullforms();
    $fon = LoadPhonetics();
}

#$size_korrekt = keys %korrekt ;

#print "--" . $sim{"pstttn"} . "--\n";
while(<STDIN>) {
    print AddError($_, $korrekt, $sim, $fonsim, $fon, $freq, $val);
}

#%korrekt = (); %sim= (); %fonsim = (); %fon = (); %freqi = (); %val = (); # to get rid of the "variable used only once" pseudoerror from Perl. Using % variables instead of $ variables in the AddError call, or calculating hash sizes, to achieve the same pupose, results in very long lag times??, so keep those as is. --> no, also leads to lag time.
