[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The general syntax is:
[ { <native-macro-name> | <user-defined-name> } ] [ <arg> ... ] |
The syntax for <arg>
depends on the particular macro,
but is generally a full expression (see section 3.3 Macro Expression Syntax).
Here are the exceptions to that general rule:
INVOKE
macros, implicit or explicit, must be followed by
a list of name/string value pairs. The string values are
simple expressions, as described above.
That is, the INVOKE
syntax is one of these two:
<user-macro-name> [ <name> [ = <expression> ] ... ] INVOKE <name-expression> [ <name> [ = <expression> ] ... ] |
FOR <name> [ <separator-string> ] FOR <name> (...Scheme expression list) FOR <name> IN <string-entry> [ ... ] |
" is assigned
each value from the "IN
" list before expanding the FOR
block.
for-from
,
for-to
, for-by
, and for-sep
functions.
(See section 3.6.13 FOR - Emit a template block multiple times, and 3.4 AutoGen Scheme Functions)
The first two forms iterate over the FOR
block if <name>
is found in the AutoGen values. The last form will create the AutoGen
value named <name>
.
DEFINE
macros must be followed by a simple name.
Anything after that is ignored. Consequently, that "comment space"
may be used to document any named values the macro expects to have
set up as arguments. See section 3.6.4 DEFINE - Define a user AutoGen macro.
COMMENT
, ELSE
, ESAC
and the END*
macros take no arguments and ignore everything after the macro name
(e.g. see 3.6.3 COMMENT - A block of comment to be ignored)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |