EBNF

EBNF = Extended Backus-Naur Form. A slightly more detailed and expanded version of standard BNF (Backus-Naur Form). They are both more or less the same definition, so this one stands for both.

Essentially, the EBNF defines the rules and grammar of a programming language. Lines in the EBNF are called production rules, ie they set rules strings in the ensuing language must obey. Production rules obey the following syntax:

symbol := value1 | value2 ...

What this means is the symbol value can only be replaced in any given situation by value1 or value2. This is best explained via an example: