monyet

Version, currently main branch1 version
  • main branchlatestJul 21, 2026

github.com/MarioAriasC/monyet

An implementation of the monkey language on Crystal

19 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  monyet:
    github: MarioAriasC/monyet
    branch: main

main is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
1.21.0
License
MIT
Author
Mario Arias <mario@marioarias.org>
Target
  • monyet from src/monyet.cr

Dependencies

Development Dependencies

  • ameba~> 1.6.4github: crystal-ameba/amebadev

README

# Monyet

[Crystal](https://crystal-lang.org/reference/1.2/index.html) implementation of
the [Monkey Language](https://monkeylang.org/)

Monyet has a sibling implementation for Kotlin: [monkey.kt](https://github.com/MarioAriasC/monkey.kt)

## Status

The two books ([Writing An Interpreter In Go](https://interpreterbook.com/)
and [Writing A Compiler in Go](https://compilerbook.com/)) are implemented.

## Commands

Before running the command you must have crystal and shards installed on your machine

| Script                           | Description                                                                                                          |
|----------------------------------|----------------------------------------------------------------------------------------------------------------------|
| [`tests.sh`](tests.sh)           | Run all the tests                                                                                                    |
| [`checks.sh`](checks.sh)         | Run format tool and ameba checks                                                                                     |
| [`build.sh`](build.sh)           | Release build                                                                                                        |
| [`benchmarks.sh`](benchmarks.sh) | Run the classic monkey benchmark (`fibonacci(35)`), requires one command (`--eval`,`--eval-fast`,`--vm`,`--vm-fast`) |
| [`repl.sh`](repl.sh)             | Run the Monyet REPL                                                                                                  |