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>

‎‎