--- rpl/src/compilation.c 2010/08/26 19:07:35 1.19 +++ rpl/src/compilation.c 2012/01/25 16:38:30 1.39 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.19 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.6 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -811,6 +811,56 @@ analyse_syntaxique(struct_processus *s_e /* ================================================================================ + Procédure de d'analyse syntaxique du source pour readline +================================================================================ + Entrées : +-------------------------------------------------------------------------------- + Sorties : + - rl_done à 0 ou à 1. +-------------------------------------------------------------------------------- + Effets de bord : +================================================================================ +*/ + +int +readline_analyse_syntaxique(int count, int key) +{ + struct_processus s_etat_processus; + + s_etat_processus.definitions_chainees = rl_line_buffer; + s_etat_processus.debug = d_faux; + + if ((*rl_line_buffer) == d_code_fin_chaine) + { + rl_done = 1; + } + else + { + if (analyse_syntaxique(&s_etat_processus) == d_absence_erreur) + { + rl_done = 1; + } + else + { + rl_done = 0; + rl_mark = rl_end; + rl_crlf(); + rl_expand_prompt(" > "); + rl_on_new_line(); + } + } + + if (rl_done != 0) + { + uprintf("\n"); + } + + return(0); +} + + +/* +================================================================================ Routine d'échange de deux variables ================================================================================ Entrées : @@ -1749,9 +1799,9 @@ initialisation_drapeaux(struct_processus cf(s_etat_processus, 32); /* Impression automatique */ cf(s_etat_processus, 33); /* CR automatique (disp) */ - cf(s_etat_processus, 34); /* Valeur principale (intervalle de déf.) */ - sf(s_etat_processus, 35); /* Evaluation symbolique des constantes */ - sf(s_etat_processus, 36); /* Evaluation symbolique des fonctions */ + sf(s_etat_processus, 34); /* Évaluation des caractères de contrôle */ + sf(s_etat_processus, 35); /* Évaluation symbolique des constantes */ + sf(s_etat_processus, 36); /* Évaluation symbolique des fonctions */ sf(s_etat_processus, 37); /* Taille de mot pour les entiers binaires */ sf(s_etat_processus, 38); /* Taille de mot pour les entiers binaires */ sf(s_etat_processus, 39); /* Taille de mot pour les entiers binaires */