#!/usr/bin/perl
# Le programme de JMD...
# lecture du fichier cordial et d'un fichier de patrons
# IMPORTANT : TOUT EST EN ISO.
#-----------------------------------------------------------
# 1er argument : le fichier des patrons morphosyntaxiques
open(TERMINO,"<$ARGV[0]");
while (my $terme=<TERMINO>) {
	chomp($terme);
	$terme=~s/ +/ /g;
	$terme=~s/\r//g;
	open(CORDIAL,"<$ARGV[1]");
	my @POS=();
	my @TOKEN=();
	while (my $ligne=<CORDIAL>) {
		chomp($ligne);
		$ligne=~s/\r//g;
		if ($ligne!~/PCT/) {
			my @LISTE=split(/\t/,$ligne);
			#print "PATRON LU <$terme> : Ligne lue <@LISTE>\n";
			push(@POS,$LISTE[2]);
			push(@TOKEN,$LISTE[0]);
		}
		else {
			# on est arrivé sur une PCT, on va la traiter...
			#print "----------------------------------------\n";
			#print "<@TOKEN>\n";
			#print "<@POS>\n";
			#print "TERME CHERCHE : $terme \n";
			#my $a=<STDIN>;
			# on doit chercher si le "scalaire" $terme est dans @POS
			# pour cela on va transformer POS et TOKEN en scalaire
			# pour ensuite faire le match entre le TERME et le scalaire POS
			# si match alors on  imprime...
			my $pos=join(" ",@POS);
			my $token=join(" ",@TOKEN);
			my $cmptdetrouvage=0;
			while ($pos=~/$terme/g) {
				$cmptdetrouvage++;
				#print "Youpi, TROUVE $cmptdetrouvage fois \n ";
				#print "En effet : $terme est bien dans $pos !!!!\n";
				my $avantlacorrespondance=$`;
				# on compte le nb de blanc dans avantlacorrespondance et dans terme...
				#--------------------------------------------------------------------------
				# SUPER METHODE : my $comptagedeblanc = () = $avantlacorrespondance=~/ /g;
				#-------------------------------------------------------------------------
				# autre methode : avec un while
				my $comptagedeblancdansterme=0;
				while ($terme=~/ /g) {
					$comptagedeblancdansterme++;
				}
				my $comptagedeblanc=0;
				#print "AVANT : $avantlacorrespondance \n";
				while ($avantlacorrespondance=~/ /g) {
					$comptagedeblanc++;
				}
				for (my $i=$comptagedeblanc;$i<=$comptagedeblanc+$comptagedeblancdansterme;$i++) {
					print $TOKEN[$i]." ";
				}
				print "\n";
			}
			# c'est fini pour la recherche du match
			# on vide les 2 listes de travail avant de recommencer de les remplir
			@POS=();
			@TOKEN=();
		}
	}
	close(CORDIAL);
}
close(TERMINO);
#-----------------------------------------------------------