Lox is the programming language in crafting interpreters, an amazing book that I can not recommend enough.
As computer scientist passionate about compilers and programming languages I like to implement new ideas that come to mind or that I find while researching. Sometimes I also like to write posts about the implementation journey and thats why this repo is public, Lox is the perfect language for me to use a playground.
Keep in mind when diving in this codebase that, while I care a lot about code quality, this is a playground for me to experiment with new ideas. Do not expect every feature to make sense or even a complete Lox implementation, sometimes I just want to implement an analysis to understand it better.
One of my goals for this project is to use as little third party dependencies as possible. So if at some point you think that I am reinventing the wheel, I most certainly am.
rlox_astcontains the AST for lox, an implementation based on buffers.rlox_compilerentry point for the compiler and repl.rlox_errorsdefines a common way for defining errors.rlox_graphvizdefines theinspecttool, used to translate internal representations todotfiles that can be visualized using Graphviz.rlox_interpreteris a tree-walk interpreter of the ast.rlox_parseris the Lox parser.rlox_sourceutils for storing and accessing source code.