+ 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:
fiddlosopher
2007-02-12 17:14:11 +00:00
parent 73cbae7202
commit f3437dd27c
4 changed files with 9 additions and 9 deletions
+2 -2
View File
@@ -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
+4 -4
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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.