1.6 Le langage de génération de code
Xpand
Le langage Xpand est utilisé pour contrôler la
génération de code. Le template Xpand assure ce contrôle,
il est stocké dans un fichier ayant l'extension «.xpt
»[14].
1.6.1 Structure générale d'un template
Xpand
1. IMPORT
Cette instruction permet d'importer le
méta-modèle. Ceci est similaire à une déclaration
d'importation JAVA, elle permet de faciliter l'accès aux
métaclasses et leurs attributs à partir de l'espace
méta-modèle(s) importé(s).
«IMPORT metamodel»
2. le bloc DEFINE
Le concept central de Xpand est le bloc DEFFINE. Ceci
l'unité la plus petite identifiable dans le template. L'étiquette
se compose d'un nom (templateName), une liste de paramètres ainsi que le
nom de la classe du méta-modèle (MetaClasseName) pour
page 21
1.7 Le langage Check pour la vérification de
contraintes
laquelle le modèle est défini. Le format de
l'instruction DEFFINE se présente comme
suit :
«DEFINE templateName(formalParameterList) FOR
MetaClass» a sequence of statements
«ENDDEFINE».
|
3. L'instruction FILE
Cette instruction, et à partir de ces directives,
redirige la sortie produite à une cible spécifique. Le format de
l'instruction FILE se présente comme suit :
«FILE expression »
a sequence of statements«ENDFILE»
4. L'Instruction EXPAND
L'instruction EXPAND appelle un bloc DEFINE et insère
sa production "output" à son emplacement. Il s'agit d'un concept
similaire à un appel de méthode. Le format de l'instruction
EXPAND se présente comme suit :
«EXPAND definitionName [(parameterList)] [FOR expression
| FOREACH expression [SEPARATOR expression]]»
|