Go to the first, previous, next, last section, table of contents.


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 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 FOR - Emit a template block multiple times, and section AutoGen Scheme Functions)
  3. AutoGen DEFINE macros must be followed by a simple name. Anything after that is ignored. See section 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 section COMMENT - A block of comment to be ignored)


Go to the first, previous, next, last section, table of contents.