[cfe-dev] Requesting Help Understanding ASTs and LibTooling

Aryal, Saurav via cfe-dev cfe-dev at lists.llvm.org
Mon Jul 11 15:13:30 PDT 2016


Hi,

I have decided to use libclang because I feel like it would suit my purpose
more. I had run-time concerns with the python bindings but the C bindings
are working fine.

I still have a few more questions/concerns. Please see the README on
https://github.com/Saurav-K-Aryal/libclang-help for details.

The questions are also listed on the top of the file as comments.

Any help would be appreciated.

Thanking you.

Sincerely,
Saurav

On Mon, Jul 11, 2016 at 1:58 AM, Mikhail Ramalho <mikhail.ramalho at gmail.com>
wrote:

> Hi,
>
> If you're interested in libTooling, you can check ESBMC [0], more
> specifically our clang_c_converter [1].
>
> We use libTooling to generate the AST and we implement our own AST
> traverser code. Currently, it only works for C programs; in the future
> we'll release the C++ code.
>
> Thanks,
>
> [0] https://github.com/esbmc/esbmc
> [1]
> https://github.com/esbmc/esbmc/blob/master/clang-c-frontend/clang_c_convert.cpp
>
>
> 2016-07-08 20:57 GMT+01:00 Jonas Devlieghere via cfe-dev <
> cfe-dev at lists.llvm.org>:
>
>> On Fri, Jul 8, 2016 at 8:45 PM, Aryal, Saurav via cfe-dev
>> <cfe-dev at lists.llvm.org> wrote:
>> > Hi everyone,
>> >
>> > I am just starting out with Clang and working for a project where I am
>> > trying to generate and compare ASTs to measure code similarity.
>>
>> Welcome, good luck with your project!
>>
>> > I figured around a way using Clang to get the AST, but it turns out I am
>> > expected to use Libtooling.
>>
>> There are actually different interfaces available to interact with
>> Clang's AST. Which one is best depends on your use case. I'd recommend
>> looking at [1] to make an informed decision.
>>
>> > Anyone have an example where I can parse C++
>> > code to generate an AST using Libtooling.
>>
>> Yes; clang's documentation [2] contains an excellent tutorial. There
>> are also many blog post available that will get you started with
>> concrete examples, including one I wrote myself when I started looking
>> at the clang AST [3].
>>
>> > Also, would love design
>> > suggestions regarding comparing tree similarity. any examples with
>> > explanations would be really helpful.
>> >
>> > Thanking you.
>> >
>> > Sincerely,
>> > Saurav
>> >
>> > _______________________________________________
>> > cfe-dev mailing list
>> > cfe-dev at lists.llvm.org
>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> >
>>
>> [1] http://clang.llvm.org/docs/Tooling.html
>> [2] http://clang.llvm.org/docs/LibTooling.html
>> [3] https://jonasdevlieghere.com/understanding-the-clang-ast/)
>>
>> -- Jonas
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
>
>
>
> --
>
> Mikhail Ramalho.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160711/4887bd96/attachment.html>


More information about the cfe-dev mailing list