Cabal-syntax-3.18.1.0: A library for working with .cabal files
Safe HaskellNone
LanguageHaskell2010

Distribution.Fields.ParseResult

Description

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

Synopsis

Documentation

data ParseResult src a Source #

A monad with failure and accumulating errors and warnings.

Instances

Instances details
Applicative (ParseResult src) Source # 
Instance details

Defined in Distribution.Fields.ParseResult

Methods

pure :: a -> ParseResult src a Source #

(<*>) :: ParseResult src (a -> b) -> ParseResult src a -> ParseResult src b Source #

liftA2 :: (a -> b -> c) -> ParseResult src a -> ParseResult src b -> ParseResult src c Source #

(*>) :: ParseResult src a -> ParseResult src b -> ParseResult src b Source #

(<*) :: ParseResult src a -> ParseResult src b -> ParseResult src a Source #

Functor (ParseResult src) Source # 
Instance details

Defined in Distribution.Fields.ParseResult

Methods

fmap :: (a -> b) -> ParseResult src a -> ParseResult src b Source #

(<$) :: a -> ParseResult src b -> ParseResult src a Source #

Monad (ParseResult src) Source # 
Instance details

Defined in Distribution.Fields.ParseResult

Methods

(>>=) :: ParseResult src a -> (a -> ParseResult src b) -> ParseResult src b Source #

(>>) :: ParseResult src a -> ParseResult src b -> ParseResult src b Source #

return :: a -> ParseResult src a Source #

runParseResult :: ParseResult src a -> ([PWarningWithSource src], Either (Maybe Version, NonEmpty (PErrorWithSource src)) 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.

data PSource src Source #

The source of a parse error

Constructors

PKnownSource src 
PUnknownSource 

Instances

Instances details
Functor PSource Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

fmap :: (a -> b) -> PSource a -> PSource b Source #

(<$) :: a -> PSource b -> PSource a Source #

Binary src => Binary (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

put :: PSource src -> Put Source #

get :: Get (PSource src) Source #

putList :: [PSource src] -> Put Source #

NFData src => NFData (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

rnf :: PSource src -> () Source #

Eq src => Eq (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

(==) :: PSource src -> PSource src -> Bool Source #

(/=) :: PSource src -> PSource src -> Bool Source #

Ord src => Ord (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

compare :: PSource src -> PSource src -> Ordering Source #

(<) :: PSource src -> PSource src -> Bool Source #

(<=) :: PSource src -> PSource src -> Bool Source #

(>) :: PSource src -> PSource src -> Bool Source #

(>=) :: PSource src -> PSource src -> Bool Source #

max :: PSource src -> PSource src -> PSource src Source #

min :: PSource src -> PSource src -> PSource src Source #

Generic (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Associated Types

type Rep (PSource src) 
Instance details

Defined in Distribution.Parsec.Source

type Rep (PSource src) = D1 ('MetaData "PSource" "Distribution.Parsec.Source" "Cabal-syntax-3.18.1.0-53ed" 'False) (C1 ('MetaCons "PKnownSource" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 src)) :+: C1 ('MetaCons "PUnknownSource" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: PSource src -> Rep (PSource src) x Source #

to :: Rep (PSource src) x -> PSource src Source #

Show src => Show (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

Methods

showsPrec :: Int -> PSource src -> ShowS Source #

show :: PSource src -> String Source #

showList :: [PSource src] -> ShowS Source #

type Rep (PSource src) Source # 
Instance details

Defined in Distribution.Parsec.Source

type Rep (PSource src) = D1 ('MetaData "PSource" "Distribution.Parsec.Source" "Cabal-syntax-3.18.1.0-53ed" 'False) (C1 ('MetaCons "PKnownSource" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 src)) :+: C1 ('MetaCons "PUnknownSource" 'PrefixI 'False) (U1 :: Type -> Type))

newtype CabalFileSource Source #

Constructors

PCabalFile (FilePath, ByteString) 

Instances

Instances details
Eq CabalFileSource Source # 
Instance details

Defined in Distribution.Parsec.Source

Ord CabalFileSource Source # 
Instance details

Defined in Distribution.Parsec.Source

Generic CabalFileSource Source # 
Instance details

Defined in Distribution.Parsec.Source

Associated Types

type Rep CabalFileSource 
Instance details

Defined in Distribution.Parsec.Source

type Rep CabalFileSource = D1 ('MetaData "CabalFileSource" "Distribution.Parsec.Source" "Cabal-syntax-3.18.1.0-53ed" 'True) (C1 ('MetaCons "PCabalFile" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FilePath, ByteString))))
Show CabalFileSource Source # 
Instance details

Defined in Distribution.Parsec.Source

type Rep CabalFileSource Source # 
Instance details

Defined in Distribution.Parsec.Source

type Rep CabalFileSource = D1 ('MetaData "CabalFileSource" "Distribution.Parsec.Source" "Cabal-syntax-3.18.1.0-53ed" 'True) (C1 ('MetaCons "PCabalFile" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FilePath, ByteString))))

recoverWith :: ParseResult src a -> a -> ParseResult src 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 src () Source #

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

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

Add multiple warnings at once.

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

Add an error, but not fail the parser yet.

For fatal failure use parseFatalFailure

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

Add an fatal error.

getCabalSpecVersion :: ParseResult src (Maybe Version) Source #

Get cabal spec version.

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

Set cabal spec version.

withoutWarnings :: ParseResult src a -> ParseResult src a Source #

Forget ParseResults warnings.

Since: Cabal-syntax-3.4.0.0

liftParseResult :: (a -> IO (ParseResult src b)) -> ParseResult src a -> IO (ParseResult src b) Source #

Chain parsing operations that involve IO actions.

withSource :: src -> ParseResult src a -> ParseResult src a Source #