
Am 20.04.21 um 13:12 schrieb Sven Panne:
* Does the GLR parser generator detect ambiguities and report them to the grammar writer?
That would be a solution to the decision problem. It could try heuristics though, but I have no idea whether this particular parser does.
To me, ambiguities (like the shift/reduce &
reduce/reduce conflicts in LALR parsing) are a big red flag and a sign of a questionable language/grammar: Even if the generator/parser is able to figure things out correctly, humans have a much harder time.
Some conflicts indicate language design problems, others do not. If you are after an algorithm that has less unnecessary conflicts, try ILALR (Sönke Kannapinn's PdD thesis - well-written and easy to understand if you can deal with German; see http://webdoc.sub.gwdg.de/ebook/diss/2003/tu-berlin/diss/2001/kannapinn_soen... ; my own analysis, years ago, concluded that ILALR should have its conflicts exactly where a human would have difficulties parsing, but I never progressed to a proof of concept). Note that ILALR does does not help with conflict resolution; a user would likely have less unexpected conflicts, but the remaining ones wouldn't be easier to solve than with LALR. But I may be wrong. As I said, I never used anything like that in anger. Regards, Jo