--- rpl/src/analyse_notation_rpn.c 2010/01/26 15:22:45 1.1 +++ rpl/src/analyse_notation_rpn.c 2014/07/26 09:59:21 1.53 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.9 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.19 + Copyright (C) 1989-2014 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -36,9 +36,9 @@ */ struct_liste_chainee * -analyse_rpn(struct_processus *s_etat_processus, - unsigned char *chaine_rpn) +analyse_rpn(struct_processus *s_etat_processus, unsigned char *chaine_rpn) { + struct_liste_chainee *l_ancienne_base_pile; struct_liste_chainee *l_base_liste; struct_liste_chainee *l_element_courant; struct_liste_chainee *l_element_precedent; @@ -51,11 +51,11 @@ analyse_rpn(struct_processus *s_etat_pro unsigned char *registre_instruction; unsigned char *registre_programme; - unsigned long element_en_cours; - unsigned long i; - unsigned long j; - unsigned long nombre_termes; - unsigned long registre_compteur_programme; + integer8 element_en_cours; + integer8 i; + integer8 j; + integer8 nombre_termes; + integer8 registre_compteur_programme; registre_autorisation_empilement = (*s_etat_processus) .autorisation_empilement_programme; @@ -67,6 +67,7 @@ analyse_rpn(struct_processus *s_etat_pro (*s_etat_processus).definitions_chainees = chaine_rpn; (*s_etat_processus).autorisation_empilement_programme = 'N'; + l_ancienne_base_pile = (*s_etat_processus).l_base_pile; nombre_termes = 0; while((*s_etat_processus).definitions_chainees @@ -77,12 +78,13 @@ analyse_rpn(struct_processus *s_etat_pro return NULL; } + (*s_etat_processus).type_en_cours = NON; recherche_type(s_etat_processus); free((*s_etat_processus).instruction_courante); if ((*s_etat_processus).erreur_execution != d_ex) { - for(i = 0; i < nombre_termes; i++) + while((*s_etat_processus).l_base_pile != l_ancienne_base_pile) { if (depilement(s_etat_processus, &((*s_etat_processus) .l_base_pile), &s_objet) == d_erreur)