An em(optional) series of elements also use left-recursion, but the single
element alternative remains empty. For example, in bf(C++) a compound
statement may contain statements or declarations, but it may also be empty:
        verb(
    opt_statements:
        // empty
    |
        opt_statements statements
        )
    The above rule can be used as a prototype for recognizing a series of
elements: the generic form of this rule could be formulated as follows:
        verb(
    opt_series:
        // empty
    |
        opt_series unit
        )
    Note that the empty element is recognized em(first), even though it is
empty, whereafter the left-recursive alternative may be recognized repeatedly.
In practice this means that an em(action block) may be defined at the empty
alternative, which is then executed prior to the left-recursive
alternative. Such an action block could be used to perform initializations
necessary for the proper handling of the left-recursive alternative.

