예제 #1
0
        internal static CommandTemplateException OptionNamesCannotStartWithDigit(string template, TemplateToken token)
        {
            // Rewrite the token to point to the option name instead of the whole string.
            token = new TemplateToken(
                token.TokenKind,
                token.TokenKind == TemplateToken.Kind.ShortName ? token.Position + 1 : token.Position + 2,
                token.Value, token.Value);

            return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                              "Option names cannot start with a digit.",
                                                              "Invalid option name."));
        }
예제 #2
0
        internal static CommandTemplateException InvalidCharacterInOptionName(string template, TemplateToken token, char character)
        {
            // Rewrite the token to point to the invalid character instead of the whole value.
            var position = (token.TokenKind == TemplateToken.Kind.ShortName
                ? token.Position + 1
                : token.Position + 2) + token.Value.OrdinalIndexOf(character);

            token = new TemplateToken(
                token.TokenKind, position,
                token.Value, character.ToString(CultureInfo.InvariantCulture));

            return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                              $"Encountered invalid character '{character}' in option name.",
                                                              "Invalid character."));
        }
예제 #3
0
 internal static CommandTemplateException MultipleValuesAreNotSupported(string template, TemplateToken token)
 {
     return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                       "Multiple values are not supported.",
                                                       "Too many values."));
 }
예제 #4
0
 internal static CommandTemplateException OptionsMustHaveName(string template, TemplateToken token)
 {
     return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                       "Options without name are not allowed.",
                                                       "Missing option name."));
 }
예제 #5
0
 internal static CommandTemplateException ArgumentCannotContainOptions(string template, TemplateToken token)
 {
     return(CommandLineTemplateExceptionFactory.Create(
                template, token,
                "Arguments can not contain options.",
                "Not permitted."));
 }
예제 #6
0
 internal static CommandTemplateException UnterminatedValueName(string template, TemplateToken token)
 {
     return(CommandLineTemplateExceptionFactory.Create(
                template, token,
                $"Encountered unterminated value name '{token.Value}'.",
                "Unterminated value name."));
 }
예제 #7
0
        internal static CommandTemplateException ShortOptionMustOnlyBeOneCharacter(string template, TemplateToken token)
        {
            // Rewrite the token to point to the option name instead of the whole option.
            token = new TemplateToken(token.TokenKind, token.Position + 1, token.Value, token.Value);

            return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                              "Short option names can not be longer than one character.",
                                                              "Invalid option name."));
        }
예제 #8
0
 internal static CommandTemplateException MultipleShortOptionNamesNotAllowed(string template, TemplateToken token)
 {
     return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                       "Multiple short option names are not supported.",
                                                       "Too many short options."));
 }
예제 #9
0
        internal static CommandTemplateException LongOptionMustHaveMoreThanOneCharacter(string template, TemplateToken token)
        {
            // Rewrite the token to point to the option name instead of the whole option.
            token = new TemplateToken(token.TokenKind, token.Position + 2, token.Value, token.Value);

            return(CommandLineTemplateExceptionFactory.Create(template, token,
                                                              "Long option names must consist of more than one character.",
                                                              "Invalid option name."));
        }