libclang is the C interface to the Clang LLVM front-end. It’s a powerful way for C & Objective-C programs to introspect their own internal structure and composition.
| libsupport | Basic support library, from LLVM. |
| libsystem | System abstraction library, from LLVM. |
| libbasic | Diagnostics, SourceLocations, SourceBuffer abstraction, file system caching for input source files. |
| libast | Provides classes to represent the C AST, the C type system, builtin functions, and various helpers for analyzing and manipulating the AST (visitors, pretty printers, etc). |
| liblex | Lexing and preprocessing, identifier hash table, pragma handling, tokens, and macro expansion. |
| libparse | Parsing. is library invokes coarse-grained Actions provided by the client (e.g. libsema builds ASTs) but knows nothing about ASTs or other client-specific data structures. |
| libsema | Semantic Analysis. is provides a set of parser actions to build a standardized AST for programs. |
| libcodegen | Lower the AST to LLVM IR for optimization & code generation. |
| librewrite | Editing of text buffers (important for code rewriting transformation, like refactoring). |
| libanalysis | Static analysis support. |