/// <summary> /// Initializes <see cref="ArgumentHelpData" /> /// </summary> /// <param name="name"></param> /// <param name="description"></param> /// <param name="modifiers"></param> /// <param name="parameterType"></param> public ArgumentHelpData(string name, string description, ArgumentModifiers modifiers, Type parameterType) { Name = name; Description = description; Modifiers = modifiers; ParameterType = parameterType; }
/// <summary> /// Parse a collection of <see cref="ArgumentInfo"/> from string. /// <para>If argument is null or empty, returns a empty collection.</para> /// </summary> /// <param name="argText">String that indicates arguments</param> /// <returns>A collection of <see cref="ArgumentInfo"/></returns> protected static IEnumerable <ArgumentInfo> ParseArguments(string argText) { if (string.IsNullOrEmpty(argText)) { return(Enumerable.Empty <ArgumentInfo>()); } argText = EscapeMultiDimensionalArray(argText); return(argText.Split(",", "<", ">", d => d == 0) .Select(a => ArgumentRegex.Match(a)) .Where(m => m.Success) .Select(m => new ArgumentInfo(ParseType(m.Groups[2].Value), m.Groups[3].Value, ArgumentModifiers.Parse(m.Groups[1].Value)))); }