ANTLR является стандартным инструментом для разбора EBNF.
См. Хороший генератор парсера (думаю, lex / yacc или antlr) для .NET? Время сборки? здесь на SO.