谁能解释为什么 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
我很难理解为什么 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