左再帰
以下のような規則を考える
E→E+T
E→T
一行で書くなら
E → T | E + T
すなわち、Eの右辺の最初の記号にEが来てしまうこと
このとき、この規則は曖昧性を含んでしまう
FIRST集合的には、FIRST(T) $ \subset FIRST(E+T)になるから。 左再帰は無限ループになるのが問題なのであって、曖昧な文法という意味ではない?mrsekut.icon 直接左再帰
1つの規則による左再帰
一般の左再帰
「一般の左再帰」という用語なのかなmrsekut.icon
複数の規則による左再帰
例
code:bnf
A -> Bc
B -> d|Aa
参考