消除左递归,e,左因素?

时间:2011-10-04 06:53:12

标签: parsing grammar

我有语法

S->一种{B}

我试图重写它以避免使用{}。如果我写

S->一种| AB B-> b | BB

然后我无法在第二条规则中进行预测性解析。如果我写

S->一种| AB B-> b |了Bb

然后我在第二条规则中变成了左递归。

尝试进行左因素分析,

B->公元前 C->(e)中|乙

我正在引入空符号。到目前为止的愿望是在没有(e)的情况下制作语法,适用于预测解析而不是左递归。

有可能吗?

1 个答案:

答案 0 :(得分:1)

我不这么认为。从本质上讲,你可以放弃语法中的一部分和b中的第一部分,它们与你的问题无关。然后,您已经枚举了所有三种声明无限数量b的样式。你必须选择其中一个。

我建议只使用空符号。