The grammar which is used by YODL mixes `real' text that should appear on the
output with em(markups): commands for YODL. The markups must follow a certain
grammar, which is described in this section. YODL therefore falls in the
category of `markup languages', in contrast to `WYSIWYG'-programs. As a
consequence, YODL promotes concept-oriented writing.

Basically, Yodl only does `something special' when it encounters the name of a
builtin function or the name of a user-defined macro, followed by a
parenthesized argument. Sometimes a function or macro requires multiple
arguments, which must then be specified in sequence.  All required parameter
lists, however, must be specified within the same input file. It is not
allowed to split the activation of a builtin function or macro over multiple
input files. Plain text, on the other hand, may be split over multiple files.

In this section the elements of YODL's grammar are briefly discussed.

