public void ParseCommandLine(string[] args) { NamedFlag lastFlag = null; foreach (string arg in args) { if (arg.StartsWith("--")) { if (lastFlag != null) { _flags.Add(lastFlag); } lastFlag = new NamedFlag(arg.Substring(2)); } else if (arg.StartsWith("-")) { if (lastFlag != null) { _flags.Add(lastFlag); } lastFlag = new NamedFlag(arg.Substring(1)); } else { SimpleArgument argument = new SimpleArgument(arg); if (lastFlag != null) { _options.Add(new NamedOption(lastFlag, argument)); lastFlag = null; } else { _orphanedArguments.Add(argument); } } } if (lastFlag != null) { _flags.Add(lastFlag); } }
public NamedOption(NamedFlag flag, SimpleArgument argument) { _flag = flag; _argument = argument; }