From f2749ba6cd0ec2473332394bfbb6f479b667f35c Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 7 Dec 2020 12:56:03 -0800 Subject: Parsing: in nonspaceChar use satisfy instead of oneOf. For efficiency. --- src/Text/Pandoc/Parsing.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index 4bae8942b..1d9e182c5 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -443,7 +443,13 @@ spaceChar = satisfy $ \c -> c == ' ' || c == '\t' -- | Parses a nonspace, nonnewline character. nonspaceChar :: Stream s m Char => ParserT s st m Char -nonspaceChar = noneOf ['\t', '\n', ' ', '\r'] +nonspaceChar = satisfy (not . isSpaceChar) + where + isSpaceChar ' ' = True + isSpaceChar '\t' = True + isSpaceChar '\n' = True + isSpaceChar '\r' = True + isSpaceChar _ = False -- | Skips zero or more spaces or tabs. skipSpaces :: Stream s m Char => ParserT s st m () -- cgit v1.2.3