From 60d8f688a0c66759bdb7645c9dd4c232bc433c9f Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Mon, 15 Aug 2022 12:11:10 +0100 Subject: Unify error reporting --- src/Error.hs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/Error.hs') diff --git a/src/Error.hs b/src/Error.hs index 96b02dc..f61cea2 100644 --- a/src/Error.hs +++ b/src/Error.hs @@ -1,13 +1,19 @@ module Error where import Data.List (sort) -import Text.Parsec (SourcePos) +import Text.Parsec (SourcePos, errorPos) +import Text.Parsec.Error (ParseError, errorMessages, showErrorMessages) data Error = Error String SourcePos deriving (Eq) instance Show Error where show (Error message pos) = - "error: " ++ show pos ++ ":\n" ++ message + show pos ++ " error: " ++ message + +showParserError :: ParseError -> String +showParserError error = + show (errorPos error) ++ " error: syntax error" + ++ showErrorMessages "or" "unknown parser error" " expecting" " unexpected" "end of input" (errorMessages error) instance Ord Error where compare (Error _ pos1) (Error _ pos2) = compare pos1 pos2 -- cgit v1.2.3