AutoGen: AGMacro syntax

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 3.6.1 AutoGen Macro Syntax

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:

1. `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 either:

       <user-macro-name> [ <name> [ = <expression> ] ... ]

   or

       INVOKE <name-expression> [ <name> [ = <expression> ] ... ]

2. AutoGen FOR macros must be in one of two forms:

       FOR <name> [ <separator-string> ]

   or

       FOR <name> (...Scheme expression list)

   where `<name>` must be a simple name and the Scheme expression list is expected to contain one or more of the `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)

3. AutoGen `DEFINE` macros must be followed by a simple name. Anything after that is ignored. See section 3.6.4 DEFINE - Define a user AutoGen macro.

4. The AutoGen `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)

This document was generated by Bruce Korb on February 23, 2004 using texi2html