crisp

Version, currently master branch1 version
  • master branchlatestMar 15, 2023

github.com/rhysd/Crisp

Crisp is a Lisp dialect implemented with Crystal.

47 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  crisp:
    github: rhysd/Crisp
    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
no constraint declared
License
MIT
Author
rhysd <rhysd@users.noreply.github.com>

Dependencies

Runtime Dependencies

  • readline~> 0.1.0github: crystal-lang/crystal-readline

README

Crisp
=====
[![CI](https://github.com/rhysd/Crisp/workflows/CI/badge.svg?branch=master)](https://github.com/rhysd/Crisp/actions?query=workflow%3ACI)

Crisp is one of Lisp dialect which is based on [mal](https://github.com/kanaka/mal) and implemented with [Crystal](https://github.com/manastech/crystal).
This project is a toy box for my dynamic language ideas.

![screenshot](https://raw.githubusercontent.com/rhysd/screenshots/master/Crisp/crisp.gif)

## So Many Tasks

- __Refactorings__
  - [ ] Make `is_a?` guards more elegant
  - [ ] Import test cases from Mal
  - [x] Add CI
  - [x] More OOP (`evaluator`, remove global variable, move states into object)
  - [x] Use standard `readline` implementation
  - [ ] Better lexer and parser
  - [ ] Add examples
  - [ ] More convenient REPL (e.g. completion)
- __New language features using Crystal's semantics__
  - [ ] Algebraic data type
  - ...

## Installation

1. [Install `crystal` command](https://crystal-lang.org/install/)
2. Run `shards install` for installing dependencies
3. Run `crystal build /path/to/Crisp/crisp.cr` to build an executable (add `--release` for the release build)
4. Put the built `crisp` executable in a `$PATH` directory

## Examples

Please see [mal test cases](https://github.com/rhysd/Crisp/tree/master/spec/crisp/mal_specs/tests) for now.

## Development Environment

- macOS or Linux
- Crystal 0.33.0 or later

## License

Distributed under [the MIT License](http://opensource.org/licenses/MIT).

```
Copyright (c) 2015 rhysd
```