paripari-0.1.0.0: Fast-path parser combinators with fallback for error reporting

Safe HaskellNone
LanguageHaskell2010

Text.PariPari.Reporter

Synopsis

Documentation

data Reporter a Source #

Parser which is optimized for good error reports. Performance is secondary, since the Reporter is used as a fallback to the Acceptor.

Instances
Monad Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

(>>=) :: Reporter a -> (a -> Reporter b) -> Reporter b #

(>>) :: Reporter a -> Reporter b -> Reporter b #

return :: a -> Reporter a #

fail :: String -> Reporter a #

Functor Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

fmap :: (a -> b) -> Reporter a -> Reporter b #

(<$) :: a -> Reporter b -> Reporter a #

MonadFail Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

fail :: String -> Reporter a #

Applicative Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

pure :: a -> Reporter a #

(<*>) :: Reporter (a -> b) -> Reporter a -> Reporter b #

liftA2 :: (a -> b -> c) -> Reporter a -> Reporter b -> Reporter c #

(*>) :: Reporter a -> Reporter b -> Reporter b #

(<*) :: Reporter a -> Reporter b -> Reporter a #

Alternative Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

empty :: Reporter a #

(<|>) :: Reporter a -> Reporter a -> Reporter a #

some :: Reporter a -> Reporter [a] #

many :: Reporter a -> Reporter [a] #

MonadPlus Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

mzero :: Reporter a #

mplus :: Reporter a -> Reporter a -> Reporter a #

MonadParser Reporter Source # 
Instance details

Defined in Text.PariPari.Reporter

Semigroup a => Semigroup (Reporter a) Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

(<>) :: Reporter a -> Reporter a -> Reporter a #

sconcat :: NonEmpty (Reporter a) -> Reporter a #

stimes :: Integral b => b -> Reporter a -> Reporter a #

Monoid a => Monoid (Reporter a) Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

mempty :: Reporter a #

mappend :: Reporter a -> Reporter a -> Reporter a #

mconcat :: [Reporter a] -> Reporter a #

data Report Source #

Instances
Eq Report Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

(==) :: Report -> Report -> Bool #

(/=) :: Report -> Report -> Bool #

Show Report Source # 
Instance details

Defined in Text.PariPari.Reporter

Generic Report Source # 
Instance details

Defined in Text.PariPari.Reporter

Associated Types

type Rep Report :: * -> * #

Methods

from :: Report -> Rep Report x #

to :: Rep Report x -> Report #

type Rep Report Source # 
Instance details

Defined in Text.PariPari.Reporter

type Rep Report = D1 (MetaData "Report" "Text.PariPari.Reporter" "paripari-0.1.0.0-3bHffQaMVFHBdNIVKeDa1t" False) (C1 (MetaCons "Report" PrefixI True) ((S1 (MetaSel (Just "_reportFile") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 FilePath) :*: S1 (MetaSel (Just "_reportLine") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)) :*: (S1 (MetaSel (Just "_reportCol") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "_reportErrors") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ErrorContext]))))

runReporter :: Reporter a -> FilePath -> ByteString -> Either Report a Source #

Run Reporter on the given ByteString, returning either an error Report or, if successful, the result.

showReport :: Report -> String Source #

Pretty string representation of Report.

showErrors :: [ErrorContext] -> String Source #

Pretty string representation of '[ErrorContext]'.

data ReportOptions Source #

Instances
Eq ReportOptions Source # 
Instance details

Defined in Text.PariPari.Reporter

Show ReportOptions Source # 
Instance details

Defined in Text.PariPari.Reporter

Generic ReportOptions Source # 
Instance details

Defined in Text.PariPari.Reporter

Associated Types

type Rep ReportOptions :: * -> * #

type Rep ReportOptions Source # 
Instance details

Defined in Text.PariPari.Reporter

type Rep ReportOptions = D1 (MetaData "ReportOptions" "Text.PariPari.Reporter" "paripari-0.1.0.0-3bHffQaMVFHBdNIVKeDa1t" False) (C1 (MetaCons "ReportOptions" PrefixI True) (S1 (MetaSel (Just "_optMaxContexts") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: (S1 (MetaSel (Just "_optMaxErrorsPerContext") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "_optMaxLabelsPerContext") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int))))

data Tracer a Source #

Parser which prints trace messages, when backtracking occurs.

Instances
Monad Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

(>>=) :: Tracer a -> (a -> Tracer b) -> Tracer b #

(>>) :: Tracer a -> Tracer b -> Tracer b #

return :: a -> Tracer a #

fail :: String -> Tracer a #

Functor Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

fmap :: (a -> b) -> Tracer a -> Tracer b #

(<$) :: a -> Tracer b -> Tracer a #

MonadFail Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

fail :: String -> Tracer a #

Applicative Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

pure :: a -> Tracer a #

(<*>) :: Tracer (a -> b) -> Tracer a -> Tracer b #

liftA2 :: (a -> b -> c) -> Tracer a -> Tracer b -> Tracer c #

(*>) :: Tracer a -> Tracer b -> Tracer b #

(<*) :: Tracer a -> Tracer b -> Tracer a #

Alternative Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

empty :: Tracer a #

(<|>) :: Tracer a -> Tracer a -> Tracer a #

some :: Tracer a -> Tracer [a] #

many :: Tracer a -> Tracer [a] #

MonadPlus Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

mzero :: Tracer a #

mplus :: Tracer a -> Tracer a -> Tracer a #

MonadParser Tracer Source # 
Instance details

Defined in Text.PariPari.Reporter

Semigroup a => Semigroup (Tracer a) Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

(<>) :: Tracer a -> Tracer a -> Tracer a #

sconcat :: NonEmpty (Tracer a) -> Tracer a #

stimes :: Integral b => b -> Tracer a -> Tracer a #

Monoid a => Monoid (Tracer a) Source # 
Instance details

Defined in Text.PariPari.Reporter

Methods

mempty :: Tracer a #

mappend :: Tracer a -> Tracer a -> Tracer a #

mconcat :: [Tracer a] -> Tracer a #

runTracer :: Tracer a -> FilePath -> ByteString -> Either Report a Source #

Run Tracer on the given ByteString, returning either an error Report or, if successful, the result.