Это вопрос домашней работы. Я хотел бы написать простой синтаксический анализатор для параметров командной строки Unix.
Во-первых, я хотел бы определить грамматику с BNF.Грамматика для параметров командной строки Unix
Options = Option | Options, space, Option;
Option = OptionName | OptionName, OptionArguments;
OptionName = '--', any character excluding '-' | OptionName, any character;
OptionArguments = OptionArgument | OptionArguments, space, OptionArgument;
OptionArgument = any character excluding '-' | OptionArgument, any character;
(«любой символ» здесь любой буквенно-цифровой символ).
Имеет ли смысл? Следующий вопрос заключается в том, как добавить «старые» параметры Unix, которые начинаются с одного дефиса и могут быть сгруппированы вместе (например, ls -lht
)
вы должны пометить его в качестве домашнего задания. – sje397
Добавлена домашняя бирка. – 2010-12-11 13:26:40
@khachik: он не исключает его, он исключает его только в первом случае. Хотя это может показаться и в первом случае. –