Exemple #1
0
        /// <summary>
        /// Parses the passed arguments for both verbsets and regular verbs.
        /// </summary>
        /// <param name="parser">The <see cref="Parser"/> to use to parse the arguments.</param>
        /// <param name="args">The arguments to parse.</param>
        /// <param name="verbSetTypes">The empty verb types that should be considered as verbsets while parsing.</param>
        /// <param name="verbTypes">The regular verb types to parse besides the verbsets.</param>
        /// <param name="onVerbsetParsed">A method that is called when a verbset verb has been parsed.</param>
        /// <param name="helpOrVersionRequested">Whether or not the previous verbset was called with a help verb or help/version option.</param>
        /// <returns>A <see cref="ParserResult{T}"/> with either the verb type that was parsed or one or more <see cref="Error"/>s.</returns>
        public static ParserResult <object> ParseSetArguments(this Parser parser,
                                                              IEnumerable <string> args,
                                                              IEnumerable <Type> verbSetTypes,
                                                              IEnumerable <Type> verbTypes,
                                                              Func <Parser, Parsed <object>, IEnumerable <string>, bool, ParserResult <object> > onVerbsetParsed,
                                                              bool helpOrVersionRequested)
        {
            if (helpOrVersionRequested)
            {
                IEnumerable <Type> verbSets = verbSetTypes ?? Enumerable.Empty <Type>();
                IEnumerable <Type> verbs    = verbTypes ?? Enumerable.Empty <Type>();
                return(parser.ParseArguments(args, verbSets.Concat(verbs).ToArray()));
            }

            return(parser.ParseSetArguments(args, verbSetTypes, verbTypes, onVerbsetParsed));
        }