/cymbal

Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"

Primary LanguageRustMIT LicenseMIT

Cymbal

Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go."

CircleCI

Development

Start REPL:

# Run in eval mode to directly evaluate AST
cargo run -- repl
# or
cargo run -- repl --eval

# Run in compile mode to compile AST into bytecode and execute it on VM
cargo run -- repl --compile

Build:

cargo build

Test:

cargo test

Benchmark with recursive fibonacci:

cargo run --release -- benchmark --eval
cargo run --release -- benchmark --compile

License

MIT