[cfe-dev] [LLVMdev] 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:


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 cfe-dev mailing list