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:
%[.formatting-options:]variable%
variable
[outer-scope.][variable-object.][object-scope.]object-member [outer-scope.][variable-object.][collection-scope.]collection-member [outer-scope.]local-variable [outer-scope.]global-variable
object-member:
volatile-attribute property [target-code::]extended-attribute [target-code::][metaclass-name::]template-name[(parameter-list)] [*]+local-value[(parameter-list)]
object-member-object =
objecttype-property oid-valued-object-member this
collection-member
First IsEmpty Count
collection-member-object =
First
local-variable
local-object [*]local-value
global-variable
global-object global-value $environment variable
variable-object
global-object local-object
outer-scope
[outer-scope.]Outer
object-scope
[object-scope.]object-member-object collection-scope.collection-member-object
collection-scope
[object-scope.]collection [object-scope.]semi-colon-terminated-oid-valued object-member
Pour plus d'informations sur les collections étendues, voir Collections et compositions étendues (Profile).