[LLVMdev] [cfe-dev] Is it possible to convert C++ code to C++/CX code via a plugin of clang?

Douglas Gregor dgregor at apple.com
Thu Jun 7 21:28:16 PDT 2012


On Jun 7, 2012, at 8:13 PM, 陳韋任 (Wei-Ren Chen) wrote:

> 
>  CC'ed to clang ML. You can post clang question on clang ML. :-)
> 
> On Thu, Jun 07, 2012 at 06:23:15PM +0800, yangzhi0104 at sohu.com wrote:
>> Hello Guys,
>> 
>> I am developing a plugin of clang and hope it can convert some C++ functions to
>> C++/CX wrapper classes for WinRT system. If so, it would do a lot of work
>> automatically.
>> 
>> Now I have been somewhere. Using clang libraries, I could fetch the elements of
>> C++ code for example, return type, function name, parameter list and others.
>> Should I inherit "clang::Decl" to express C++/CX elements like Objective-C
>> does?
>> 
>> I think if I want to output C++/CX code using clang, I should inherit some
>> classes in CodeGen. Should I do this? Or is it possible to be done in a plugin?
>> 
>> Could you help me?

It sounds like your goal is to take C++ code as an input and then to generate C++/CX. If so, you can do this with either a plugin or (better yet) with the tooling infrastructure. The various options are described here:

	http://clang.llvm.org/docs/Tooling.html

Your best bet would be to use Clang as a source-to-source translation from C++ to C++/CX. That way, you don't have to extend Clang to actually represent C++/CX. Rather, you just emit the C++/CX source code (as text) and can hand that off to a C++/CX compiler.

If your actual plan is to parse C++/CX in Clang, that cannot be done with a plugin or with tooling. You would need to write significant extensions to Clang's parser, AST, semantic analysis, and IR generation.

	- Doug





More information about the llvm-dev mailing list