顺序
从输入串开始到文法开始符号
=>上面加*或者+表示需要一步或多步,没有表示只要一步
规范规约
- 以某非终结符为根的子树的所有末端结点
从左到右排列就是一个短语 - 只有父子两代的子树的所有
末端
结点
从左到右排列就是一个直接短语。 - 句柄是树中末节点最左边
符号栈的使用
类似自上而下,不过是倒叙,这个是输入符号,安徽变成规约符号
LR分析法
-
拓广文法
- 将文法开始符号E,生成一个E'->E
- 将文法有两个的分开写如A->a|E, A->a,A->E
- 注意前面要加上数字顺序
-
项目集范围族
- 现在拓广E'
- 然后\(I_0\)可以每个参数式右边的最左边打一个点
- 然后移动点比如这里经过一个E到达\(I_1\)
- 注意当经过一个符号后,当点后是非终结符时,要将点后的非终结符所有文法写下来比如这里I3中经过T中经过一个(达到点后是E久些E,但是E的一个后面有T那么也加上T
-
构造action-goto表
- action表是所有终结符列
- goto是非终结符表
- 其中状态0表示I0在goto表中经过E到达I1就写1
- action表经过什么到达写S几,
- 如果I几对应的点在最后,就是终结了,那么查找它在上面的文法对应的数字,用R数字表示
- 最后acc,E'点在最后的I几就在起#列写acc