paripari-0.6.0.1: Parser combinators with fast-path and slower fallback for error reporting

Safe HaskellNone
LanguageHaskell2010

Text.PariPari.Internal.Acceptor

Synopsis

Documentation

newtype Acceptor k a Source #

Parser which is optimised for fast parsing. Error reporting is minimal.

Constructors

Acceptor 

Fields

Instances
CharChunk k => CharParser k (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Chunk k => ChunkParser k (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Chunk k => Monad (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

(>>=) :: Acceptor k a -> (a -> Acceptor k b) -> Acceptor k b #

(>>) :: Acceptor k a -> Acceptor k b -> Acceptor k b #

return :: a -> Acceptor k a #

fail :: String -> Acceptor k a #

Functor (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

fmap :: (a -> b) -> Acceptor k a -> Acceptor k b #

(<$) :: a -> Acceptor k b -> Acceptor k a #

Chunk k => MonadFail (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

fail :: String -> Acceptor k a #

Chunk k => Applicative (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

pure :: a -> Acceptor k a #

(<*>) :: Acceptor k (a -> b) -> Acceptor k a -> Acceptor k b #

liftA2 :: (a -> b -> c) -> Acceptor k a -> Acceptor k b -> Acceptor k c #

(*>) :: Acceptor k a -> Acceptor k b -> Acceptor k b #

(<*) :: Acceptor k a -> Acceptor k b -> Acceptor k a #

Chunk k => Alternative (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

empty :: Acceptor k a #

(<|>) :: Acceptor k a -> Acceptor k a -> Acceptor k a #

some :: Acceptor k a -> Acceptor k [a] #

many :: Acceptor k a -> Acceptor k [a] #

Chunk k => MonadPlus (Acceptor k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

mzero :: Acceptor k a #

mplus :: Acceptor k a -> Acceptor k a -> Acceptor k a #

CharChunk k => IsString (Acceptor k k) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

fromString :: String -> Acceptor k k #

(Chunk k, Semigroup a) => Semigroup (Acceptor k a) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

(<>) :: Acceptor k a -> Acceptor k a -> Acceptor k a #

sconcat :: NonEmpty (Acceptor k a) -> Acceptor k a #

stimes :: Integral b => b -> Acceptor k a -> Acceptor k a #

(Chunk k, Semigroup a, Monoid a) => Monoid (Acceptor k a) Source # 
Instance details

Defined in Text.PariPari.Internal.Acceptor

Methods

mempty :: Acceptor k a #

mappend :: Acceptor k a -> Acceptor k a -> Acceptor k a #

mconcat :: [Acceptor k a] -> Acceptor k a #

data Env k Source #

Constructors

Env 

data State Source #

Constructors

State 

Fields

get :: (Env k -> State -> a) -> Acceptor k a Source #

Reader monad, get something from the environment

local :: (State -> Env k -> Env k) -> Acceptor k a -> Acceptor k a Source #

Reader monad, modify environment locally

runAcceptor :: Chunk k => Acceptor k a -> FilePath -> k -> Either Error a Source #

Run Acceptor on the given chunk, returning either a simple Error or, if successful, the result.