Notations
The syntax of the language is given in BNF-like notation. Terminal
symbols are set in a typewriter font (like this). Non-terminals
are set in an italic font (like that). The vertical bar | denotes an alternative in a rule. Parentheses (...) denote
grouping. Parentheses with a trailing star sign (...) * denote
zero, one or several occurrences of the enclosed item. Parentheses
with a trailing plus sign (...) + denote one or several
occurrences of the enclosed item. Parentheses with a trailing question
mark sign (...) ? denote an optional item.