【发布时间】:2012-10-18 14:46:23
【问题描述】:
我将 C++ 方法的主体作为 String 获取,并希望获取此代码中使用的所有方法的列表。 什么工具最适合做这样的解析?
它必须支持所有情况:
opSomeMethod();
someObject.someMethod();
someObject->someMethod();
最好用 Java 编写,但也可以是在控制台上运行的小型 c++ 程序。
【问题讨论】:
-
一个 C++ 编译器跃入脑海。
-
Clang 可能是您最好的选择,尽管您可以全力以赴并为 ANTLR 或任何其他解析器生成器使用 C++ 语法之一。
-
WhozCraig:看起来有点复杂,你能用简单的例子告诉我你指的是哪个编译器飞跃吗? @Captain Obvlious:你能给我举个例子吗,我试图找到从代码片段中获取这些函数名称的最简单和干净的方法?
-
这件事我必须和队长一起去。它可能提供了正确拾取符号的最佳机会。即使这样,其中一些也几乎不可能完全计算出来。尤其是在 obj.mthd() 实际上触发 void *(mthd)() 的情况下,它是 obj 类的成员 variable,它恰好也是一个函数指针。
-
您实际上需要一个完整的 C++ 前端才能在所有可能的情况下正确执行此操作。解析器还不够。