Deprecated fromv5.3.0(seeProcedure Definition Syntax)
- What follows is a formal presentation of the syntax of the
\define
pragma, using railroad diagrams. A simpler overview is also available.
space
denotes a sequence of whitespace characters.
The macro's name
is a sequence of non-whitespace characters other than (
or >
.
The parameter declaration list (params
) has the following syntax:
The parameter separator (sep
) is any sequence of characters that does not match a param-name
. Among other things, this includes commas, spaces and linefeeds.
A param-name
is a sequence of letters (A
–Z
, a
–z
), digits (0
–9
), hyphens (-
) and underscores (_
).
Each individual param
has the following syntax:
The optional default
value of a parameter is specified as follows:
The rest
of the definition has the following syntax:
lf
denotes a linefeed.
The snippet
is any sequence of characters that doesn't terminate the macro definition. That is to say, a single-line snippet cannot contain a linefeed, and a multi-line snippet cannot contain \end
on a line of its own.
The snippet can contain placeholders with the following syntax: