gpt4 book ai didi

c++ - 使用 gcc 插件获取类注释

转载 作者:行者123 更新时间:2023-11-28 06:18:22 26 4
gpt4 key购买 nike

我正在创建一个 gcc plugin在解析后分析 C++ 文件。该插件遍历类并生成有关它们的一些信息。该插件正在运行,这就是我浏览类(class)的方式。

    cp_binding_level* level(NAMESPACE_LEVEL(nameSpace));
for (decl = level->names; decl != 0; decl = TREE_CHAIN(decl)) {
tree type(TREE_TYPE(decl));
tree_code dc(TREE_CODE(decl));
tree_code tc;
if (dc == TYPE_DECL&& tc == RECORD_TYPE &&
!DECL_IS_BUILTIN (decl) && DECL_ARTIFICIAL (decl)) {
//Now we know this is a class
//Do something
}
}

我想选择他能分析哪一类,不能分析哪一类。我的第一个想法是添加某种注释,我会在解析类时阅读它,然后决定是否分析它。

我从未在 C++ 中使用过任何类型的注解,所以我不知道这是否可行。如果是这样,您会如何推荐我使用它们,并在插件中获取注释?如果不是,是否有一种好方法可以满足我的需要?

最佳答案

这是可以做到的,不太难,而且使用 GCC 插件是很常见的事情。

首先您必须注册一个新属性。 GCC 提供了 PLUGIN_ATTRIBUTES 回调作为方便的时间。然后,您的回调函数可以调用 register_attribute 来注册属性。这是 documented in the manual ,与您链接到的位置仅一个链接。

使用此函数,您可以注册另一个在应用属性时调用的回调。您必须阅读一些 GCC 头文件或源代码才能真正理解此函数应该做什么。但是,它可以很容易地跟踪它是否正在应用于某个类,如果是,请记录下来以供以后处理。

关于c++ - 使用 gcc 插件获取类注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com