blob: 97f32699d813db568705b62631193860df2c6264 [file] [log] [blame] [edit]
The Assign Directive
--------------------
.. parsed-literal:: assign *variable* *value*
Use this directive to create or update a variable associated with
the current nesting level (see `The BeginVariables Directive`_)
of the current include level (see `The Include Directive`_).
The variable is visible to the current and to lower include levels,
but not to higher include levels.
*variable*
The name of the variable. If the variable doesn't already exist at the
current include level then it is created.
*value*
The value that is to be assigned to the variable. If it's not supplied then
a zero-length (null) value is assigned.
Examples::
assign nullValue
assign shortValue word
assign longValue a\svalue\swith\sspaces
assign IndirectValue \{variableName}
The AssignDefault Directive
---------------------------
.. parsed-literal:: assignDefault *variable* *value*
Use this directive to assign a default value to a variable associated with
the current nesting level (see `The BeginVariables Directive`_)
of the current include level (see `The Include Directive`_).
It's functionally equivalent to:
.. parsed-literal:: ifNotVar *variable* assign *variable* *value*
See `The Assign Directive`_ and `The IfNotVar Directive`_ for more details.
*variable*
The name of the variable. If the variable doesn't already exist at the
current include level then it is created. If it does already exist then it
is **not** modified.
*value*
The value that is to be assigned to the variable if it doesn't already
exist. If it's not supplied then a zero-length (null) value is assigned.
Examples::
assignDefault format plain\stext
The IfVar Directive
-------------------
.. parsed-literal:: ifVar *variable* *directive*
Use this directive to only process one or more directives if a variable exists.
*variable*
The name of the variable whose existence is to be tested.
*directive*
|directive operand|
Examples::
ifVar var1 ifVar var2 assign concatenation \{var1}\{var2}
The IfNotVar Directive
----------------------
.. parsed-literal:: ifNotVar *variable* *directive*
Use this directive to only process one or more directives if a variable doesn't
exist.
*variable*
The name of the variable whose existence is to be tested.
*directive*
|directive operand|
Examples::
ifNotVar var1 assign var1 default\svalue
The BeginVariables Directive
----------------------------
.. parsed-literal:: beginVariables
Use this directive to open a new variable nesting level.
`The Assign Directive`_) will define variables at this new nesting level,
and will hide variables with the same names in any previous nesting level.
These variables will remain defined until `The EndVariables Directive`_
that is at the same variable nesting level.
Examples::
assign x 1
# \{x} evaluates to 1
beginVariables
# \{x} still evaluates to 1
assign x 2
# \{x} now evaluates to 2
endVariables
# \{x} evaluates to 1 again
The EndVariables Directive
--------------------------
.. parsed-literal:: endVariables
Use this directive to close the current variable nesting level.
See `The BeginVariables Directive`_ for details.
The ListVariables Directive
---------------------------
.. parsed-literal:: listVariables
Use this directive to list all of the currently defiined variables.
It can be helpful when debugging.