public void ProcessCommand(Stack<string> stack, Arguments arguements) { string name = LongName; object value; if (stack.IsEmpty() || stack.Peek().IsCommand()) value = null; else value = stack.Pop(); arguements.Add(name, value); if (Callback != null) Callback((value??"").ToString()); }
private void HandleMissingArguments(Arguments arguments) { var keys = arguments.GetKeys(); var options = _options.ToList(); foreach (var option in options) { if (!keys.Contains(option.LongName.ToLower())) { if (option.IsRequired) throw new RequiredArgumentMissingException(option.LongName, option.LongName + " is a required command line argument"); if (option.Default != null) arguments.Add(option.LongName, option.Default); } } }