我认为这是一个非常简单的问题,但我无法在任何地方找到答案。
如果我有一个带有派生 NULL 的非终结符的语法,如下所示:
- S -> B$
- B -> idP
- P -> (E)
- P->
- E -> B
如何处理产生式 #3 以绘制其 LR(0) 状态图?我是否必须在 LR(0) 解析表中包含与具有空集的转换相对应的列?
最佳答案
该项目P -> ·
与 ·
的任何其他项目没有什么不同。在右端;事实上,·
之前没有任何内容。并没有使它变得特别。项目关闭
B -> id · P
将是状态q
:
B -> id · P
P -> · ( E )
P -> ·
来自 goto(q, P)
将指示过渡到 B -> id P ·
goto(q, (
) 将指示过渡到 P -> ( · E )
。 goto
上$
和)
未在该状态上定义,但 action
是;它将表明 P
应使用 P ->
来减少规则,之后 goto(q, P)
将被使用。
关于parsing - 处理 LR(0) 语法中的可空产生式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26518050/