version 1.27, 2011/06/22 13:27:04
|
version 1.37, 2012/01/05 10:19:05
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.0.prerelease.3 |
RPL/2 (R) version 4.1.5 |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 25
|
Line 25
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
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 |
Entrées : structure sur l'état du processus |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
Line 49 sequenceur_optimise(struct_processus *s_
|
Line 49 sequenceur_optimise(struct_processus *s_
|
struct_tableau_variables *tableau; |
struct_tableau_variables *tableau; |
|
|
unsigned char *message; |
unsigned char *message; |
|
unsigned char registre; |
|
|
unsigned long adresse_point_entree; |
unsigned long adresse_point_entree; |
|
|
Line 58 sequenceur_optimise(struct_processus *s_
|
Line 59 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Optimisation [%d]\n", (int) getpid()); |
printf("+++Compilation [%d]\n", (int) getpid()); |
} |
} |
else |
else |
{ |
{ |
printf("+++Optimization [%d]\n", (int) getpid()); |
printf("+++Compilation [%d]\n", (int) getpid()); |
} |
} |
|
|
printf("\n"); |
printf("\n"); |
Line 71 sequenceur_optimise(struct_processus *s_
|
Line 72 sequenceur_optimise(struct_processus *s_
|
|
|
point_entree = -1; |
point_entree = -1; |
adresse_point_entree = 0; |
adresse_point_entree = 0; |
|
programme_principal = NULL; |
|
|
empilement_pile_systeme(s_etat_processus); |
empilement_pile_systeme(s_etat_processus); |
(*(*s_etat_processus).l_base_pile_systeme).retour_definition = 'Y'; |
(*(*s_etat_processus).l_base_pile_systeme).retour_definition = 'Y'; |
Line 128 sequenceur_optimise(struct_processus *s_
|
Line 130 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |
return(d_erreur); |
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); |
recherche_type(s_etat_processus); |
|
(*s_etat_processus).autorisation_nom_implicite = registre; |
|
|
if (((*s_etat_processus).erreur_execution != d_ex) || |
if (((*s_etat_processus).erreur_execution != d_ex) || |
((*s_etat_processus).erreur_systeme != d_es)) |
((*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') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |
Line 165 sequenceur_optimise(struct_processus *s_
|
Line 207 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |
Line 184 sequenceur_optimise(struct_processus *s_
|
Line 226 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |
Line 210 sequenceur_optimise(struct_processus *s_
|
Line 252 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |
Line 230 sequenceur_optimise(struct_processus *s_
|
Line 272 sequenceur_optimise(struct_processus *s_
|
|
|
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("[%d] Optimisation achevée\n", (int) getpid()); |
printf("[%d] Compilation achevée\n", (int) getpid()); |
} |
} |
else |
else |
{ |
{ |
printf("[%d] Optimization done\n", (int) getpid()); |
printf("[%d] Compilation done\n", (int) getpid()); |
} |
} |
|
|
printf("\n"); |
printf("\n"); |
Line 251 sequenceur_optimise(struct_processus *s_
|
Line 293 sequenceur_optimise(struct_processus *s_
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Fatal : Optimisation impossible\n"); |
printf("+++Fatal : Compilation impossible\n"); |
} |
} |
else |
else |
{ |
{ |
printf("+++Fatal : Optimization failed\n"); |
printf("+++Fatal : Compilation failed\n"); |
} |
} |
|
|
free(tableau); |
free(tableau); |