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
Contents
Description
Analysis of the AST.
Currently, we provide a monad for analysis and analyze declarations and types. Especially note that there is no direct support for analyzing function bodies and constant expressions.
NOTE This is an experimental interface, and therefore the API will change in the future.
DONE:
- Name analysis framework
- File-scope analysis
- Declaration analysis
TODO:
- Type checking expressions
- Constant expression evaluation (CEE)
- Typed representation of attributes (depends on CEE)
- Normalized representation of initializers
- Support for analyzing function bodies (depends on CEE)
- Normalizing expressions and statements
- Formal rules how to link back to the AST using NodeInfo fields
- Typed assembler representation
Semantic representation
module Language.C.Analysis.SemRep
Error datatypes for the analysis
module Language.C.Analysis.SemError
Traversal monad
Top level analysis
Analyzing declarations
Debug print
module Language.C.Analysis.Debug