Originally, my plan for Willow was to write my own lexer and parser. I wanted the experience, custom control over everything, speed, etc. I still want those things. But I realized that there’s something far more important at this point in the development of Willow. That’s the ability for rapid prototyping of the grammar.
I started out writing a lexer, which was very straight forward. No issues. Then, when I began the parser, I realized that it was going to be slow and tedious to make small (what I wanted to be trivial) changes in the grammar. I still haven’t completely settled on how to write various constructs in Willow and I need to have the ability to easily implement those changes in the parser. So I scrapped what I wrote and…