Компиляторы компиляторов с модульным описанием языка?
Если я правильно понял о чем Вы говорите, то может Вам поможет пре-процессинг до lex/yacc. Скажем m4.
Спасибо за уточнение.
У меня «в желании» самораскручивающийся компилятор с переведенным на него же компилятором компиляторов.

При этом основным видом является императивный язык (близкий к C# и Java), но в таком же синтаксисе предполагается функциональная часть. Захват/освобождение памяти — неявные, без указателей. Если LL позволит обработку преффиксного декремента/инкремента, то и его хватит.

Однако, когда экспериментировал с переносом слов в русском языке — выявил, что поиск слогов лучше идет справа налево с выбором максимальной цепочки групп согласных из списка. Возможно, LR более естественен для русского языка. 

Так же учил сына учить стихи: Последняя строчка. Предпоследняя и последняя.Предпрепоследняя, предпоследняя и последняя…

Посмотрел на список алгоритмов, используемый в компиляторах и в функциональном программировани (Филд, П. Харрисон Функциональное программирование: Пер. с англ. — М.: Мир, 1993) — они подозрительно совпадают. Возможно, я не прав, но проверить на соответствие стоит.

F# в чистом виде трогать не хочется, разве что понадобится для промежуточных версий. 

Возмножно, получится компилятор компиляторов сделать с помощью только самого языка программирования (с другим по сравнению lex+yacc) разделением, без выделения BNF в отдельные файлы (чем можно обеспечить и модульность описания)

Понимаю, что звучит хуже самоката, но основная идея — проверить описательную полноту туннельного моделирования в применении к языкам программирования. Возможно, удастся выбрать подмножество оберточных классов, достаточное для учебных языков, которое будет одинаково плохо работать и на .NET, и на JVM.
Из опыта:
1991г. — разработка на C утилиты, которая выбирала из bat команды управления меню, и строила меню на экране с возвратом выбора через errorlevel
1992 г. — разработка файла описания поля ввода на Clipper — с генерацией промежуточного файла — для ускорения считывания в память
1992г. — изготовление на C из калькулятора Страуструпа генератора расчетных работ (без массивов) с XBase-подобным языком. Метод рекурсивного спуска.
1993г. — библиотеки на C для использования в Clipper

Далее — в основном не законченные разработки в направлении системы:
библиотека наследования классов в Clipper 5
мастера для Delphi
сквозная система на метаописании БД для Clipper, FoxPro 2, Delphi, PHP
описание для транслятора COBOL-подобного языка с хранением таблиц описания BNF, ключевых слов и переменных в файлах DBase

Для меня таблицы переходов конечных автоматов — так и просятся в реляционные БД. Но на СУБД завязываться не хочу — видимо буду делать с файлами данных или XML, или HTML. Зато, если заработает — какой простор для оптимизации!

Спасибо. С уважением, Алексей.