/cslox

C# implementation of Jlox from Bob Nystrom's "Crafting Interpreters"

Primary LanguageC#

cslox

C# implementation of Jlox from Bob Nystrom's "Crafting Interpreters"

Ideas for future Lox additions:

  • add eval
  • add lists & dicts
  • make it pure OO: replace C# object with a JloxObject, similar to PyObject in Python
  • redesign environments, functional style.
  • use Resolver for static analysis only, not for env
  • add features from Philip Guo's CPython internals
  • for clox later: add enough library functions to make it self-hosting
  • add types (an extra field on the JloxObject, and then a type checker pass). start w explicit types, then inferred
  • instead of adding an extra bool to represent if fn is an initializer, just add to static analysis that we can't define fns called "init". or use dunderscore methods :3
  • see if it's possible to remove the super . rule from the grammar, esp with a redesigned env.