#*****************************************************************************************************************
#
#			BAO 3 : Extraire des patrons morphosyntaxiques dans les fichiers étiquetés par Cordial 
#
#*****************************************************************************************************************

#Fichier de sortie
open (PATRONS, ">>:encoding(iso-8859-1)", "patron_cordial.txt");

#ouvrir le fichier étiqueté par cordial et le lire ligne par ligne (chaque ligne devient un élément de la liste @lignes)
open(FILE,"$ARGV[0]");
my @lignes=<FILE>;
close(FILE);
while (@lignes) {
    my $ligne=shift(@lignes); #on récupère le premier élément de la liste
    chomp $ligne;
    my $sequence="";
    my $longueur=0;
 	#si la 3e colonne (qui se trouve après la 2e tabulation) correspond au 1er motif recherché, on regarde la ligne suivante 
    if ( $ligne =~ /^([^\t]+)\t[^\t]+\t$ARGV[1]/) {
	 $sequence.=$1; #capture du premier token correspond au POS cherché
	 $longueur++;
	 my $indice=1;
	 my $stop=1;
	 while (($indice < $#ARGV) and ($stop == 1)) {
	     my $nextligne=$lignes[$indice-1];
	     if ( $nextligne =~ /^([^\t]+)\t[^\t]+\t$ARGV[$indice+1]/) {
		 $sequence.=" ".$1; #capture du token correspond au POS cherché suivant
		 $longueur++;
	     }
	     else {
		 $stop=0;
	     }
	     $indice++;
	 }
	#Si la longueur est égale au nombre d'arguments donnés, on écrit la séquence de tokens trouvés
	 if ($longueur == $#ARGV) {
	     print PATRONS $sequence,"\n";
	 }
     }
}

