--- rpl/src/compilation.c 2015/01/28 11:44:55 1.73 +++ rpl/src/compilation.c 2015/07/09 21:19:03 1.81 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.20 + RPL/2 (R) version 4.1.22 Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -1489,19 +1489,32 @@ recherche_instruction_suivante_recursive pointeur_caractere_courant++; } - if ((*pointeur_caractere_courant) == '>') + if (((*pointeur_caractere_courant) == '>') && + ((*(pointeur_caractere_courant - 1)) == + d_code_espace)) { - if ((*(++pointeur_caractere_courant)) == '>') - { + pointeur_caractere_courant++; + + if ((*pointeur_caractere_courant) == '>') + { // Cas de '>>' drapeau_fin_objet = d_vrai; + pointeur_caractere_courant++; + break; } - else - { + else if ((*pointeur_caractere_courant) == '=') + { // Cas de '>=' + drapeau_fin_objet = d_vrai; + pointeur_caractere_courant++; + break; + } + else if ((*pointeur_caractere_courant) != + d_code_espace) + { // Tous les cas différents de '>' erreur_analyse = d_ex_syntaxe; + break; } - pointeur_caractere_courant++; - break; + pointeur_caractere_courant--; } if ((erreur_format == d_absence_erreur) && @@ -1669,7 +1682,7 @@ recherche_instruction_suivante_recursive default: { (*s_etat_processus).erreur_execution = d_ex_syntaxe; - return(d_erreur); +// return(d_erreur); } } } @@ -1699,6 +1712,11 @@ recherche_instruction_suivante_recursive erreur = ((erreur_analyse == d_ex) && (erreur_format == d_ex)) ? d_absence_erreur : d_erreur; (*s_etat_processus).erreur_execution = erreur_analyse; + + if ((*s_etat_processus).erreur_execution == d_ex) + { + (*s_etat_processus).erreur_execution = erreur_format; + } } else {