Distribution.Fields.ParseResult

Cabal-syntax-3.12.0.0: A library for working with .cabal files

Safe Haskell | None
Language | Haskell2010

Distribution.Fields.ParseResult

Description

A parse result type for parsers from AST to Haskell types.

Synopsis

- data ParseResult a
- runParseResult :: ParseResult a -> ([PWarning], Either (Maybe Version, NonEmpty PError) a)
- recoverWith :: ParseResult a -> a -> ParseResult a
- parseWarning :: Position -> PWarnType -> String -> ParseResult ()
- parseWarnings :: [PWarning] -> ParseResult ()
- parseFailure :: Position -> String -> ParseResult ()
- parseFatalFailure :: Position -> String -> ParseResult a
- parseFatalFailure' :: ParseResult a
- getCabalSpecVersion :: ParseResult (Maybe Version)
- setCabalSpecVersion :: Maybe Version -> ParseResult ()
- withoutWarnings :: ParseResult a -> ParseResult a

# Documentation

data ParseResult a Source #

A monad with failure and accumulating errors and warnings.

#### Instances

Instances details

Applicative ParseResult Source # |
Instance details Defined in Distribution.Fields.ParseResult Methods pure :: a -> ParseResult a # (<*>) :: ParseResult (a -> b) -> ParseResult a -> ParseResult b # liftA2 :: (a -> b -> c) -> ParseResult a -> ParseResult b -> ParseResult c # (*>) :: ParseResult a -> ParseResult b -> ParseResult b # (<*) :: ParseResult a -> ParseResult b -> ParseResult a #
Functor ParseResult Source # |
Instance details Defined in Distribution.Fields.ParseResult Methods fmap :: (a -> b) -> ParseResult a -> ParseResult b # (<$) :: a -> ParseResult b -> ParseResult a #
Monad ParseResult Source # |
Instance details Defined in Distribution.Fields.ParseResult Methods (>>=) :: ParseResult a -> (a -> ParseResult b) -> ParseResult b # (>>) :: ParseResult a -> ParseResult b -> ParseResult b # return :: a -> ParseResult a #

runParseResult :: ParseResult a -> ([PWarning], Either (Maybe Version, NonEmpty PError) a) Source #

Destruct a `ParseResult` into the emitted warnings and either a successful value or list of errors and possibly recovered a spec-version declaration.

recoverWith :: ParseResult a -> a -> ParseResult a Source #

Recover the parse result, so we can proceed parsing. `runParseResult` will still result in `Nothing`, if there are recorded errors.

parseWarning :: Position -> PWarnType -> String -> ParseResult () Source #

Add a warning. This doesn't fail the parsing process.

parseWarnings :: [PWarning] -> ParseResult () Source #

Add multiple warnings at once.

parseFailure :: Position -> String -> ParseResult () Source #

Add an error, but not fail the parser yet.

For fatal failure use `parseFatalFailure`

parseFatalFailure :: Position -> String -> ParseResult a Source #

Add an fatal error.

parseFatalFailure' :: ParseResult a Source #

A `mzero`.

getCabalSpecVersion :: ParseResult (Maybe Version) Source #

Get cabal spec version.

setCabalSpecVersion :: Maybe Version -> ParseResult () Source #

Set cabal spec version.

withoutWarnings :: ParseResult a -> ParseResult a Source #

Forget `ParseResult`s warnings.

Since: Cabal-syntax-3.4.0.0