Я согласен с вашим мнением, но парни, пишущие стандарты, не могут победить на этом.
Чтобы заставить лексер / грамматику работать с генератором синтаксического анализатора напрямую, нестандартно, стандартные авторы могли бынужно выбрать конкретный.(Какой выбор сделали бы обычные люди COBOL в 1958 году?)
Популярные (LEX, YACC и т. Д.) Часто не способны обрабатывать справочные грамматики, написанные для краткости и ясности, и поэтомуплохой (например, не) выбор.
Более экзотические (Earley, GLR ) могут быть более эффективными, потому что они допускают бесконечную перспективу и двусмысленность, но их труднее найти.Таким образом, если бы был выбран конкретный инструмент, подобный этому, вы не получили бы то, что вам хотел, - это грамматика, которая работает с вашим генератором парсера.
Сказав это, DMS Software Reengineering Toolkit использует генератор синтаксических анализаторов GLR.Нам не нужно много массажировать эталонные грамматики, чтобы заставить их работать, и теперь DMS работает со многими языками, в том числе с такими сложными, как C ++.ИМХО, это настолько близко к вашему идеалу, насколько вы, вероятно, получите.