[cfe-dev] Clang beginner - how to parse multiple files?

Yaakov Davis yaakov.davis at gmail.com
Thu Apr 5 13:50:32 PDT 2012


OK, found it :)

On Thu, Apr 5, 2012 at 11:41 PM, Yaakov Davis <yaakov.davis at gmail.com>wrote:

> I have a c++ application which I wish to convert to C#.
> I can figure out some basic transformation rules which will do most of the
> work (wrap static constants and functions, expand macros and typedefs,
> remove pointers, etc.), then I'll do the rest by hand.
>
> Where are the ClangTool and CompilationDatabase classes defined? I was
> unable to locate them in the trunk.
>
>
> On Thu, Apr 5, 2012 at 11:21 PM, Manuel Klimek <klimek at google.com> wrote:
>
>> On Thu, Apr 5, 2012 at 9:50 PM, Yaakov Davis <yaakov.davis at gmail.com>
>> wrote:
>> > OK, thanks for the detailed info, I'll look into the linking process.
>>
>> I might be able to give some tips if you can tell me more about what
>> you're actually trying to do.
>>
>> If you want to run over the ASTs of multiple TUs in one file, you can
>> do that with the tooling infrastructure that's in. See
>>
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/ClangCheck.cpp?revision=154008&view=markup
>> for an example of how to set it up.
>>
>> The unit tests for the tooling:
>>
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/ToolingTest.cpp?revision=154008&view=markup
>> give you ideas of how to implement ASTConsumers and ASTFrontendActions
>> to get you started.
>>
>> The ASTContext for each run will be provided if you implement
>> HandleTranslationUnit in the ASTConsumer.
>>
>> Cheers,
>> /Manuel
>>
>>
>>
>>
>> >
>> > On Apr 5, 2012 10:39 PM, "Douglas Gregor" <dgregor at apple.com> wrote:
>> >>
>> >>
>> >> On Apr 5, 2012, at 12:15 PM, Yaakov Davis <yaakov.davis at gmail.com>
>> wrote:
>> >>
>> >> > Can the different compilers use the same ASTContext?
>> >>
>> >> No, they must have different ASTContexts.
>> >>
>> >> > E.g. say a.cpp contains Foo::bar() and b.cpp contains Foo::bar2();
>> will
>> >> > the Foo type in the semantic DeclContext contain both foo and foo2
>> after
>> >> > parsing both files?
>> >>
>> >> No, it won't. Separate translation units are separate until something
>> >> comes in to link them together.
>> >>
>> >> > Could you please provide an example how to setup the parsers?
>> >>
>> >> Sorry, I don't have time to write up a complete example now, but this
>> kind
>> >> of thing will get a lot easier soon with the current work on Tooling
>> >> infrastructure.
>> >>
>> >>        - Doug
>> >>
>> >
>> > _______________________________________________
>> > cfe-dev mailing list
>> > cfe-dev at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> >
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120405/e73f130f/attachment.html>


More information about the cfe-dev mailing list