open(FILE,"$ARGV[0]");	# ouverture du fichier passé en argument en ligne de commande. 
#--------------------------------------------
# le patron cherché ici est du type NOM PREP NOM
#--------------------------------------------
my @lignes=<FILE>;	# On va mettre toutes les lignes du fichier dans une liste. Dans cette liste à chaque fois, on a trois formes : 1) la chaîne de caractères, 2) le lemme et 3) la catégorie.
close(FILE);
while (@lignes) {	# tant qu'il y a des éléments dans la liste (la liste va donc devoir se vider au bout d'un moment = il faut éliminer un à un les éléments jusqu'à épuisement), 
    my $ligne=shift(@lignes);	# on enlève les éléments de la liste un par un en les stockant dans la variable $ligne
    chomp $ligne; 	# on supprime le retour-chariot à chaque élément récupéré
    my $sequence="";	
    my $longueur=0;		 
    if ( $ligne =~ /^([^\t]+)\t[^\t]+\tNC.*/) {		#  si la ligne  correspond à ce modèle :	 "debut de ligne / forme / tabulation / forme / tabulation / catégorie de la forme NC...*"
		my $forme=$1;	#  si c'est un nom, on récupère la forme de la ligne analysée dans $1
		$sequence.=$forme;	# on concatène dans la séquence finale qui nous intéresse
		$longueur=1;	# le nombre de mot dans la séquence a une valeur absolue de 1
		my $nextligne=$lignes[0];	#  il faut vérifier dans la ligne suivante s'il y a une PREP. La ligne suivante est à l'indice 0 dans le tableau de départ
		if ( $nextligne =~ /^([^\t]+)\t[^\t]+\tPREP/) {	#  si la ligne suivante est une PREP
			my $forme=$1;	# on récupère la forme correspondante dans $1
			$sequence.=" ".$forme;	#  on concatène la séquence de deux formes N - PREP
			$longueur=2;	# la longueur absolue est 2
		 
			my $nextligne=$lignes[1];	#  il faut vérifier dans la ligne suivante s'il y a un NC...*. La ligne suivante est à l'indice 1 dans le tableau de départ
			if ( $nextligne =~ /^([^\t]+)\t[^\t]+\tNC.*/) {	#  si la ligne suivante est un NC...*
			my $forme=$1;	# on récupère la forme correspondante dans $1
			$sequence.=" ".$forme;	#  on concatène la séquence de deux formes PREP - NC
			$longueur=3;	# la longueur absolue est 3
			}
		}
	}
    if ($longueur == 3) {	#  si on obtient un séquence de longueur 3
	print $sequence,"\n";	# on l'imprime
    }
}

