tscheme is an (in-progress) Scheme interpreter written in Python, undertaken as an exercise in programming.
- Lexer (
lexer.py
) - Tested working, pretty much done except some minor error handling things - Parser (
parser.py
) - Tested working, could use some additional work to avoid stack overflows with very nested expressions - Interpreter (
interpreter.py
) - The evaluation function is pretty good but scoping and environments need some work.
- Tokenizer
- Recursive Decent Parser
- Basic math parsing in interpreter (Lispy Calculator)
- Get basic function calls working in
interpreter.py
- Write some documentation
- Tail call optimisation
- New parsing algorithm (?)
- Interpreter portion inspired by Peter Norvig's excellent How To Build a Lisp Interpreter in Python
- Many thanks to Crafting Interpreters for inspiring this whole rabbit hole