| Copyright | (c) Fontaine 2008 - 2011 |
|---|---|
| License | BSD3 |
| Maintainer | Fontaine@cs.uni-duesseldorf.de |
| Stability | experimental |
| Portability | GHC-only |
| Safe Haskell | None |
| Language | Haskell2010 |
Language.CSPM.AstUtils
Description
Some utility functions for converting the AST
- removeSourceLocations :: Data a => a -> a
- removeParens :: Data a => a -> a
- removeModuleAsserts :: Module a -> Module a
- unUniqueIdent :: Data a => a -> a
- computeFreeNames :: Data a => a -> FreeNames
- getModuleAsserts :: Module a -> [LAssertDecl]
- setNodeIdsZero :: Data a => a -> a
Documentation
removeSourceLocations :: Data a => a -> a Source #
removeSourceLocations sets all locationsInfos to NoLocation
removeParens :: Data a => a -> a Source #
removeParens removes all occurences of of Parens,
i.e. explicit parentheses from the AST
removeModuleAsserts :: Module a -> Module a Source #
Remove assert declarations from a module.
unUniqueIdent :: Data a => a -> a Source #
unUniqueIdent replaces the all UIdent with the Ident of the the new name, thus forgetting additional information like the bindingside, etc. Usefull to get a smaller AST.
computeFreeNames :: Data a => a -> FreeNames Source #
Compute the FreeNames of an Expression. This function does only work after renaming has been done. This implementation is inefficient.
getModuleAsserts :: Module a -> [LAssertDecl] Source #
Get the assert declarations of a module.
setNodeIdsZero :: Data a => a -> a Source #
Set all NodeIds to zero.