Пример #1
0
        public bool Validate(out ParsingResult <TResult> failedResult, bool allowUnparsedArguments = false)
        {
            if (_failedResult != null)
            {
                failedResult = _failedResult;
                return(false);
            }
            if (!allowUnparsedArguments && RemainingArgs.Any())
            {
                failedResult = ParsingResult <TResult> .FailedResult($"Error: found unexpected arguments '{string.Join(" ", RemainingArgs)}'");

                return(false);
            }
            failedResult = null;
            foreach (IParsingResult result in _results.Values)
            {
                if (result.Success)
                {
                    continue;
                }
                failedResult = ParsingResult <TResult> .FailedResult(result.ErrorMessage);

                return(false);
            }
            return(true);
        }
Пример #2
0
 public IParsingResult <T> Get <T>(Option <T> option)
 {
     if (_failedResult != null)
     {
         return(ParsingResult <T> .FailedResult(_failedResult.ErrorMessage));
     }
     return((IParsingResult <T>)_results[option]);
 }
Пример #3
0
        private static IParsingResult GetParseResult(OptionInfo <string> optionInfo, OptionData optionData)
        {
            ParsingResult <string> result = ParsingResult <string> .SuccessfulResult(optionData.Data.FirstOrDefault());

            if (optionData.Data.Count > 1)
            {
                result = ParsingResult <string> .FailedResult($"Error: {optionInfo.Name} can only be specified once");
            }
            return(optionInfo.Parse(new SuccessfulResultCollection(optionInfo, result)));
        }
Пример #4
0
        public ResultCollection <TResult> Parse(IEnumerable <string> args)
        {
            Dictionary <IOption, OptionData> optionResults;
            OptionSet options = GetOptionSet(out optionResults);

            try
            {
                IEnumerable <string> remainingArgs = options.Parse(args);
                return(ParseGeneric(optionResults, remainingArgs));
            }
            catch (OptionException e)
            {
                return(new ResultCollection <TResult>(ParsingResult <TResult> .FailedResult(e.Message)));
            }
        }