如何制作这个文法 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 -> ε |一个