【发布时间】:2015-02-12 02:09:58
【问题描述】:
我已经尝试解决这个问题好几个小时了,这只是一个无休止的反复试验循环。我需要使这个语法明确:
S -> Sa | Sb | aS | bS | aa
据我了解,这可以生成 a 和 b 的任意组合,“aa”出现在某处。主要问题是它可以从两边生成,所以有几个解析树。到目前为止,我最好的尝试是这样的:
S -> aS | bS | aT
T -> aU | a
U -> bU | b
生成任何 a 和 b...然后强制第二个 a,并允许添加更多 b。虽然这不允许每个字符串......不能做“abaaba”。我无法弄清楚如何使这个明确。
【问题讨论】:
标签: context-free-grammar ambiguity ambiguous