用于C的代码重构工具,可在GNU / Linux上使用? FOSS更可取

这个问题的变种已经被问到,但并不特定于GNU / Linux和C.我使用Komodo Edit作为我平时的编辑器,但我实际上更喜欢可以从CLI使用的东西。 我不需要C ++支持; 如果该工具只能处理普通的C,那很好。

我非常感谢任何方向,因为我无法找到任何东西。 我希望自己不会被迫'滚动'某些东西。

注意:请不要提及vim ; 我知道它存在,它的功能是什么。 我故意选择避开vim ,这就是为什么我使用Komodo(或服务器上的nano)。


我不认为纯粹的控制台重构工具会很好用。
我在Linux上使用Eclipse CDT来编写和重构C代码。
还有针对Emacs的Xrefactory http://www.xref.sk/xrefactory/main.html

如果一个非控制台重构工具也适合你。


您可以考虑编写GCC插件或MELT扩展(MELT是扩展GCC的领域特定语言)以满足您的需求。

但是,这种方法会花费你一些时间,因为你需要了解一些GCC内部。


仅适用于Windows,而不是FOSS,但你说“任何方向......”

我们的DMS Software Reengineering Toolkit“及其C前端可以将转换应用到C源代码,DMS可以配置为执行定制的,复杂的可靠转换,尽管配置并不像输入一个像”refactor frazzle by doobaz”。

主要的绊脚石之一仍然是预处理器。 DMS可以在典型的位置(围绕语句,表达式,if / for / while循环头,声明等)转换具有预处理器指令的代码,但其他“非结构化条件”给它带来麻烦。 您可以通过扩展预处理器指令来运行DMS,或者更加不重要的是,扩展那些给它带来麻烦的指令,但大多数人不喜欢这样做,因为他们更喜欢保留它们的预处理器指令。 所以它并不完美。

[另一个答案建议Concinelle,从我的观点来看,这看起来不错。 据我所知,它根本不处理预处理器指令; 我可能是错的,它可能会像DMS一样处理一些情况,但我相信它不能处理所有情况]。

你不想考虑自己动手。 构建一个转换/重构工具比从未尝试过的方式要困难得多。 你需要为(C)方言感兴趣的完整而准确的解析器,而这很难做到。 你需要一个预处理器,符号表,流程分析,转换,代码再生机器,......这些东西需要花费数年时间才能建立和获得正确的结果。 相信我,去过那里,做到了。

链接地址: http://www.djcxy.com/p/57795.html

上一篇: Code refactoring tools for C, usable on GNU/Linux? FOSS preferable

下一篇: How to set Action Mailer defaults after config/initializers run?