Предполагая, что эта командная строка является интерактивной, вы поставили перед собой немалую задачу.По сути, вам придется написать интерпретатор .Предполагая, что лексический анализ тривиален, вы потратите большую часть своего времени на написание вашего синтаксического анализатора , в дополнение к коду, лежащему в основе набора команд.
Если ваша командаСтрока минимально интерактивна, и ваш командный словарь относительно мал (порядка нескольких команд), вы можете с легкостью написать упрощенный распознаватель с регулярными выражениями.Учитывая примеры параметров, которые вы разрешаете, регулярные выражения, вероятно, получатся довольно быстро.В этом случае, или в случае, когда ваш словарный запас немного больше (больше, чем несколько, вероятно, меньше, чем 20 или 30 - как неоправданный удар в темноте), вам, вероятно, придется перейти к простому состоянию -основанный синтаксический анализатор, извлекающий токены из командной строки до тех пор, пока у вас не появится ошибка или завершенная команда, которую вы можете обработать.
Выход из-под контроля полностью зависит от того, насколько сложен ваш словарь команд и их параметры.Если вы дошли до того, что вам нужно написать грамматику в чем-то вроде ANTLR, вы зашли слишком далеко и, вероятно, создаете новый язык программирования.: -)