Chapter 9 Generation Reference Guide (GTL)


Defining variables

Variables are qualified values enclosed in % characters and optionally preceded by formatting options. At evaluation-time, they are substituted by their corresponding value in the active translation scope.

A variable can be of the following types:

For example, the variable %Name% of an interface can be directly evaluated by a macro and replaced by the name of the interface in the generated file.

Note   Case sensitivity
Be careful when using variable names as they are case sensitive. The variable name must have the first letter with an upper case, as in %Code%.

Variables syntax

The following variables are shown with their possible syntaxes:

Variable Syntax
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>

For more information on extended collections, see "Defining an extended collection in a profile" in the "Managing Profiles" chapter.

 


Copyright (C) 2005. Sybase Inc. All rights reserved.