#!/usr/bin/perl

open(FIC, $ARGV[0]) or die "Problème à l'ouverture du fichier : $! \n";

# Initialisation des listes de tokens (1ere colonne Cordial), 
# de lemmes (2eme colonne) et de tags (3eme colonne)
my @token=();
my @lemme=();
my @pos=();

while (my $ligne=<FIC>){
	chomp $ligne;	# suppression des sauts de lignes
	$ligne=~s/\r//g; # suppression de possibles retours chariot Windows
	my @liste=split(/\t/,$ligne);
	# Si on ne tombe pas sur une ponctuation forte, on remplit les listes
	if ($liste[2]!~/PCTF/){
		push(@token,$liste[0]);
		push(@lemme,$liste[1]);
		push(@pos,$liste[2]);
	}
	# Sinon, on compare avec les motifs du fichier patron
	else {
		# joindre les motifs par un espace
		my $suite_pos=join(" ",@pos);
		# ouverture du fichier de motifs
		open(PATRON, $ARGV[1]) or die "Problème à l'ouverture du fichier patrons\n";
		while (my $patron=<PATRON>){
			chomp $patron;
			$patron=~s/\r//g;
			# tant que le motif correspond...
			while ($suite_pos=~/$patron/g){
				my $avant=$`; # récupération du caractère précédent avec $`
				my $j=0;
				# on compte les espaces
				while ($avant=~/ /g){
					$j++;
				}				
				my $k=0;
				while ($patron=~/ /g){
					$k++;
				}
				print "@token[$j..$j+$k] \n";
			}			
		}
		close(PATRON);
			
		# on vide les listes
		@token=();
		@lemme=();
		@pos=();
	}
}

close(FIC);
exit;