private static void DumpTokens() { Debug.WriteLine(string.Format("\r\nRegex Pattern <{0}>", TokenizePattern)); for (var index = 0; index < Args.Length; index++) { var arg = Args[index]; Debug.WriteLine(string.Format("\r\nTokenizing Args[{0}] Value: \"{1}\"", index, Args[index])); var matches = RegexTokenize.Matches(arg); for (var i = 0; i < matches.Count; i++) { for (var j = 0; j < matches[i].Groups.Count; j++) { Debug.WriteLine(string.Format("Token[{0}].Groups[{1}] =\"{2}\"", i, RegexTokenize.GroupNameFromNumber(j), matches[i].Groups[j])); } } } }
public static List <CommandArgument> Tokenize() { var tokenList = new List <CommandArgument>(); if (string.IsNullOrWhiteSpace(Text)) { return(tokenList); } var nextPosition = 1; tokenList.AddRange( from arg in Args let matches = RegexTokenize.Matches(arg) select matches.Count == 1 ? new CommandArgument(matches[0]) // Command argument : new CommandArgument(arg, nextPosition++)); return(tokenList); }