This post provides a complete tour of Earley parsing along with Aycock’s epsilon fix, Leo’s right recursion optimization, and extraction of parse trees from parse forests.
I am looking for feedback on structure as well as content. Is this better as a Jupyter notebook like the original or is this format reasonable? Does my explanations make sense? Would this be useful to you (as a student)?
Note: Pyodide takes a little time to initialize, but it should be faster to initialize than spinning up the binder service from Jupyter (but slower to execute).