Hacker News new | ask | show | jobs
by user51442 3769 days ago
Years ago I worked on an SML parser that used LR tables, on errors (ie. with no valid transition) it would try to find a symbol to insert/delete/modify that would allow parsing to continue. It dealt reasonably well with simple errors, though ML syntax is a bit flexible - function application is juxtaposition and it has user-defined infix operators (to deal with them, the parser would resolve reduce-reduce and reduce-shift conflicts dynamically by calling a function at runtime).

Code is here, in fact:

https://github.com/Ravenbrook/mlworks/blob/master/src/parser...