private static string FormatPositionalDescription(BasePositional positional)
        {
            if (positional.Description == null) return string.Empty;

            if (positional.IsOptional && positional.DefaultValue != null)
                return string.Format("{0} Default value: {1}", positional.Description, positional.DefaultValue);
            return positional.Description;
        }
 private bool UnusedPositional(BasePositional arg)
 {
     return !arg.AllowMultiple || _usedPositionals.All(p => !ReferenceEquals(arg.ParameterName, p));
 }
 private static string FormatParameterListEntry(BasePositional p)
 {
     var entry = String.Format("<{0}>", p.ParameterName);
     return p.IsOptional ? string.Format("[{0}]", entry) : entry;
 }
        private bool AcceptPositional(string value, BasePositional positional)
        {
            if (!positional.AllowMultiple)
                _positionals.Remove(positional);
            _usedPositionals.Add(positional.ParameterName);

            var error = positional.Accept(ParamObject, value);
            if (error == null)
            {
                return true;
            }

            Error = error;
            return false;
        }