--- rpl/src/compilation.c 2015/01/28 20:58:02 1.74 +++ rpl/src/compilation.c 2015/01/29 09:33:41 1.76 @@ -997,7 +997,6 @@ recherche_instruction_suivante_recursive (drapeau_fin_objet == d_faux) && (erreur_analyse == d_ex) && (erreur_format == d_ex)) { -uprintf("%c", *pointeur_caractere_courant); switch(*pointeur_caractere_courant++) { case ']' : @@ -1490,19 +1489,26 @@ uprintf("%c", *pointeur_caractere_couran 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) != + 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) && @@ -1640,18 +1646,15 @@ uprintf("%c", *pointeur_caractere_couran if ((*(pointeur_caractere_courant - 1)) == caractere_fin) { -uprintf(" > cas 1"); // Cas des objets composites (LST, RPN, TBL) break; } else if ((*pointeur_caractere_courant) == caractere_fin) { -uprintf(" > cas 2"); // Condition pour traiter les cas 123} break; } } -uprintf("\n"); pointeur_fin_instruction = pointeur_caractere_courant; @@ -1712,7 +1715,6 @@ uprintf("\n"); (*s_etat_processus).position_courante = pointeur_fin_instruction - (*s_etat_processus).definitions_chainees; -uprintf("'%s'\n", (*s_etat_processus).instruction_courante); return(erreur); }