Implementation of an interpreter for the Monkey language written in Rust, currently under active development.
The Monkey programming language was devised by Thorsten Ball for use in his follow along books Writing An Interpreter In Go and Writing A Compiler In Go.
Monkey has a C-like syntax, supports variable bindings, prefix and infix operators, has first-class and higher-order functions, can handle closures with ease and has integers, booleans, arrays and hashes built-in.
The crates pretty_env_logger
and log
are used to provide logging.
The environment variable RUST_LOG
can be used to set the logging level.
See https://crates.io/crates/pretty_env_logger for more detailed documentation.
Checkout the code repository locally, change into the repository's directory and then build via Cargo.
Using the --release
flag produces an optimised binary but takes longer to compile.
git clone git@github.com:DeveloperC286/monkey_interpreter.git
cd monkey_interpreter/
cargo build --release
The compiled binary is present in target/release/monkey_interpreter
.
The unit test suite has several parameterised tests, Cargo is used to set up and run all the unit tests.
cargo test
To report a bug/issue or request a new feature use https://github.com/DeveloperC286/monkey_interpreter/issues.