[英]Is this grammar LR(1)?
对该语法是否模棱两可有些困惑
C' -> C
C -> d C u C
C -> d C
C -> ε
我尝试为此构建DFA,但在以下其中一个州获得了它:
C -> d C DOT u C, $
C -> d C DOT, $
这不是减少偏移量的冲突,所以肯定意味着语法不是LR(1)吗? 还是因为$和u都在C的后面集中而减少?
它确实有转移减少冲突。 这是通过选择shift产生的状态机。 冲突处于状态4。
我应该指出,您的问题有点过头了。 语法可以是明确的,但仍然不是LR(1)。
但这恰好是模棱两可的。 考虑字符串ddudu
。 最左边的两个推导是
C'->C->dCuC->ddCuCuC->dduCuC->ddudCuC->dduduC->ddudu
C'->C->dCuC->ddCuC->dduC->ddudCuC->dduduC->ddudu
这些的存在说明语法是模棱两可的。
证明一般语法不明确是一个无法确定的问题:不可能有算法。 令人高兴的是,这并不是一件容易的事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.