зеркало из https://github.com/microsoft/clang.git
Added text on librewrite and libanalysis to the README.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50904 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
fc58452341
Коммит
f07410c6cd
24
README.txt
24
README.txt
|
@ -23,30 +23,50 @@ I. Introduction:
|
||||||
carefully designed as the following components:
|
carefully designed as the following components:
|
||||||
|
|
||||||
libsupport - Basic support library, reused from LLVM.
|
libsupport - Basic support library, reused from LLVM.
|
||||||
|
|
||||||
libsystem - System abstraction library, reused from LLVM.
|
libsystem - System abstraction library, reused from LLVM.
|
||||||
|
|
||||||
libbasic - Diagnostics, SourceLocations, SourceBuffer abstraction,
|
libbasic - Diagnostics, SourceLocations, SourceBuffer abstraction,
|
||||||
file system caching for input source files. This depends on
|
file system caching for input source files. This depends on
|
||||||
libsupport and libsystem.
|
libsupport and libsystem.
|
||||||
|
|
||||||
libast - Provides classes to represent the C AST, the C type system,
|
libast - Provides classes to represent the C AST, the C type system,
|
||||||
builtin functions, and various helpers for analyzing and
|
builtin functions, and various helpers for analyzing and
|
||||||
manipulating the AST (visitors, pretty printers, etc). This
|
manipulating the AST (visitors, pretty printers, etc). This
|
||||||
library depends on libbasic.
|
library depends on libbasic.
|
||||||
|
|
||||||
|
|
||||||
liblex - C/C++/ObjC lexing and preprocessing, identifier hash table,
|
liblex - C/C++/ObjC lexing and preprocessing, identifier hash table,
|
||||||
pragma handling, tokens, and macros. This depends on libbasic.
|
pragma handling, tokens, and macros. This depends on libbasic.
|
||||||
|
|
||||||
libparse - C (for now) parsing and local semantic analysis. This library
|
libparse - C (for now) parsing and local semantic analysis. This library
|
||||||
invokes coarse-grained 'Actions' provided by the client to do
|
invokes coarse-grained 'Actions' provided by the client to do
|
||||||
stuff (e.g. libsema builds ASTs). This depends on liblex.
|
stuff (e.g. libsema builds ASTs). This depends on liblex.
|
||||||
|
|
||||||
libsema - Provides a set of parser actions to build a standardized AST
|
libsema - Provides a set of parser actions to build a standardized AST
|
||||||
for programs. AST's are 'streamed' out a top-level declaration
|
for programs. AST's are 'streamed' out a top-level declaration
|
||||||
at a time, allowing clients to use decl-at-a-time processing,
|
at a time, allowing clients to use decl-at-a-time processing,
|
||||||
build up entire translation units, or even build 'whole
|
build up entire translation units, or even build 'whole
|
||||||
program' ASTs depending on how they use the APIs. This depends
|
program' ASTs depending on how they use the APIs. This depends
|
||||||
on libast and libparse.
|
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
|
libcodegen - Lower the AST to LLVM IR for optimization & codegen. Depends
|
||||||
on libast.
|
on libast.
|
||||||
|
|
||||||
clang - An example driver, client of the libraries at various levels.
|
clang - An example driver, client of the libraries at various levels.
|
||||||
This depends on all these libraries, and on LLVM VMCore.
|
This depends on all these libraries, and on LLVM VMCore.
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче