SimpleH-0.9.1: A light, clean and powerful Haskell utility library

Safe HaskellNone

SimpleH.Parser

Documentation

newtype ParserT w c m a Source

Constructors

ParserT (StateT [c] (ListT (WriterT w m)) a) 

Instances

(Monad m, Monoid w) => MonadError Void (ParserT w c m) 
(Monoid w, Monad m) => MonadWriter w (ParserT w c m) 
(Monoid w, Monad m) => MonadState [c] (ParserT w c m) 
(Unit m, Monoid w) => Unit (ParserT w c m) 
(Monoid w, Monad m) => Monad (ParserT w c m) 
(Monoid w, Monad m) => Applicative (ParserT w c m) 
Functor m => Functor (ParserT w c m) 
(Monoid w, MonadFix m) => MonadFix (ParserT w c m) 
(Monoid w, Monad m) => Monoid (ParserT w c m a) 
(Monoid w, Monad m) => Semigroup (ParserT w c m a) 

type Parser w c a = ParserT w c Id aSource

_ParserT :: Iso' (StateT [c] (ListT (WriterT w m)) a) (ParserT w c m a)Source

_parserT :: Functor m => Iso' ([c] -> m (w, [([c], a)])) (ParserT w c m a)Source

_parser :: (Functor f, Bifunctor p) => p (ParserT w c Id a) (f (ParserT w c Id a)) -> p ([c] -> (w, [([c], a)])) (f ([c] -> (w, [([c], a)])))Source

remaining :: (Monad m, Monoid w) => ParserT w c m [c]Source

token :: (Monad m, Monoid w) => ParserT w c m cSource

many :: (Monoid w, Monad m) => ParserT w c m a -> ParserT w c m [a]Source

many1 :: (Monoid w, Monad m) => ParserT w c m a -> ParserT w c m [a]Source

satisfy :: (Monoid w, Monad m) => (a -> Bool) -> ParserT w a m aSource

single :: (Eq a, Monoid w, Monad m) => a -> ParserT w a m ()Source

several :: (Eq a, Monoid w, Monad m, Foldable t) => t a -> ParserT w a m ()Source

option :: (Monoid w, Monad m) => a -> ParserT w c m a -> ParserT w c m aSource

eoi :: (Monad m, Monoid w) => ParserT w c m VoidSource

sepBy1 :: (Monoid w, Monad m) => ParserT w c m a -> ParserT w c m a1 -> ParserT w c m [a]Source

sepBy :: (Monoid w, Monad m) => ParserT w c m a -> ParserT w c m a1 -> ParserT w c m [a]Source

(<+>) :: Semigroup m => m -> m -> mSource

oneOf :: (Eq a, Monoid w, Monad m, Foldable t) => a -> ParserT w (t a) m (t a)Source

noneOf :: (Eq a, Monoid w, Monad m, Foldable t) => a -> ParserT w (t a) m (t a)Source

chain :: (Semigroup (f a), Applicative f) => f (a1 -> a -> a) -> f a1 -> f a -> f aSource