ColorRange, double[]) GetDelegateAndData(string option)
        {
            string paramString;
            string rangeString;

            (option, paramString, rangeString) = CliUtils.SplitArgIntoPieces(option);

            var range = CliUtils.ParseRange(rangeString);

            foreach (var batchCliArg in GetInstance().Items)
            {
                if (batchCliArg.OptionArgs.Contains(option))
                {
                    double[] filterParams = CliUtils.ExtractAndParseDoubleParams(paramString);
                    if (filterParams.Length >= batchCliArg.MinParams)
                    {
                        return(batchCliArg.FilterDelegate, range, filterParams);
                    }
                }
            }

            return(null, null, null);
        }
 /// <summary>
 /// Parses command line arguments, creates a FilterSet from them and returns it together with
 /// remaining arguments that should include source and target files
 /// </summary>
 /// <param name="args"></param>
 /// <returns>FilterSet with delegate and parameters, Remaining arguments</returns>
 public static (FilterChain, string[]) ParseFilterArgs(params string[] args)
 {
     return(CliUtils.ParseFilterArgs(args));
 }