version 1.52, 2013/03/05 16:26:46
|
version 1.65, 2013/12/03 09:36:11
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.13 |
RPL/2 (R) version 4.1.17 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 39 static inline void
|
Line 39 static inline void
|
estimation_taille_pile_systeme(struct_processus *s_etat_processus) |
estimation_taille_pile_systeme(struct_processus *s_etat_processus) |
{ |
{ |
(*s_etat_processus).estimation_taille_pile_systeme_tampon = |
(*s_etat_processus).estimation_taille_pile_systeme_tampon = |
((*s_etat_processus).estimation_taille_pile_systeme_tampon * |
(((double) (*s_etat_processus) |
((double) 0.9)) + ((*s_etat_processus) |
.estimation_taille_pile_systeme_tampon) * |
.hauteur_pile_systeme * ((double) 0.1)); |
((double) 0.9)) + (((double) (*s_etat_processus) |
|
.hauteur_pile_systeme) * ((double) 0.1)); |
return; |
return; |
} |
} |
|
|
Line 302 effacement_pile_systeme(struct_processus
|
Line 303 effacement_pile_systeme(struct_processus
|
void |
void |
trace(struct_processus *s_etat_processus, FILE *flux) |
trace(struct_processus *s_etat_processus, FILE *flux) |
{ |
{ |
int candidat; |
|
int j; |
|
int nb_variables; |
|
|
|
integer8 i; |
integer8 i; |
|
integer8 j; |
|
integer8 candidat; |
integer8 candidat8; |
integer8 candidat8; |
integer8 delta; |
integer8 delta; |
|
integer8 nb_variables; |
|
|
struct_liste_chainee *l_element_expression; |
struct_liste_chainee *l_element_expression; |
|
|
Line 332 trace(struct_processus *s_etat_processus
|
Line 332 trace(struct_processus *s_etat_processus
|
|
|
nb_variables = nombre_variables(s_etat_processus); |
nb_variables = nombre_variables(s_etat_processus); |
|
|
if ((tableau = malloc(nb_variables * sizeof(struct_tableau_variables))) |
if ((tableau = malloc(((size_t) nb_variables) * |
== NULL) |
sizeof(struct_tableau_variables))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return; |
return; |
Line 348 trace(struct_processus *s_etat_processus
|
Line 348 trace(struct_processus *s_etat_processus
|
|
|
while(l_element_courant != NULL) |
while(l_element_courant != NULL) |
{ |
{ |
fprintf(flux, "%d : address # %016Xh\n", i--, l_element_courant); |
fprintf(flux, "%lld : address # %016Xh\n", i--, l_element_courant); |
|
|
if ((*l_element_courant).creation_variables_statiques == d_vrai) |
if ((*l_element_courant).creation_variables_statiques == d_vrai) |
{ |
{ |
Line 492 trace(struct_processus *s_etat_processus
|
Line 492 trace(struct_processus *s_etat_processus
|
} |
} |
} |
} |
|
|
fprintf(flux, " Level = %d\n", |
fprintf(flux, " Level = %lld\n", |
(*l_element_courant).niveau_courant); |
(long long int) (*l_element_courant).niveau_courant); |
|
|
if (((*l_element_courant).retour_definition == 'Y') || |
if ((*l_element_courant).retour_definition == 'Y') |
((*l_element_courant).origine_routine_evaluation == 'Y')) |
|
{ |
{ |
fprintf(flux, " Return = yes\n"); |
fprintf(flux, " Return = yes\n"); |
|
|
Line 571 trace(struct_processus *s_etat_processus
|
Line 570 trace(struct_processus *s_etat_processus
|
} |
} |
else |
else |
{ |
{ |
|
fprintf(flux, " Come from = compiled code\n"); |
fprintf(flux, " = " |
fprintf(flux, " = " |
"optimized definition\n"); |
"optimized definition\n"); |
} |
} |
Line 595 trace(struct_processus *s_etat_processus
|
Line 595 trace(struct_processus *s_etat_processus
|
if ((*(tableau[j].objet)).type == ADR) |
if ((*(tableau[j].objet)).type == ADR) |
{ |
{ |
delta = (*l_element_courant).adresse_retour |
delta = (*l_element_courant).adresse_retour |
- (*((unsigned long *) |
- (*((integer8 *) |
(*(tableau[j].objet)).objet)); |
(*(tableau[j].objet)).objet)); |
|
|
if ((delta >= 0) && (delta < candidat8)) |
if ((delta >= 0) && (delta < candidat8)) |
Line 617 trace(struct_processus *s_etat_processus
|
Line 617 trace(struct_processus *s_etat_processus
|
"unknown definition\n"); |
"unknown definition\n"); |
} |
} |
} |
} |
else |
else if ((*l_element_courant).niveau_courant == 0) |
{ |
{ |
fprintf(flux, "\n"); |
fprintf(flux, "\n"); |
fprintf(flux, " = RPL/2 " |
fprintf(flux, " = RPL/2 " |
"initialization\n"); |
"initialization\n"); |
} |
} |
|
else |
|
{ |
|
fprintf(flux, "\n"); |
|
} |
} |
} |
} |
} |
else |
else |
Line 630 trace(struct_processus *s_etat_processus
|
Line 634 trace(struct_processus *s_etat_processus
|
fprintf(flux, " Return = no\n"); |
fprintf(flux, " Return = no\n"); |
} |
} |
|
|
if ((*l_element_courant).indice_boucle != NULL) |
if (((*l_element_courant).indice_boucle != NULL) && |
|
((*l_element_courant).type_cloture != 'A')) |
{ |
{ |
tampon = formateur(s_etat_processus, 24, |
tampon = formateur(s_etat_processus, 24, |
(*l_element_courant).indice_boucle); |
(*l_element_courant).indice_boucle); |
Line 665 trace(struct_processus *s_etat_processus
|
Line 670 trace(struct_processus *s_etat_processus
|
l_element_courant = (*l_element_courant).suivant; |
l_element_courant = (*l_element_courant).suivant; |
} |
} |
|
|
fprintf(flux, "\n"); |
|
funlockfile(flux); |
funlockfile(flux); |
|
|
free(tableau); |
free(tableau); |