diff options
Diffstat (limited to 'src/Text/Pandoc/Parsing.hs')
-rw-r--r-- | src/Text/Pandoc/Parsing.hs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index c5e77bec2..72ae828f0 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -764,13 +764,20 @@ gridTableFooter = blanklines --- -- | Parse a string with a given parser and state. -readWith :: Parser [t] ParserState a -- ^ parser - -> ParserState -- ^ initial state - -> [t] -- ^ input +readWith :: Parser [Char] ParserState a -- ^ parser + -> ParserState -- ^ initial state + -> [Char] -- ^ input -> a readWith parser state input = case runParser parser state "source" input of - Left err' -> error $ "\nError:\n" ++ show err' + Left err' -> + let errPos = errorPos err' + errLine = sourceLine errPos + errColumn = sourceColumn errPos + theline = (lines input ++ [""]) !! (errLine - 1) + in error $ "\nError at " ++ show err' ++ "\n" ++ + theline ++ "\n" ++ replicate (errColumn - 1) ' ' ++ + "^" Right result -> result -- | Parse a string with @parser@ (for testing). |