Diff for /rpl/src/instructions_f4.c between versions 1.40 and 1.60

version 1.40, 2012/12/19 09:58:24 version 1.60, 2015/11/26 11:44:35
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.12    RPL/2 (R) version 4.1.24
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2015 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 40  instruction_fleche_table(struct_processu Line 40  instruction_fleche_table(struct_processu
 {  {
     struct_objet                    *s_objet;      struct_objet                    *s_objet;
   
     signed long                     i;      integer8                        i;
     signed long                     nombre_elements;      integer8                        nombre_elements;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 116  instruction_fleche_table(struct_processu Line 116  instruction_fleche_table(struct_processu
         return;          return;
     }      }
   
     if ((unsigned long) nombre_elements >=      if (nombre_elements >= (*s_etat_processus).hauteur_pile_operationnelle)
             (*s_etat_processus).hauteur_pile_operationnelle)  
     {      {
         (*s_etat_processus).erreur_execution = d_ex_manque_argument;          (*s_etat_processus).erreur_execution = d_ex_manque_argument;
         return;          return;
Line 149  instruction_fleche_table(struct_processu Line 148  instruction_fleche_table(struct_processu
     (*((struct_tableau *) (*s_objet).objet)).nombre_elements =      (*((struct_tableau *) (*s_objet).objet)).nombre_elements =
             nombre_elements;              nombre_elements;
   
     if (((*((struct_tableau *) (*s_objet).objet)).elements = malloc(      if (((*((struct_tableau *) (*s_objet).objet)).elements = malloc(((size_t)
             nombre_elements * sizeof(struct_objet *))) == NULL)              nombre_elements) * sizeof(struct_objet *))) == NULL)
     {      {
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return;          return;
Line 194  instruction_fleche_diag(struct_processus Line 193  instruction_fleche_diag(struct_processus
     struct_objet                *s_objet_argument;      struct_objet                *s_objet_argument;
     struct_objet                *s_objet_resultat;      struct_objet                *s_objet_resultat;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 256  instruction_fleche_diag(struct_processus Line 255  instruction_fleche_diag(struct_processus
                 (*((struct_vecteur *) (*s_objet_argument).objet)).taille;                  (*((struct_vecteur *) (*s_objet_argument).objet)).taille;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*((struct_matrice *) (*s_objet_resultat).objet))                  malloc(((size_t) (*((struct_matrice *)
                 .nombre_lignes * sizeof(integer8 *))) == NULL)                  (*s_objet_resultat).objet)).nombre_lignes)
                   * sizeof(integer8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 268  instruction_fleche_diag(struct_processus Line 268  instruction_fleche_diag(struct_processus
         {          {
             if ((((integer8 **) (*((struct_matrice *)              if ((((integer8 **) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).tableau)[i] =                      (*s_objet_resultat).objet)).tableau)[i] =
                     malloc((*((struct_matrice *)                      malloc(((size_t) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).nombre_colonnes *                      (*s_objet_resultat).objet)).nombre_colonnes) *
                     sizeof(integer8))) == NULL)                      sizeof(integer8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 308  instruction_fleche_diag(struct_processus Line 308  instruction_fleche_diag(struct_processus
                 (*((struct_vecteur *) (*s_objet_argument).objet)).taille;                  (*((struct_vecteur *) (*s_objet_argument).objet)).taille;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*((struct_matrice *) (*s_objet_resultat).objet))                  malloc(((size_t) (*((struct_matrice *) (*s_objet_resultat)
                 .nombre_lignes * sizeof(real8 *))) == NULL)                  .objet)).nombre_lignes) * sizeof(real8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 320  instruction_fleche_diag(struct_processus Line 320  instruction_fleche_diag(struct_processus
         {          {
             if ((((real8 **) (*((struct_matrice *)              if ((((real8 **) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).tableau)[i] =                      (*s_objet_resultat).objet)).tableau)[i] =
                     malloc((*((struct_matrice *)                      malloc(((size_t) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).nombre_colonnes *                      (*s_objet_resultat).objet)).nombre_colonnes) *
                     sizeof(real8))) == NULL)                      sizeof(real8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 360  instruction_fleche_diag(struct_processus Line 360  instruction_fleche_diag(struct_processus
                 (*((struct_vecteur *) (*s_objet_argument).objet)).taille;                  (*((struct_vecteur *) (*s_objet_argument).objet)).taille;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*((struct_matrice *) (*s_objet_resultat).objet))                  malloc(((size_t) (*((struct_matrice *) (*s_objet_resultat)
                 .nombre_lignes * sizeof(complex16 *))) == NULL)                  .objet)).nombre_lignes) * sizeof(complex16 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 372  instruction_fleche_diag(struct_processus Line 372  instruction_fleche_diag(struct_processus
         {          {
             if ((((complex16 **) (*((struct_matrice *)              if ((((complex16 **) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).tableau)[i] =                      (*s_objet_resultat).objet)).tableau)[i] =
                     malloc((*((struct_matrice *)                      malloc(((size_t) (*((struct_matrice *)
                     (*s_objet_resultat).objet)).nombre_colonnes *                      (*s_objet_resultat).objet)).nombre_colonnes) *
                     sizeof(complex16))) == NULL)                      sizeof(complex16))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 473  instruction_forall(struct_processus *s_e Line 473  instruction_forall(struct_processus *s_e
             printf("  Usage:\n\n");              printf("  Usage:\n\n");
         }          }
   
         printf("    %s/%s FORALL (variable)\n", d_LST, d_TAB);          printf("    %s FORALL (variable)\n", d_LST);
           printf("        (expression)\n");
           printf("        [EXIT]/[CYCLE]\n");
           printf("        ...\n");
           printf("    NEXT\n\n");
   
           printf("    %s FORALL (variable)\n", d_TAB);
         printf("        (expression)\n");          printf("        (expression)\n");
         printf("        [EXIT]/[CYCLE]\n");          printf("        [EXIT]/[CYCLE]\n");
         printf("        ...\n");          printf("        ...\n");
Line 514  instruction_forall(struct_processus *s_e Line 520  instruction_forall(struct_processus *s_e
         return;          return;
     }      }
   
     tampon = (*s_etat_processus).instruction_courante;  
     test_instruction = (*s_etat_processus).test_instruction;  
     instruction_valide = (*s_etat_processus).instruction_valide;  
     (*s_etat_processus).test_instruction = 'Y';  
   
     empilement_pile_systeme(s_etat_processus);      empilement_pile_systeme(s_etat_processus);
   
     if ((*s_etat_processus).erreur_systeme != d_es)      if ((*s_etat_processus).erreur_systeme != d_es)
Line 528  instruction_forall(struct_processus *s_e Line 529  instruction_forall(struct_processus *s_e
   
     if ((*s_etat_processus).mode_execution_programme == 'Y')      if ((*s_etat_processus).mode_execution_programme == 'Y')
     {      {
           tampon = (*s_etat_processus).instruction_courante;
           test_instruction = (*s_etat_processus).test_instruction;
           instruction_valide = (*s_etat_processus).instruction_valide;
           (*s_etat_processus).test_instruction = 'Y';
   
         if (recherche_instruction_suivante(s_etat_processus) == d_erreur)          if (recherche_instruction_suivante(s_etat_processus) == d_erreur)
         {          {
             return;              return;
Line 540  instruction_forall(struct_processus *s_e Line 546  instruction_forall(struct_processus *s_e
             liberation(s_etat_processus, s_objet_1);              liberation(s_etat_processus, s_objet_1);
             free((*s_etat_processus).instruction_courante);              free((*s_etat_processus).instruction_courante);
             (*s_etat_processus).instruction_courante = tampon;              (*s_etat_processus).instruction_courante = tampon;
               (*s_etat_processus).instruction_valide = instruction_valide;
               (*s_etat_processus).test_instruction = test_instruction;
   
             depilement_pile_systeme(s_etat_processus);              depilement_pile_systeme(s_etat_processus);
   
Line 547  instruction_forall(struct_processus *s_e Line 555  instruction_forall(struct_processus *s_e
             return;              return;
         }          }
   
           (*s_etat_processus).type_en_cours = NON;
         recherche_type(s_etat_processus);          recherche_type(s_etat_processus);
   
         free((*s_etat_processus).instruction_courante);          free((*s_etat_processus).instruction_courante);
         (*s_etat_processus).instruction_courante = tampon;          (*s_etat_processus).instruction_courante = tampon;
           (*s_etat_processus).instruction_valide = instruction_valide;
           (*s_etat_processus).test_instruction = test_instruction;
   
         if ((*s_etat_processus).erreur_execution != d_ex)          if ((*s_etat_processus).erreur_execution != d_ex)
         {          {
Line 645  instruction_forall(struct_processus *s_e Line 656  instruction_forall(struct_processus *s_e
                 return;                  return;
             }              }
   
             (*s_etat_processus).test_instruction = test_instruction;  
             (*s_etat_processus).instruction_valide = instruction_valide;  
   
             instruction_cycle(s_etat_processus);              instruction_cycle(s_etat_processus);
             return;              return;
         }          }
Line 689  instruction_forall(struct_processus *s_e Line 697  instruction_forall(struct_processus *s_e
                 return;                  return;
             }              }
   
             (*s_etat_processus).test_instruction = test_instruction;  
             (*s_etat_processus).instruction_valide = instruction_valide;  
   
             instruction_cycle(s_etat_processus);              instruction_cycle(s_etat_processus);
             return;              return;
         }          }
Line 725  instruction_forall(struct_processus *s_e Line 730  instruction_forall(struct_processus *s_e
   
     liberation(s_etat_processus, s_objet_2);      liberation(s_etat_processus, s_objet_2);
   
     (*s_etat_processus).test_instruction = test_instruction;  
     (*s_etat_processus).instruction_valide = instruction_valide;  
   
     (*(*s_etat_processus).l_base_pile_systeme).limite_indice_boucle = s_objet_1;      (*(*s_etat_processus).l_base_pile_systeme).limite_indice_boucle = s_objet_1;
   
     if ((*s_etat_processus).mode_execution_programme == 'Y')      if ((*s_etat_processus).mode_execution_programme == 'Y')

Removed from v.1.40  
changed lines
  Added in v.1.60


CVSweb interface <joel.bertrand@systella.fr>