Пример #1
0
        string[] GetValues(Bindings <TArgs> bindings, string[] args, string arg, bool islong,
                           ref int nextI,
                           out string argName, out Binding <TArgs> b)
        {
            argName = arg.Substring(islong ? 2 : 1);
            string[] rv;
            if ((b = UnstrictlyConfArgument.IsSyntax(ref argName, bindings, islong, out rv))
                != null)
            {
                return(rv);
            }

            argName.SplitPairByEquality(out string name, out string valuesString);
            if (valuesString == null)
            {
                b = bindings.FindBinding(argName, islong);
                if (UseOnlyEqualitySyntax)
                {
                    return(null);
                }

                if (b == null || b.Argument is ValuedArgument va && va.ValueIsCollection)
                {
                    rv = args.Skip(nextI).TakeWhile(s => !IsArg(s)).ToArray();
                }
                else
                {
                    rv = args.Skip(nextI).Take(1).TakeWhile(s => !IsArg(s)).ToArray();
                }

                nextI += rv.Length;
                return(rv);
            }
Пример #2
0
 public UnstrictlyConfArgumentAttribute(UnstrictlyConfArgument arg)
     : base(arg)
 {
 }