繁体   English   中英

这是LR(1)语法吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM