这是语法单反吗?

时间:2010-04-21 00:24:51

标签: parsing

E - > A |乙

A - > a | ç

B - > b | ç

我的答案是否定的,因为它有减少/减少冲突,其他人可以验证这个吗?

我也通过构建转换图获得了答案,是否有更简单的方法可以找到它?

感谢您的帮助!

P.S递归下降会解析这个吗?

1 个答案:

答案 0 :(得分:3)

你是对的 - 从输入中的'c'开始,无法决定是将其视为'A'还是'B'。我怀疑是否有任何东西可以真正解析它 - 它只是模糊不清。使用不同类型的解析器无济于事;你真的需要改变语言。

有一些正式的方法可以检测出这种歧义,但我很难想象他们会为这么小的语法而烦恼。发现这个特殊问题的一个简单方法是在心理上将其安排到树中:

alt text

'c'框中出现的两条线表示减少/减少冲突。没有理由偏爱从“c”到“E”的一条路线,因此语法模糊不清。