attoparsec-0.14.4: Fast combinator parsing for bytestrings and text
CopyrightBryan O'Sullivan 2007-2015
LicenseBSD3
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityunknown
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Attoparsec.Zepto

Description

A tiny, highly specialized combinator parser for ByteString strings.

While the main attoparsec module generally performs well, this module is particularly fast for simple non-recursive loops that should not normally result in failed parses.

Warning: on more complex inputs involving recursion or failure, parsers based on this module may be as much as ten times slower than regular attoparsec! You should only use this module when you have benchmarks that prove that its use speeds your code up.

Synopsis

Documentation

data ZeptoT m a Source #

A simple parser.

This monad is strict in its state, and the monadic bind operator (>>=) evaluates each result to weak head normal form before passing it along.

Instances

Instances details
Monad m => Monad (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

(>>=) :: ZeptoT m a -> (a -> ZeptoT m b) -> ZeptoT m b #

(>>) :: ZeptoT m a -> ZeptoT m b -> ZeptoT m b #

return :: a -> ZeptoT m a #

Monad m => Functor (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

fmap :: (a -> b) -> ZeptoT m a -> ZeptoT m b #

(<$) :: a -> ZeptoT m b -> ZeptoT m a #

Monad m => MonadFail (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

fail :: String -> ZeptoT m a #

Monad m => Applicative (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

pure :: a -> ZeptoT m a #

(<*>) :: ZeptoT m (a -> b) -> ZeptoT m a -> ZeptoT m b #

liftA2 :: (a -> b -> c) -> ZeptoT m a -> ZeptoT m b -> ZeptoT m c #

(*>) :: ZeptoT m a -> ZeptoT m b -> ZeptoT m b #

(<*) :: ZeptoT m a -> ZeptoT m b -> ZeptoT m a #

MonadIO m => MonadIO (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

liftIO :: IO a -> ZeptoT m a #

Monad m => Alternative (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

empty :: ZeptoT m a #

(<|>) :: ZeptoT m a -> ZeptoT m a -> ZeptoT m a #

some :: ZeptoT m a -> ZeptoT m [a] #

many :: ZeptoT m a -> ZeptoT m [a] #

Monad m => MonadPlus (ZeptoT m) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

mzero :: ZeptoT m a #

mplus :: ZeptoT m a -> ZeptoT m a -> ZeptoT m a #

Monad m => Semigroup (ZeptoT m a) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

(<>) :: ZeptoT m a -> ZeptoT m a -> ZeptoT m a #

sconcat :: NonEmpty (ZeptoT m a) -> ZeptoT m a #

stimes :: Integral b => b -> ZeptoT m a -> ZeptoT m a #

Monad m => Monoid (ZeptoT m a) Source # 
Instance details

Defined in Data.Attoparsec.Zepto

Methods

mempty :: ZeptoT m a #

mappend :: ZeptoT m a -> ZeptoT m a -> ZeptoT m a #

mconcat :: [ZeptoT m a] -> ZeptoT m a #

parse :: Parser a -> ByteString -> Either String a Source #

Run a parser.

parseT :: Monad m => ZeptoT m a -> ByteString -> m (Either String a) Source #

Run a parser on top of the given base monad.

atEnd :: Monad m => ZeptoT m Bool Source #

Indicate whether the end of the input has been reached.

string :: Monad m => ByteString -> ZeptoT m () Source #

Match a string exactly.

take :: Monad m => Int -> ZeptoT m ByteString Source #

Consume n bytes of input.

takeWhile :: Monad m => (Word8 -> Bool) -> ZeptoT m ByteString Source #

Consume input while the predicate returns True.