SimpleH-1.0: 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 (ParserT w c m a) (ParserT x d n b) (StateT [c] (ListT (WriterT w m)) a) (StateT [d] (ListT (WriterT x n)) b)Source

_parserT :: (Functor n, Functor m) => Iso (ParserT w c m a) (ParserT x d n b) ([c] -> m (w, [([c], a)])) ([d] -> n (x, [([d], b)]))Source

_parser :: Iso (Parser w c a) (Parser x d b) ([c] -> (w, [([c], a)])) ([d] -> (x, [([d], b)]))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) => (c -> Bool) -> ParserT w c m cSource

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

several :: (Eq c, Monoid w, Monad m, Foldable t) => t c -> ParserT w c 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 ()Source

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

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

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

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

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

chain :: (Semigroup (f b), Applicative f) => f a -> f (a -> b -> b) -> f b -> f bSource