UpsSng.InterpreterFonction

Fonction Habilitation InterpreterFonction(NomFichierSource : Nul Ou Caractere, NomFonction : Nul Ou Caractere, Parametres : Nul Ou ListeDe Nul Ou Objet Entree Sortie) Retourner Nul Ou Objet;

Fonction Habilitation InterpreterFonction(NomFichierSource : Nul Ou Caractere, O : Nul Ou Objet, NomFonction : Nul Ou Caractere, Parametres : Nul Ou ListeDe Nul Ou Objet Entree Sortie) Retourner Nul Ou Objet;

Description

La fonction InterpreterFonction permet de lancer une interprétation d'une fonction ou d'une méthode fonctionnelle. Le résultat de l'appel est la valeur de l'expression.

Le paramètre NomFichierSource est le nom du fichier source en Up ! 5GL contenant la fonction à interpréter.

Le paramètre NomFonction est le nom de la fonction à interpréter.

Le paramètre O est l'objet sur lequel s'applique la méthode fonctionnelle.

Le paramètre Parametres est contient la liste des paramètres à transmettre à l'appel.

Si NomFichierSource, NomFonction ou O est Nul alors aucune interprétation n'a lieu.

En cas d'erreur, l'exception InterpretationImpossible est envoyée.

Exemple

Source moncomposant

Type T
/****/ Fin Type

/****************************************************************/
Fonction Ecrire1(C : Caractere) Retourner Booleen
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("Ecrire("+C");");
Retourner(Vrai);
Fin Fonction

/****************************************************************/
Fonction Ecrire2(C : Caractere) Retourner Entier
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("Ecrire("+C");");
Retourner(10);
Fin Fonction

/****************************************************************/
Fonction Ecrire3(C : Caractere) Retourner Reel
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("Ecrire("+C");");
Retourner(10.2);
Fin Fonction

/****************************************************************/
Fonction Ecrire4(C : Caractere) Retourner Caractere
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("Ecrire("+C");");
Retourner("hello");
Fin Fonction

/****************************************************************/
Fonction T.Ecrire1(C : Caractere) Retourner Booleen
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("T.Ecrire("+C");");
Retourner(Vrai);
Fin Fonction

/****************************************************************/
Fonction T.Ecrire2(C : Caractere) Retourner Entier
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("T.Ecrire("+C");");
Retourner(10);
Fin Fonction

/****************************************************************/
Fonction T.Ecrire3(C : Caractere) Retourner Reel
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("T.Ecrire("+C");");
Retourner(10.2);
Fin Fonction

/****************************************************************/
Fonction T.Ecrire4(C : Caractere) Retourner Caractere
/* Objet : Ecrit a l'écran. */
/****************************************************************/
Debut
Ecran.Ecrire("T.Ecrire("+C");");
Retourner("hello");
Fin Fonction

Source moncomposant2

/****************************************************************/
Procedure EnvoyerErreur(MessageATraiter : Caractere, ? : Entier, ? : Entier, ? : Nul Ou Caractere)
/* Objet : Envoi un message d'erreur. */
/****************************************************************/
Debut
Ecran.Ecrire(MessageATraiter);
Fin Procedure

Principal
/*******/
Variable
/******/
Debut
...
Si Non DebuterInterpretation(EnvoyerErreur) Alors Fin Si

L=ListeDe("Bonjour");
Ecran.Ecrire(Caractere(Booleen(InterpreterFonction("moncomposant.upl", "Ecrire1", L)));
Ecran.Ecrire(Caractere(Booleen(InterpreterFonction("moncomposant.upl", V, "Ecrire1", L)));
Ecran.Ecrire(Caractere(Entier(InterpreterFonction("moncomposant.upl", "Ecrire2", L)));
Ecran.Ecrire(Caractere(Entier(InterpreterFonction("moncomposant.upl", V, "Ecrire2", L)));
Ecran.Ecrire(Caractere(Reel(InterpreterFonction("moncomposant.upl", "Ecrire3", L)));
Ecran.Ecrire(Caractere(Reel(InterpreterFonction("moncomposant.upl", V, "Ecrire3", L)));
Ecran.Ecrire(Caractere(InterpreterFonction("moncomposant.upl", "Ecrire4", L));
Ecran.Ecrire(Caractere(InterpreterFonction("moncomposant.upl", V, "Ecrire4", L));

TerminerInterpretation();
...
Fin Principal

Voir aussi

DebuterInterpretation pour démarrer une chaîne d'interprétations. TerminerInterpretation pour terminer une chaîne d'interprétations.

InterpreterExpression pour interpréter une expression. InterpreterFonction pour interpréter une fonction. InterpreterInstruction pour interpréter une instruction. InterpreterProcedure pour interpréter une procédure.

Traduction

---------