1

使用 Eclipse 可以完成什么级别的 C++ 解析以进行插件开发?我很想知道是否有一种方法可以访问 C++ 类类型、方法签名等,并使用我从原始类解析/读取/分析中收集的信息创建另一个类。

我看过许多 C++ 前端工具,例如 EDG、ROSE 和 CodeBoost,但它们看起来非常复杂(EDG 尽管很多人说它是最好的,但它有点超出我的价格范围),接下来我想of 是 Eclipse,因为我知道它可以为 Java 生成 AST,但我不知道它是否可以为 C++ 做同样的事情。我一直在寻找教程无济于事,所以我来这里寻求帮助/建议。

4

1 回答 1

0

编辑 5/23:

GIYF:提供给 Google 的短语“Eclipse C++ 解析器”在 CDT 文档中生成了这一行: http ://wiki.eclipse.org/CDT/designs/Overview_of_Parsing

无论您选择哪种解析器,您都会发现涉及到处理它。它不是解析器机器;它的 C++ 本身。

CDT 确实解析 C++。我不知道它是否还支持 C++11。我知道有人尝试用它在 C++ 上构建重构工具,并且该过程产生了明显可用但不是很好的结果。问题之一是 CDT 显然无法修改其 AST。您必须发出某种文本补丁并重新处理源代码。

如果您检查过那组 C++ 解析器,您应该考虑我们的C++11 前端

它生成 AST 和符号表,以及控制流分析。它可以分析/转换代码,并重新生成可编译的源代码。它包括下面的通用转换机器,直接应用于树木。您不必发出补丁并重新解析。

PS:EDG和Rose真的是一样的;Rose 只使用 EDG。EDG 没有任何转型能力。罗斯确实有它,但它看起来很复杂,但后来我被自己的工具宠坏了。

于 2012-05-22T22:01:58.470 回答