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. |