Skip to content
No description, website, or topics provided.
C++ Other
  1. C++ 99.3%
  2. Other 0.7%
Branch: master
Clone or download
Latest commit 455f3b6 Aug 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
chaiscript
tests Add build and test script along with MAL test files Jul 13, 2019
.gitattributes Start work on eval Jul 30, 2019
README.md Update readme Jul 31, 2019
UNLICENSE Initial import Jul 13, 2019
eval.hpp Fix ints Jul 31, 2019
print.hpp Escape strings Jul 30, 2019
read.hpp Fix regex Aug 15, 2019
repl.cpp Add eval to repl.cpp and add necessary flags to build scripts Jul 31, 2019
repl.ps1 Add eval to repl.cpp and add necessary flags to build scripts Jul 31, 2019
repl.sh Add eval to repl.cpp and add necessary flags to build scripts Jul 31, 2019
tests.sh

README.md

Introduction

You know what the world needs? Another Lisp. I wrote this one in C++17 and haven't figured out why it exists yet. It consists of three files:

  • read.hpp reads lisp data into C++ data structures. It supports the four Clojure data structure literals: () becomes std::list, [] becomes std::vector, {} becomes std::unordered_map, and #{} becomes std::unordered_set. It has no dependencies so it can be easily used on its own as a dead simple edn reader.
  • eval.hpp takes the result of zachlisp::read and evaluates it using ChaiScript.
  • print.hpp takes the result of zachlisp::eval and prints it back into lisp syntax.

In repl.cpp they are combined to create an interactive REPL.

Build Instructions

On Linux, run ./repl.sh. On Windows, install Scoop, and then in PowerShell run scoop install gcc and .\repl.ps1.

Licensing

All files that originate from this project are dedicated to the public domain. I would love pull requests, and will assume that they are also dedicated to the public domain.

You can’t perform that action at this time.