Skip to content
This repository has been archived by the owner on Nov 11, 2021. It is now read-only.

e-graveyard/lexy

Repository files navigation

Build Status @ Travis-CI Build Status @ Azure Pipelines Code Quality

LEXY: tiny, made up lisp

This is the source code repository of lexy, a tiny implementation of a Lisp-like language. It contains the interpreter, the REPL, the standard library as well the documentation.

The original implementation has been made upon the guidance of the Build Your Own Lisp book.

Table of Contents

Significant improvements

  1. code modularization
  2. new math-related builtin functions such as pow, sqrt and mod
  3. constant and dynamic variables (letc and let respectively)

Getting started

Build requirements

gcc and make are required to compile. Additionally, the editline headers are used by lexy. In Debian-based systems, the following command should install all the necessary packages:

$ sudo apt-get install -y build-essential libedit-dev

Compiling from source

Just make. The binary will be available at the project's root directory.

Installing & Uninstalling

To install, just use:

sudo make install

To uninstall:

sudo make uninstall

Running in Docker

If you'd prefer to use Docker, you can build the image locally and run interactively.

$ docker build -t lexy .
$ docker run -it lexy

Roadmap

Expected improvements until the next release (v0.1.0):

  1. Proper modules support
  2. Hash table powered symbol lookup
  3. Hashmap built-in type
  4. Hashmap operations
  5. Expand standard library
  6. Command-line arguments (help, eval string etc)
  7. Receive arguments from the shell
  8. REPL improvements (colors, keywords)
  9. Tests

Releases

No releases published

Languages