#!/usr/bin/perl

# prend un fichier tagé
# etape 1 : ouvrir le fichier et extraire la liste des etiquettes

open(FIC, "<:encoding(iso-8859-1)", $ARGV[0]);
open(MOTIF, "<:encoding(iso-8859-1)", $ARGV[1]);
my @LISTEMOTIF=<MOTIF>;
close (MOTIF) ;
# ---
# on met toutes les lignes de motifs ds une liste ...
my @TOKENS=();
my @ETIKS=() ;
# ---
while (my $ligne=<FIC>) {
	next if ($ligne!~/^[^\t]+\t[^\t]+\t[^\t]+/);
	$ligne=~s/\r//g ;
	chomp($ligne) ; # pr enlever \n
	if ($ligne!~/^[^\t]+\t[^\t]+\tPCTFORTE/) { #sous treetager -> SENT . si la ligne ne contient pas de pontcuation forte 
	    # print "tttt",$ligne,"\n";
		@LISTE=split(/\t/,$ligne) ;
		push(@TOKENS,$LISTE[0]) ;
		push(@ETIKS,$LISTE[2]) ;
	}
	else {
		# fin de "phrase"
		&extract ; 
		@TOKENS=() ;
		@ETIKS=() ;
	}
}

sub extract {
	# on doit travailler sur @ETIKS, @TOKENS, @LISTEMOTIF
	# il faut faire "coulisser" chaque motif de @LISTEMOTIF sur @TOKENS
	my $tokens_as_string=join(" ", @TOKENS) ; # on transforme la liste en scalaire
	my $etiks_as_string=join(" ", @ETIKS) ; # idem
	my $cpt = 0;
	foreach my $motif (@LISTEMOTIF) {
		chomp ($motif) ; #eventuellement retirer un \r cf ligne 17
		while ($etiks_as_string=~/$motif/g) {
			$cpt++;
			my $avant=$`;
			my $nbblancdansavant=0;
			while ($avant=~/ /g) { # on compte le nombre de blancs dans $avant...
				$nbblancdansavant++;
			}
			my $nbblancdansmotif=0;
			while ($motif=~/ /g) { # on compte le nombre de blancs dans $motif...
				$nbblancdansmotif++;
			}
			my $fin=$nbblancdansavant+$nbblancdansmotif;
			
			# print "MATCH $cpt !!! : \n$motif\n est dans \n $etiks_as_string\n";
			print "@TOKENS[$nbblancdansavant..$fin]\n" ;
			# my $rep=<STDIN> ;
		} 
	}
}

# si $motif match $etiks as string -> $etiks as tokens
