查詢語法 E → E + T、E → T、T → T * F、T → F、F → (E)、F → id 的 LR(0) 專案的規範集合。
解決方案
步驟1 - 構造增強語法並對產生式進行編號
(0) E′ → E
(1) E → E + T
(2) E → T
(3) T → T * F
(4) T → F
(5) F → (E)
(6) F → id
步驟2 - 對專案集應用閉包並查詢 goto
方框表示新狀態或專案,圓圈表示重複專案。
因此,透過在 I0 上應用 goto,已完成 I0 的所有規則。現在,以相同的方式在 I1、I2 上應用 goto,然後繼續。
繪製 DFA
每個專案集可以作為 DFA 的一個狀態,即 I0、I1 … … I11 將是 DFA 的 11 個狀態。它們使用 goto 函式連線。
例如,作為 goto(I0, E) = I1。
∴ 從狀態 I0 到 I1 將有一條邊。
廣告