A few weeks ago I went to this meetup where William Byrd presented an interpreter for Scheme in a few lines. It was a fascinating talk where he spoke about this:
So I started writing a blog post, where I go through it, and an example on how to call that, that he sent over Zulip (!), to help in understanding how it works.
We got a few useful refactorings in place, for example using types instead of booleans, felt like trying not to be cavemans actually, then we fixed contextual punctuation, I think the next step would be syntax highlight.