1
1
问题很简单。如果无论遇到什么C++,您都希望获得准确的数据,那么您将需要一个具有预处理器功能的完整C++解析器。由于C++的复杂性,这很难构建(现在C++11是相当标准的,C++14也不落后)。您的选择几乎限于:
这些是大型、复杂的引擎,需要为您的任务进行配置(特别是GCC,无论您希望它是什么,它都希望成为编译器)。另外一个复杂的问题可能对你很重要,也可能不重要:如果我理解正确的话,Clang、GCC和Elsa不会处理MS方言。 如果你不在乎你是否一直得到正确的答案,你可以建立一个非常简单的扫描器来寻找明显的函数头,计数{…}和(…),以确保你知道函数体的终止位置。您可能需要识别名称空间和类构造,才能知道在它们内部查找函数声明。这似乎是最简单的解决方案,因此时间最快,工作量最小。 |