-#! usr/bin/perl

# perl trouve-cordial.pl SORTIE-cinema-CORDIAL.txt pos-CORDIAL.txt

<<DOC;
prend en entrée un fichier issu de treetagger
et un fichier de patrons morphosyntaxiques et
extrait suites de tokens correspondant aux patrons morpho-syntaxiques
DOC

use locale; # bibliothéque qui permet d'afficher des caractères accentués (notamment si on se sert de \w qui représente n'importe quelle chaîne de caractères)
open (FICCORDIAL, $ARGV[0]); # Pour parcourir le fichier jusqu'à ce qu'il y ait de la ponctuaction (notée PCT sur le fichier de résultat de Cordial). Le fichier appelé FICCORDIAL est ouvert comme attribut lorsqu'on lance PERL sur la console de CYGWIN
while (<FICCORDIAL>) 	# on lit les lignes, une à une, du fichier FICCORDIAL 
{ 
	my $ligne = $_; # chaque ligne sera stockée à chaque fois dans la variable $_
	next if  $ligne =~ /"/ | /\\r/; # on saute les lignes qui comportent seulement soit les guillemets "  soit \r

	chomp $ligne; 	# on supprime le retour-chariot à chaque élément récupéré dans $ligne
		if ($ligne !~/PCT/) { # si la ligne ne contient pas de ponctuation, applique la suite
		my @decoupeligne=split(/\t/, $ligne); # la fonction split découpe une chaîne de caractères sur la base des tabulations. Ici on crée une liste de découpage 
		push(@token, $decoupeligne[0]); # on ajoute dans la liste ce qu'on a trouvé précédemment
		push(@lemme, $decoupeligne[1]); 
		push(@pos, $decoupeligne[2]);
		} # fin de if 
		else 
		{ # ici pour povoir continuer il faut vider des listes créées précédemment 
	
	# ------ traitement des listes -------
	
	open(FICPATRON, $ARGV[1]);
	my $compare=join ("\t",@pos); # lecture du fichier des patrons 
	while (<FICPATRON>) 
		{
		my $patron1 = $_;
		chomp $patron1; # chomp permet de supprimer le dernier caractère qui est un retour-chariot
				my $i=1;
				while ($compare=~/$patron1/g) {	# g permet d'avancer dans la chaîne 
				print " #########CORRESPONDANCE ok $i ########\n "; 	# on dit que ça correspond
				$i++; 	# Incrémentation du compteur
				} 	# fin de while		
	
		# ------ fin de traitement des listes -------

		@token=();
		@lemme=();
		@pos=();

		} # fin de while
	} # fin de else
} # fin de while du début
