[cfe-dev] Is Clang what I need?

Pedro Delgado Perez pedro.delgadoperez at mail.uca.es
Mon Jan 7 13:29:49 PST 2013


 
Thank you very much David.

Which interface would you recommend me to use for my purpose? I don't understand really well what are the difference among them (LibClang, Plugins, LibTooling or Clang Tools) and i would need to know the best option for me. What I want is to create a tool reusing Clang only to analyze C++ programs. If you need more information to give me an answer, please tell me what you would need to know.

Thanks,

Pedro D.

El dia 07 ene 2013 17:29, David Blaikie <dblaikie at gmail.com> escribió:
> On Mon, Jan 7, 2013 at 2:44 AM, Pedro Delgado Perez
> <pedro.delgadoperez at mail.uca.es> wrote:
> 
>> Hello,
>> I've just known Clang looking for a soution to the task i need to perform.
>> Well, what I need is to parser a C++ program in order to get some
>> information about the code and, after that, to change the code regarding
>> that information collected.For instance, I would need to know if a certain
>> program contains some arithmetic operators., obtaining a record with the
>> line where the operator is located and which operator is. I've been reading
>> about Clang and now I know you can go through the AST, but i'm not totally
>> sure if it's what I'm looking for because apart from the example I've
>> commented above, I would need a lot of kinds of information:- What are the
>> global and the local variables.- If there is an overriden member when a
>> class inherits from another.- If a method of a class is overloaded.-...I
>> need that information because I have to change the original program once I
>> have the record with the information. For instance, if in the code there is
>> a reference to an overriden member, I have to turn that reference into the
>> hidden member.
>> 
>> 
>> 
>> The other question I have is: is it worth the effort and the time to learn
>> how to use clang? I need an opinion to know how easy or tough is to learn
>> how to use it.
>> 
>> I hope you could lend me a hand. Thanks in advance.
>> 
> It depends a little on what alternatives you're considering. Clang
> isn't necessarily going to be easy to get started with, especially
> making source modifications, avoiding conflicts, etc, but it's
> probably the easiest thing available to do this job well.
> 
> The tooling infrastructure ( http://clang.llvm.org/docs/Tooling.html [ http://clang.llvm.org/docs/Tooling.html ] )
> and AST Matchers ( http://clang.llvm.org/docs/LibASTMatchers.html [ http://clang.llvm.org/docs/LibASTMatchers.html ] )
> are designed to make this sort of task as easy & painless as possible.
> 
> - David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130107/1f77a403/attachment.html>


More information about the cfe-dev mailing list