GCC插件添加通行证以引入新关键字



我刚刚开始探索GCC插件API的世界,我正在尝试扩展以下示例的GCC。

class Foo { ... };
Foo* f = __construct Foo(); // __construct is meant to be a new keyword

理想情况下,我希望插件简单地用new (foo_class_info)替换__construct,因此您最终会

Foo* f = new (foo_class_info) Foo();

通过 PLUGIN_FINISH_TYPE可用foo_class_info的地方(即在预处理器通行证上无法替换__ __construct)。

实现这一目标的正确/最简单方法是什么?我什至不介意将某些用户模板代码与插件结合在一起。

添加新通行证是要走的路吗?如果是这样,我真的可以使用一些指针。

插件从根本上无法更改语法。

您可以做的最多的是添加一个新的pragma,属性或内置,然后在以后的通过中对此进行操作。

最新更新