cltk

A crystal port of the Ruby Language Toolkit
0.0.7 released
ziprandom/cltk
72 7 3
ziprandom

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 work with languages in an easy to use and straightforward manner. This toolkit provides the following features:

  • Lexer generator
  • Parser generator
  • AST node baseclass
  • Class for representing context free grammars

In addition, CLTK includes several ready-made lexers and parsers. To see what works have a look at the specs or run them with:

$ crystal spec

The code of the Parser is very hackey at the moment and was translated merely by try and error with the testsuite (RED > GREEN but so far no refactoring). The AST Implementation is a complete rewrite. The LLVM Bindings (cltk/cg) has not been ported. Instead crystals own LLVM Bindings were used in examples/kazoo/chapter 8/kcontractor.cr

Usage

See the example languages (and their specs) WIP :

  • interpreted language EXP_LANG (examples/exp_lang)
  • kazoo (examples/kazoo/chapter 8) with LLVM IR generation
  • brainfuck (examples/brainfuck)
  • json_parser (examples/json_parser) example of a linter / xml converter

Contributing

  1. Fork it ( https://github.com/ziprandom/cltk/fork )
  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

Contributors

  • ziprandom - creator of the port, maintainer
cltk:
  github: ziprandom/cltk
  version: ~> 0.0.7

Authors

Dependencies 0

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently