是否有免费的 diff 实用程序可以使用 AST 而不是文本来比较两个 C++ 文件?
我的想法是这样的:
- 将两个文件都转换成 AST
- 将 AST 渲染为 C++ 代码(这使缩进规范化)
- 在这两者之间做正常的差异
- 还尝试检测已完成的简单重构(例如添加/删除/重命名成员)
最佳答案
[一位其他回答者要求张贴商业工具的名称。]
Semantic Designs 的 SmartDifferencer 工具将解析 C++,并根据 AST 计算差异;布局格式根本不重要。解析器是一个完整的 C++11 解析器。它可以解析大多数源文件而无需扩展大多数预处理器指令,只要它们是“结构化的”; C++ 预处理器的使用通常不像在 C 中那样滥用。
SmartDifferencer 有适用于其他语言的版本。
[披露:我是 Semantic Designs 的 CTO]
关于c++ - 可识别 C++ 的 Diff 实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244126/