language-c-0.8.3: 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

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

data ErrorLevel #

Error levels (severity)

Instances

Instances details
Eq ErrorLevel # 
Instance details

Defined in Language.C.Data.Error

Methods

(==) :: ErrorLevel -> ErrorLevel -> Bool

(/=) :: ErrorLevel -> ErrorLevel -> Bool

Ord ErrorLevel # 
Instance details

Defined in Language.C.Data.Error

Show ErrorLevel # 
Instance details

Defined in Language.C.Data.Error

Methods

showsPrec :: Int -> ErrorLevel -> ShowS

show :: ErrorLevel -> String

showList :: [ErrorLevel] -> ShowS

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

Instances details
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

forall err.Error err => CError err 

Instances

Instances details
Show CError # 
Instance details

Defined in Language.C.Data.Error

Methods

showsPrec :: Int -> CError -> ShowS

show :: CError -> String

showList :: [CError] -> ShowS

Error CError # 
Instance details

Defined in Language.C.Data.Error

Infos attached to errors

data ErrorInfo #

information attached to every error in Language.C

Constructors

ErrorInfo ErrorLevel Position [String] 

Instances

Instances details
Show ErrorInfo # 
Instance details

Defined in Language.C.Data.Error

Methods

showsPrec :: Int -> ErrorInfo -> ShowS

show :: ErrorInfo -> String

showList :: [ErrorInfo] -> ShowS

Error ErrorInfo # 
Instance details

Defined in Language.C.Data.Error

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).

Instances

Instances details
Show UserError # 
Instance details

Defined in Language.C.Data.Error

Methods

showsPrec :: Int -> UserError -> ShowS

show :: UserError -> String

showList :: [UserError] -> ShowS

Error UserError # 
Instance details

Defined in Language.C.Data.Error

userErr :: String -> UserError #

Raising internal errors

internalErr :: String -> a #

raise a fatal internal error; message may have multiple lines