RISP is a personal study project aimed at learning and experimenting with building a Lisp-like interpreter in Rust. This project is not intended for production use and should not be considered stable or reliable for critical applications.
The RISP library is the core component of the project, consisting of:
- Lexer: Tokenizes the input strings.
- Parser: Converts tokens to
Objectslike described by (Vishal Patil)[https://github.com/vishpat] in his book Lisp interpreter in Rust. -
- As soon as possible ill implement an AST
- Evaluator: Evaluates the ASTs and produces results.
The REPL (Read-Eval-Print Loop) provides an interactive interface to the RISP interpreter, allowing for direct input and immediate evaluation of RISP expressions.
Coming soon: An interpreter capable of reading and executing .risp files.
To build and run the project, use the following commands:
-
Run the REPL:
cargo repl
-
Build the REPL:
cargo build-repl
-
Build the RISP library:
cargo build-risp
-
Run all tests:
cargo test-lib
-
Run specific tests:
cargo test-match {param}
TODO