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

Yaakov Davis yaakov.davis at gmail.com
Thu Apr 5 13:41:16 PDT 2012


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/6e6f6d84/attachment.html>


More information about the cfe-dev mailing list