Sometimes just BNF.
- A recursive way to express context free grammars
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<type> ::= int | float | bool | char | string
<forloop> ::= FOR <variable> = <integer> TO <integer>
<int> ::= <digit> | <digit><int>