LR(1):从左分析,从右推导,超前查看一个单词
由于研究了半天为懂表是怎么自动建出来的,连方法都没懂,于是同LL1直接手动建立表了,哈哈哈哈我就是这么菜。
分析表分为action表和goto表,同样为二维表
第一个key为状态(int),第二个key为终结字符(action)/非终结字符(goto)
action的表项为ri或si,ri表示按第i个产生式规约,si表示移进,即把输入符号和i入栈
acc表示完成
goto表项为状态(int)
对于给定的文法G,输入流w 和表action、goto
先初始化字符指针ip为0 字符为w[0] ,栈的值为"$"和状态0
进行如下循环:
while 1:
s为栈顶元素
如果 action[s,a]存在:
如果第一个字符为s[即为si]:
a和i入栈
ip指向下一个字符
a为ip指向的字符
如果第一个字符为r[即为ri]:
表示对第i个产生式进行规约
栈回退第i个产生式右端(->右)长度的二倍
t为回退后栈顶元素
第i个产生式左端A(A-

最低0.47元/天 解锁文章





