| Portability | ghc |
|---|---|
| Stability | alpha |
| Maintainer | jwlato@gmail.com |
| Safe Haskell | None |
Language.ObjC.Analysis.AstAnalysis
Description
Analyse the parse tree
Traverses the AST, analyses declarations and invokes handlers.
- analyseAST :: MonadTrav m => CTranslUnit -> m GlobalDecls
- analyseExt :: MonadTrav m => CExtDecl -> m ()
- analyseFunDef :: MonadTrav m => CFunDef -> m ()
- analyseDecl :: MonadTrav m => Bool -> CDecl -> m ()
- analyseFunctionBody :: MonadTrav m => NodeInfo -> VarDecl -> CStat -> m Stmt
- defineParams :: MonadTrav m => NodeInfo -> VarDecl -> m ()
- tExpr :: MonadTrav m => [StmtCtx] -> ExprSide -> CExpr -> m Type
- data ExprSide
- tStmt :: MonadTrav m => [StmtCtx] -> CStat -> m Type
- data StmtCtx
- tDesignator :: MonadTrav m => Type -> [CDesignator] -> m Type
- defaultMD :: MachineDesc
Top-level analysis
analyseAST :: MonadTrav m => CTranslUnit -> m GlobalDeclsSource
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
defineParams :: MonadTrav m => NodeInfo -> VarDecl -> m ()Source
Type checking
tStmt :: MonadTrav m => [StmtCtx] -> CStat -> m TypeSource
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.
tDesignator :: MonadTrav m => Type -> [CDesignator] -> m TypeSource