查詢語法 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 將有一條邊。

更新於:2021 年 11 月 2 日

3K+ 瀏覽量

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告