Reputation: 7374
I want to create an XML file with AST representation of source code, but without compiling it. I didn't find any sufficient solution so far. Here is what I tried:
clang -cc1 -ast-print-xml
- it would be nice, but it was removed from clangAre there any other alternatives?
Upvotes: 8
Views: 1411
Reputation: 95410
For Java, see What would an AST (abstract syntax tree) for an object-oriented programming language look like?
For C, see get human readable AST from c++ code
Both of these are produced by one engine: our DMS Software Reengineering Toolkit. DMS also has a full C++11 parser that can produce similar XML. (EDIT Jan 2016: now full C++ 14 for GCC and Visual C++).
I don't think XML is really a good idea: it is enormous and klunky, and the analysis tools you can bring to bear on it are ... what? XSLT: That's not very useful for analyzing programs. Read the XML into a DOM and climb over that? You'll find that you are missing lots of useful support (symbol tables, etc.); AST's are just not enough. See my essay on Life After Parsing (check my bio or google).
You are better off using a set of integrated machinery that provides all kinds of consistent support for analyzing (multiple) programming languages (using the ASTs as a foundation). This is what DMS is designed to do.
Upvotes: 3