【问题标题】:How does Xcode know what symbols are in a project?Xcode 如何知道项目中有哪些符号?
【发布时间】:2011-12-19 00:48:10
【问题描述】:
我在看 doxygene,我注意到它的 Objective-C 输出不是最优的,所以我在看 doxygene 的内部结构(其中所有语法分析器合并成一个巨大的 blob),然后我决定它是要做很多工作才能弄清楚从哪里开始。
所以我想,好吧,让我们从一个似乎 Xcode 已经完成的 Objective-c 源文件创建一个字典/树开始(因为符号是可搜索的)。它似乎以某种方式使用 LLVM“clang”。有谁知道我如何调用“clang”来返回项目/文档中的符号结构?
【问题讨论】:
标签:
objective-c
xcode
doxygen
clang
abstract-syntax-tree
【解决方案1】:
Xcode 不直接为此使用“clang++”二进制文件。 clang++ 二进制文件实际上是一个非常小的 Clang C++ 库的包装器。 Xcode 使用 libclang(C++ 库的 C 包装器)来满足其 C++ 解析需求。
因此,要获得所需的信息,您需要使用 libclang。 On this page are the slides and video Doug Gregor(Clang 的主要开发人员)在 2010 年开发会议上发表的题为“libclang:思考超越编译器”的演讲。
clang 社区中的许多人表示有兴趣用 clang 替换 Doxygen 的解析器。所以你并不孤单。不过,我相信这不是一个小项目。