language-c-0.8.2: Analysis and generation of C code

Copyright(c) 2008 Benedikt Huber Manuel M. T. Chakravarty
LicenseBSD-style
Maintainerbenedikt.huber@gmail.com
Stabilityexperimental
Portabilityghc
Safe HaskellNone
LanguageHaskell98

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]"

Synopsis

Severity Level

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

Minimal complete definition

errorInfo

Methods

errorInfo :: e -> ErrorInfo #

obtain source location etc. of an error

toError :: e -> CError #

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

Instances
Error UserError # 
Instance details

Defined in Language.C.Data.Error

Error UnsupportedFeature # 
Instance details

Defined in Language.C.Data.Error

Error CError # 
Instance details

Defined in Language.C.Data.Error

Error ErrorInfo # 
Instance details

Defined in Language.C.Data.Error

Error TypeMismatch # 
Instance details

Defined in Language.C.Analysis.SemError

Error RedefError # 
Instance details

Defined in Language.C.Analysis.SemError

Error BadSpecifierError # 
Instance details

Defined in Language.C.Analysis.SemError

Error InvalidASTError # 
Instance details

Defined in Language.C.Analysis.SemError

errorPos :: Error e => e -> Position #

position of an Error

errorLevel :: Error e => e -> ErrorLevel #

severity level of an Error

errorMsgs :: Error e => e -> [String] #

message lines of an Error

Error supertype

data CError #

supertype of all errors

Constructors

Error err => CError err 
Instances
Show CError # 
Instance details

Defined in Language.C.Data.Error

Error CError # 
Instance details

Defined in Language.C.Data.Error

Infos attached to errors

data ErrorInfo #

information attached to every error in Language.C

showError :: Error e => String -> e -> 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>

Default error types

data UnsupportedFeature #

error raised if a operation requires an unsupported or not yet implemented feature.

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