我想知道是否有可能将此语法转换为LL(1)。这是语法:
A -> B
| C
B -> a
| a ';'
C -> a D
| a D ';'
D -> ';' a
| D ';' a
答案 0 :(得分:1)
由于该语言是常规语言(a; | a(;a)+;?
,所以可以,
不确定我是否使用了正确的语法,但是该语言基本上是a;
(使用A-> B)或任何以a
开头的字符串,然后是一个或多个{{ 1}}对,可选地在末尾添加另一个;a
。
答案 1 :(得分:0)
This is the same grammar but simpler: A -> a | a ';' | a ';' A
It still not LL(1). But removing left factor now it is LL(1): A -> a B B -> ε | ';' C C -> ε | A