我理解左递归
A - > Aα| β
所以A可以是β并且停止或继续并且具有Aα无限次,因为它在其自身中被解释。所以,如果我要解析βαα:
A
/ \
A α
/ \
Α α
/
β
我发现右递归中的语法相同如下:
A-> βA“
A' - > αA'|ε
我可以再次为βαα做解析树,但我无法读取左递归中的生成规则。有人可以用这种右递归语法解释阅读生产规则的步骤吗?
答案 0 :(得分:0)
生产规则按此顺序应用:
A ->
-> βA' (apply A -> βA')
-> βαA' (apply A' -> αA')
-> βααA' (apply A' -> αA')
-> βαα (apply A' -> ε)
解析树看起来像这样:
A
/ \
β A'
/ \
α A'
/ \
α A'
|
ε
每个直接左递归的规则:
A -> Aa | Ab | Ac | ... | x | y | z
替换为:
A -> xA' | yA' | zA' | ...
A' -> aA' | bA' | cA' | ε
其中a
,b
,c
,...,x
,y
,z
是不以A
。
重复此过程,直到没有直接的左递归为止。