我想解析一个目录树,找到每一个*.cpp
,然后去掉所有的函数,留下mock。你知道吗
解析树没有问题。去内脏比较困难。你知道吗
我当前正在将源文件读入一个字符串,并逐字符循环。如果我看到一个封闭的圆括号)
,下一个非空白字符是一个大括号{
,那么我就有了一个函数start。你知道吗
然后我就可以停止写输出,一边数开大括号和关大括号,直到到达函数末尾匹配的结束大括号}
。你知道吗
代码是可怕的,错误和不断变化,所以几乎不值得张贴。你知道吗
有没有一个优雅的解决方案,可能涉及regex,它将删除一个文件中所有函数的主体,其余的保持不变?你知道吗
如果它能够检测函数的类型并生成一个return语句,那就有好处了,但如果需要的话,我自己也能弄清楚。你知道吗
您可以使用解析器,clangapi提供了解析器,并且您有python绑定:https://github.com/llvm-mirror/clang/tree/master/bindings/python
本文可以给您一些关于如何使用它的见解:http://szelei.me/code-generator/
还有一些包装器可以让你的工作更轻松,比如:https://github.com/sztomi/cmonster
相关问题 更多 >
编程相关推荐