version 1.78, 2015/11/26 11:44:44
|
version 1.89, 2017/07/30 21:59:41
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.24 |
RPL/2 (R) version 4.1.27 |
Copyright (C) 1989-2015 Dr. BERTRAND Joël |
Copyright (C) 1989-2017 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 56 recherche_type(struct_processus *s_etat_
|
Line 56 recherche_type(struct_processus *s_etat_
|
integer8 profondeur_initiale; |
integer8 profondeur_initiale; |
integer8 sauvegarde_niveau_courant; |
integer8 sauvegarde_niveau_courant; |
integer8 sauvegarde_longueur_definitions_chainees; |
integer8 sauvegarde_longueur_definitions_chainees; |
|
integer8 (*__type_new)(struct_processus *, void **); |
|
|
struct_liste_chainee *l_base_liste_fonctions; |
struct_liste_chainee *l_base_liste_fonctions; |
struct_liste_chainee *l_base_liste_decomposition; |
struct_liste_chainee *l_base_liste_decomposition; |
Line 260 recherche_type(struct_processus *s_etat_
|
Line 261 recherche_type(struct_processus *s_etat_
|
|
|
(*s_etat_processus).instruction_valide = registre_instruction_valide; |
(*s_etat_processus).instruction_valide = registre_instruction_valide; |
|
|
|
/* |
|
-------------------------------------------------------------------------------- |
|
Types externes |
|
-------------------------------------------------------------------------------- |
|
*/ |
|
|
|
l_element_courant = (*s_etat_processus).s_bibliotheques; |
|
|
|
while(l_element_courant != NULL) |
|
{ |
|
if ((__type_new = dlsym((*((struct_bibliotheque *) |
|
(*l_element_courant).donnee)).descripteur, "__type_new")) |
|
!= NULL) |
|
{ |
|
if (((*s_objet).extension_type = __type_new(s_etat_processus, |
|
&element)) != 0) |
|
{ |
|
// Le type peut être converti. |
|
|
|
(*s_objet).objet = element; |
|
(*s_objet).type = EXT; |
|
(*s_objet).descripteur_bibliotheque = |
|
(*((struct_bibliotheque *) |
|
(*l_element_courant).donnee)).descripteur; |
|
|
|
if (empilement(s_etat_processus, |
|
&((*s_etat_processus).l_base_pile), s_objet) |
|
== d_erreur) |
|
{ |
|
(*s_etat_processus).erreur_systeme = |
|
d_es_allocation_memoire; |
|
(*s_etat_processus).traitement_interruptible = |
|
registre_interruption; |
|
return; |
|
} |
|
|
|
(*s_etat_processus).traitement_interruptible = |
|
registre_interruption; |
|
return; |
|
} |
|
} |
|
|
|
l_element_courant = (*l_element_courant).suivant; |
|
} |
|
|
|
/* |
|
-------------------------------------------------------------------------------- |
|
Types internes |
|
-------------------------------------------------------------------------------- |
|
*/ |
|
|
switch(*((*s_etat_processus).instruction_courante)) |
switch(*((*s_etat_processus).instruction_courante)) |
{ |
{ |
|
|
Line 3490 recherche_type(struct_processus *s_etat_
|
Line 3542 recherche_type(struct_processus *s_etat_
|
|
|
while((*ptr) != d_code_fin_chaine) |
while((*ptr) != d_code_fin_chaine) |
{ |
{ |
if ((isalnum((*ptr)) == 0) && |
if (isalnum(*ptr) != 0) |
((*ptr) != '_') && |
{ |
((*ptr) != '$')) |
ptr++; |
|
} |
|
else if (((*ptr) == '_') || ((*ptr == '$'))) |
|
{ |
|
ptr++; |
|
} |
|
else |
{ |
{ |
liberation(s_etat_processus, s_objet); |
liberation(s_etat_processus, s_objet); |
|
|
(*s_etat_processus).erreur_execution = d_ex_syntaxe; |
(*s_etat_processus).erreur_execution = d_ex_syntaxe; |
(*s_etat_processus).traitement_interruptible = |
(*s_etat_processus).traitement_interruptible = |
registre_interruption; |
registre_interruption; |
|
|
return; |
return; |
} |
} |
|
|
ptr++; |
|
} |
} |
|
|
(*s_objet).type = NOM; |
(*s_objet).type = NOM; |