From 7cb8b60910ede36bba3598f85a06ddde6fc545d0 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Thu, 28 Mar 2013 22:20:05 -0700 Subject: Parsing: Better error reporting in readWith. - Specialize readWith to String input. - On error have it print the line in which the error occurred, with a caret pointing to the column. - This should help diagnose parsing problems in LaTeX especially. --- src/Text/Pandoc/Readers/HTML.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Text/Pandoc/Readers') diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 6dbba8c35..32ce46fba 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -59,7 +59,10 @@ readHtml :: ReaderOptions -- ^ Reader options -> String -- ^ String to parse (assumes @'\n'@ line endings) -> Pandoc readHtml opts inp = Pandoc meta blocks - where blocks = readWith parseBody def{ stateOptions = opts } rest + where blocks = case runParser parseBody def{ stateOptions = opts } + "source" rest of + Left err' -> error $ "\nError at " ++ show err' + Right result -> result tags = canonicalizeTags $ parseTagsOptions parseOptions{ optTagPosition = True } inp hasHeader = any (~== TagOpen "head" []) tags -- cgit v1.2.3