LL(2)语言不是LL(1)

时间:2012-05-17 10:42:10

标签: parsing grammar

为了进一步理解解析器和语法,我正在寻找一个(希望很简单)语言的例子,即LL(2)但不是LL(1)。也就是说,一种语言可以由LL(2)语法生成,但不能由任何LL(1)语法生成。

该课程中是否有有用的语言?我可以想象一种LL(2)但不是LL(1)的计算机语言吗?

2 个答案:

答案 0 :(得分:14)

本书中提到的例子与Gunther的答案相关联:

S -> a S A | epsilon
A -> a^k b S | c

是描述LL(k + 1)语言不是LL(k)的语法。特别是,

S -> a S A | epsilon
A -> a b S | c

是描述LL(2)语言不是LL(1)的语法。

答案 1 :(得分:8)

Grune和Jacobs的

Parsing Techniques就是一个例子。

可在线获取本书的旧版本

http://dickgrune.com/Books/PTAPG_1st_Edition/BookBody.pdf

,示例在第181页。