예제 #1
0
        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]));
                    }
                }
            }
        }
예제 #2
0
        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);
        }