Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Extend a monad with the ability to parse symbol sequences
Synopsis
- newtype ParserT s m a = ParserT ([s] -> m (Either [ParseError s] (a, [s])))
- data ParseError s
- runParserT :: ParserT s m a -> [s] -> m (Either [ParseError s] (a, [s]))
- sat :: Applicative m => (s -> Bool) -> ParserT s m s
- item :: Applicative m => ParserT s m s
- symbol :: (Applicative m, Eq s) => s -> ParserT s m s
- string :: (Monad m, Traversable t, Eq s) => t s -> ParserT s m (t s)
- oneOf :: (Applicative m, Foldable t, Eq s) => t s -> ParserT s m s
- noneOf :: (Applicative m, Foldable t, Eq s) => t s -> ParserT s m s
- sepBy :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]
- sepBy1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]
- endBy :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]
- endBy1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a]
- between :: Monad m => ParserT s m open -> ParserT s m close -> ParserT s m a -> ParserT s m a
- option :: (Monad m, Eq s) => a -> ParserT s m a -> ParserT s m a
Types
newtype ParserT s m a Source #
A transformer parsing symbols s, inner monad m, return a
ParserT ([s] -> m (Either [ParseError s] (a, [s]))) |
Instances
MonadTrans (ParserT s) Source # | |
(Monad m, Eq s) => Alternative (ParserT s m) Source # | |
Monad m => Applicative (ParserT s m) Source # | |
Defined in Mini.Transformers.ParserT | |
Monad m => Functor (ParserT s m) Source # | |
Monad m => Monad (ParserT s m) Source # | |
(Monad m, Monoid a) => Monoid (ParserT s m a) Source # | |
(Monad m, Semigroup a) => Semigroup (ParserT s m a) Source # | |
data ParseError s Source #
Abstract representation of a parse error for symbols s
Instances
Show s => Show (ParseError s) Source # | |
Defined in Mini.Transformers.ParserT showsPrec :: Int -> ParseError s -> ShowS # show :: ParseError s -> String # showList :: [ParseError s] -> ShowS # |
Runner
runParserT :: ParserT s m a -> [s] -> m (Either [ParseError s] (a, [s])) Source #
Unwrap a ParserT
computation with a sequence of symbols to parse
Parsers
item :: Applicative m => ParserT s m s Source #
Parse any symbol
string :: (Monad m, Traversable t, Eq s) => t s -> ParserT s m (t s) Source #
Parse a sequence of symbols
oneOf :: (Applicative m, Foldable t, Eq s) => t s -> ParserT s m s Source #
Parse symbols included in a collection
noneOf :: (Applicative m, Foldable t, Eq s) => t s -> ParserT s m s Source #
Parse symbols excluded from a collection
Combinators
sepBy :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a] Source #
Parse zero or more p
separated by q
via p `sepBy` q
sepBy1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a] Source #
Parse one or more p
separated by q
via p `sepBy1` q
endBy :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a] Source #
Parse zero or more p
separated and ended by q
via p `endBy` q
endBy1 :: (Monad m, Eq s) => ParserT s m a -> ParserT s m b -> ParserT s m [a] Source #
Parse one or more p
separated and ended by q
via p `endBy1` q