From 6f6e4c0d844688ab88a5b73d566eb76a74a91963 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Wed, 31 Oct 2018 00:06:05 +0300 Subject: Generalize parseFromString to any streams with Char token --- src/Text/Pandoc/Parsing.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index f6a9f530f..15c1c0b18 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -206,6 +206,7 @@ import Data.List (intercalate, isSuffixOf, transpose) import qualified Data.Map as M import Data.Maybe (mapMaybe, fromMaybe) import qualified Data.Set as Set +import Data.String import Data.Text (Text) import Text.HTML.TagSoup.Entity (lookupEntity) import Text.Pandoc.Asciify (toAsciiChar) @@ -458,15 +459,15 @@ stringAnyCase (x:xs) = do return (firstChar:rest) -- | Parse contents of 'str' using 'parser' and return result. -parseFromString :: Monad m - => ParserT [Char] st m a +parseFromString :: (Monad m, Stream s m Char, IsString s) + => ParserT s st m r -> String - -> ParserT [Char] st m a + -> ParserT s st m r parseFromString parser str = do oldPos <- getPosition setPosition $ initialPos "chunk" oldInput <- getInput - setInput str + setInput $ fromString str result <- parser spaces eof -- cgit v1.2.3