Portability | ghc |
---|---|
Stability | experimental |
Maintainer | benedikt.huber@gmail.com |
Safe Haskell | None |
Language.C.Data.Error
Contents
Description
Base type for errors occurring 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
isHardError :: Error ex => ex -> BoolSource
return True
when the given error makes it impossible to continue
analysis or compilation.
Error class
class (Typeable e, Show e) => Error e whereSource
errors in Language.C are instance of Error
errorLevel :: Error e => e -> ErrorLevelSource
severity level of an Error
Error supertype
supertype
of all errors
Infos attached to errors
information attached to every error in Language.C
Constructors
ErrorInfo ErrorLevel Position [String] |
showErrorInfo :: String -> ErrorInfo -> StringSource
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 -> ErrorInfoSource
Default error types
data UnsupportedFeature Source
error raised if a operation requires an unsupported or not yet implemented feature.
unsupportedFeature :: Pos a => String -> a -> UnsupportedFeatureSource
unspecified error raised by the user (in case the user does not want to define her own error types).
Raising internal errors
internalErr :: String -> aSource
raise a fatal internal error; message may have multiple lines