Interpreter
Fonction
Rôle : |
Interprétation d'une expression ou d'une suite d'instructions indiquée dans une expression alphanumérique. |
Syntaxe : |
Interpreter (<expression alphanumérique>) |
Type de retour : |
Numérique ou Alphanumérique |
Notes : |
La fonction exécute le code situé dans l'expression alphanumérique. Ce code est constitué d'une expression ou d'une suite d'instructions terminée éventuellement par une expression. La fonction rend le résultat de la dernière évaluation.
Attention : Les variables utilisées dans l'expression doivent être déclarées au niveau de l'objet et non dans la méthode.
Les différentes instructions interprétables possibles sont :
- l'affectation :
<variable> = <expression
- une instruction conditionnelle :
Si <condition> Alors <listes d'instructions> FinSi
Si <condition> Alors
<listes d'instructions>
Sinon
<listes d'instructions>
FinSi
Si <condition> Alors
<listes d'instructions>
SinonSi <condition> Alors
<listes d'instructions>
...
Sinon
<listes d'instructions>
FinSi
- l'instruction itérative :
TantQue <condition> Faire
<listes d'instructions>
FinTantQue
- l'instruction d'affichage :
BoiteMessage <expression>
Les instructions doivent être séparées par le caractère ';'.
Les expressions interprétables sont celles utilisant les opérateurs arithmétiques et logiques habituels ainsi que le sous-ensemble des fonctions suivantes :
[...] Accès à un champ en lien
Abs
Alpha
Arrondi
Ascii
DJour
Droite
EDate
Entier
Extrait
FinMois
Gauche
Jdate
LDate
Longueur
Majuscules
Minuscules
Modulo
Numérique
Position
Racine
Si l'expression alphanumérique contient des expressions ou des fonctions, c'est le résultat de la dernière évaluation qui sera rendu.
Toutes les variables ou champs définis dans l'objet (au niveau de l'objet et non des méthodes) sont utilisables dans le code à interpréter. En outre, il est possible de définir des variables locales à l'expression à interpréter avec la syntaxe suivante :
Chaine <code variable>
Entier <code variable>
Simple <code variable>
Double <code variable>
Exemple de code accepté par la fonction Interpreter :
NOM+" "+PRENOM
Si totalventes>10000 Alors remise=10 Sinon remise=5 FinSi
Si totalventes>10000 Alors 10 Sinon 5 FinSi
Entier i; Double RESU; RESU=1; i=n; TantQue i>0 Faire RESU=RESU*i; i=i-1; FinTantQue; RESU
|
|
Exemple :
Domaine : ESSAI "Interprétation de formules"
Objet SAISIE : INTERPF
Declaration
ECRAN : ART1
VARIABLES :
Chaine formule ("formule à exécuter", 200)
Double marge ("marge")
FinDeclaration
Methode DEBUT
Si Lire(FORM.CODE,EgalA,"MARGE") Alors
formule=FORM.TEXTE
Sinon
formule="PVM-PA" //Formule par défaut
FinSi
Methode DEBUT_VISUALISATION
Si Analyser(formule) Alors
marge = Interpreter (formule)
FinSi
FinMethode
FinObjet
Après l'appel à la méthode DEBUT_VISUALISATION :
Dans la méthode DEBUT, on lit la formule dans la table FORM si elle existe, sinon on prépare la formule par défaut. On calcule la marge en début de visualisation.