如果 beta 在 CFG 的生产规则中包含 epsilon,如何删除左递归?

How to remove left recursion if beta contains epsilon in production rules of CFG?

产量是:

我知道这个公式:

A -> A alpha | beta

移除递归后:

A -> beta A'
A' -> alpha A' | epsilon

如果我的相关作品包含 epsilon 作为 beta,我不知道该怎么办? 例如A -> A alpha | epsilon

这可以作为答案吗:

A -> A'
A' -> alpha A' | epsilon

一个更简单的解决方案是 A → α A | ε。在这种情况下,不需要新的非终端。