На самом деле, может быть, не полномасштабный Lex/Yacc. Я использую интерфейс командной строки для администрирования webapp. Я ищу что-то, что возьмет определение грамматики и превратит его в парсер, который напрямую вызывает методы на моем объекте. Подобно тому, как ASP.NET MVC может определить, какой метод контроллера вызывать, и как рассчитать аргументы.
Итак, если пользователь вводит "create foo" в моей командной строке, он должен прозрачно вызывать метод:
private void Create(string id) { /* ... */ }
О, и если бы он мог генерировать текст справки из (например) атрибутов для этих методов контроллера, это тоже было бы удивительно.