我刚刚开始探索GCC插件API的世界,我正在尝试扩展GCC以用于以下示例。
class Foo { ... };
Foo* f = __construct Foo(); // __construct is meant to be a new keyword
理想情况下,我希望该插件可以简单地将__construct
替换为new (foo_class_info)
之类的内容,这样您最终会得到
Foo* f = new (foo_class_info) Foo();
其中foo_class_info
已通过PLUGIN_FINISH_TYPE
回调提供(即__construct在预处理器传递时无法替换)。
实现这一目标的最佳/最简单方法是什么?我甚至不介意将一些用户土地模板代码与插件结合起来。
添加新通行证是否可行?如果是这样,我真的可以使用一些指针。
答案 0 :(得分:0)
插件从根本上无法改变语法。
你可以做的最多就是添加一个新的pragma,属性或内置函数,然后在以后的传递中执行一些操作。