如何编写一个以C代码为输入的C代码生成器?
作者:互联网
我们有一个CORBA实现,可以为我们自动生成Java和C存根.由于CORBA生成的代码难以使用,因此我们需要围绕CORBA代码编写包装器/帮助器.因此,我们有一个两步的代码生成过程(是的,我知道这很不好):
CORBA IDL->烦人的CORBA生成的代码->有用的包装器/帮助器功能
使用Java的反射,我可以检查CORBA生成的代码,并使用该代码生成其他代码.但是,由于C没有反射,因此我不确定如何在C端进行反射.我应该使用C解析器吗? C模板?
TLDR:如何使用生成的C代码作为输入来生成C代码?
解决方法:
您是否考虑过退一步并将IDL用作自定义代码生成器的源?可能您有一些包装程序代码来隐藏诸如重复,var,ptr等之类的东西.我们有一个基于Ruby的CORBA IDL编译器,当前可生成Ruby和C代码.可以使用客户生成器进行扩展,有关RIDL和R2CORBA的信息,请参见http://www.remedy.nl.
另一种选择是检查我们正在处理的IDL至C 11语言映射,有关http://taox11.remedy.nl的更多详细信息.此新语言映射更易于使用,并使用标准类型和STL容器进行处理.
标签:c,reflection,parsing,code-generation,corba 来源: https://codeday.me/bug/20191009/1881317.html