原文地址:http://clang.llvm.org/docs/Tooling.htmlhtml
Clang为实现须要一个程序的语法和语义信息的工具提供了基础设施。((译者注:为了便于理解,再意译一句)若是你想实现一个工具,而这个工具须要获取一个程序的语法和语义信息,那么恭喜你,Clang能够为你提供一些基础实现。)这个文档将给出使用不一样的方法去实现基于Clang的工具的一个简短介绍,包括它们的优势和缺点。架构
LibClang是一个稳定的高层次的Clang的C语言接口。若是不肯定LibClang是你想要用的接口,只有当你有一个好的理由不用LibClang的时候,这个时候你才能够去用别的接口。编程语言
若是遇到以下状况,那么就是典型的使用LibClang的时候:工具
若是遇到下列状况,请使用LibClang:
学习
若是遇到下列状况,请不要使用LibClang:
spa
Clang Plugins容许你在AST之上运行一些额外的动做,而这些动做做为编译的一部分。Plugins是运行的时候被编译器加载的动态库,她们很容易合并到你的构建环境中。
.net
若是遇到下列状况,请使用Clang Plugins:
code
若是遇到下列状况,请不要使用Clang Plugins:orm
若是遇到下列状况,请使用LibTooling:
Clang tools是一系列基于LibTooling架构基础之上构建的特殊的开发者工具,它们是Clang工程的一部分。它们的目标是自动化和改善C/C++开发者的核心开发活动。
咱们已经在构建或者计划构建的做为Clang工程的一部分例子工具备: