If I remember well, the thing with BNF and similar approaches was called 'context free grammar' - and I'm not sure, if this requirement is fullfilled by the org syntax. As I mean to remember is e.g. that Perl could not be declared fully with a context free grammar.
As if 'parse an org-file completely into a token stream' is not required by syntax highlighting tools etc, it might be enough to give some regexps or so. Perhaps for use with etags. Perhaps for modifying ecb to extract main elements of an org-file into it's subwindows. Greetings, Olaf