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); }
public UnstrictlyConfArgumentAttribute(UnstrictlyConfArgument arg) : base(arg) { }