private void ProcessArguments(String[] args, Arguments arguments) { Stack <string> stack = GetStackFromArgs(args); while (stack.Count > 0) { string command = stack.Pop(); Option option = null; if (command.IsLongCommand()) { option = LookupByLongName(command); } else if (command.IsShortCommand()) { option = LookupByShortName(command); } if (option != null) { option.ProcessCommand(stack, arguments); } } }