--- rpl/src/analyse_notation_rpn.c 2014/07/17 08:07:15 1.51 +++ rpl/src/analyse_notation_rpn.c 2016/03/01 22:12:25 1.62 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.19 - Copyright (C) 1989-2014 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.25 + Copyright (C) 1989-2016 Dr. BERTRAND Joël This file is part of RPL/2. @@ -75,9 +75,27 @@ analyse_rpn(struct_processus *s_etat_pro { if (recherche_instruction_suivante(s_etat_processus) == d_erreur) { + 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) + { + return NULL; + } + + liberation(s_etat_processus, s_objet); + } + + (*s_etat_processus).position_courante = registre_compteur_programme; + (*s_etat_processus).definitions_chainees = registre_programme; + (*s_etat_processus).instruction_courante = registre_instruction; + (*s_etat_processus).autorisation_empilement_programme = + registre_autorisation_empilement; + return NULL; } + (*s_etat_processus).type_en_cours = NON; recherche_type(s_etat_processus); free((*s_etat_processus).instruction_courante);