谁能解释为什么 LL(1) 解析器无法解析此语法?

Can anyone explain why this grammar cannot be parsed by an LL(1) parser?

我很难理解为什么 LL(1) 解析器无法解析它。

A ::= B PLUS A | B

B ::= NUM | ID

A ::= B PLUS A | B 必须向前看才能确定使用哪个规则。 B 不明确。

您可以添加一个新规则 A' 去 epsilon 以消除歧义:

A  ::= B A'
A' ::= PLUS A | epsilon
B  ::= NUM | ID