#!/usr/bin/perl
use utf8;
binmode STDOUT,":utf8";
# Programme d'extraction de patron
# sur sortie Cordial
# Usage : perl pg.pl cordialFile patrons
#----------------------------------
open(FIC,"<:encoding(utf8)",$ARGV[0]);
open(OUT, ">>:encoding(utf8)",$ARGV[2]);
##my @line = <FIC>;
my $chaine="";
while (my $ligne=<FIC>) {
    # je veux voir la POS et le TOKEN
    # sous cette forme : POS_FORME
    chomp $ligne; # inutile a priori...
	$ligne=~s/\r//;
    if (($ligne=~/^([^\t]+?)\t([^\t]+)\t[^\t]+$/) and ($ligne!~/PCTFORTE/)) {
        my $f=$1;
        my $c=$2;
        #print "--2--\n";
        $f=~s/ /#/g; #on supprime les espaces eventuels dans un token
        #print "voici la part of speech: ".$2."\n";
        #print "voici le token: ".$1."\n";
        #print "Return pour continuer..\n";
        $chaine = $chaine . $c."_".$f." ";
    }
    else {
        #print $chaine;
        #$continu=<STDIN>;
        open(TERM,"<:encoding(utf8)",$ARGV[1]);
        while (my $terme=<TERM>) {
            chomp($terme);
            #comment transformer : NCMP ADJMP
            #en                  :  NOM_([^ ]+) ADJ_([^ ]+)
            # pour ensuite cherche $terme dans $chaine
            $terme=~s/([^ ]+)/$1_\[\^ \]+/gi;
            #print "TERME :", $terme,"\n";
            #$terme=~s/(\w+)/$1_\\w\+/g ;
            while($chaine=~/($terme)/gi) {
                print "CORRESPONDANCE...\n";
                my $correspondance=$&;
                $correspondance=~s/[A-Z]+_//gi;
                $correspondance=~s/#/ /g;
                #print $correspondance,"\n";
                print OUT $correspondance,"\n";
            }
        }
        close TERM;
        #--------------------------------
        # a la fin
        #print '--8--\n';
        $chaine="";
    }
}
close OUT;
close FIC;
