[This answer显示描述不是LL(1)的LL(2)语言的语法:
S -> a S A | epsilon
A -> a b S | c
在此语法中,S
的一种可能性是它产生epsilon
,即空字符串。是否有类似的语法描述不是LL(1)的LL(2)语言,但是没有规则可以产生epsilon
?
您可以通过直接替换从该语法中删除ε:
S → a A | a S A
A → a b | a b S | c
唯一的区别是新语言不包含空字符串,因为在严格的无ε语法中这是不可能的。通常,我们在非递归的起始符号中允许单个ε,这意味着要引入一个新的起始符号:
S' → S | ε