繁体   English   中英

消除左递归,e,左分解?

[英]eliminating left-recursion, e, left-factoring?

我有语法

S->一个{B}

并且我正在尝试重写它以避免使用{}。 如果我写

S-> a | aB B-> b | bB

那么我无法在第二条规则中进行预测性分析。 如果我写

S-> a | aB B-> b | Bb

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

尝试做左分解,

B-> bC C->(e)| B

我正在介绍空符号。 到目前为止的愿望是制作不带(e)的语法,该语法适合于预测性分析而不是左递归。

可能吗?

我不这么认为。 本质上,您可以在语法中删除a部分,然后删除b的第一个部分,它们与您的问题无关。 然后,您列举了声明无限多个b的所有三种样式。 您必须选择其中之一。

我建议只使用空符号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM