Language.C.Analysis.SemError

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

Portability | ghc
Stability | alpha
Maintainer | benedikt.huber@gmail.com
Safe Haskell | None

Language.C.Analysis.SemError

Description

Errors in the semantic analysis

Synopsis

- newtype InvalidASTError = InvalidAST ErrorInfo
- invalidAST :: NodeInfo -> String -> InvalidASTError
- newtype BadSpecifierError = BadSpecifierError ErrorInfo
- badSpecifierError :: NodeInfo -> String -> BadSpecifierError
- data TypeMismatch = TypeMismatch String (NodeInfo, Type) (NodeInfo, Type)
- typeMismatch :: String -> (NodeInfo, Type) -> (NodeInfo, Type) -> TypeMismatch
- data RedefError = RedefError ErrorLevel RedefInfo
- data RedefInfo = RedefInfo String RedefKind NodeInfo NodeInfo
- data RedefKind
  - = DuplicateDef
  - | DiffKindRedecl
  - | ShadowedDef
- redefinition :: ErrorLevel -> String -> RedefKind -> NodeInfo -> NodeInfo -> RedefError

# Documentation

newtype InvalidASTError

InvalidASTError is caused by the violation of an invariant in the AST

Constructors

InvalidAST ErrorInfo |

Instances

Show InvalidASTError |
Typeable InvalidASTError |
Error InvalidASTError |

invalidAST :: NodeInfo -> String -> InvalidASTError

newtype BadSpecifierError

BadSpecifierError is caused by an invalid combination of specifiers

Constructors

BadSpecifierError ErrorInfo |

Instances

Show BadSpecifierError |
Typeable BadSpecifierError |
Error BadSpecifierError |

badSpecifierError :: NodeInfo -> String -> BadSpecifierError

data TypeMismatch

Constructors

TypeMismatch String (NodeInfo, Type) (NodeInfo, Type) |

Instances

Show TypeMismatch |
Typeable TypeMismatch |
Error TypeMismatch |

typeMismatch :: String -> (NodeInfo, Type) -> (NodeInfo, Type) -> TypeMismatch

data RedefError

RedefError is caused by an invalid redefinition of the same identifier or type

Constructors

RedefError ErrorLevel RedefInfo |

Instances

Show RedefError |
Typeable RedefError |
Error RedefError |

data RedefInfo

Constructors

RedefInfo String RedefKind NodeInfo NodeInfo |

data RedefKind

Constructors

DuplicateDef |
DiffKindRedecl |
ShadowedDef |

redefinition :: ErrorLevel -> String -> RedefKind -> NodeInfo -> NodeInfo -> RedefError