你好,
我有以下形式的产品:
Expr ---> Primary | UnaryOp Expr | Expr BinOp Expr | id=Expr | id[Expr]=Expr.
任何人都可以通过删除左递归来帮助我将其转换为 LL(1) 形式吗??我已经对此表示反对,但我仍然无法理解:(。以下是我的尝试。
Expr ---> Primary Expr' | UnaryOp Expr Expr' | id=Expr Expr' | id[Expr]=Expr Expr'
Expr' ---> BinOp Expr Expr' | epsilon
上述转换是否正确??我从这里做什么?
我使用了在wikipedia中找到的以下一般规则。
A ---> Ab | B
转换时:
A' ---> aA'
A ---> BA'