diff --git a/recursiveDescentParsers/cplusplus/README.md b/recursiveDescentParsers/cplusplus/README.md index 537ab0d8a294b50dc81283586f80450eff2c3bb7..c9275c6d25b92891ee6b5fdb0191d1569fb70060 100644 --- a/recursiveDescentParsers/cplusplus/README.md +++ b/recursiveDescentParsers/cplusplus/README.md @@ -15,13 +15,24 @@ There are (or will be some day) subdirectories here: This code take mathematical expressions and evaluates them, i.e. it outputs numbers. - 2. `halfBakedCompiler` + 1. `interpreter++` + This code does exactly what interpreter does + (except for `make test`, which does more). + The major difference is more extensive use of C++ features, + including the new (C++17) `std::variant<>` template. + Testing is also more extensive. + This is meant mostly as a preparation for larger projects where + software engineering aspects becomes more important + whereas the version in `interpreter` (see above) is meant + to get down to recursive descent parsing as quickly as possible. + + 1. `halfBakedCompiler` This code takes mathematical expressions and convets them into an AST (Abstract Syntax Tree), then dumps that tree to output (i.e. displays the tree as text). It does nothing really useful, in other words. - 3. `LLVMcompiler` + 1. `LLVMcompiler` This is vaporware -- in other words, it does not exist yet, and may never do so. But I hope someday to create a version that builds the AST, then converts it to LLVM IR, and then evaluates