#!/usr/bin/perl
binmode(STDOUT, ":utf8");
use strict;

my @terme=("V","DET","NC");
open(FIC,"<:encoding(utf8)",$ARGV[0]);
my @BIGLISTE=();
while (my $ligne = <FIC>) {
	$ligne =~ s/\r//;
	if ($ligne !~ /^$/) {
		my @petite_liste=split(/\t/,$ligne);
		#print "@petite_liste\n";
		push (@BIGLISTE,\@petite_liste);
	}
	else {
		#print "Je peux traiter BIGLISTE\n";
		#print "return pour continuer....\n";
		#print "@BIGLISTE\n"; #BIGLISTE est une liste de listes
		#print "voici le premier mot de la phrase traitée\n";
		#print "$BIGLISTE[0]->[1]\t";
		#print "$BIGLISTE[0]->[3]\n";
		#print "$BIGLISTE[1]->[1]\t";
		#print "$BIGLISTE[1]->[3]\n";
		#print "$BIGLISTE[2]->[1]\t";
		#print "$BIGLISTE[2]->[3]\n";

		my $compteur=0;
		foreach my $element(@BIGLISTE){
			$compteur++;
			my $countterme=0;
			if ($terme[$countterme] eq $element->[3]){
				#print "Match, de $element->[1] au rang $compteur\n";
				my $chaine="";
				my $extract="";
				for (my $k=$compteur-1;$k<$compteur+$#terme;$k++){ # "$#terme" rend la valeur plus grande d'indice de la liste
					#print "$BIGLISTE[$k]->[3]\n";
					if ($BIGLISTE[$k]->[3] eq $terme[$countterme++]){
						#print $countterme;
						$chaine=$chaine.$BIGLISTE[$k]->[3];
						$extract=$extract." ".$BIGLISTE[$k]->[1];
						#print "ICI CHAINE : $chaine\n";
					}
				}
				#print $chaine, $extract;

				if ($chaine eq join("",@terme)) {
					print "Match complet à rang $element->[3]\n";
					print "$extract\n";
				}

			}
		}
		
		 <STDIN>;

		@BIGLISTE=();

	}
}

close(FIC);
