version 1.72, 2015/02/01 09:47:19
|
version 1.85, 2017/06/29 14:54:42
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.20 |
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 |
|
*s_etat_processus, void **arg); |
|
|
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 117 recherche_type(struct_processus *s_etat_
|
Line 119 recherche_type(struct_processus *s_etat_
|
(*s_etat_processus).test_instruction = 'Y'; |
(*s_etat_processus).test_instruction = 'Y'; |
(*s_etat_processus).traitement_interruptible = 'N'; |
(*s_etat_processus).traitement_interruptible = 'N'; |
|
|
|
uprintf(".%s.\n", (*s_etat_processus).instruction_courante); |
analyse(s_etat_processus, NULL); |
analyse(s_etat_processus, NULL); |
|
|
(*s_etat_processus).test_instruction = registre_test; |
(*s_etat_processus).test_instruction = registre_test; |
Line 260 recherche_type(struct_processus *s_etat_
|
Line 263 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; |
|
|
|
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 2980 recherche_type(struct_processus *s_etat_
|
Line 3031 recherche_type(struct_processus *s_etat_
|
|
|
(*(*s_etat_processus).l_base_pile_systeme) |
(*(*s_etat_processus).l_base_pile_systeme) |
.retour_definition = 'Y'; |
.retour_definition = 'Y'; |
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.origine_routine_evaluation = 'N'; |
(*s_etat_processus).niveau_courant = 0; |
(*s_etat_processus).niveau_courant = 0; |
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
|
|
|
tampon = (*s_etat_processus).instruction_courante; |
|
autorisation_evaluation_nom = (*s_etat_processus) |
|
.autorisation_evaluation_nom; |
|
(*s_etat_processus).autorisation_evaluation_nom = 'N'; |
|
|
registre_mode_execution_programme = |
registre_mode_execution_programme = |
(*s_etat_processus).mode_execution_programme; |
(*s_etat_processus).mode_execution_programme; |
(*s_etat_processus).mode_execution_programme = 'Y'; |
(*s_etat_processus).mode_execution_programme = 'Y'; |
(*s_etat_processus).erreur_scrutation = d_faux; |
(*s_etat_processus).erreur_scrutation = d_faux; |
|
|
tampon = (*s_etat_processus).instruction_courante; |
|
nombre_lignes_a_supprimer = |
nombre_lignes_a_supprimer = |
(*s_etat_processus).hauteur_pile_operationnelle; |
(*s_etat_processus).hauteur_pile_operationnelle; |
|
|
Line 3036 recherche_type(struct_processus *s_etat_
|
Line 3094 recherche_type(struct_processus *s_etat_
|
} |
} |
|
|
(*s_etat_processus).instruction_courante = tampon; |
(*s_etat_processus).instruction_courante = tampon; |
|
(*s_etat_processus).autorisation_evaluation_nom = |
|
autorisation_evaluation_nom; |
|
|
effacement_pile_systeme(s_etat_processus); |
effacement_pile_systeme(s_etat_processus); |
(*s_etat_processus).l_base_pile_systeme = |
(*s_etat_processus).l_base_pile_systeme = |
Line 3089 recherche_type(struct_processus *s_etat_
|
Line 3149 recherche_type(struct_processus *s_etat_
|
} |
} |
|
|
(*s_etat_processus).instruction_courante = tampon; |
(*s_etat_processus).instruction_courante = tampon; |
|
(*s_etat_processus).autorisation_evaluation_nom = |
|
autorisation_evaluation_nom; |
|
|
effacement_pile_systeme(s_etat_processus); |
effacement_pile_systeme(s_etat_processus); |
(*s_etat_processus).l_base_pile_systeme = |
(*s_etat_processus).l_base_pile_systeme = |
Line 3116 recherche_type(struct_processus *s_etat_
|
Line 3178 recherche_type(struct_processus *s_etat_
|
} |
} |
|
|
(*s_etat_processus).instruction_courante = tampon; |
(*s_etat_processus).instruction_courante = tampon; |
|
(*s_etat_processus).autorisation_evaluation_nom = |
|
autorisation_evaluation_nom; |
|
|
(*s_etat_processus).l_base_pile_systeme = s_sauvegarde_pile; |
(*s_etat_processus).l_base_pile_systeme = s_sauvegarde_pile; |
(*s_etat_processus).niveau_courant = |
(*s_etat_processus).niveau_courant = |