With #EBNF , we have no need of Epsilon here. The #nonterminal followed by the
'*' operator simply means 0 or more of the preceding thing, here: The ElIfClause.
And for completeness: (else Statements)? means 0 or 1 of the preceding group making them optional.
Many times when trying to model your language syntax in #BNF, you are forced
to break out a new NonTerminal, and to supply a alternate Epsilon.
Often, you can avoid this with grouping and '*', '+' or '?'.
Where is E used in #EBNF