Files

56 lines
2.1 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift Argument Parser open source project
//
// Copyright (c) 2020 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
//
//===----------------------------------------------------------------------===//
/// Gets thrown while parsing and will be handled by the error output
/// generation.
enum ParserError: Error {
case helpRequested(visibility: ArgumentVisibility)
case versionRequested
case dumpHelpRequested
case completionScriptRequested(shell: String?)
case completionScriptCustomResponse(String)
case unsupportedShell(String? = nil)
case notImplemented
case invalidState
case unknownOption(InputOrigin.Element, Name)
case invalidOption(String)
case nonAlphanumericShortOption(Character)
/// The option was there, but its value is missing, e.g. `--name` but no
/// value for the `name`.
case missingValueForOption(InputOrigin, Name)
case missingValueOrUnknownCompositeOption(InputOrigin, Name, Name)
case unexpectedValueForOption(InputOrigin.Element, Name, String)
case unexpectedExtraValues([(InputOrigin, String)])
case duplicateExclusiveValues(
previous: InputOrigin, duplicate: InputOrigin, originalInput: [String])
/// We need a value for the given key, but it’s not there. Some non-optional
/// option or argument is missing.
case noValue(forKey: InputKey)
case unableToParseValue(
InputOrigin, Name?, String, forKey: InputKey, originalError: Error?)
case missingSubcommand
case userValidationError(Error)
case noArguments(Error)
}
/// These are errors used internally to the parsing, and will not be exposed to
/// the help generation.
enum InternalParseError: Error {
case wrongType(valueRepresentation: String, forKey: InputKey)
case subcommandNameMismatch
case subcommandLevelMismatch(Int, Int)
case subcommandLevelMissing(Int)
case subcommandLevelDuplicated(Int)
case expectedCommandButNoneFound
}