Are there any compiler frameworks that tools to parse code (C/C++ at a minimum), and analyse, transform, and manipulate the AST?<p>We've been using the Rose compiler framework (http://rosecompiler.org/) in our group for some time.
However, it's not my favorite and I'd like to use an alternative.<p>I've been wondering if there was something similar that was better maintained and supported.
LLVM seems like an obvious choice, but it's too low level to be really effective.
We would end up writing a lot more analysis to discover things that are obvious at high-level representations ("Is that a for loop?").<p>Looking for something:
1) very accessible; other people should be able to build and use my transformations with relative ease.
2) well documented; no mysterious functions and types that I have to use.
3) easy-to-use/intuitive (for compiler writers).<p>Thanks!
I think it is great that you are into this kind of stuff. I am as well, as I find it one of the most interesting things to do. "The AST" is subjective, however. We know it is a tree data structure, but most compilers implemented it differently. Also, AST generation is typically derived from the parsing stage, then the AST is taken to be compiled. I think you should look into GNU Bison.