--- rpl/src/optimisation.c 2011/06/22 13:27:04 1.27 +++ rpl/src/optimisation.c 2011/06/23 12:41:15 1.28 @@ -25,7 +25,7 @@ /* ================================================================================ - Boucle principale optimisé de l'interprète RPL/2 + Boucle principale optimisée de l'interprète RPL/2 ================================================================================ Entrées : structure sur l'état du processus -------------------------------------------------------------------------------- @@ -49,6 +49,7 @@ sequenceur_optimise(struct_processus *s_ struct_tableau_variables *tableau; unsigned char *message; + unsigned char registre; unsigned long adresse_point_entree; @@ -58,11 +59,11 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Optimisation [%d]\n", (int) getpid()); + printf("+++Compilation [%d]\n", (int) getpid()); } else { - printf("+++Optimization [%d]\n", (int) getpid()); + printf("+++Compilation [%d]\n", (int) getpid()); } printf("\n"); @@ -128,29 +129,69 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau); return(d_erreur); } + // Il faut désactiver la vérification des variables + // implicites car aucune variable de niveau strictement + // positif étant créée, la fonction recherche_type() pourrait + // échouer. + + registre = (*s_etat_processus).autorisation_nom_implicite; + (*s_etat_processus).autorisation_nom_implicite = 'Y'; recherche_type(s_etat_processus); + (*s_etat_processus).autorisation_nom_implicite = registre; if (((*s_etat_processus).erreur_execution != d_ex) || ((*s_etat_processus).erreur_systeme != d_es)) { + if ((*s_etat_processus).core == d_vrai) + { + if ((*s_etat_processus).langue == 'F') + { + printf("+++Information : " + "Génération du fichier rpl-core " + "[%d]\n", (int) getpid()); + } + else + { + printf("+++Information : " + "Writing rpl-core file [%d]\n", + (int) getpid()); + } + + rplcore(s_etat_processus); + + if ((*s_etat_processus).langue == 'F') + { + printf("+++Information : " + "Processus tracé [%d]\n", + (int) getpid()); + } + else + { + printf("+++Information : Done [%d]\n", + (int) getpid()); + } + + fflush(stdout); + } + if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau); @@ -165,11 +206,11 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau); @@ -184,11 +225,11 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau); @@ -210,11 +251,11 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau); @@ -230,11 +271,11 @@ sequenceur_optimise(struct_processus *s_ if ((*s_etat_processus).langue == 'F') { - printf("[%d] Optimisation achevée\n", (int) getpid()); + printf("[%d] Compilation achevée\n", (int) getpid()); } else { - printf("[%d] Optimization done\n", (int) getpid()); + printf("[%d] Compilation done\n", (int) getpid()); } printf("\n"); @@ -251,11 +292,11 @@ sequenceur_optimise(struct_processus *s_ { if ((*s_etat_processus).langue == 'F') { - printf("+++Fatal : Optimisation impossible\n"); + printf("+++Fatal : Compilation impossible\n"); } else { - printf("+++Fatal : Optimization failed\n"); + printf("+++Fatal : Compilation failed\n"); } free(tableau);