mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-24 17:26:32 +00:00
+ Added some needed "try"s before multicharacter parsers,
especially in "option" contexts. + Removed the "try" from the "end" parser in "enclosed" (Text.Pandoc.Shared). Now "enclosed" behaves like "option", "manyTill", etc. git-svn-id: https://pandoc.googlecode.com/svn/trunk@527 788f1e2b-df1e-0410-8736-df70ead52e1b
This commit is contained in:
@@ -131,7 +131,7 @@ parseLaTeX = do
|
||||
option () processLaTeXPreamble -- preamble might not be present (fragment)
|
||||
blocks <- parseBlocks
|
||||
spaces
|
||||
option "" (string "\\end{document}") -- might not be present (in fragment)
|
||||
option "" (try (string "\\end{document}")) -- might not be present (in fragment)
|
||||
spaces
|
||||
eof
|
||||
state <- getState
|
||||
@@ -540,7 +540,7 @@ doubleQuoteEnd = try (string "''")
|
||||
|
||||
ellipses = try (do
|
||||
string "\\ldots"
|
||||
option "" (string "{}")
|
||||
option "" (try (string "{}"))
|
||||
return Ellipses)
|
||||
|
||||
enDash = try (do
|
||||
|
||||
@@ -729,10 +729,10 @@ emph = do
|
||||
return (Emph (normalizeSpaces result))
|
||||
|
||||
strong = do
|
||||
result <- choice [ (enclosed (count 2 (char emphStart))
|
||||
(count 2 (char emphEnd)) inline),
|
||||
(enclosed (count 2 (char emphStartAlt))
|
||||
(count 2 (char emphEndAlt)) inline) ]
|
||||
result <- choice [ (enclosed (try (count 2 (char emphStart)))
|
||||
(try (count 2 (char emphEnd))) inline),
|
||||
(enclosed (try (count 2 (char emphStartAlt)))
|
||||
(try (count 2 (char emphEndAlt))) inline) ]
|
||||
return (Strong (normalizeSpaces result))
|
||||
|
||||
smartPunctuation = do
|
||||
|
||||
@@ -567,7 +567,7 @@ emph = do
|
||||
return (Emph (normalizeSpaces result))
|
||||
|
||||
strong = do
|
||||
result <- enclosed (string "**") (string "**") inline
|
||||
result <- enclosed (try (string "**")) (try (string "**")) inline
|
||||
return (Strong (normalizeSpaces result))
|
||||
|
||||
whitespace = do
|
||||
|
||||
@@ -93,14 +93,14 @@ escaped parser = try (do
|
||||
return (Str [result]))
|
||||
|
||||
-- | Parses material enclosed between start and end parsers.
|
||||
enclosed :: GenParser Char st t -- ^ start parser
|
||||
enclosed :: GenParser Char st t -- ^ start parser
|
||||
-> GenParser Char st end -- ^ end parser
|
||||
-> GenParser Char st a -- ^ content parser (to be used repeatedly)
|
||||
-> GenParser Char st [a]
|
||||
enclosed start end parser = try (do
|
||||
start
|
||||
notFollowedBy space
|
||||
result <- many1Till parser (try end)
|
||||
result <- many1Till parser end
|
||||
return result)
|
||||
|
||||
-- | Like @manyTill@, but reads at least one item.
|
||||
|
||||
Reference in New Issue
Block a user