Diff for /rpl/src/rplexternals.h between versions 1.64 and 1.65

version 1.64, 2015/06/08 14:11:45 version 1.65, 2015/06/11 21:20:41
Line 130 Line 130
 #define logical int  #define logical int
 #define string char *  #define string char *
 #define integer int  #define integer int
 #define object struct_objet *  
   
 #define declareStructure typedef struct {  #define declareStructure typedef struct {
 #define declareUnion typedef union {  #define declareUnion typedef union {
Line 139 Line 138
 #define target(a) (*a)  #define target(a) (*a)
 #define address(a) (&a)  #define address(a) (&a)
   
   #define subroutine(name) int name()
 #define beginGroup { __CATCH_SYSTEM_ERROR__;  #define beginGroup { __CATCH_SYSTEM_ERROR__;
 #define endGroup __CATCH_SYSTEM_ERROR__; }  #define endGroup __CATCH_SYSTEM_ERROR__; }
 #define beginMacro do beginGroup  #define beginMacro do beginGroup
Line 327 Line 327
         char *ptr1, *ptr2; \          char *ptr1, *ptr2; \
         int drapeau; \          int drapeau; \
         unsigned long i; \          unsigned long i; \
           struct_processus *s_etat_processus; \
           s_etat_processus = (*rpl_arguments).s_etat_processus; \
         if (strcmp(version, _d_version_rpl) != 0) \          if (strcmp(version, _d_version_rpl) != 0) \
         { \          { \
             notice(stdout, "Versions mismatch : library %s, expected %s\n", \              notice(stdout, "Versions mismatch : library %s, expected %s\n", \
Line 566 Line 568
 //  Constantes symboliques  //  Constantes symboliques
   
 #define createSymbolicConstant(rpl_object, type, value) do { \  #define createSymbolicConstant(rpl_object, type, value) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     if ((strcmp(#type, "integer") != 0) && (strcmp(#type, "real") != 0)) \      if ((strcmp(#type, "integer") != 0) && (strcmp(#type, "real") != 0)) \
         systemError("Type not allowed for symbolic constant"); \          systemError("Type not allowed for symbolic constant"); \
     __taille_bloc = sizeof(t_8_bits) * 8; \      __taille_bloc = sizeof(t_8_bits) * 8; \
Line 606 Line 610
     __constante--; } while(0)      __constante--; } while(0)
   
 #define createSymbolicComplexConstant(rpl_object, rp, ip) do { \  #define createSymbolicComplexConstant(rpl_object, rp, ip) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     __taille_bloc = sizeof(t_8_bits) * 8; \      __taille_bloc = sizeof(t_8_bits) * 8; \
     __indice_bloc = (35 - 1) / __taille_bloc; \      __indice_bloc = (35 - 1) / __taille_bloc; \
     __indice_bit = (35 - 1) % __taille_bloc; \      __indice_bit = (35 - 1) % __taille_bloc; \
Line 778 Line 784
   
 #define createVectorObject(rpl_object, size, otype, structure, cat) do { \  #define createVectorObject(rpl_object, size, otype, structure, cat) do { \
     integer8 i; \      integer8 i; \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     if (rpl_object != NULL) \      if (rpl_object != NULL) \
         systemError("Reallocated object"); \          systemError("Reallocated object"); \
     if ((rpl_object = allocation(cat)) == NULL) \      if ((rpl_object = allocation(cat)) == NULL) \
Line 900 Line 908
     else executionError("Type mismatch error"); } while(0)      else executionError("Type mismatch error"); } while(0)
   
 #define createRealVectorObject(rpl_object, size) \  #define createRealVectorObject(rpl_object, size) \
     createVectorObject(object, size, real8, struct_vecteur, VRL)      createVectorObject(rpl_object, size, real8, struct_vecteur, VRL)
   
 // A FIXER  // A FIXER
   
Line 957 Line 965
 #define elseIfIsName(rpl_object)  } else if (isName(rpl_object))  #define elseIfIsName(rpl_object)  } else if (isName(rpl_object))
   
 #define setName(rpl_object, value) do { \  #define setName(rpl_object, value) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     ifIsName(rpl_object) \      ifIsName(rpl_object) \
     { \      { \
         if ((*rpl_object).nombre_occurrences > 1) \          if ((*rpl_object).nombre_occurrences > 1) \
Line 982 Line 992
     (*((struct_nom *) (*rpl_object).objet)).symbole = d_vrai; } while(0)      (*((struct_nom *) (*rpl_object).objet)).symbole = d_vrai; } while(0)
   
 #define createNameObject(rpl_object) do { \  #define createNameObject(rpl_object) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     if (rpl_object != NULL) \      if (rpl_object != NULL) \
         systemError("Reallocated object"); \          systemError("Reallocated object"); \
     if ((rpl_object = allocation(NOM)) == NULL) \      if ((rpl_object = allocation(NOM)) == NULL) \
Line 1001 Line 1013
 #define elseIfIsString(rpl_object) else if (isString(rpl_object))  #define elseIfIsString(rpl_object) else if (isString(rpl_object))
   
 #define setString(rpl_object, string) do { \  #define setString(rpl_object, string) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     ifIsString(rpl_object) \      ifIsString(rpl_object) \
     { \      { \
         if (string == NULL) executionError("Nullified string"); else \          if (string == NULL) executionError("Nullified string"); else \
Line 1028 Line 1042
     else executionError("Type mismatch error"); } while(0)      else executionError("Type mismatch error"); } while(0)
   
 #define createStringObject(rpl_object) do { \  #define createStringObject(rpl_object) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     if (rpl_object != NULL) \      if (rpl_object != NULL) \
         systemError("Reallocated object"); \          systemError("Reallocated object"); \
     if ((rpl_object = allocation(CHN)) == NULL) \      if ((rpl_object = allocation(CHN)) == NULL) \
Line 1052 Line 1068
     (*rpl_object).objet = NULL; } while(0)      (*rpl_object).objet = NULL; } while(0)
   
 #define addObjectToList(list, rpl_object) do { \  #define addObjectToList(list, rpl_object) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     ifIsList(list) \      ifIsList(list) \
     { \      { \
         struct_objet *__tmp_rpl_object; \          struct_objet *__tmp_rpl_object; \
Line 1085 Line 1103
     else executionError("Type mistmatch error"); } while(0)      else executionError("Type mistmatch error"); } while(0)
   
 #define insertObjectIntoList(list, rpl_object) do { \  #define insertObjectIntoList(list, rpl_object) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     ifIsList(list) \      ifIsList(list) \
     { \      { \
         struct_objet *__tmp_rpl_object; \          struct_objet *__tmp_rpl_object; \
Line 1115 Line 1135
     else executionError("Type mistmatch error"); } while(0)      else executionError("Type mistmatch error"); } while(0)
   
 #define removeObjectFromList(list, rpl_object) do { \  #define removeObjectFromList(list, rpl_object) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     ifIsList(list) \      ifIsList(list) \
     { \      { \
         if ((*list).objet != NULL) \          if ((*list).objet != NULL) \
Line 1176 Line 1198
 #define size(a) sizeof(a)  #define size(a) sizeof(a)
   
 #define allocate(a) ({ void *ptr; \  #define allocate(a) ({ void *ptr; \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
     if ((ptr = malloc(a)) == NULL) \      if ((ptr = malloc(a)) == NULL) \
             systemError("Memory allocation error"); ptr; })              systemError("Memory allocation error"); ptr; })
   
 #define deallocate(a) free(a)  #define deallocate(a) do { \
       struct_processus *s_etat_processus; \
       s_etat_processus = (*rpl_arguments).s_etat_processus; \
       free(a); } while(0)
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------

Removed from v.1.64  
changed lines
  Added in v.1.65


CVSweb interface <joel.bertrand@systella.fr>