aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2020-12-07 12:56:03 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2020-12-07 12:56:03 -0800
commitf2749ba6cd0ec2473332394bfbb6f479b667f35c (patch)
treef5e7513ce5b1ae3dd9887875e73e331ce77672fe /src/Text
parent501ea7f0c4735acdf1457da44fe04d811ac776d7 (diff)
downloadpandoc-f2749ba6cd0ec2473332394bfbb6f479b667f35c.tar.gz
Parsing: in nonspaceChar use satisfy instead of oneOf.
For efficiency.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Parsing.hs8
1 files changed, 7 insertions, 1 deletions
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 ()