Esempio n. 1
0
        public override IPreParsingState MoveToNext(string argument)
        {
            if (IsEndOfArguments(argument))
            {
                return(null);
            }

            IPreParsingState handleKeyValueOptionState = HandleKeyValueOptionArgument(
                command,
                resultBuilder,
                argument);

            if (handleKeyValueOptionState != null)
            {
                return(handleKeyValueOptionState);
            }

            IPreParsingState handleFlagOptionState = HandleFlagOptionArgument(
                command, resultBuilder, argument);

            if (handleFlagOptionState != null)
            {
                return(handleFlagOptionState);
            }

            return(HandleFreeValueArgument(command, resultBuilder, argument));
        }
Esempio n. 2
0
        public override IPreParsingState MoveToNext(string argument)
        {
            if (IsEndOfArguments(argument))
            {
                return(HandleEndOfArgument());
            }

            ICommandDefinition selectedCommand = ResolveCommand(argument);

            if (selectedCommand != null)
            {
                resultBuilder.SetCommand(selectedCommand);
                return(new ContinueState(selectedCommand, resultBuilder));
            }

            selectedCommand = EnsureDefaultCommandSet(argument);

            IPreParsingState nextStateForKeyValueOption = HandleKeyValueOptionArgument(
                selectedCommand,
                resultBuilder,
                argument);

            if (nextStateForKeyValueOption != null)
            {
                return(nextStateForKeyValueOption);
            }

            IPreParsingState nextStateForFlagOption = HandleFlagOptionArgument(selectedCommand, resultBuilder, argument);

            if (nextStateForFlagOption != null)
            {
                return(nextStateForFlagOption);
            }

            return(HandleFreeValueArgument(selectedCommand, resultBuilder, argument));
        }