如果 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 | ε
。在这种情况下,不需要新的非终端。
产量是:
我知道这个公式:
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 | ε
。在这种情况下,不需要新的非终端。