public void AddCommand(string commandName, Dictionary <object, string> commandArgs) { var command = new TextFilterCommand() { CommandName = commandName, CommandArgs = commandArgs }; commands.Add(command); }
public static IEnumerable <TextFilterCommand> ParseCommandString(string commandString) { var commands = new List <TextFilterCommand>(); foreach (var line in commandString.Trim().Split(Environment.NewLine.ToCharArray()).Select(s => s.Trim())) { if (String.IsNullOrWhiteSpace(line) || line.Trim().StartsWith(COMMENT_PREFIX)) { continue; } // Do we have a variable output? String variableName = null; List <string> tokens; if (line.Contains(VARIABLE_DELIMITER)) { var parts = Regex.Split(line, VARIABLE_DELIMITER); variableName = parts.Last().Trim(); tokens = GetTokens(parts.First().Trim()); } else { tokens = GetTokens(line); } var command = new TextFilterCommand() { // The first token is the command name (every line that gets here should have at least one token)... CommandName = tokens.First(), VariableName = variableName }; //... the remaining tokens are the arguments. var counter = 0; foreach (var token in tokens.Skip(1)) { command.CommandArgs.Add(counter, token); counter++; } commands.Add(command); } return(commands); }
public void AddCommand(TextFilterCommand command) { commands.Add(command); }