parser的核心技术

clang 是一个非常工程化实现的编译器前端

  • 和 llvm 一样采用基于库的设计,前端当中词法解析,语法解析,语义分析分离在自己对应的目录,非常便于扩展实现其他功能。

  • 比如在 lsp 协议出来之后,clang 马上就实现了 clangd,ccls 等 language server,而隔壁的 gcc 由于代码量庞大且各个阶段耦合比较严重,并没能够提供好的解决方案。

  • 但是工程化代码带来的另一个问题就是他的逻辑碎片的很严重,因为你作为一个初入 llvm 的人,不知道从哪里入手,这就是本篇文章的目的,代你粗略认识一下 clang。

Read More