#!usr/bin/perl -w



<<DOC;
	Mode d'emploi : perl def_patron_cordial.pl
		- saisir le nombre de formes grammaticales qui vont constituer votre patron
		- saisir l'intitulé des formes grammaticales constitant votre patron
		- saisir le nom d'un fichier dont vous souhaitez obtenir la liste des formes correspondantes à votre patron
	Le programme appelle automatiquement le programme 'term.pl' qui va se charger de créer un fichier texte contenant les formes correspondant au patron
DOC

# création du répertoire 'boîte à outils 3' où l'on va stocker les fichiers textes contenant les patrons
system("mkdir bao3-1 bao3-1/fichiers_txt_cordial");

print "Veuillez saisir le nombre de modèles constituant votre patron syntaxique puis appuyez sur la touche 'Entrée':\n";
# récupération d'un nombre sur l'entrée standard
my $nombre_modele=<STDIN>;
# suppression des sauts de ligne
$nombre_modele=~s/[\r\n]+//g;
# si l'utilisateur n'a pas rentré de nombre alors recommencer la procédure
while ($nombre_modele!~/[0-9]+/) {
    print "Vous devez entrer un nombre :\n";
    $nombre_modele=<STDIN>;
    $nombre_modele=~s/[\r\n]+//g;
}
# création d'un fichier texte qui va contenir le patron choisi par l'utilisateur
open (MOTIF, ">:encoding(iso-8859-1)", "listepatron-cordial.txt");
print "Saisissez vos $nombre_modele modèles pour votre patron :\n";
my $patron="patron_cordial_";
# sélection des formes grammaticales constituant le patron
for ($i=1;$i<=$nombre_modele;$i++) {
    print "Modèle $i :\n";
	# récupération sur l'entrée standard des formes grammaticales
    $modele{$i}=<STDIN>;
	# suppression des sauts de ligne pour faire correspondre avec l'expression régulière (plus bas)
    $modele{$i}=~s/[\r\n]+//g;
	# si la forme grammaticale sélectionnée n'est pas correcte, recommencer la procédure
    while ($modele{$i}!~/NC|ADJ|PREP|V|DET|NP|PCT|COO|SUB|ADJNUM/) {
        print "Modèles disponibles :\nNC\nADJ\nPREP\nV\nCOO\nDET\nNP\nPCT\nCOO\nSUB\nADJNUM\nVotre choix :\n";
        $modele{$i}=<STDIN>;
        $modele{$i}=~s/[\r\n]+//g;
    }
    $patron.=$modele{$i}."_";
	# impression de l'expression régulière représentant le patron dans le fichier texte 'listepatron-tt1.txt'
    print MOTIF "([^\\t]+?)\\t[^\\t]+?\\t".$modele{$i}."[^\\t]*?\\t";
}
# fermeture du fichier
close (MOTIF);


@liste_fichiers=`ls bao2-1/fichiers_txt_cordial/*.cnr`;
# on vérifie si le fichier existe sinon on recommence depuis le début (while)
foreach $fichier (@liste_fichiers) {
    $fichier=~s/[\r\n]+//g;

        $fichier_txt_nom_fichier=$fichier;
		$fichier_txt_nom_fichier=~s/.+?\/.+?\/(.+?)\.cnr//;
		# on conserve le nom de la rubrique sans l'extension
		$fichier_txt_nom_fichier=$1;
		# création d'une variable qui contiendra : le type de patron et le nom de la rubrique
my $nom=$patron.$fichier_txt_nom_fichier;
# on lance le programme 'term-utf8.pl' qui produira une sortie texte avec la lliste des patrons correspondant à celui défini par l'utilisateur plus haut
system ("perl term.pl $fichier listepatron-cordial.txt > bao3-1/fichiers_txt_cordial/$nom.txt");
}
