我想從以下語法刪除左遞歸: S -> id = E
S -> id [ E ] = E
E -> E [ E ]
E -> id
我試圖遵循呈現在https://en.wikipedia.org/wiki/Left_recursion左遞歸去除算法,但E -> E [ E ]行帶給我的問題,應該怎麼它被處理? 我不想得到一個完整的解決方案,只是一些提示,所以我實際上可以學習如何工作。 我
使用任何技術(置換,因式分解,左遞歸移除), 構造接受與G.相同語言的LL(1)語法 G over Σ = {0, 1, 2}:
S → Y | 1X
X → 1X | 0
Y → Y0 | 1X1 | 2X2
我這樣做,到目前爲止: X是左遞歸這樣: X -> 1F | 0F
F -> 1F | e
我需要做的,以構建一個LL還有什麼(1),能我是因素Y?