language-c-0.9: Analysis and generation of C code
Copyright(c) 2008 Benedikt Huber
LicenseBSD-style
Maintainerbenedikt.huber@gmail.com
Stabilityalpha
Portabilityghc
Safe HaskellNone
LanguageHaskell98

Language.C.Analysis

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
Synopsis

Semantic representation

Error datatypes for the analysis

Traversal monad

Top level analysis

Analyzing declarations

Debug print