From 7a649170bef70f33099000277f42362d4ab7ff50 Mon Sep 17 00:00:00 2001 From: Matthew Pickering Date: Sun, 20 Jul 2014 23:41:42 +0100 Subject: Added generalize function which can be used to lift specialised parsers. Monad m => Parsec s st a -> Parsec T s st m a --- src/Text/Pandoc/Parsing.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/Text/Pandoc') diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index 28ea2bd2f..ec15adf77 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -109,6 +109,7 @@ module Text.Pandoc.Parsing ( anyLine, askF, asksF, token, + generalize, -- * Re-exports from Text.Pandoc.Parsec Stream, runParser, @@ -1264,3 +1265,6 @@ addWarning mbpos msg = updateState $ \st -> st{ stateWarnings = (msg ++ maybe "" (\pos -> " " ++ show pos) mbpos) : stateWarnings st } + +generalize :: (Monad m) => Parser s st a -> ParserT s st m a +generalize m = mkPT (\ s -> (return $ (return . runIdentity) <$> runIdentity (runParsecT m s))) -- cgit v1.2.3