处理LR(0)语法中的可空产生

时间:2014-10-22 22:14:48

标签: parsing syntax grammar

我认为这是一个非常直截了当的问题,但我无法在任何地方找到答案。

如果我的语法带有非终端,派生NULL,就像这样:

  1. S - > B $
  2. B - > IDP
  3. P - > (E)
  4. P - >
  5. E - >乙
  6. 如何处理生产#3以绘制它的LR(0)状态?我是否必须在LR(0)解析表中包含与空集相对应的列?

1 个答案:

答案 0 :(得分:4)

P -> ·与右手端·的任何其他项目没有区别;事实上·之前没有任何东西并没有使它变得特别。关闭项目

B -> id · P

将是州q

B -> id · P
P -> · ( E )
P -> ·

goto(q, P)将指示转换为B -> id P ·并转到(q,()将指示转换为P -> ( · E )goto$上的)未在该州定义,但action是;它表示应使用P规则减少P ->,之后将使用goto(q, P)