From c1f397622dc0fb3643041f0099d6b5e004d03fd0 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sun, 22 Jul 2007 21:01:17 +0000 Subject: Added a "try" to the end parser in enclosed (Text.Pandoc.ParserCombinators). This makes errors in its use less likely. Removed some now-unneeded try's in calling code. git-svn-id: https://pandoc.googlecode.com/svn/trunk@776 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/ParserCombinators.hs | 2 +- src/Text/Pandoc/Readers/LaTeX.hs | 8 +++----- src/Text/Pandoc/Readers/RST.hs | 19 ++++++++++++------- 3 files changed, 16 insertions(+), 13 deletions(-) (limited to 'src/Text') diff --git a/src/Text/Pandoc/ParserCombinators.hs b/src/Text/Pandoc/ParserCombinators.hs index 2e4c1413c..c49845597 100644 --- a/src/Text/Pandoc/ParserCombinators.hs +++ b/src/Text/Pandoc/ParserCombinators.hs @@ -76,7 +76,7 @@ enclosed :: GenParser Char st t -- ^ start parser enclosed start end parser = try (do start notFollowedBy space - result <- many1Till parser end + result <- many1Till parser (try end) return result) -- | Like @manyTill@, but reads at least one item. diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index feef85c2a..471417458 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -552,13 +552,11 @@ doubleQuoted = try (do singleQuoteStart = char '`' -singleQuoteEnd = try (do - char '\'' - notFollowedBy alphaNum) +singleQuoteEnd = char '\'' >> notFollowedBy alphaNum -doubleQuoteStart = try (string "``") +doubleQuoteStart = string "``" -doubleQuoteEnd = try (string "''") +doubleQuoteEnd = string "''" ellipses = try (do string "\\ldots" diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index 36d0f8403..7fed7cbd3 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -536,12 +536,9 @@ regularKey = try $ do -- inline -- -text = choice [ strong, emph, code, str, tabchar, whitespace, - endline ] "text" - -inline = choice [ escapedChar, special, hyphens, text, symbol ] "inline" - -special = choice [ link, image ] "link, inline html, or image" +inline = choice [ escapedChar, link, image, hyphens, strong, emph, + superscript, subscript, code, + str, tabchar, whitespace, endline, symbol ] "inline" hyphens = try (do result <- many1 (char '-') @@ -567,9 +564,17 @@ emph = do return (Emph (normalizeSpaces result)) strong = do - result <- enclosed (try (string "**")) (try (string "**")) inline + result <- enclosed (string "**") (string "**") inline return (Strong (normalizeSpaces result)) +superscript = do + result <- enclosed (string "\\ :sup:`") (string "`\\ ") anyChar + return (Superscript [Str result]) + +subscript = do + result <- enclosed (string "\\ :sub:`") (string "`\\ ") anyChar + return (Subscript [Str result]) + whitespace = do many1 spaceChar "whitespace" return Space -- cgit v1.2.3