version 1.6, 2011/06/24 21:01:57
|
version 1.7, 2011/06/25 10:40:48
|
Line 253 interface_cas(struct_processus *s_etat_p
|
Line 253 interface_cas(struct_processus *s_etat_p
|
liberation(s_etat_processus, s_objet_argument_1); |
liberation(s_etat_processus, s_objet_argument_1); |
liberation(s_etat_processus, s_objet_argument_2); |
liberation(s_etat_processus, s_objet_argument_2); |
|
|
gen variable(string(reinterpret_cast<const char *>(argument_1)), |
try |
giac::context0); |
{ |
gen expression(string(reinterpret_cast<const char *>(argument_2)), |
giac::context contexte; |
giac::context0); |
|
|
|
free(argument_1); |
|
free(argument_2); |
|
|
|
gen resultat = integrate(expression, variable, giac::context0); |
|
string chaine = "'" + resultat.print() + "'"; |
|
|
|
registre = s_etat_processus->instruction_courante; |
|
s_etat_processus->instruction_courante = |
|
reinterpret_cast<unsigned char *>(const_cast<char *> |
|
(chaine.c_str())); |
|
|
|
recherche_type(s_etat_processus); |
gen variable( |
|
string(reinterpret_cast<const char *>(argument_1)), |
|
&contexte); |
|
gen expression( |
|
string(reinterpret_cast<const char *>(argument_2)), |
|
&contexte); |
|
|
|
gen resultat = integrate(expression, variable, &contexte); |
|
string chaine = "'" + resultat.print() + "'"; |
|
|
|
registre = s_etat_processus->instruction_courante; |
|
s_etat_processus->instruction_courante = |
|
reinterpret_cast<unsigned char *>(const_cast<char *> |
|
(chaine.c_str())); |
|
|
|
recherche_type(s_etat_processus); |
|
|
|
if (s_etat_processus->l_base_pile != NULL) |
|
{ |
|
conversion_cas_vers_rpl(s_etat_processus, |
|
s_etat_processus->l_base_pile->donnee); |
|
} |
|
|
if (s_etat_processus->l_base_pile != NULL) |
s_etat_processus->instruction_courante = registre; |
|
} |
|
catch(bad_alloc exception) |
|
{ |
|
s_etat_processus->erreur_systeme = d_es_allocation_memoire; |
|
} |
|
catch(...) |
{ |
{ |
conversion_cas_vers_rpl(s_etat_processus, |
s_etat_processus->erreur_execution = d_ex_erreur_interne_rplcas; |
s_etat_processus->l_base_pile->donnee); |
|
} |
} |
|
|
s_etat_processus->instruction_courante = registre; |
free(argument_1); |
|
free(argument_2); |
|
|
break; |
break; |
} |
} |