我一直在使用 lex/yacc,现在我正在尝试切换到 ANTLR。主要问题是 ANTLR 是一个 LL(*) 解析器,而 yacc 是 LALR。我习惯于自下而上地思考,我并不完全知道 LL 语法的优势是什么。人们说现在 LL 语法更容易理解并且更受欢迎。但似乎 LR 解析器更强大,例如 LL 解析器无法处理左递归,尽管似乎有一些解决方法。
所以问题是 LL 语法相对于 LALR 的优势是什么?如果有人能给我一些例子,我将不胜感激。指向有用文章的链接也很棒。
提前感谢您的帮助!
(我看到这是一个很好的资源:LL 解析器比 LR 解析器有什么优势?,但如果有一些例子会更好。)