Capuchin

Version, currently master branch1 version
  • master branchlatestMay 24, 2020

gitlab.com/lagerfeuer/capuchin

Monkey programming language interpreter and compiler written in Crystal

0 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  Capuchin:
    gitlab: lagerfeuer/capuchin
    branch: master

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

Then run:

shards install

shard.yml

Crystal
0.34.0
License
MIT
Author
Lukas Deutz
Target
  • Capuchin from src/main.cr

Dependencies

Runtime Dependencies

  • cli*github: bcardiff/cli, branch: bcardiff/use-fork
  • fnv*github: naqvis/crystal-fnv
  • fancyline~> 0.3.2github: Papierkorb/fancyline

Development Dependencies

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

README

Capuchin

The name is inspired by Crystal the Monkey.

Installation

TODO: Write installation instructions here

Usage

make
./out/capuchin

Example: ./out/capuchin example/example.monkey

Docker

docker build -t capuchin:latest .
docker run -it capuchin:latest

TODO

  • [x] Fix Interpreter class: everything is static right now, refactor to use it as Interpreter.new(Environment)
  • [x] Add basic CLI
  • [ ] Implement proper comparison for all AST, Statements, Expressions and Literals in spec/
  • [ ] Fix ameba errors (mostly coding convetion stuff)
  • [ ] Rename all statments to e.g. LetStmt (now: LetStatement)
  • [ ] Rename all occurences of Object (Crystal already has an Object class)
  • [ ] Rename all expression to e.g. CallExpr (now: CallExpression)
  • [ ] Rename TokenType to Type