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