public object Parse(string commandLine) { ICommandLineParser parser = new MonadicCommandLineParser(); var args = parser.Parse(commandLine); var ap = from a in args select a; return(null); }
private static bool ProcessLine(string line) { IEnumerable <ICommandLineElement> elements = _parser.Parse(line); _log.Debug("Parsed: " + string.Join(", ", elements.Select(x => x.ToString()).ToArray())); ICommandLineElement element = elements.First(); if (element is IArgumentElement) { var argument = element as IArgumentElement; if (argument.Id == "quit" || argument.Id == "exit") { return(false); } if (argument.Id == "create") { new CreateCommand(elements.Skip(1)); } if (argument.Id == "count") { new CountEndpointCommand(elements.Skip(1)); } if (argument.Id == "send") { new SendTextCommand(elements.Skip(1)); } if (argument.Id == "receive") { new ReceiveCommand(elements.Skip(1)); } if (argument.Id == "move") { new MoveCommand(elements.Skip(1)); } if (argument.Id == "moven") { new MoveNCommand(elements.Skip(1)); } } return(true); }
public void dru() { string commandLine = "cmd -file"; ICommandLineParser parser = new MonadicCommandLineParser(); Trace.WriteLine("Command Line: " + commandLine); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(2); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <DefinitionElement>(); ((DefinitionElement)elements[1]).Value.ShouldEqual(""); }
public void A_simple_path_specification_should_be_allowed() { string commandLine = "add --all ."; Trace.WriteLine("Command Line: " + commandLine); ICommandLineParser parser = new MonadicCommandLineParser(); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(3); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <SwitchElement>(); elements[2].ShouldBeAnInstanceOf <ArgumentElement>(); }
public void Should_handle_a_nested_set_of_commands_and_flags() { string commandLine = "config --global net.framework net-3.5"; Trace.WriteLine("Command Line: " + commandLine); ICommandLineParser parser = new MonadicCommandLineParser(); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(4); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <SwitchElement>(); elements[2].ShouldBeAnInstanceOf <ArgumentElement>(); elements[3].ShouldBeAnInstanceOf <ArgumentElement>(); }
public void Should_handle_escape_characters_in_the_line() { string commandLine = "cmd -file \"\\\"c:\\\\system\\\\something\\'s cooking.txt\\\"\""; ICommandLineParser parser = new MonadicCommandLineParser(); Trace.WriteLine("Command Line: " + commandLine); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(2); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <DefinitionElement>(); ((DefinitionElement)elements[1]).Value.ShouldEqual("\"" + @"c:\system\something's cooking.txt" + "\""); }
public void A_git_style_command_should_be_supported() { string commandLine = "remote add dru git://github.com/drusellers/nu.git"; Trace.WriteLine("Command Line: " + commandLine); ICommandLineParser parser = new MonadicCommandLineParser(); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(4); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <ArgumentElement>(); elements[2].ShouldBeAnInstanceOf <ArgumentElement>(); elements[3].ShouldBeAnInstanceOf <ArgumentElement>(); }
public void A_path_with_spaces_in_double_quotes_should_be_kept_together() { string commandLine = "\"c:\\Folder With Spaces\\run.exe\" " + "-f \"c:\\Folder With Spaces\\file.txt\" " + "-l:\"c:\\Folder With Spaces\\file.txt\" "; Trace.WriteLine("Command Line: " + commandLine); ICommandLineParser parser = new MonadicCommandLineParser(); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(3); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <DefinitionElement>(); elements[2].ShouldBeAnInstanceOf <DefinitionElement>(); }
public void Should_return_an_enumeration_of_elements() { string commandLine = "update -a -b -d:true -e \"frank\" -f \"go hornets\" [filename]"; ICommandLineParser parser = new MonadicCommandLineParser(); Trace.WriteLine("Command Line: " + commandLine); var elements = parser.Parse(commandLine).ToArray(); Trace.WriteLine(string.Join(Environment.NewLine, elements.Select(x => x.ToString()).ToArray())); elements.Count().ShouldEqual(7); elements[0].ShouldBeAnInstanceOf <ArgumentElement>(); elements[1].ShouldBeAnInstanceOf <SwitchElement>(); elements[2].ShouldBeAnInstanceOf <SwitchElement>(); elements[3].ShouldBeAnInstanceOf <DefinitionElement>(); elements[4].ShouldBeAnInstanceOf <DefinitionElement>(); elements[5].ShouldBeAnInstanceOf <DefinitionElement>(); elements[6].ShouldBeAnInstanceOf <TokenElement>(); }
static IEnumerable <ICommandLineElement> P(string commandLine) { var parser = new MonadicCommandLineParser(); return(parser.Parse(commandLine)); }