SLR解析 - 用epsilon生产

时间:2014-04-05 21:34:58

标签: parsing theory compiler-theory

说我有:

S -> A
A -> B C A a | ϵ
B -> k | ϵ
C -> m

现在处于初始状态 S' -> S,我将包括:

S' -> .S
然后关闭S:
A -> .B C A aA -> .
关闭还明显包括B -> .kB -> .

但是因为B - > ε是一个产品,我是否还必须在初始状态中包含C -> ,m?由于在A -> B C A a中,B可以是ε。

我只是想知道我是否正确,以及这是在语法中处理epsilons的正确方法。如果没有,请指导我正确的方向。谢谢!

1 个答案:

答案 0 :(得分:1)

不,C -> . m不属于初始状态,因为C无法在没有前一个B的情况下进行缩减(即使B从{{1}减少}})。