#!/usr/bin/env perl
use warnings;
use strict;
use Lingua::Jspell;
my %targets = _get_targets();
my $target = shift;
die "unknown $target\n" if $target && !exists($targets{$target});
die "Target not defined. Valid targets are ",join(", ", keys %targets),"\n" unless $target;
$targets{$target}->(@ARGV);
sub _get_targets {
return (
visl => \&_visl,
);
}
sub _visl {
my $DIC = Lingua::Jspell->new("pt"); ## FIXME - make this an option
while (<>) {
while (m!\W+|\w+(-\w+)*!g) {
my $word = $&;
next if $word =~ /^\s+$/;
print "<\"$word\">\n";
my @a = $DIC->fea($word);
if (@a) {
for my $a (@a) {
print "\t$a->{rad} $a->{CAT}";
for my $k (keys %$a) {
next if $k eq "rad" || $k eq "CAT";
print " $k=$a->{$k}";
}
print "\n";
}
}
else {
print "\t$word UNK\n"
}
}
}
}