E - > A |乙
A - > a | ç
B - > b | ç
我的答案是否定的,因为它有减少/减少冲突,其他人可以验证这个吗?
我也通过构建转换图获得了答案,是否有更简单的方法可以找到它?
感谢您的帮助!
P.S递归下降会解析这个吗?
答案 0 :(得分:3)
你是对的 - 从输入中的'c'开始,无法决定是将其视为'A'还是'B'。我怀疑是否有任何东西可以真正解析它 - 它只是模糊不清。使用不同类型的解析器无济于事;你真的需要改变语言。
有一些正式的方法可以检测出这种歧义,但我很难想象他们会为这么小的语法而烦恼。发现这个特殊问题的一个简单方法是在心理上将其安排到树中:
'c'框中出现的两条线表示减少/减少冲突。没有理由偏爱从“c”到“E”的一条路线,因此语法模糊不清。