I am trying to use BNF to describe its own grammar to get used to it. What I can not find any information about is whether BNF must consist of zero or more rules or one or more rules. The difference would be:
<grammar> ::= <grammar> <rule> | <rule>
vs.
<grammar> ::= <grammar> <rule> | ""
The only difference I can see is that an empty language can be described by an emtpy BNF in the second case, but must use <grammar> ::= ""
in the first case.