#!/usr/bin/perl
#On crée un tableau @pronoms auquel on affecte la liste de tous les pronoms personnels
@pronoms=("Je","Tu","Il","Nous","Vous","Ils");
#On crée un tableau @presentindicatif auquel on affecte la liste de toutes les terminaisons du présent de l'indicatif pour les verbes du 1er groupe
@presentindicatif=("e","es","e","ons","ez","ent");
#On crée un tableau @imparfaitindicatif auquel on affecte la liste de toutes les terminaisons de l'imparfait de l'indicatif pour les verbes du 1er groupe
@imparfaitindicatif=("ais","ais","ait","ions","iez","aient");
#On affiche "Verbe a conjuguer (Par defaut : chanter) : "
print "Verbe a conjuguer (Par defaut : chanter) : ";
#On affecte à la variable $verbe le contenu de l'entrée standard <STDIN> (Pointeur qui permet de lire le flux d'entrée au clavier)
$verbe=<STDIN>;
#On supprime le dernier caractère contenu dans la variable $verbe seulement si celui-ci est un retour à la ligne
chomp ($verbe);
#On met en minuscule tous les caractères contenus dans la variable $verbe
$verbe=lc($verbe);
#Si le contenu de la variable $verbe est vide, on exécute le bloc d'instructions
if ($verbe eq "") {
	#On affecte à la variable $verbe la chaîne de caractères "chanter"
	$verbe="chanter";
}
#Si le contenu de la variable $verbe contient une chaîne de caractères composée de n'importe quel caractère minuscule compris entre a et z répété 1 à plusieurs fois et se terminant par er, on exécute le bloc d'instructions
if ($verbe=~/([a-z]+)er$/) {
	#On affecte à la variable $radical le motif recherché qui se trouve dans la première paranthèse (Contenu dans la variable $1)
	$radical=$1;
	#On retourne à la ligne
	#On affiche "Conjugaison du verbe ", suivi en bleu du contenu de la variable $verbe et suivi de " au present de l'indicatif : "
	#On retourne à la ligne
	print "\nConjugaison du verbe \033[34m",$verbe,"\033[00m au present de l'indicatif :\n";
	#On crée une boucle avec une variable $i comme compteur et qui est initialisé à 0
	#On incrémente à chaque passage ($i++) la variable $i
	#On exécute le bloc d'instructions (= Instructions contenues entre accolades) tant que la variable $i est inférieure ou égale à 5 (Donc on exécute 6 fois le bloc d'instructions)
	for ($i=0;$i<=5;$i++) {
		#On affiche l'élément numéro $i (Donc un nombre entre 0 et 5) du tableau $pronoms, suivi d'une tabulation, suivi du contenu de la variable $radical et suivi en rouge de l'élément numéro $i (Donc un nombre entre 0 et 5) du tableau $presentindicatif
		#On retourne à la ligne
		print $pronoms[$i],"\t",$radical,"\033[31m",$presentindicatif[$i],"\033[00m\n"; 
	}
	#On retourne à la ligne
	print "\n";
	#On retourne à la ligne
	#On affiche "Conjugaison du verbe ", suivi en bleu du contenu de la variable $verbe et suivi de " a l'imparfait de l'indicatif : "
	print "\nConjugaison du verbe \033[34m",$verbe,"\033[00m a l'imparfait de l'indicatif :\n";
	#On crée une boucle avec une variable $i comme compteur et qui est initialisé à 0
	#On incrémente à chaque passage ($i++) la variable $i
	#On exécute le bloc d'instructions (= Instructions contenues entre accolades) tant que la variable $i est inférieure ou égale à 5 (Donc on exécute 6 fois le bloc d'instructions)
	for ($i=0;$i<=5;$i++) {
		#On affiche l'élément numéro $i (Donc un nombre entre 0 et 5) du tableau $pronoms, suivi d'une tabulation, suivi du contenu de la variable $radical et suivi en rouge de l'élément numéro $i (Donc un nombre entre 0 et 5) du tableau $imparfaitindicatif
		#On retourne à la ligne
		print $pronoms[$i],"\t",$radical,"\033[31m",$imparfaitindicatif[$i],"\033[00m\n"; 
	}
	#On retourne à la ligne
	print "\n";
}
#Sinon si la condition n'est pas remplie, on exécute le bloc d'instructions
else {
	#On retourne à la ligne
	#On affiche en bleu le contenu de la variable $verbe et suivi de " n'est pas un verbe du premier groupe."
	#On retourne à la ligne
	#On retourne à la ligne
	print "\n\033[34m",$verbe,"\033[00m n'est pas un verbe du premier groupe.\n\n";
}