2018-03-15 00:04:45 +08:00
|
|
|
This is an example of Clang based interpreter, for executing standalone C/C++
|
2010-02-25 16:49:05 +08:00
|
|
|
programs.
|
|
|
|
|
|
|
|
It demonstrates the following features:
|
|
|
|
1. Parsing standard compiler command line arguments using the Driver library.
|
|
|
|
|
|
|
|
2. Constructing a Clang compiler instance, using the appropriate arguments
|
|
|
|
derived in step #1.
|
|
|
|
|
|
|
|
3. Invoking the Clang compiler to lex, parse, syntax check, and then generate
|
|
|
|
LLVM code.
|
|
|
|
|
2014-07-01 11:19:50 +08:00
|
|
|
4. Use the LLVM JIT functionality to execute the final module.
|
2010-02-25 16:49:05 +08:00
|
|
|
|
2018-03-15 00:04:45 +08:00
|
|
|
5. Intercepting a Win64 library call to allow throwing and catching exceptions
|
|
|
|
in and from the JIT.
|
|
|
|
|
2010-02-25 16:49:05 +08:00
|
|
|
The implementation has many limitations and is not designed to be a full fledged
|
2018-03-15 00:04:45 +08:00
|
|
|
interpreter. It is designed to demonstrate a simple but functional use of the
|
2010-02-25 16:49:05 +08:00
|
|
|
Clang compiler libraries.
|