似乎递归下降解析器不仅是最简单的解释,而且最简单的设计和维护.它们不仅限于LALR(1)语法,并且代码本身可以被凡人理解.相比之下,自下而上的解析器对它们能够识别的语法有限制,并且需要由特殊工具生成(因为驱动它们的表几乎不可能手动生成).
那么为什么自下而上(即shift-reduce)解析比自上而下(即递归下降)解析更常见?
parsing context-free-grammar
context-free-grammar ×1
parsing ×1