Exemplo n.º 1
0
        private static void ParseArgument(string argument,RawArguments raw)
        {
            var flagMatch = FlagMatcher.Match(argument);
            if (flagMatch.Success)
            {
                var name = flagMatch.Groups["name"].Value;

                if (raw._flags.Add(name))
                {
                    return;
                }

                throw new ArgumentException();
            }

            var namedArgumentMatch = NamedArgumentMatcher.Match(argument);
            if (namedArgumentMatch.Success)
            {
                var name = namedArgumentMatch.Groups["name"].Value;
                var value = namedArgumentMatch.Groups["value"].Value;

                if (raw._namedArguments.ContainsKey(name))
                {
                    throw new ArgumentException();
                }

                raw._namedArguments.Add(name, value);

                return;
            }

            raw._positionalArguments.Add(argument);
        }
Exemplo n.º 2
0
        private static RawArguments ParseCore(string[] arguments)
        {
            var raw = new RawArguments();

            foreach (var argument in arguments)
            {
                ParseArgument(argument, raw);
            }

            return raw;
        }