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

 

 

Analyser, Interpreter (instruction) 

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.