LL(0)
自上而下的分析文法
使用最左匹配的推导产生句子
LR(0)
LR(0)文法采用自下而上分析,从左分析,从栈顶规约
F -> a.b
F -> b.c
它无法处理以下规则
F -> Y.+
F -> Y.
因为它只看栈顶元素
但又与允许规约冲突
SLR
SLR为了解决LR(0)的问题
通过加入Follow集合来解决冲突
F -> Y.+
F -> Y.
Follow(F) = {a, b}
当遇到+时,则规约第一个句子
当遇到a|b时则规约第二各句子
它无法解决下面的问题
F -> Y.+
F -> Y.
Follow(F) = {a, b, +}
LR(1)
为了解决SLR的问题
LR(1)通过往后看一个字符,来减少冲突
F -> Y.+c, c
F -> Y.+b, b
通过比较+号后面的字符,可以减少冲突
网友评论