Parsing 这是单反吗?

Parsing 这是单反吗?,parsing,Parsing,E->A | B A->A | c B->B|c 我的答案是否定的,因为它有一个reduce/reduce冲突,其他人能验证这一点吗 我也通过构造转换图得到了答案,有没有更简单的方法来找出这个问题 谢谢你的帮助 另外,递归下降法能解析这个吗?你是对的——从输入中的“c”开始,无法决定是将其视为“a”还是“B”。我怀疑有什么东西能真正正确地解析它——它只是模棱两可。使用不同类型的解析器不会有帮助;你真的需要改变语言 有一些正式的方法可以检测这样的歧义,但我很难想象对这么小的语法会有什么麻烦。发现这

E->A | B

A->A | c

B->B|c

我的答案是否定的,因为它有一个reduce/reduce冲突,其他人能验证这一点吗

我也通过构造转换图得到了答案,有没有更简单的方法来找出这个问题

谢谢你的帮助

另外,递归下降法能解析这个吗?

你是对的——从输入中的“c”开始,无法决定是将其视为“a”还是“B”。我怀疑有什么东西能真正正确地解析它——它只是模棱两可。使用不同类型的解析器不会有帮助;你真的需要改变语言

有一些正式的方法可以检测这样的歧义,但我很难想象对这么小的语法会有什么麻烦。发现这个特殊问题的一个简单方法是将它放在一棵树上:

“c”框中出现的两行表示reduce/reduce冲突。没有理由选择从“c”到“E”的一条路线而不是另一条,因此语法是不明确的