Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rhysd/Crisp
Lisp dialect implemented with Crystal
https://github.com/rhysd/Crisp
crystal language lisp
Last synced: 3 months ago
JSON representation
Lisp dialect implemented with Crystal
- Host: GitHub
- URL: https://github.com/rhysd/Crisp
- Owner: rhysd
- License: mit
- Created: 2015-06-03T16:16:09.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-03-15T08:56:07.000Z (almost 2 years ago)
- Last Synced: 2024-10-18T21:59:17.024Z (3 months ago)
- Topics: crystal, language, lisp
- Language: Crystal
- Size: 59.6 KB
- Stars: 43
- Watchers: 6
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-crystal - crisp - Lisp dialect implemented with Crystal (Implementations/Compilers)
- awesome-crystal - crisp - Lisp dialect implemented with Crystal (Implementations/Compilers)
- awesome-crystal - crisp - Lisp dialect implemented with Crystal (Implementations/Compilers)
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
```