Implementation of a tree-walk interpreter from the first half of "Crafting Interpreters", adopted for Kotlin