| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Multiarg.Mode.Internal
Description
Internal functions used by Multiarg.Mode. You don't have to worry about "breaking" anything by using this module; it is separate from Multiarg.Mode primarily to tidy up the documentation in that module. The functions in Multiarg.Mode should satisfy most use cases. However, if you want more control over error handling, you can use this module.
- newtype ModeName = ModeName String
- data ParsedMode a
- = ModeGood a
- | ModeError [OptionError] (Either OptionError OptName)
- data Mode r = Mode ModeName ([Word] -> ParsedMode r)
- parsedCommandLineToParsedMode :: ([a] -> r) -> ParsedCommandLine a -> ParsedMode r
- mode :: String -> [OptSpec a] -> (String -> a) -> ([a] -> r) -> Mode r
- data GlobalLocalEnd a
- data GlobalLocal g r = GlobalLocal [Either OptionError g] (GlobalLocalEnd r)
- data ModeResult g r = ModeResult [g] (Either [String] r)
- getModeResult :: GlobalLocal g r -> Either (String, [String]) (ModeResult g r)
- combine :: Either (OptionError, [OptionError]) [g] -> Either (String, [String]) (Either [String] r) -> Either (String, [String]) (ModeResult g r)
- endToModeResult :: GlobalLocalEnd a -> Either (String, [String]) (Either [String] a)
- extractParsedMode :: ParsedMode a -> Either (String, [String]) (Either b a)
- globalOptErrorToString :: OptionError -> String
- modeOptErrorToString :: OptionError -> String
- optErrorToString :: String -> OptionError -> String
- eiToError :: Either OptionError OptName -> String
- labeledInsufficientOptArgs :: String -> OptName -> String
- parseModeLine :: [OptSpec g] -> [Mode r] -> [String] -> Either (String, [String]) (ModeResult g r)
- parseModeLineWithErrors :: [OptSpec g] -> [Mode r] -> [String] -> GlobalLocal g r
- findExactMode :: Word -> [Mode a] -> Maybe (Mode a)
Documentation
data ParsedMode a #
Constructors
| ModeGood a | |
| ModeError [OptionError] (Either OptionError OptName) | There was an error. There may be zero or more initial OptionError. There must be at least one error, which is either an OptionError or the name of an option, if the error is that there were not enough words following the option to provide it with its necessary arguments. |
Instances
| Functor ParsedMode # | |
| Eq a => Eq (ParsedMode a) # | |
| Ord a => Ord (ParsedMode a) # | |
| Show a => Show (ParsedMode a) # | |
A Mode represents a single command line mode, such as check
for ghc-pkg check. It contains the name of the mode, as well as
a parser that handles all options and positional arguments for
the mode. Ordinarily you will create a Mode using the mode
function rather than by using the constructor directly.
Constructors
| Mode ModeName ([Word] -> ParsedMode r) |
parsedCommandLineToParsedMode :: ([a] -> r) -> ParsedCommandLine a -> ParsedMode r #
Arguments
| :: String | Mode name. For instance, for the |
| -> [OptSpec a] | Mode options |
| -> (String -> a) | Parses positional arguments |
| -> ([a] -> r) | Processes the result of all mode options |
| -> Mode r |
Creates a new Mode.
data GlobalLocalEnd a #
Constructors
| GlobalInsufficientOptArgs OptName | |
| ModeNotFound String [String] | |
| NoMode | |
| ModeFound (ParsedMode a) |
Instances
| Eq a => Eq (GlobalLocalEnd a) # | |
| Ord a => Ord (GlobalLocalEnd a) # | |
| Show a => Show (GlobalLocalEnd a) # | |
data GlobalLocal g r #
Constructors
| GlobalLocal [Either OptionError g] (GlobalLocalEnd r) |
Instances
| (Eq r, Eq g) => Eq (GlobalLocal g r) # | |
| (Ord r, Ord g) => Ord (GlobalLocal g r) # | |
| (Show r, Show g) => Show (GlobalLocal g r) # | |
data ModeResult g r #
The result of parsing a mode command line.
Constructors
| ModeResult [g] (Either [String] r) |
If |
Instances
| (Eq r, Eq g) => Eq (ModeResult g r) # | |
| (Ord r, Ord g) => Ord (ModeResult g r) # | |
| (Show r, Show g) => Show (ModeResult g r) # | |
getModeResult :: GlobalLocal g r -> Either (String, [String]) (ModeResult g r) #
Arguments
| :: Either (OptionError, [OptionError]) [g] | Global result. Contains either one or more errors, or global option results. |
| -> Either (String, [String]) (Either [String] r) | Result of parsing mode word, and the mode options and
positional arguments. May be |
| -> Either (String, [String]) (ModeResult g r) |
endToModeResult :: GlobalLocalEnd a -> Either (String, [String]) (Either [String] a) #
extractParsedMode :: ParsedMode a -> Either (String, [String]) (Either b a) #
optErrorToString :: String -> OptionError -> String #
labeledInsufficientOptArgs :: String -> OptName -> String #
Arguments
| :: [OptSpec g] | Global options. This might, for example, include a |
| -> [Mode r] | All modes |
| -> [String] | All command line words |
| -> Either (String, [String]) (ModeResult g r) | Returns
|
Parses a command line that may contain modes.
Arguments
| :: [OptSpec g] | Global options |
| -> [Mode r] | All modes |
| -> [String] | All command line tokens |
| -> GlobalLocal g r |