Error correcting parsers are parsers that tries to fix the error in a given corrupt input string. This is different from the partial parse trees that many tools can typically generate given a corrupt input string. This post explains how to build an error correcting parser by first building a covering grammar, and then using it to identify the least penalty parse.
As before, it is written using Pyodide (Python that runs on your browser), and is meant to be interactive. At some point, this will become a lecture. Hence, any feedback from the perspective of a student would be appreciated.
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).