Portability | ghc |
---|---|
Stability | experimental |
Maintainer | benedikt.huber@gmail.com |
Safe Haskell | None |
Language.C.Data.Error
Contents
Description
Base type for errors occuring in parsing, analysing and pretty-printing. With ideas from Simon Marlow's An extensible dynamically-typed hierarchy of execeptions [2006]
- data ErrorLevel
- = LevelWarn
- | LevelError
- | LevelFatal
- isHardError :: Error ex => ex -> Bool
- class (Typeable e, Show e) => Error e where
- errorInfo :: e -> ErrorInfo
- toError :: e -> CError
- fromError :: CError -> Maybe e
- changeErrorLevel :: e -> ErrorLevel -> e
- errorPos :: Error e => e -> Position
- errorLevel :: Error e => e -> ErrorLevel
- errorMsgs :: Error e => e -> [String]
- data CError = forall err . Error err => CError err
- data ErrorInfo = ErrorInfo ErrorLevel Position [String]
- showError :: Error e => String -> e -> String
- showErrorInfo :: String -> ErrorInfo -> String
- mkErrorInfo :: ErrorLevel -> String -> NodeInfo -> ErrorInfo
- data UnsupportedFeature
- unsupportedFeature :: Pos a => String -> a -> UnsupportedFeature
- unsupportedFeature_ :: String -> UnsupportedFeature
- data UserError
- userErr :: String -> UserError
- internalErr :: String -> a
Severity Level
data ErrorLevel
Error levels (severity)
Constructors
LevelWarn | |
LevelError | |
LevelFatal |
Instances
Eq ErrorLevel | |
Ord ErrorLevel | |
Show ErrorLevel |
isHardError :: Error ex => ex -> Bool
return True
when the given error makes it impossible to continue
analysis or compilation.
Error class
class (Typeable e, Show e) => Error e where
errors in Language.C are instance of Error
Methods
obtain source location etc. of an error
wrap error in CError
fromError :: CError -> Maybe e
try to cast a generic CError
to the specific error type
changeErrorLevel :: e -> ErrorLevel -> e
modify the error level
errorLevel :: Error e => e -> ErrorLevel
severity level of an Error
Error supertype
data CError
supertype
of all errors
Infos attached to errors
data ErrorInfo
information attached to every error in Language.C
Constructors
ErrorInfo ErrorLevel Position [String] |
showErrorInfo :: String -> ErrorInfo -> String
converts an error into a string using a fixed format
- either the lines of the long error message or the short message has to be non-empty
- the format is
<fname>:<row>: (column <col>) [<err lvl>] >>> <line_1> <line_2> ... <line_n>
mkErrorInfo :: ErrorLevel -> String -> NodeInfo -> ErrorInfo
Default error types
data UnsupportedFeature
error raised if a operation requires an unsupported or not yet implemented feature.
Instances
Show UnsupportedFeature | |
Typeable UnsupportedFeature | |
Error UnsupportedFeature |
unsupportedFeature :: Pos a => String -> a -> UnsupportedFeature
unsupportedFeature_ :: String -> UnsupportedFeature
data UserError
unspecified error raised by the user (in case the user does not want to define her own error types).
Raising internal errors
internalErr :: String -> a
raise a fatal internal error; message may have multiple lines