您可以在这里查看:
http://codesynthesis.com/~boris/blog/2010/05/03/parsing-cxx-with-gcc-plugin-part-1/
这是如何使用 gcc 插件接口解析 C++ 代码的描述。其他语言也应以同样的方式处理。
您也可以尝试来自 mozilla 的猪肉: https:
//wiki.mozilla.org/Pork
当我尝试它(猪肉)时,我花了大约一个小时来修复编译问题,但随后我可以编写如下脚本:
rewrite SyncPrimitiveUpgrade {
type PRLock* => Mutex*
call PR_NewLock() => new Mutex()
call PR_Lock(lock) => lock->Lock()
call PR_Unlock(lock) => lock->Unlock()
call PR_DestroyLock(lock) => delete lock
}
Run Code Online (Sandbox Code Playgroud)
所以它找到了所有类型的 PRLock 并用 Mutex 重新电镀它,它还搜索 PR_NewLock 等函数的调用并将其替换为“new Mutex”。
归档时间: |
|
查看次数: |
2923 次 |
最近记录: |