Earlier quoted context omitted.
Isn't that pretty standard for a parser? When was the last time a compiler bailed on the very first error it hit and refused to do anything else? The solution is to pick synchronisation points to start parsing again, i.e. ; at the end of a statement or } at the end of a block.
> When was the last time a compiler bailed on the very first error it hit and refused to do anything else? Make still does this. (That's the "Stop." in the famous " * missing separator. Stop.") Many errors in Python still do this. As late as 2010 I still saw some major C compilers do this. 99% of the toy compilers written for DSLs do this, or worse. Good error recovery / line blaming is still an active field of devel…
True. But let's get terminology straight: that's not a compiler science, that's parsing science. And it's no more compiler science than parsing a natural language is.