#!/cygdrive/C/Strawberry/perl/bin
#
# --> Extraction de patrons de POS dans un fichier étiqueté par Cordial
#
# 1er  argument : fichier etiqueté par CORDIAL
# 2eme argument: fichier de motif
#
#############


use utf8;
# binmode STDOUT, ":utf8";


open(FIC, "<:encoding(iso-8859-1)", $ARGV[0]);
open(MOTIF, "<:encoding(iso-8859-1)", $ARGV[1]);
open my $output, ">:encoding(iso-8859-1)", "extractionMotifs.txt";
# open my $output, ">", "extractionMotifs.txt";
my @motifs = <MOTIF>;
# print @motifs;
close(MOTIF);
my @token =();
my @pos = ();
while (my $ligne = <FIC>) {
	next if ($ligne!~/^[^\t]+\t[^\t]+\t[^\t]+/);
	$ligne =~ s/\r//g;
	# si la ligne ne contient pas pctforte
	if ($ligne !~/^[^\t]+\t[^\t]+\tPCTFORTE/) {
		chomp($ligne);
		my @LISTE=split(/\t/, $ligne);
		# print "LISTE\t@LISTE\n";
		# rajoute l'elt $LISTE[0] à la fin de la liste @token
		push(@token, $LISTE[0]);
		push(@pos, $LISTE[2]);
		# print "token\t@token\n";
		# print "pos\t@pos\n";
	}
	else {
		&extract;
		@token=();
		@pos=();
	}
}
close FIC;
# print $output $contenu;
close $output;
# tant qu'à faire on va mettre ça en utf-8, ce sera plus simple pour la suite.
system("iconv -f ISO-8859-1 -t UTF-8 extractionMotifs.txt > extractionMotifs_utf8.txt");

sub extract {
	# on doit travailler sur token, pos, et motifs
	# il faut faire coulisser chaque motif de la liste de motifs sur tokens
	my $tokenstring = join(' ', @token);
	my $posstring = join(' ', @pos);
	# print "tokenstring\t$tokenstring\n";
	# print "-------->! posstring\t$posstring\n";
	foreach my $motif (@motifs) {
		chomp($motif);
		# print "motif\t$motif\n";
		my $nbEspacesAvant =0;
		while ($posstring =~ /$motif/g)
		{
			# print "motif\t$motif\tmatched\t$posstring\n";
			# my $rep = <STDIN>;
			# my $avant ligne des catégories avant que le motif n'intervienne
			my $avant = $`;
			# print "avant\t$avant\n";
			# print "avant ----> $avant\n";
			# print $avant;
			while ($avant =~ / /g)
			{
				$nbEspacesAvant++;
			}
			# print "espaces avant\t$nbEspacesAvant\n";
			my $nbEspacesMotif =0;
			while ($motif =~ / /g) {
				$nbEspacesMotif++;
			}
			# print "espaces du motif\t$nbEspacesMotif\n";
			# print "total ----> $total";
			my $total = $nbEspacesAvant + $nbEspacesMotif;
			# print "espaces total\t$total\n";
			# print "motif\t$motif\textrait\t@token[$nbEspacesAvant..$total]\n";
			# $contenu="$motif\t@token[$nbEspacesAvant..$total]\n";
			$contenu="@token[$nbEspacesAvant..$total]\n";
			# print "contenu\t$contenu\n";
			print $output $contenu;
			# print $output "$motif\t@token[$nbEspacesAvant..$total]\n";
		}
	}
	# print "-----------------------------------\n";
}
