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

Copyright | (c) 2008 Benedikt Huber
License | BSD-style
Maintainer | benedikt.huber@gmail.com
Stability | alpha
Portability | ghc
Safe Haskell | None
Language | Haskell98

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
  - | DisagreeLinkage
  - | NoLinkageOld
- 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 |
Error InvalidASTError |

invalidAST :: NodeInfo -> String -> InvalidASTError

newtype BadSpecifierError

BadSpecifierError is caused by an invalid combination of specifiers

Constructors

BadSpecifierError ErrorInfo |

Instances

Show BadSpecifierError |
Error BadSpecifierError |

badSpecifierError :: NodeInfo -> String -> BadSpecifierError

data TypeMismatch

Constructors

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

Instances

Show 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 |
Error RedefError |

data RedefInfo

Constructors

RedefInfo String RedefKind NodeInfo NodeInfo |

data RedefKind

Constructors

DuplicateDef |
DiffKindRedecl |
ShadowedDef |
DisagreeLinkage |
NoLinkageOld |

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