如何制作这个文法 LL(1)
How to make this grammar LL(1)
我想知道是否可以将此语法转换为 LL(1)。这是语法:
A -> B
| C
B -> a
| a ';'
C -> a D
| a D ';'
D -> ';' a
| D ';' a
既然这个语言是正则的(a; | a(;a)+;?
),那么是的,这是可能的。
不确定我使用的语法是否正确,但语言基本上是 a;
(使用 A->B)或任何以 a
开头的字符串,后跟一个或多个;a
对,可选择在末尾添加另一个 ;
。
这是相同的语法,但更简单:
一个->一个|一种 ';' |一种 ';'一个
它仍然不是 LL(1)。但是现在删除左因子是 LL(1):
A -> a B B -> ε | ';' C C -> ε |一个
我想知道是否可以将此语法转换为 LL(1)。这是语法:
A -> B
| C
B -> a
| a ';'
C -> a D
| a D ';'
D -> ';' a
| D ';' a
既然这个语言是正则的(a; | a(;a)+;?
),那么是的,这是可能的。
不确定我使用的语法是否正确,但语言基本上是 a;
(使用 A->B)或任何以 a
开头的字符串,后跟一个或多个;a
对,可选择在末尾添加另一个 ;
。
这是相同的语法,但更简单: 一个->一个|一种 ';' |一种 ';'一个
它仍然不是 LL(1)。但是现在删除左因子是 LL(1): A -> a B B -> ε | ';' C C -> ε |一个