aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.txt24
1 files changed, 22 insertions, 2 deletions
diff --git a/README.txt b/README.txt
index 7763f0ba07..3e795a1d78 100644
--- a/README.txt
+++ b/README.txt
@@ -23,30 +23,50 @@ I. Introduction:
carefully designed as the following components:
libsupport - Basic support library, reused from LLVM.
+
libsystem - System abstraction library, reused from LLVM.
libbasic - Diagnostics, SourceLocations, SourceBuffer abstraction,
file system caching for input source files. This depends on
libsupport and libsystem.
+
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). This
library depends on libbasic.
-
+
+
liblex - C/C++/ObjC lexing and preprocessing, identifier hash table,
pragma handling, tokens, and macros. This depends on libbasic.
+
libparse - C (for now) parsing and local semantic analysis. This library
invokes coarse-grained 'Actions' provided by the client to do
stuff (e.g. libsema builds ASTs). This depends on liblex.
+
libsema - Provides a set of parser actions to build a standardized AST
for programs. AST's are 'streamed' out a top-level declaration
at a time, allowing clients to use decl-at-a-time processing,
build up entire translation units, or even build 'whole
program' ASTs depending on how they use the APIs. This depends
on libast and libparse.
-
+
+ librewrite - Fast, scalable rewriting of source code. This operates on
+ on the raw syntactic text of source code, allowing a client
+ to insert and delete text in very large source files using
+ the same source location information embedded in ASTs. This
+ is intended to be a low-level API that is useful for
+ higher-level clients and libraries such as code refactoring.
+
+ libanalysis - Source-level dataflow analysis useful for performing analyses
+ such as computing live variables. It also includes a
+ path-sensitive "graph-reachability" engine for writing
+ analyses that reason about different possible paths of
+ execution through source code. This is currently being
+ employ to write a set of checks for finding bugs in software.
+
libcodegen - Lower the AST to LLVM IR for optimization & codegen. Depends
on libast.
+
clang - An example driver, client of the libraries at various levels.
This depends on all these libraries, and on LLVM VMCore.