为了加深我对解析器和语法的理解,我正在寻找一个LL(2)但不是LL(1)的语言示例(希望是简单的)。也就是说,一种语言,它可以由LL(2)语法生成,但不能由任何LL(1)语法生成。
那个班有有用的语言吗?我们能想象一种计算机语言是LL(2)但不是LL(1)吗?
发布于 2012-05-17 17:47:10
Grune和Jacobs的解析技术给出了一个例子。这本书的旧版本可在网上查阅
版/BookBody.pdf
这个例子出现在第181页。
发布于 2012-05-18 18:24:35
这本书中提到的例子在Gunther的回答中联系起来:
S -> a S A | epsilon
A -> a^k b S | c描述非LL(k)的LL(k+1)语言的语法。特别地,
S -> a S A | epsilon
A -> a b S | c描述非LL(1)的LL(2)语言的语法。
发布于 2022-06-28 13:41:07
在Gunther提到的书中,有一个更微不足道的例子:
S -> a^k b\ a^k a
描述非LL(k)的LL(k+1)语言的语法。特别地,
S -> ab _
描述非LL(1)的LL(2)语言的语法。
https://stackoverflow.com/questions/10634197
复制相似问题