#/usr/bin/perl

#	Ce programme traite la sortie de Cordial
#	Execution	:	perl nom_de_ce_pgm.pl Sortie_Cordial.cnr patron.txt
#	Il faut à chaque fois convertir les fichier à traiter sur la console en utilisant la commande 		dos2unix.exe nom_du_fichier.extension		et valider. (patron.txt, ...)
#	
#

open(FIC, "$ARGV[0]");			# Ouverture du fichier cordial	et ayant comme argument 0
my $i=0;
while (<FIC>)					# tant qu'on ne trouve pas le motif 
{
	next if ($_!~/\t/);						# Pour sauter la ligne contenant  \r : paragraphe vide
	my $ligne = $_;							# variable locale, et n'existe qu'ici
	chomp $ligne;
	if ($ligne !~/PCT/)						# PCT	:	Ponctuation
	{
		my @liste=split (/\t/, $ligne);
		push (@token, $liste[0]);
		push (@lemme, $liste[1]);
		push (@pos, $liste[2]);	# patron est un fichier à créer, qui contient les ligne qu'on souhaite rouver
		$i++;
	}
	else
	{
		#print "\nListe des pos : @patron \n";
		#print "TAPER";
		#my $reponse=<STDIN>;
#-------------------------------- Traitement des listes --------------------------------------------	
#			
#--------------------------------- Lecture de fichier des patrons -------------------------------------------	

		open (FICPATRON, $ARGV[1]);
		#my $compare="";
		my $compare = join("\t", @pos);
		while (<FICPATRON>)
		{
			my $patron1=$_;
			chomp $patron1;
			my $j=0;
			my $k=0;
			#foreach my $element (@pos)
			#$compare = $compare ."\t".$element;
			
			#print "Chaine lue : $compare \n";
			#print "Patron à chercher : $patron1\n";
			#print "TAPER";
		#my $reponse=<STDIN>;
			#my $i=1;
			while ($compare =~ /$patron1/g)
			{
				#print "######MATCH#####\n";
			    #my $suitepos = $_;
				#chomp $suitepos;
				#while($segment =~ /$suitepos/g ){
				my $avant = $`;
				#print "espaces avant : $avant\n";
				my $apres = $';
				while ($avant =~/\t/g) {$j++};
				#print "voici le nb espaces apres : $apres\n";
				while ($apres =~/\t/g) {$k++};
				#print "######## MATCH ########## \n$avant et $apres et j vaut $j et k vaut $k et voice la longueur du morceaux de phrase examiné $i et voice les extraits  de token:";
				print "@token[$j..$i-$k-1]\n";
				#print "TAPER\n";
				#my $reponse=<STDIN>;
				$j=0;
				$k=0;
				
			}
		}
		
#----------------------------------------------------------------------------	
# print "segment de pos: $segment\n suite de pos a rechercher : $suitepos\n";
#print "appuie sur return pour continuer\n";
#my $repanse=<STDIN>;
#my $segment="";
		@token = ();
		@lemme = ();
		@pos = ();
		$i=0;
	}
}
close (FIC);						# Fermeture du fichier ouvert au debut