在C或C++源文件中扩展单个宏

use*_*101 6 c c++ c-preprocessor

我有大量的c ++源文件,我想通过扩展我指定的单个函数宏来转换,并保持所有其他预处理指令不变.宏的论点通常涉及parens和braces以及paren protected逗号,因此使用sed和kin这样做似乎并不简单.

更新:我们的代码大量使用宏来生成锅炉板(例如swig的帮助程序代码).由于我们已经更好地弄清楚如何做某些事情,各种宏不再做任何非常有趣的事情(例如只是声明一些函数),并且许多人抱怨他们使代码更难阅读.我想扩展那些不那么有趣的宏,扩展到简单的C++代码.

sha*_*ors 2

我通过在 python 中使用正则表达式来完成这类事情。您可以编写一个相当短的脚本来处理大量文件,并对每个文件运行一些正则表达式。正则表达式可能是最耗时的部分。