项目集和SLR(1)编译器中的问题

时间:2015-03-12 19:08:43

标签: compiler-construction programming-languages grammar ll lalr

我遇到了一个由我们的TA解决的旧考试问题。有谁可以帮助我?

当我们创建关于SLR(1)语法的S--> aSb | a时,其中一个项集LR(0)就像:

  

{S - > a.Sb,S - > a。,S - > .aSb,S - > .a}

关于从上面集合中提取的规则,其中哪些是True:

a) one reduced and 2 shift and 1 goto is produced.

b) one reduced and 2 shift and2 goto is produced.

c) two reduced and 1 shift and 1 goto is produced.

d) when we input a, we have conflict. 

任何人都可以说为什么(3)是正确的?关于这个问题的一些细节?

编辑:我认为Goto引用了Action和goto表。 enter image description here

1 个答案:

答案 0 :(得分:1)

有三种可能的前瞻符号:ab$(输入结束标记)。过渡是:

 lookahead        action
 ---------        ------
     a            shift
     b            reduce S->a
     $            reduce S->a

在非终端S上生成一个goto动作,目标是状态{S -> aS.b}