Example #1
0
 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();
 }
Example #2
0
        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()));
 }
Example #4
0
		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));
        }