Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


pylox is Python implementation of Lox programming language which is a demo language from Crafting Interpreters book by Bob Nystrom.

I'm doing this because:

  1. I want to learn about language design and implementation
  2. I don't want to just read the book or copy and paste the code from it and I want to do something else than C or Java
  3. Python is my main language these days and I want to use something I'm most comfortable with
  4. Maybe after Python version I decide to reimplement it (or make my own toy language) in Go. Or force myself to learn Rust which seems like a good idea.
  5. Fun.

This is work in progress.


Python 3.6 for no particular reasons except f-strings are used in few places. Other than that, it could easily be ported to even Python 2.7 (but I don't plan to).

Install it

pip install pylox

Make sure you run it with Python3, I suggest you install it inside virtualenv.

Run it

from source:

python3 -m pylox [script]

or if installed via pip:

pylox [script]