• Aucun résultat trouvé

Les formats de fichier de script et de fichier de message

Chapitre 6. Intégration du flot de données: Implémentation

6.2 Les formats de fichier de script et de fichier de message

Les formats de fichier de script et de fichier de message sont très importants d'une part, pour garder dans un fichier externe les caractéristiques du script créé, et d'autre part pour transmettre au générateur les informations indispensables pour bien transcrire le script.

6.2.1 Le fichier de script

Suite à l''intégration du flot de données, le format du fichier de script a beaucoup changé puisqu'il doit enregistrer toutes les informations nécessaires pour rétablir les structures de données internes concernant les paramètres et les arcs.

Le format retenu doit traduire au moins les situations suivantes:

• Un nœud peut avoir plusieurs paramètres d'entrée et/ou de sortie, mais ce n'est pas obligatoire;

• A chaque paramètre doivent être associés son nom et son type;

• Un paramètre d'entrée peut avoir une valeur par défaut et peut être déclenchant ou non; • Les arcs (entrants ou sortants) sont directement associés aux paramètres qui peuvent en

avoir un ou plusieurs, mais ce n'est non plus obligatoire. Le format d'un nœud dans le fichier de script est donc de la forme:

... info originale... <D>

<O>ParamName ParamStr

<A>Code SNodeId TNodeId SVarName SVarStr TVarName TVarStr <A>…

</A> <O>…

<I>ParamName ParamStr Trigger <=> Value

<A>Code SNodeId TNodeId SVarName SVarStr TVarName TVarStr <A>…

</A> <I>… </D>

texte du nœud

• <D> signale que le nœud a des paramètres définis et qu'ils seront décrits à la suite. • <O> introduit la description d'un paramètre de sortie:

- ParamName donne le nom du paramètre, de même pour les paramètres d'entrée - ParamStr donne le type du paramètre, de même pour les paramètres d'entrée • <A> introduit chaque arc relié au dernier paramètre décrit

- Code est composé de deux caractères (P ou W) et donne le mode de combinaison des données à la source et à la destination de l'arc (voir ..).

- SNodeId donne l'identification du nœud source - TNodeId donne l'identification du nœud destination - SVarName donne le nom du paramètre source - SVarStr donne le type du paramètre source

- TVarName donne le nom du paramètre destination - TVarStr donne le type du paramètre destination • </A> signale la fin d'une liste de descriptions d'arcs • <I> introduit la description d'un paramètre d'entrée

- Trigger prend la valeur 0 ou 1 et indique si le paramètre d'entrée en question est déclenchant (1) ou non (0)

• <=> introduit la valeur par défaut (ou initial) du paramètre d'entrée - Value donne la valeur par défaut

• </D> signale la terminaison de la spécification des données. Le texte du nœud viendra à la ligne suivante.

148 Chapitre 6 Intégration du flot de données: Implémentation

4 2 4C 5 1<D> <O> resAdd INTTYPE

<A> WW 4 7 resAdd INTTYPE resAdd INTTYPE </A>

<O> resMul INTTYPE

<A> WW 4 7 resMul INTTYPE resMul INTTYPE <A> WW 4 14 resMul INTTYPE resMul INTTYPE </A>

<I> op1 INTTYPE 0 <=> 0

<A> WW 3 4 op1 INTTYPE op1 INTTYPE </A>

<I> op2 INTTYPE 0 <=> 0

<A> WW 3 4 op2 INTTYPE op2 INTTYPE </A>

</D> Calcul

resAdd = op1 + op2 resMul = op1 * op2

Exemple 6.2 Nœud avec arcs entrants et arcs sortants

Le nœud de l'Exemple 6.2 est un nœud Directive (Commande) au codeur lui indiquant que à cet endroit il faut effectuer deux opérations, addition et multiplication. Les deux opérandes op1 et op2 sont donnés en paramètre d'entrée et les résultats resAdd et resMul correspondent aux deux paramètres de sortie du nœud. Les deux paramètres d'entrée sont reliés avec des paramètres du même nom du nœud 3.

Le paramètre de sortie resMul est relié avec deux paramètres de même nom que lui et qui appartiennent l'un au nœud 7 et l'autre au nœud 14, tandis que le paramètre de sortie resAdd est relié seulement avec un paramètre du nœud 7.

Tous les paramètres de cet exemple sont de type entier et sont pris tels quels à la source et utilisés tels quels à la destination. Les deux paramètres d'entrée sont non déclenchant. Par conséquent, ils ont des valeurs par défaut qui sont égales à 0.

6.2.2 Le fichier de message

L'intégration de flot de données n'a pas de conséquence dans le format du fichier de message. Même si le texte du message à afficher peut contenir des variables (paramètres du nœud

Message), ces variables ne sont pas traitées au niveau du message mais c'est l'appel à la routine d'affichage qui tiendra compte de ces variables.

Mais pour cela, les variables contenues dans le texte du message doivent correspondre exactement aux noms des paramètres du nœud. Ces variables peuvent se trouver à n'importe quel endroit du texte du message et peuvent y figurer plusieurs fois.

5 2 5M 6 1<D> <I> op1 INTTYPE 0 <=> 0

<A> WW 3 5 op1 INTTYPE op1 INTTYPE </A>

<I> op2 INTTYPE 0 <=> 0

<A> WW 3 5 op2 INTTYPE op2 INTTYPE </A>

</D> Combien_01

Exemple 6.3 Nœud Message avec deux paramètres: op1 et op2 <<Combien_01>>

\\--valid since 0

Combien font op1 x op2 ? <<END Combien_01>>

Exemple 6.4 Contenu du fichier de message correspondant au nœud Message ci-dessus. Dans l'Exemple 6.3 nous avons un nœud Message ayant deux paramètres op1 et op2 venant tous les deux du nœud 3. Le message correspondant à ce nœud dans le fichier de message est donné par l'Exemple 6.4. Ceci montre que le texte du message contient les noms des paramètres. Ces noms seront remplacés par les valeurs des paramètres lors de l'affichage du message.