Exemplo n.º 1
0
        internal static ICollection <Option> ParseDefaults(string doc)
        {
            var defaults = new List <Option>();

            foreach (var s in ParseSection("options:", doc))
            {
                // FIXME corner case "bla: options: --foo"

                var p           = new StringPartition(s, ":"); // get rid of "options:"
                var optionsText = p.RightString;
                var a           = Regex.Split("\n" + optionsText, @"\r?\n[ \t]*(-\S+?)");
                var split       = new List <string>();
                for (var i = 1; i < a.Length - 1; i += 2)
                {
                    var s1 = a[i];
                    var s2 = a[i + 1];
                    split.Add(s1 + s2);
                }
                var options = split.Where(x => x.StartsWith("-")).Select(x => Option.Parse(x));
                defaults.AddRange(options);
            }
            return(defaults);
        }