optparse-applicative-0.0.1: Utilities and combinators for parsing command line options

Safe HaskellSafe-Infered




Option parsers

A Parser is composed of a list of options. Several kinds of options are supported:

  • Flags: simple no-argument options. When a flag is encountered on the command line, its value is returned.
  • Options: options with an argument. An option can define a reader, which converts its argument from String to the desired value, or throws a parse error if the argument does not validate correctly.
  • Arguments: positional arguments, validated in the same way as option arguments.
  • Commands. A command defines a completely independent sub-parser. When a command is encountered, the whole command line is passed to the corresponding parser.

data Parser a Source

A Parser a is an option parser returning a value of type a.

liftOpt :: Option r a -> Parser aSource

Create a parser composed of a single option.

Program descriptions

data ParserInfo a Source

A full description for a runnable Parser for a program.




_infoParser :: Parser a

the option parser for the program

_infoFullDesc :: Bool

whether the help text should contain full documentation

_infoProgDesc :: String

brief parser description

_infoHeader :: String

header of the full parser description

_infoFooter :: String

footer of the full parser description

_infoFailureCode :: Int

exit code for a parser failure


Running parsers

evalParser :: Parser a -> Maybe aSource

The default value of a Parser. This function returns Nothing if any of the options don't have a default value.

runParser :: Parser a -> [String] -> Maybe (a, [String])Source

Apply a Parser to a command line, and return a result and leftover arguments. This function returns Nothing if any parsing error occurs, or if any options are missing and don't have a default value.

Low-level utilities

mapParser :: (forall r x. Option r x -> b) -> Parser a -> [b]Source

Map a polymorphic function over all the options of a parser, and collect the results.