#!/usr/local/bin/perl
use locale;
#ouverture du fichier en 1er argument de la commande
open(ENTREE,$ARGV[0]);
#ouverture du fichier résultat en html
open(SORTIE,">resultat.html");
#mettre le 2ème argument de la commande dans une variable $mot
$mot=$ARGV[1];
#mettre le 3ème argument de la commande dans une variable $nbmots
$nbmots=$ARGV[2];

#préparation sortie
print SORTIE "<html><body bgcolor=\"brown\">\n";
print SORTIE "<table align=\"center\" bgcolor=\"white\" border=\"1\">
</td><td align=\"center\"><b>numero occurence</b></td><td align=\"right\"><b>contexte gauche</b></td><td align=\"center\"><b>pole</b></td>
<td align=\"left\"><b>contexte droit</b></td>\n";

#création d'un compteur
$compteur=1;
#Tant qu'il y a des lignes dans le fichier d'entrée.
while (my $ligne=<ENTREE>) {
	#Tant que l'on trouve le mot de la variable $mot
	while($ligne=~/\b$mot\/[A-Z]+/gi) {
		#couper le contexte gauche en mots+étiquetage et les mettre dans un tableau
		my @gauche=split(/ /,$`);
		my $pole=$&;
		#couper le contexte droit en mot+étiquetage et les mettre dans un tableau
		my $droite=$';
		#enlever les espaces de début
		$droite=~s/^ +//;
		my @droite=split(/ /,$droite);
		#création variables vides		
		my $d="";
		my $g="";
		#mettre le nombre de mots souhaité dans les variables vides
		for (my $i=1;$i<=$nbmots;$i++) {
		    $d.=" ".$droite[$i-1];
		    $g = $gauche[$#gauche-$i+1]." ".$g;
		}
		#Si la variables $g et $d ne contiennent des espaces ou rien, les remplacer par un espace insécable
		if (($g eq "") || ($g=~/^[ ]+$/)) {$g="&nbsp;"};
		if (($d eq "") || ($d=~/^[ ]*$/)) {$d="&nbsp;"};
		#Ecriture des résultat dans le fichier résultat
		print SORTIE "<tr><td>$compteur</td><td align=\"right\">$g</td><td align=\"center\">
		&nbsp;$pole&nbsp;</td><td align=\"left\">$d</td>\n";
		#ajouter un au compteur d'occurences		
		$compteur++;
    }
}
#écriture de la fin du fichier resultat html
print SORTIE "</table>\n</body>\n</html>\n";
close(SORTIE);
close(ENTREE);
