Parsing Generator using Earley Algorithm

I made a parser generator implementing Jay Earleys algorithm for parsing input. It also incorporates Joop Leo’s right recursion optimization to handle right recursing rules in linear time. I’d like to open-source it, and I probably will soon, but the current grammar style is pretty messy, using a table. So before I open source it i’ll probably bootstrap the grammar using the module itself. Here’s a video of it working:

Video (Streamable)

Peep the nice error messages on the right. The grammar used for this parsing is below:

Hastebin

You can also test it out in this game:

Game

Ctr + Click on a project to view a description, ignore the other 2 for now.

Lastly, if you’d like to read upon the world of compilers and parsing I’ve made a collection of resources I used:

Notion doc
Word doc

1 Like