language-c-0.4.7: 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.AstAnalysis

Contents

Description

Analyse the parse tree

Traverses the AST, analyses declarations and invokes handlers.

Synopsis

Top-level analysis

analyseAST :: MonadTrav m => CTranslUnit -> m GlobalDecls Source

Analyse the given AST

analyseAST ast results in global declaration dictionaries. If you want to perform specific actions on declarations or definitions, you may provide callbacks in the MonadTrav m.

Returns the set of global declarations and definitions which where successfully translated. It is the users responsibility to check whether any hard errors occurred (runTrav does this for you).

analyseExt :: MonadTrav m => CExtDecl -> m () Source

Analyse an top-level declaration

analyseFunDef :: MonadTrav m => CFunDef -> m () Source

Analyse a function definition

analyseDecl :: MonadTrav m => Bool -> CDecl -> m () Source

Analyse a declaration other than a function definition

Building blocks for additional analyses

Type checking

data ExprSide Source

Constructors

LValue 
RValue 

Instances

tStmt :: MonadTrav m => [StmtCtx] -> CStat -> m Type Source

Typecheck a statement, given a statement context. The type of a statement is usually void, but expression statements and blocks can sometimes have other types.