Kao
Kao

Reputation: 7374

Can I get an XML AST of C/C++/Java code without compiling it?

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:

Are there any other alternatives?

Upvotes: 8

Views: 1411

Answers (1)

Ira Baxter
Ira Baxter

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

Related Questions