如何创建包含每个函数LOC的列表(c++)
How to create a list containing the LOC for each function (C++)
我想确保每个函数的函数体适合屏幕。因此,我想生成一个包含每个函数LOC的列表(在.cpp/.h -文件中,或者最好在目录中的所有源代码文件中)。例如,列表可以是一个包含
的csv文件。foo.cpp,foobar,42
foo.cpp,foozar,13
goo.cpp,bla,666
如果文件foo.cpp包含一个函数foobar,它有42行,等等…
你能推荐一些工具吗?
问题很简单。如果无论遇到什么c++都希望获得准确的数据,则需要一个具有预处理器功能的完整c++解析器。由于c++的复杂性,这是非常难以构建的(现在c++ 11是相当标准的,c++ 14也不甘落后)。基本上你的选择仅限于:
- Edison Design Group c++前端
- 叮当声 GCC
- 我们的DMS软件再造工具包及其c++前端
- Elsa(如果仍在维护)
这些都是大而复杂的引擎,需要为你的任务进行配置(尤其是GCC,无论你想要它成为什么,它都想成为一个编译器)。还有一个额外的复杂问题,可能对你有影响,也可能无关紧要:Clang、GCC和Elsa不处理MS方言,如果我理解正确的话。
如果你不关心你是否总是得到正确的答案,你可以构建一个非常简单的扫描仪来寻找明显的函数头,计数{…}和(…)以确保您知道函数体终止的位置。您可能需要识别名称空间和类结构,以便在其中查找函数声明。这似乎是最简单的解决方案,因此最快,最省力。
你可以为clang写一个插件。
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 一对向量构造函数:初始值设定项列表与显式构造
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 通过for循环使用用户输入填充列表
- C++:如何使函数只返回作为列表一部分的字符串
- 概念中的cv限定符需要表达式参数列表
- 下面是我为检测链接列表中的循环而制作的代码
- 建议在运行时将带有类实例的列表从c++导入qml
- 如何维护资源管理器项目视图中当前可见的项目列表
- 在卡萨布兰卡形成编码参数的列表
- 如何创建包含每个函数LOC的列表(c++)