git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Performance improvement in str parser.

Moved a guardEnabled out of an inner loop.

commit846be80c268697a3ee07a292db6dd78208aaabe2 authorJohn MacFarlane <fiddlosopher@gmail.com> dateFri 25 Jan 2013, 18:42 (14 years ago) parent71c5ebe
1 file changed+6−3
src/Text/Pandoc/Readers/Markdown.hs+6−3
src/Text/Pandoc/Readers/Markdown.hs+6−3
@@ -1422,11 +1422,14 @@ nonEndline = satisfy (/='\n')
14221422
14231423str :: MarkdownParser (F Inlines)
14241424str = do
1425− isSmart <- readerSmart . stateOptions <$> getState
1425+ isSmart <- getOption readerSmart
1426+ intrawordUnderscores <- option False $
1427+ True <$ guardEnabled Ext_intraword_underscores
14261428 a <- alphaNum
14271429 as <- many $ alphaNum
1428− <|> (guardEnabled Ext_intraword_underscores >>
1429− try (char '_' >>~ lookAhead alphaNum))
1430+ <|> (if intrawordUnderscores
1431+ then try (char '_' >>~ lookAhead alphaNum)
1432+ else mzero)
14301433 <|> if isSmart
14311434 then (try $ satisfy (\c -> c == '\'' || c == '\x2019') >>
14321435 lookAhead alphaNum >> return '\x2019')