internal void ExecuteInner(System.Reflection.MethodInfo[] methods, ParsedArgument[] param, string[] argf) { if (param.Length == 0) { foreach (var item in methods) { System.Reflection.ParameterInfo[] info = item.GetParameters(); if (info.Length == 1) { if (info[0].ParameterType == typeof(string[])) { if (item.IsStatic) item.Invoke(null, new object[] { argf }); else item.Invoke(this, new object[] { argf }); return; } } } } throw new NotImplementedException(); }
public List<ParsedArgument> Parse(string[] args) { List<ParsedArgument> arg = new List<ParsedArgument>(); if (args.Length == 0) return arg; bool parse = true; for (int i = 0; i < args.Length; i++) { if (parse) { if (args[i] == "-") { parse = false; } else if (args[i].StartsWith("-") || args[i].StartsWith("/")) { ParsedArgument item = new ParsedArgument(); int pos = args[i].IndexOf('='); if (pos >= 0) { item.Key = args[i].Substring(1, pos - 1); item.Value = args[i].Substring(pos + 1); } else { item.Key = args[i].Substring(1); } if (item.Key != null) arg.Add(item); else throw new CommandLineException( String.Format("Invalid argument: {0}", args[i]), this.cmdClass, null, args ); } else { parse = false; } } if (!parse) { ParsedArgument item = new ParsedArgument(); item.Value = args[i]; arg.Add(item); } } return arg; }
public override int Parse(ParsedArgument argument) { return(int.Parse(argument.Values.First())); }
public ParsedArgument[] ParseArguments(ConsoleParser.ParseResult.ParseToken[] tokens) { if (tokens == null) return null; List<ParsedArgument> ret = new List<ParsedArgument>(); int curArg = 0; foreach (var token in tokens) { if (token.Type == ConsoleParser.ParseResult.ParseToken.TokenType.CmdOrVar) continue; CommandArgument arg = Arguments.Value[curArg]; if (!arg.IsGoodValue(token.Value)) return null; ParsedArgument newArg = new ParsedArgument() { Name = arg.Name, CommandType = arg.CommandType, StrValue = token.Value, Value = arg.GetConvertedValue(token.Value) }; curArg++; ret.Add(newArg); } //Required argument(s) not passed. if (curArg < NumRequiredArgs) return null; //Have to populate the list with any optional arguments not passed in. for (int i = curArg; i < NumArgs; i++) { CommandArgument arg = Arguments.Value[i]; ParsedArgument newArg = new ParsedArgument() { Name = arg.Name, CommandType = arg.CommandType, StrValue = arg.DefaultVal.ToString(), Value = arg.DefaultVal }; curArg++; ret.Add(newArg); } return ret.ToArray(); }
public override bool Parse(ParsedArgument argument) { var value = argument.Values.First(); return(bool.Parse(value)); }