[patch] improved ast-print-xml for C++

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch] improved ast-print-xml for C++

Sebastien Binet
hi,

please find in attachment a few (I hope) improvements I applied to
various files related to the ast-print-xml plugin.

2 changes are worth noticing:
 - I renamed the CXXMethodDecl node as CXXMethod (for consistency)
 - I added a default node implementation for all Decl and Types to
 prevent new crashes (for new types and decls) as per bug #5006

[my secret agenda is to make ast-print-xml as useful as gccxml wrt API
wrapping.]

hth,
sebastien.
--
#########################################
# Dr. Sebastien Binet
# Laboratoire de l'Accelerateur Lineaire
# Universite Paris-Sud XI
# Batiment 200
# 91898 Orsay
#########################################

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

improved.cxx.support.for.ast.print.xml.patch (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [patch] improved ast-print-xml for C++

Douglas Gregor

On May 10, 2010, at 10:59 AM, Sebastien Binet wrote:
> please find in attachment a few (I hope) improvements I applied to
> various files related to the ast-print-xml plugin.
>
> 2 changes are worth noticing:
> - I renamed the CXXMethodDecl node as CXXMethod (for consistency)
> - I added a default node implementation for all Decl and Types to
> prevent new crashes (for new types and decls) as per bug #5006

Okay, committed as r103412.

> [my secret agenda is to make ast-print-xml as useful as gccxml wrt API
> wrapping.]


I have a secret agenda w.r.t. XML output as well, but it's very different: I want it to either become a clean representation of C++ ASTs in XML, or I want it removed from Clang. That's a strong statement, but here's what I think Clang's XML output should be:

        - Complete, covering all of C/C++/Objective-C: We can achieve this incrementally.

        - Documented with Schema: we need to describe what the XML format is, and be able to validate it

        - Tested: we should verify that the generated XML matches the Schema

        - C++, not Clang: The XML format should describe C++, not Clang's ASTs. Clang's ASTs are not stable and aren't necessarily the best way to describe a C++ program. XML formats are supposed to be for interchange, so they have to be stable, and ideally could be generated by another front end as well.

My concern with the current XML dump is that it claims more than it does: it isn't complete enough to be generally useful, and it doesn't deliver any of the benefits that XML should.

        - Doug
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [patch] improved ast-print-xml for C++

Sebastien Binet
Excerpts from Douglas Gregor's message of 2010-05-10 20:08:02 +0200:

>
> On May 10, 2010, at 10:59 AM, Sebastien Binet wrote:
> > please find in attachment a few (I hope) improvements I applied to
> > various files related to the ast-print-xml plugin.
> >
> > 2 changes are worth noticing:
> > - I renamed the CXXMethodDecl node as CXXMethod (for consistency)
> > - I added a default node implementation for all Decl and Types to
> > prevent new crashes (for new types and decls) as per bug #5006
>
> Okay, committed as r103412.

thanks.

> > [my secret agenda is to make ast-print-xml as useful as gccxml wrt API
> > wrapping.]
>
>
> I have a secret agenda w.r.t. XML output as well, but it's very
> different: I want it to either become a clean representation of C++
> ASTs in XML, or I want it removed from Clang. That's a strong
> statement, but here's what I think Clang's XML output should be:
>
>     - Complete, covering all of C/C++/Objective-C: We can achieve
>       this incrementally.
>
>     - Documented with Schema: we need to describe what the XML
>       format is, and be able to validate it
>
>     - Tested: we should verify that the generated XML matches the
>       Schema
>
>     - C++, not Clang: The XML format should describe C++, not
>       Clang's ASTs. Clang's ASTs are not stable and aren't
>       necessarily the best way to describe a C++ program. XML
>       formats are supposed to be for interchange, so they have to be
>       stable, and ideally could be generated by another front end as
>       well.
>
> My concern with the current XML dump is that it claims more than it
> does: it isn't complete enough to be generally useful, and it
> doesn't deliver any of the benefits that XML should.

I see.
My agenda is a bit less ambitious.

but, in the off chance XML output were in the end removed from trunk,
would relying on the new de/serialization work (the PCHReader/Writer)
be a smart move ?

cheers,
sebastien.
--
#########################################
# Dr. Sebastien Binet
# Laboratoire de l'Accelerateur Lineaire
# Universite Paris-Sud XI
# Batiment 200
# 91898 Orsay
#########################################
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [patch] improved ast-print-xml for C++

Douglas Gregor

On May 10, 2010, at 1:58 PM, Sebastien Binet <[hidden email]> wrote:

Excerpts from Douglas Gregor's message of 2010-05-10 20:08:02 +0200:

On May 10, 2010, at 10:59 AM, Sebastien Binet wrote:
[my secret agenda is to make ast-print-xml as useful as gccxml wrt API
wrapping.]


I have a secret agenda w.r.t. XML output as well, but it's very
different: I want it to either become a clean representation of C++
ASTs in XML, or I want it removed from Clang. That's a strong
statement, but here's what I think Clang's XML output should be:

   - Complete, covering all of C/C++/Objective-C: We can achieve
     this incrementally.

   - Documented with Schema: we need to describe what the XML
     format is, and be able to validate it

   - Tested: we should verify that the generated XML matches the
     Schema

   - C++, not Clang: The XML format should describe C++, not
     Clang's ASTs. Clang's ASTs are not stable and aren't
     necessarily the best way to describe a C++ program. XML
     formats are supposed to be for interchange, so they have to be
     stable, and ideally could be generated by another front end as
     well.

My concern with the current XML dump is that it claims more than it
does: it isn't complete enough to be generally useful, and it
doesn't deliver any of the benefits that XML should.

I see.
My agenda is a bit less ambitious.

I understand.

but, in the off chance XML output were in the end removed from trunk,
would relying on the new de/serialization work (the PCHReader/Writer)
be a smart move?

API wrapping is probably best implemented as either a custom ASTConsumer (which has full, direct access to the AST after parsing) or a user of the C bindings (which would probably need more work to expose enough of the AST for wrapping). I actually think that these are better solutions even if XML dumping remains in the tree. 

  - Doug

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [patch] improved ast-print-xml for C++

Olaf Krzikalla
In reply to this post by Douglas Gregor
Hi,

Douglas Gregor schrieb:
> I have a secret agenda w.r.t. XML output as well, but it's very different: I want it to either become a clean representation of C++ ASTs in XML, or I want it removed from Clang. That's a strong statement, but here's what I think Clang's XML output should be:
>
> - Complete, covering all of C/C++/Objective-C: We can achieve this incrementally.
>  
Thats what I've thought a year ago. Apparently it isn't that easy, esp.
since the C++ development has overrun me.

> - Documented with Schema: we need to describe what the XML format is, and be able to validate it
>  
That's what the *XML.def files are all about. You've (correctly)
insisted that I introduced them and IIRC I did it in a way that they are
easy convertible.

> - C++, not Clang: The XML format should describe C++, not Clang's ASTs. Clang's ASTs are not stable and aren't necessarily the best way to describe a C++ program. XML formats are supposed to be for interchange, so they have to be stable, and ideally could be generated by another front end as well.
>  
Hmm, but this point is really just a new project. Which is the best way
to describe a C++ program? Is it the plain source code? Or is it the
AST? Or something completely different? And why is that "something " not
used elsewhere? Well, I still think, that XML-dumping the AST is not the
worst way, even if you have to adjust it constantly.

Best regards
Olaf Krzikalla
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev