自底向上分析法:
LR(0),LR(1),SLR(1),LALR(1)是自下而上的分析法。
LR(1)文法分析最强,而 LR(0)文法分析最弱。
LR(0) 和 SLR文法分析用的是 LR(0)自动机,LR(1)和 LALR文法分析用的是 LR(1)自动机。而LR(1)自动机构造方法和LR(0)自动机的构造方法相同,只是多增加了向前搜索符号。
自顶向下分析法 LL(1)的优缺点
自底向上分析法![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6c071aa0157383520d2322b474793606.png)
基本思想:
引入点记号
写法1
写法2
LR(0)解释:
L:从左向右扫描输入串
R:构造最右推导的逆过程
0:不用前看符号来确定产生式的选择
LR(0)的操作:移进和规约
给定句型:T * i ↑ (T * F)
给定文法G[T]:
T → T * F | F
F → F ↑ P | P
P → (T) | i
构造出语法树:
短语(在语法树中,相当于子树的末端结点形成的符号串)
i
T * F
(T * F)
i ↑ (T * F)
T * i ↑ (T * F)
直接短语(在语法树中,相当于简单子树(只有一层分支的子树) 的末端结点形成的符号串)
i
T * F
句柄(即直接短语中在语法树中位于最左边的为该句型的句柄)
i
LR(0) 分析![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/22e53b50d87ca8b1cc2abd15ecbc0a25.png)
构造LR(0)分析表
LR(0)实例:
构建GO函数项目簇
SLR分析算法