【发布时间】:2015-10-05 05:35:15
【问题描述】:
我有一个使用 libtooling 的现有且有效的源代码到源代码修改工具。现在我想把这个工具集成到clang中,这样用户就可以编译修改后的源代码,而无需实际保存在某个地方。
修改部分没有问题,Matchers + Rewriters 与 clang 的工作方式相同,我的问题是如何告诉编译器在我更改后重新解析源代码。
我目前的进展:
- 我在 cve-dev 上找到了一个对话,但没有具体信息如何进行
- 我也找到了clang::ASTUnit::Reparse,但我不知道怎么称呼它。在铿锵声源中,没有人使用它,我的每一次尝试都以崩溃为回报。
- StackOverflow 中有一个类似的问题,但没有很好的答案
- 有一些像traces这样的插件工具,它们做同样的源代码修改,但它只是调用编译器两次。
我希望基于前两个我最终找到一个可行的解决方案,但也许有人已经知道答案,并且可以帮助我举个例子,或者至少更具体的说明如何实现它?
【问题讨论】: