Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果以下 BNF 语法是 LL(1),有人可以帮我确认一下:
S ::= A B B A A ::= a A ::= B ::= b B ::=
其中 S 是起始符号,非终结符 A 和 B 可以导出为 epsilon。我知道解析表中的单个单元格中是否有 2 个或多个产生式,那么语法不是 LL(1)。但是如果一个单元格已经包含 epsilon,我们可以在构建解析表时安全地用新的产生式替换它吗?
这个文法是模棱两可的,因此对于任何 k 都不是 LL(1),也不是 LL(k)。
将单个a或b作为输入,并查看它可以与来自 的A或B引用中的任何一个匹配S。因此有两种不同的解析树,证明文法是不明确的。
a
b
A
B
S