#!/user/bin/perl
#Par: Valentine DESPLAT
#A partir d'une version de: Monsieur Jean-Michel Daube
#Le programme se lance comme suit:
#perl extraction_patron_cordial.pl [fichier de travail] [fichier contenant les patrons]
#
#TEXT = fichier résultat de CORDIAL, avec les tags
open(TEXT, $ARGV[0]);
open(PATRON,$ARGV[1]);

#On fait en sorte d'avoir un nom de fichier correcte en sortie
my $var="$ARGV[0]";
$var=~s/sortie_//;
$var=~s/_iso.cnr$//;
open(OUT, ">extraction_$var.txt");

while (my $ligne=<TEXT>){
# on ne traite que les lignes qui contienne une tabulation, cad un traitement via cordial
	if ($ligne=~/\t/){
# on découpe donc la ligne en suivant les tabulations de CORDIAL ce qui nous donne 3 éléments dans notre LISTE
#$LISTE[0]=forme $LISTE[1]=lemme $LISTE[2]=tag
		chomp($ligne);
		$ligne=~s/\r//g;
		my @LISTE=split(/\t/,$ligne);
		if ($LISTE[2]!~/PCTF/){
			push(@TOKEN,$LISTE[0]);
			push(@LEMME,$LISTE[1]);
			push(@TAG,$LISTE[2]);
		}
		else {
			my $SUITETAG=join(" ",@TAG);
			while (my $patron=<PATRON>){
				chomp($patron);
				$patron=~s/\r//g;
				while ($SUITETAG=~/$patron/g){
					my $avant=$`;
					my $j=0;
					while ($avant=~/ /g){
						$j++;
					}				
					my $k=0;
					while ($patron=~/ /g){
						$k++;
					}
					print OUT "@TOKEN[$j..$j+$k] \n";
				}
				
			}
			close(PATRON);
				
			#IMPORTANT - POUR EVITER LES PROBLEMES DE MEMOIRE
			@TOKEN=();
			@LEMME=();
			@TAG=();
		}
	
	}
}
close TEXT;
close OUT;
exit;