public override sealed ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            IArgumentEnumerator group = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));
            while (group.MoveNext())
            {
                var option = map[group.Current];
                if (option == null)
                    return ParserState.Failure;

                option.IsDefined = true;

                ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

                if (!option.IsBoolean)
                {
                    if (argumentEnumerator.IsLast && group.IsLast)
                        return ParserState.Failure;

                    if (!group.IsLast)
                    {
                        if (!option.IsArray)
                            return ArgumentParser.BooleanToParserState(option.SetValue(group.GetRemainingFromNext(), options));
                        else
                        {
                            ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                            var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                            items.Insert(0, group.GetRemainingFromNext());
                            return ArgumentParser.BooleanToParserState(option.SetValue(items, options), true);
                        }
                    }

                    if (!argumentEnumerator.IsLast && !ArgumentParser.IsInputValue(argumentEnumerator.Next))
                        return ParserState.Failure;
                    else
                    {
                        if (!option.IsArray)
                            return ArgumentParser.BooleanToParserState(option.SetValue(argumentEnumerator.Next, options), true);
                        else
                        {
                            ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                            var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                            return ArgumentParser.BooleanToParserState(option.SetValue(items, options));
                        }
                    }
                }
                else
                {
                    if (!group.IsLast && map[group.Next] == null)
                        return ParserState.Failure;

                    if (!option.SetValue(true, options))
                        return ParserState.Failure;
                }
            }

            return ParserState.Success;
        }
        public sealed override ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var parts = argumentEnumerator.Current.Substring(2).Split(new char[] { '=' }, 2);
            var option = map[parts[0]];

            if (option == null)
                return ParserState.Failure;

            option.IsDefined = true;

            ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

            if (!option.IsBoolean)
            {
                if (parts.Length == 1 && (argumentEnumerator.IsLast || !ArgumentParser.IsInputValue(argumentEnumerator.Next)))
                    return ParserState.Failure;

                if (parts.Length == 2)
                {
                    if (!option.IsArray)
                        return ArgumentParser.BooleanToParserState(option.SetValue(parts[1], options));
                    else
                    {
                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        items.Insert(0, parts[1]);
                        return ArgumentParser.BooleanToParserState(option.SetValue(items, options));
                    }
                }
                else
                {
                    if (!option.IsArray)
                        return ArgumentParser.BooleanToParserState(option.SetValue(argumentEnumerator.Next, options), true);
                    else
                    {
                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        return ArgumentParser.BooleanToParserState(option.SetValue(items, options), true);
                    }
                }
            }
            else
            {
                if (parts.Length == 2)
                    return ParserState.Failure;

                return ArgumentParser.BooleanToParserState(option.SetValue(true, options));
            }
        }
        protected static IList<string> GetNextInputValues(IArgumentEnumerator ae)
        {
            IList<string> list = new List<string>();

            while (ae.MoveNext())
            {
                if (IsInputValue(ae.Current))
                    list.Add(ae.Current);
                else
                    break;
            }
            if (!ae.MovePrevious())
                throw new CommandLineParserException();

            return list;
        }
Exemple #4
0
        protected static IList <string> GetNextInputValues(IArgumentEnumerator ae)
        {
            IList <string> list = new List <string>();

            while (ae.MoveNext())
            {
                if (IsInputValue(ae.Current))
                {
                    list.Add(ae.Current);
                }
                else
                {
                    break;
                }
            }
            if (!ae.MovePrevious())
            {
                throw new CommandLineParserException();
            }

            return(list);
        }
 /// <summary>
 /// Helper method for testing purpose.
 /// </summary>>
 internal static IList<string> InternalWrapperOfGetNextInputValues(IArgumentEnumerator ae)
 {
     return GetNextInputValues(ae);
 }
        public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var optionGroup = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));

            while (optionGroup.MoveNext())
            {
                var option = map[optionGroup.Current];
                if (option == null)
                {
                    return _ignoreUnkwnownArguments ? PresentParserState.MoveOnNextElement : PresentParserState.Failure;
                }

                option.IsDefined = true;

                ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

                if (!option.IsBoolean)
                {
                    if (argumentEnumerator.IsLast && optionGroup.IsLast)
                    {
                        return PresentParserState.Failure;
                    }

                    bool valueSetting;
                    if (!optionGroup.IsLast)
                    {
                        if (!option.IsArray)
                        {
                            valueSetting = option.SetValue(optionGroup.GetRemainingFromNext(), options);
                            if (!valueSetting)
                            {
                                DefineOptionThatViolatesFormat(option);
                            }

                            return ArgumentParser.BooleanToParserState(valueSetting);
                        }

                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        items.Insert(0, optionGroup.GetRemainingFromNext());

                        valueSetting = option.SetValue(items, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return ArgumentParser.BooleanToParserState(valueSetting, true);
                    }

                    if (!argumentEnumerator.IsLast && !ArgumentParser.IsInputValue(argumentEnumerator.Next))
                    {
                        return PresentParserState.Failure;
                    }

                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(argumentEnumerator.Next, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return ArgumentParser.BooleanToParserState(valueSetting, true);
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var moreItems = ArgumentParser.GetNextInputValues(argumentEnumerator);

                    valueSetting = option.SetValue(moreItems, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }

                    return ArgumentParser.BooleanToParserState(valueSetting);
                }

                if (!optionGroup.IsLast && map[optionGroup.Next] == null)
                {
                    return PresentParserState.Failure;
                }

                if (!argumentEnumerator.IsLast)
                {
                    string value = argumentEnumerator.Next;
                    bool result;
                    if (bool.TryParse(value, out result))
                    {
                        if (!option.SetValue(value, options))
                        {
                            return PresentParserState.Failure;
                        }
                        argumentEnumerator.MoveNext();
                    }
                    else if (!option.SetValue(true, options))
                    {
                        return PresentParserState.Failure;
                    }
                }
                else
                {
                    if (!option.SetValue(true, options))
                    {
                        return PresentParserState.Failure;
                    }
                }
            }

            return PresentParserState.Success;
        }
        public override Internal.ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var parts = argumentEnumerator.Current.Substring(2).Split(new[] { '=' }, 2);
            var option = map[parts[0]];
            bool valueSetting;
            if (option == null)
            {
                return _ignoreUnkwnownArguments ? Internal.ParserState.MoveOnNextElement : Internal.ParserState.Failure;
            }
            option.IsDefined = true;

            ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

            if (!option.IsBoolean)
            {
                if (parts.Length == 1 && (argumentEnumerator.IsLast || !ArgumentParser.IsInputValue(argumentEnumerator.Next)))
                {
                    return Internal.ParserState.Failure;
                }
                if (parts.Length == 2)
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(parts[1], options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }
                        return ArgumentParser.BooleanToParserState(valueSetting);
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                    items.Insert(0, parts[1]);

                    valueSetting = option.SetValue(items, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }
                    return ArgumentParser.BooleanToParserState(valueSetting);
                }
                else
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(argumentEnumerator.Next, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }
                        return ArgumentParser.BooleanToParserState(valueSetting, true);
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var items = ArgumentParser.GetNextInputValues(argumentEnumerator);

                    valueSetting = option.SetValue(items, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }
                    return ArgumentParser.BooleanToParserState(valueSetting);
                }
            }

            if (parts.Length == 2)
            {
                return Internal.ParserState.Failure;
            }
            valueSetting = option.SetValue(true, options);
            if (!valueSetting)
            {
                DefineOptionThatViolatesFormat(option);
            }
            return ArgumentParser.BooleanToParserState(valueSetting);
        }
Exemple #8
0
        public sealed override ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            IArgumentEnumerator group = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));

            while (group.MoveNext())
            {
                var option = map[group.Current];
                if (option == null)
                {
                    return(ParserState.Failure);
                }

                option.IsDefined = true;

                ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

                if (!option.IsBoolean)
                {
                    if (argumentEnumerator.IsLast && group.IsLast)
                    {
                        return(ParserState.Failure);
                    }

                    if (!group.IsLast)
                    {
                        if (!option.IsArray)
                        {
                            return(ArgumentParser.BooleanToParserState(option.SetValue(group.GetRemainingFromNext(), options)));
                        }
                        else
                        {
                            ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                            var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                            items.Insert(0, group.GetRemainingFromNext());
                            return(ArgumentParser.BooleanToParserState(option.SetValue(items, options), true));
                        }
                    }

                    if (!argumentEnumerator.IsLast && !ArgumentParser.IsInputValue(argumentEnumerator.Next))
                    {
                        return(ParserState.Failure);
                    }
                    else
                    {
                        if (!option.IsArray)
                        {
                            return(ArgumentParser.BooleanToParserState(option.SetValue(argumentEnumerator.Next, options), true));
                        }
                        else
                        {
                            ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                            var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                            return(ArgumentParser.BooleanToParserState(option.SetValue(items, options)));
                        }
                    }
                }
                else
                {
                    if (!group.IsLast && map[group.Next] == null)
                    {
                        return(ParserState.Failure);
                    }

                    if (!option.SetValue(true, options))
                    {
                        return(ParserState.Failure);
                    }
                }
            }

            return(ParserState.Success);
        }
Exemple #9
0
 public abstract PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options);
Exemple #10
0
 /// <summary>
 /// Helper method for testing purpose.
 /// </summary>
 /// <param name="ae">An argument enumerator instance.</param>
 /// <returns>The next input value.</returns>
 internal static IList <string> InternalWrapperOfGetNextInputValues(IArgumentEnumerator ae)
 {
     return(GetNextInputValues(ae));
 }
        public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var optionGroup = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1));

            while (optionGroup.MoveNext())
            {
                var option = map[optionGroup.Current];
                if (option == null)
                {
                    return(_ignoreUnkwnownArguments ? PresentParserState.MoveOnNextElement : PresentParserState.Failure);
                }

                option.IsDefined = true;

                ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

                if (!option.IsBoolean)
                {
                    if (argumentEnumerator.IsLast && optionGroup.IsLast)
                    {
                        return(PresentParserState.Failure);
                    }

                    bool valueSetting;
                    if (!optionGroup.IsLast)
                    {
                        if (!option.IsArray)
                        {
                            valueSetting = option.SetValue(optionGroup.GetRemainingFromNext(), options);
                            if (!valueSetting)
                            {
                                DefineOptionThatViolatesFormat(option);
                            }

                            return(ArgumentParser.BooleanToParserState(valueSetting));
                        }

                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        items.Insert(0, optionGroup.GetRemainingFromNext());

                        valueSetting = option.SetValue(items, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return(ArgumentParser.BooleanToParserState(valueSetting, true));
                    }

                    if (!argumentEnumerator.IsLast && !ArgumentParser.IsInputValue(argumentEnumerator.Next))
                    {
                        return(PresentParserState.Failure);
                    }

                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(argumentEnumerator.Next, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return(ArgumentParser.BooleanToParserState(valueSetting, true));
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var moreItems = ArgumentParser.GetNextInputValues(argumentEnumerator);

                    valueSetting = option.SetValue(moreItems, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }

                    return(ArgumentParser.BooleanToParserState(valueSetting));
                }

                if (!optionGroup.IsLast && map[optionGroup.Next] == null)
                {
                    return(PresentParserState.Failure);
                }

                if (!option.SetValue(true, options))
                {
                    return(PresentParserState.Failure);
                }
            }

            return(PresentParserState.Success);
        }
        public override ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            using (IArgumentEnumerator group = new OneCharStringEnumerator(argumentEnumerator.Current.Substring(1)))
            {
                while (group.MoveNext())
                {
                    var option = map[group.Current];
                    if (option == null)
                        return _ignoreUnkwnownArguments ? ParserState.MoveOnNextElement : ParserState.Failure;

                    option.IsDefined = true;

                    EnsureOptionArrayAttributeIsNotBoundToScalar(option);

                    if (!option.IsBoolean)
                    {
                        if (argumentEnumerator.IsLast && group.IsLast)
                            return ParserState.Failure;

                        bool valueSetting;
                        IList<string> items;
                        if (!group.IsLast)
                        {
                            if (!option.IsArray)
                            {
                                valueSetting = option.SetValue(group.GetRemainingFromNext(), options);
                                if (!valueSetting)
                                    DefineOptionThatViolatesFormat(option);

                                return BooleanToParserState(valueSetting);
                            }

                            EnsureOptionAttributeIsArrayCompatible(option);

                            items = GetNextInputValues(argumentEnumerator);
                            items.Insert(0, @group.GetRemainingFromNext());

                            valueSetting = option.SetValue(items, options);
                            if (!valueSetting)
                                DefineOptionThatViolatesFormat(option);

                            return BooleanToParserState(valueSetting, true);
                        }

                        if (!argumentEnumerator.IsLast && !IsInputValue(argumentEnumerator.Next))
                            return ParserState.Failure;
                        if (!option.IsArray)
                        {
                            valueSetting = option.SetValue(argumentEnumerator.Next, options);
                            if (!valueSetting)
                                DefineOptionThatViolatesFormat(option);

                            return BooleanToParserState(valueSetting, true);
                        }

                        EnsureOptionAttributeIsArrayCompatible(option);

                        items = GetNextInputValues(argumentEnumerator);

                        valueSetting = option.SetValue(items, options);
                        if (!valueSetting)
                            DefineOptionThatViolatesFormat(option);

                        return BooleanToParserState(valueSetting);
                    }

                    if ([email protected] && map[@group.Next] == null)
                        return ParserState.Failure;

                    if (!option.SetValue(true, options))
                        return ParserState.Failure;
                }
            }

            return ParserState.Success;
        }
 public abstract PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options);
 public static IList<string> PublicWrapperOfGetNextInputValues(IArgumentEnumerator ae)
 {
     return GetNextInputValues(ae);
 }
 public abstract Internal.ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options);
Exemple #16
0
        public sealed override ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var parts  = argumentEnumerator.Current.Substring(2).Split(new char[] { '=' }, 2);
            var option = map[parts[0]];

            if (option == null)
            {
                return(ParserState.Failure);
            }

            option.IsDefined = true;

            ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

            if (!option.IsBoolean)
            {
                if (parts.Length == 1 && (argumentEnumerator.IsLast || !ArgumentParser.IsInputValue(argumentEnumerator.Next)))
                {
                    return(ParserState.Failure);
                }

                if (parts.Length == 2)
                {
                    if (!option.IsArray)
                    {
                        return(ArgumentParser.BooleanToParserState(option.SetValue(parts[1], options)));
                    }
                    else
                    {
                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        items.Insert(0, parts[1]);
                        return(ArgumentParser.BooleanToParserState(option.SetValue(items, options)));
                    }
                }
                else
                {
                    if (!option.IsArray)
                    {
                        return(ArgumentParser.BooleanToParserState(option.SetValue(argumentEnumerator.Next, options), true));
                    }
                    else
                    {
                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                        return(ArgumentParser.BooleanToParserState(option.SetValue(items, options), true));
                    }
                }
            }
            else
            {
                if (parts.Length == 2)
                {
                    return(ParserState.Failure);
                }

                return(ArgumentParser.BooleanToParserState(option.SetValue(true, options)));
            }
        }
        public override sealed ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var parts = argumentEnumerator.Current.Substring(switchLength).Split(new char[] { '=' }, 2);
            var option = map[parts[0]];
            var valueSetting = false;

            if (option == null)
                return ParserState.Failure;

            option.IsDefined = true;

            EnsureOptionArrayAttributeIsNotBoundToScalar(option);

            if (!option.IsBoolean)
            {
                if (parts.Length == 1 && (argumentEnumerator.IsLast || !IsInputValue(argumentEnumerator.Next)))
                    return ParserState.Failure;

                if (parts.Length == 2)
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(parts[1], options);
                        if (!valueSetting)
                            this.DefineOptionThatViolatesFormat(option);

                        return BooleanToParserState(valueSetting);
                    }
                    else
                    {
                        EnsureOptionAttributeIsArrayCompatible(option);

                        var items = GetNextInputValues(argumentEnumerator);
                        items.Insert(0, parts[1]);

                        valueSetting = option.SetValue(items, options);
                        if (!valueSetting)
                            this.DefineOptionThatViolatesFormat(option);

                        return BooleanToParserState(valueSetting);
                    }
                }
                else
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(argumentEnumerator.Next, options);
                        if (!valueSetting)
                            this.DefineOptionThatViolatesFormat(option);

                        return ArgumentParser.BooleanToParserState(valueSetting, true);
                    }
                    else
                    {
                        ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                        var items = ArgumentParser.GetNextInputValues(argumentEnumerator);

                        valueSetting = option.SetValue(items, options);
                        if (!valueSetting)
                            this.DefineOptionThatViolatesFormat(option);

                        return ArgumentParser.BooleanToParserState(valueSetting, true);
                    }
                }
            }
            else
            {
                if (parts.Length == 2)
                    return ParserState.Failure;

                valueSetting = option.SetValue(true, options);
                if (!valueSetting)
                    this.DefineOptionThatViolatesFormat(option);

                return ArgumentParser.BooleanToParserState(valueSetting);
            }
        }
Exemple #18
0
 public static IList <string> PublicWrapperOfGetNextInputValues(IArgumentEnumerator ae)
 {
     return(GetNextInputValues(ae));
 }
Exemple #19
0
        public override PresentParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            var parts  = argumentEnumerator.Current.Substring(2).Split(new[] { '=' }, 2);
            var option = map[parts[0]];

            if (option == null)
            {
                return(_ignoreUnkwnownArguments ? PresentParserState.MoveOnNextElement : PresentParserState.Failure);
            }

            option.IsDefined = true;

            ArgumentParser.EnsureOptionArrayAttributeIsNotBoundToScalar(option);

            bool valueSetting;

            if (!option.IsBoolean)
            {
                if (parts.Length == 1 && (argumentEnumerator.IsLast || !ArgumentParser.IsInputValue(argumentEnumerator.Next)))
                {
                    return(PresentParserState.Failure);
                }

                if (parts.Length == 2)
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(parts[1], options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return(ArgumentParser.BooleanToParserState(valueSetting));
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var items = ArgumentParser.GetNextInputValues(argumentEnumerator);
                    items.Insert(0, parts[1]);

                    valueSetting = option.SetValue(items, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }

                    return(ArgumentParser.BooleanToParserState(valueSetting));
                }
                else
                {
                    if (!option.IsArray)
                    {
                        valueSetting = option.SetValue(argumentEnumerator.Next, options);
                        if (!valueSetting)
                        {
                            DefineOptionThatViolatesFormat(option);
                        }

                        return(ArgumentParser.BooleanToParserState(valueSetting, true));
                    }

                    ArgumentParser.EnsureOptionAttributeIsArrayCompatible(option);

                    var items = ArgumentParser.GetNextInputValues(argumentEnumerator);

                    valueSetting = option.SetValue(items, options);
                    if (!valueSetting)
                    {
                        DefineOptionThatViolatesFormat(option);
                    }

                    return(ArgumentParser.BooleanToParserState(valueSetting));
                }
            }

            if (parts.Length == 2)
            {
                return(PresentParserState.Failure);
            }

            valueSetting = option.SetValue(true, options);
            if (!valueSetting)
            {
                DefineOptionThatViolatesFormat(option);
            }

            return(ArgumentParser.BooleanToParserState(valueSetting));
        }
Exemple #20
0
        public override ParserState Parse(IArgumentEnumerator argumentEnumerator, OptionMap map, object options)
        {
            innerParser = new OptionGroupParser(switchLength);

            var parts = argumentEnumerator.Current.Substring(switchLength).Split(new char[] { '=' }, 2);
            if(parts[0].Length > 1)
            {
                var option = map[parts[0]];
                if (option != null) innerParser = new LongOptionParser(switchLength);
            }

            return innerParser.Parse(argumentEnumerator, map, options);
        }