<div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 17, 2012 at 7:55 PM, Douglas Gregor <span dir="ltr"><<a href="mailto:dgregor@apple.com" target="_blank">dgregor@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Okay, that's fair; but this could trivially be added as a parameter to the existing XML dumper. We don't need a whole separate, single-purpose tool for this.<br></div>
<div class="im">...</div><div class="im">
> Overall, a way to dump the AST is critical to writing clang tools,<br>
> especially while you're learning the AST. Being able to dump parts of<br>
> the AST of the source you want to work on makes it far easier to find<br>
> out why the AST looks the way it does at a certain place where your<br>
> refactoring doesn't work than trying to reproduce that with a minimal<br>
> source file that doesn't use any non-builtin includes. Many tool<br>
> writers are not hardcore C++ experts (the ones that are obviously<br>
> don't need the tool that much), and one of the goals for us is to make<br>
> writing C++ tools possible for normal people ;)<br>
<br>
</div>The XML dump isn't really a great way to learn the AST. Our normal dumper is far better for that purpose, IMO, because it's more complete and produces less noise.</blockquote></div><div><br></div><div>Basically, we don't need XML, we only need a format which is closer to an actual AST structure than just a C++ listing. Both XML and normal dumper use the same format for statements, which is nice. The problem with the normal dumper is how it outputs declarations. It basically outputs fragments in C++, which isn't much useful for those trying to figure out how AST looks like for declarations.If we could change its output to that LISP-style format used for statements, it would be much more helpful in our use-case.</div>
<div><br></div><div>Are there reasons for the normal dumper to exist in its current state? If there are no serious reasons, I could work on switching it's format. Otherwise we could add another dump format for declarations (consistent with the one used for statements), or replace XML with it.</div>
<div><br></div><div>What do you think about this?</div><div><br></div><div>I would also be glad to add an "-ast-dump-filter" option to clang, so we could select AST declaration nodes to dump by a substring. This would remove any need in a separate clang-ast-dump tool.</div>
<div><br></div>-- <br>
</div><div class="gmail_extra">Best regards,</div><div class="gmail_extra">Alexander Kornienko</div>