#!/usr/bin/perl

open (TEXTE,"$ARGV[0]") or die "impossible ouvrir : $!\n"; # fichier issu de CORDIAL : premier argument du script
while (my $ligne = <TEXTE>) { # lecture ligne à ligne du fichier
	$ligne =~ s/\r//g;
	if ($ligne =~ /\t/) { # on ne traite que les lignes qui contiennent une tabulation (issue de CORDIAL)
		
		chomp($ligne);
		my @LISTE=split(/\t/,$ligne); 
		# on découpe la ligne via les tabulations : résultat, une liste de 3 éléments (FORME, LEMME, POS)
		# $LISTE[0]<-forme, $LISTE[1] <-lemme, $LISTE[2] <-pos,
		if ($LISTE[2] !~ /PCTF/) {
			# mettre le premier element, FORME dans la liste TOKEN
			# mettre le deuxieme element, LEMME dans la liste LEMME
			# mettre le troisieme element, POS dans la liste POS
			push(@TOKEN,$LISTE[0]);
			push(@LEMME,$LISTE[1]);
			push(@POS,$LISTE[2]);		
		}
		else {
				my $SUITEDEPOS=join(" ",@POS);#joindre les elements de pos par un espace
				open(PATRON,$ARGV[1]); # le fichier patron est le second argument du script
				while (my $patron=<PATRON>) {
					chomp($patron);# supprimer tous qui suivent le patron, ne garder que le patron
					$patron=~s/\r//g;# remplacer tous les changement de ligne à rien
					my $compteur=0;# creer un compteur
					while ($SUITEDEPOS=~/$patron/g) { # quand le patron est dans le suite de pos
						my $avant=$`; # tous ce qui est avant le patron
						my $j=0;
						while ($avant =~/ /g) { # s'il n'y a rien devant le patron 
							$j++;
						}
						my $k=0;
						while ($patron =~/ /g) {
							$k++;
						}
						print "@TOKEN[$j..$j+$k]\n";
					}	
				}
				
			close(PATRON);
			@TOKEN=(); # quand on est arrive sur une PONCT on vide les listes...
			@LEMME=();
			@POS=();
		}
	}


}