[cfe-dev] Clang -ast-dump-xml question

Philip Craig philipjcraig at gmail.com
Thu Mar 7 22:20:31 PST 2013


On 7 March 2013 01:44, Matthias Grimmer <grimmer at ssw.jku.at> wrote:
> No, the goal is definitely not to built a toy example.
> We have to be able to process all real life C applications, and therefore
> serialize all information that is necessary.
> Can you recommend the ASTDumper.cpp / -ast-dump as a good reference
> implementation? It seams that ASTDumper.cpp / -ast-dump does pretty much
> what we want, except from the output format.

You may want to use RecursiveASTVisitor instead of modelling it on
ASTDumper. I think RAV is the preferred interface for C++ tools, and I
consider it a flaw that ASTDumper duplicates some of the traversal
logic that RAV contains.

>
> Thanks in advance
>
> - Matthias
>
> On 03/06/2013 04:24 PM, Manuel Klimek wrote:
>
> On Wed, Mar 6, 2013 at 7:14 AM, Douglas Gregor <dgregor at apple.com> wrote:
>>
>>
>> On Mar 5, 2013, at 2:41 AM, Matthias Grimmer <grimmer at ssw.jku.at> wrote:
>>
>> Hi
>>
>> we are using clang and its -ast-dump-xml feature. Our goal is to convert
>> the serialized clang-AST to a different code representation.
>> We think that the output, that -ast-dump-xml produces, is not well suited
>> for parsing. Statements are represented as ASCII styled trees and also
>> contain parts that
>> confuse XML parsers (e.g. <line:18:2, col:18>).
>>
>>
>> The pseudo-XML dump is a debugging aid. It's not a stable, useful format
>> on which to build tools. Tools should be built on top of the Clang AST,
>> either through libclang (for a stable but not-very-rich AST representation)
>> or the C++ AST.
>
>
> Wasn't there a plan to get rid of the XMLish dump?
>
> Cheers,
> /Manuel
>
>>
>>
>> Is there a better way to get a serialized version of the clang AST (XML,
>> or any other format that is easier to parse)?
>>
>>
>> No, there isn't.
>>
>> We would like to avoid writing a clang AST visitor for this purpose.
>>
>>
>> Writing a Clang AST visitor or libclang client is really the best way to
>> do this. There is no way to get sufficient information out of the debugging
>> dumps to build a tool, unless your goal is to build a simple toy example
>> that handles only a small part of C(++).
>>
>> - Doug
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>



More information about the cfe-dev mailing list