Personally, I don't see how BNF is not a language. Say, wikipedia is not only describing it as a "notation" but also mentions it's a metalanguage.
If we allow questions in sql, then we should allow the questions in BNF because both describe some desired result. In case of SQL it's the data slicing and dicing; in case of BNF it's the interpreters/compilers behavior.
I don't see any reason why not treat BNF as a programming language, especially remembering that there are tools capable of generating at parsers for given grammars. It's declarative. So what? It's "high-order"/"meta-". So what?
The grammars can sometimes be optimized ("refactored" in a sense) just like regular code, therefore the code review is more then valuable. Even though it may be viewed as a design review exercise, technically it's still a code review too.
I agree with @Mast: if the code is concrete; and a particular grammar is complete (e.g. no missing/hypothetical tokens are present); the question should be fine.
Yet, I'd recommend fixing the following part to remove possible interpretation:
// omitted for simplicity
literal_number : ...
literal_string : ...
identifier : ...
Do describe those things for completeness. You can put them into a separate "spoiler" session if it makes your question visually bloated.
P.S. this is just my two cents and I should have kind of a half-vote on that topic because I myself is still very new to CR.SE.