trifecta-2: A modern parser combinator library with convenient diagnostics

Copyright(c) Edward Kmett 2011-2015
LicenseBSD3
Maintainerekmett@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Text.Trifecta.Result

Contents

Description

Results and Parse Errors

Synopsis

Parse Results

data Result a Source #

The result of parsing. Either we succeeded or something went wrong.

Constructors

Success a 
Failure ErrInfo 
Instances
Monad Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

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

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

return :: a -> Result a #

fail :: String -> Result a #

Functor Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

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

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

Applicative Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

pure :: a -> Result a #

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

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

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

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

Foldable Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

fold :: Monoid m => Result m -> m #

foldMap :: Monoid m => (a -> m) -> Result a -> m #

foldr :: (a -> b -> b) -> b -> Result a -> b #

foldr' :: (a -> b -> b) -> b -> Result a -> b #

foldl :: (b -> a -> b) -> b -> Result a -> b #

foldl' :: (b -> a -> b) -> b -> Result a -> b #

foldr1 :: (a -> a -> a) -> Result a -> a #

foldl1 :: (a -> a -> a) -> Result a -> a #

toList :: Result a -> [a] #

null :: Result a -> Bool #

length :: Result a -> Int #

elem :: Eq a => a -> Result a -> Bool #

maximum :: Ord a => Result a -> a #

minimum :: Ord a => Result a -> a #

sum :: Num a => Result a -> a #

product :: Num a => Result a -> a #

Traversable Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

traverse :: Applicative f => (a -> f b) -> Result a -> f (Result b) #

sequenceA :: Applicative f => Result (f a) -> f (Result a) #

mapM :: Monad m => (a -> m b) -> Result a -> m (Result b) #

sequence :: Monad m => Result (m a) -> m (Result a) #

Alternative Result Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

empty :: Result a #

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

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

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

Show a => Show (Result a) Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

showsPrec :: Int -> Result a -> ShowS #

show :: Result a -> String #

showList :: [Result a] -> ShowS #

Show a => Pretty (Result a) Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

pretty :: Result a -> Doc #

prettyList :: [Result a] -> Doc #

AsResult (Result a) (Result b) a b Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

_Result :: Prism (Result a) (Result b) (Result a) (Result b) Source #

class AsResult s t a b | s -> a, t -> b, s b -> t, t a -> s where Source #

A Prism that lets you embed or retrieve a Result in a potentially larger type.

Minimal complete definition

_Result

Methods

_Result :: Prism s t (Result a) (Result b) Source #

Instances
AsResult (Result a) (Result b) a b Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

_Result :: Prism (Result a) (Result b) (Result a) (Result b) Source #

foldResult :: (ErrInfo -> b) -> (a -> b) -> Result a -> b Source #

Fold over a Result

_Success :: AsResult s t a b => Prism s t a b Source #

The Prism for the Success constructor of Result

_Failure :: AsResult s s a a => Prism' s ErrInfo Source #

The Prism for the Failure constructor of Result

Parsing Errors

data Err Source #

This is used to report an error. What went wrong, some supplemental docs and a set of things expected at the current location. This does not, however, include the actual location.

Constructors

Err 
Instances
Semigroup Err Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

(<>) :: Err -> Err -> Err #

sconcat :: NonEmpty Err -> Err #

stimes :: Integral b => b -> Err -> Err #

Monoid Err Source # 
Instance details

Defined in Text.Trifecta.Result

Methods

mempty :: Err #

mappend :: Err -> Err -> Err #

mconcat :: [Err] -> Err #

HasErr Err Source # 
Instance details

Defined in Text.Trifecta.Result

class Errable m where Source #

Minimal complete definition

raiseErr

Methods

raiseErr :: Err -> m a Source #

Instances
Errable Parser Source # 
Instance details

Defined in Text.Trifecta.Parser

Methods

raiseErr :: Err -> Parser a Source #

data ErrInfo Source #

Constructors

ErrInfo 

Fields

Instances
Show ErrInfo Source # 
Instance details

Defined in Text.Trifecta.Result

Semigroup ErrInfo Source # 
Instance details

Defined in Text.Trifecta.Result

Monoid ErrInfo Source # 
Instance details

Defined in Text.Trifecta.Result

explain :: Rendering -> Err -> Doc Source #

Convert a Rendering of auxiliary information and an Err into a Doc, ready to be prettyprinted to the user.

failed :: String -> Err Source #

Generate a simple Err word-wrapping the supplied message.