cltk Build Status

This is a port of the Ruby Language Toolkit to the Crystal Programming Language.

CLTK (like RLTK) is: a collection of classes and methods designed to help programmers create languages in an easy to use and straightforward manner. This toolkit provides the following features:

In addition, CLTK includes several ready-made lexers and parsers. As well as a serialization mechanism that renders a finalized parser back into crystal syntax to compile it without having to be finalized again at startup (see exp_lang_repl for a usage example).

To see what works have a look at the specs or run them with:

The Implementation has been strongly altered but the API is compatible to RLTK. The LLVM Bindings has not been ported. Instead crystals own LLVM Bindings were used in examples/kazoo/chapter 8/


To use the toolkit in your project add this to your application's shard.yml:

    github: ziprandom/cltk


See the example languages (and their specs):


can be found in the docs directory


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request