An extended Backus-Naur Formalism (EBNF) is used to describe the
syntax of Dino. Alternatives are separated by |
. Brackets
[
and ]
denote optionality of the enclosed
expression, and braces {
and }
denote repetition
(zero or more times). Parentheses (
and )
are used
for grouping a EBNF construction containing alternatives inside it as
one construction.
Terminal symbols denoting a class of terminals (e.g. identifier)
consist of only upper-case letters (e.g. IDENT). The remaining
terminal symbols either start with a lower-case letter (e.g. keyword
else), or are denoted by ASCII character sequences in double quotes
(e.g. "=="
). Non-terminal symbols start with an upper-case
letter and contain at least one lower-case letter
(e.g. FormalParameters).