上文已處理左遞歸,本文解決右遞歸。右遞歸產生 reduce 循環(左遞歸是 shift 循環)。
shift/reduce (ε-邊) 連接子狀態機。當規則引用自身且位於尾部:A → α A。狀態機出現 reduce ε-循環。

不壓縮 ε-循環,改在運行時「試探」:
reduce 可用。此法保留語法樹構造所需的語義動作,不簡化為正則表達式。
C 語言兩大難題仍需非確定性下推自動機 (NPDA) 處理:
A * B; 可能是乘法或指針聲明,需符號表輔助或保留歧義節點。(A*****)B 括號內類型/表達式無限長,lookahead 無效,需 NPDA 並行探索。下一篇將講解非確定性解析器實現。