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.
- code modularization
- new math-related builtin functions such as
pow
,sqrt
andmod
- constant and dynamic variables (
letc
andlet
respectively)
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
Just make
. The binary will be available at the project's root directory.
To install, just use:
sudo make install
To uninstall:
sudo make uninstall
If you'd prefer to use Docker, you can build the image locally and run interactively.
$ docker build -t lexy .
$ docker run -it lexy
Expected improvements until the next release (v0.1.0
):
- Proper modules support
- Hash table powered symbol lookup
- Hashmap built-in type
- Hashmap operations
- Expand standard library
- Command-line arguments (help, eval string etc)
- Receive arguments from the shell
- REPL improvements (colors, keywords)
- Tests