Les variables sont des valeurs qualifiées encadrées de signes % et éventuellement précédées d'option de format. Au moment de l'évaluation, elles sont remplacées par leur valeur correspondance dans la portée de conversion active.
Une variable peut avoir le type suivant :
Par exemple, la variable %Name% d'une interface peut être directement évaluée par une macro et remplacée par le nom de l'interface dans le fichier généré.
Attention, la casse des caractères est prise en compte pour les noms de variable. La première lettre d'un nom de variable doit être une majuscule, comme dans %Code%.
Les variables suivantes sont représentées avec leur syntaxe possible :
variable-block :
%[.options-format:]variable%
variable
[portée-externe.][objet-variable.][portée-objet.]membre-objet [portée-externe.][objet-variable.][portée-collection.]membre-collection [portée-externe.]variable-locale [portée-externe.]variable-globale
membre-objet :
attribut-volatile propriété [code-cible::]attribut-étendu [code-cible::][nom-métaclasse::]nom-template[(liste-paramètres)] [*]+valeur-locale[(liste-paramètres)]
objet-membre-objet =
propriété-objecttype membre-ayant-pour-valeur-un-OID this
membre-collection
First IsEmpty Count
collection-membre-objet =
First
variable-locale
objet-local [*]valeur-locale
variable-globale
objet-global valeur-globale $variable d'environnement
objet-variable
objet-global objet-local
portée-externe
[portée-externe.]Outer
portée-objet
[portée-objet.]objet-membre-objet portée-collection.collection-membre-objet
portée-collection
[portée-objet.]collection [portée-objet.]membre-ayant-pour-valeur-un-OID-terminé-par un-point-virgule
Pour plus d'informations sur les collections étendues, voir Collections et compositions étendues (Profile).