Синтаксический анализатор командной строки и отсутствие подкоманд и группировки?

Я знаю, что этот вопрос задавали много раз здесь и в других местах, пока я ищу ответ. Однако меня все еще озадачивает, почему библиотека синтаксического анализатора командной строки не предоставляет этот общий сценарий использования, когда у меня есть группа подкоманд, каждая подкоманда имеет свой собственный набор обязательных и необязательных аргументов. Аналогичную конструкцию можно найти в git / svn, хотя в их случае команда подкоманды является отдельной программой, если я не ошибаюсь.

Подводя итог, я ищу простой способ:

top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...

В мире Java часто упоминаются две библиотеки: Apache Command CLI и JSAP. Я не вижу, чтобы кто-то из них имел это в виду - хотя вы, вероятно, могли бы настроить и настроить многое, чтобы соответствовать ... но основной процесс определения параметра, регистрации ... затем, в конце, синтаксический анализ их всех не делает ' Если рассматривать случай с разными подкомандами, валидация и синтаксический анализатор должны вести себя по-разному.

Возможно, здесь распространено мнение, что это слишком специфично для приложения, и его следует оставить на усмотрение самого приложения. Один из способов, который я могу придумать, - это определить класс BaseCommand, и каждая подкоманда расширяет его и регистрирует себя ... как способ разбить его для облегчения управления. Если какая-либо зрелая структура может это сделать, я был бы признателен за любой указатель здесь.

Я могу ошибаться в своем понимании текущих возможностей синтаксического анализатора, любое понимание очень ценно.

8
задан jww 7 September 2018 в 01:26
поделиться