An interpreter for the Monkey programming language written in Kotlin
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.
There is a book about learning how to make an interpreter: Writing An Interpreter In Go. This is where the Monkey programming language come from.
$ ./gradlew test
$ ./gradlew -q run
$ ./gradlew -q run -PappArgs=example/helloworld.mk