描述 - 考慮語法E → E + T|TT → TF|FF → F*|a|b。解決方案步驟 1 - 構建增強語法並對產生式進行編號。(0) E′ → E(1) E → E + T(2) E → T(3) T → TF(4) T → F(5) F → F ∗(6) F → a(7) F → b。步驟 2 - 查詢閉包和 goto 函式以構建 LR(0) 專案。方框表示新狀態,圓圈表示重複狀態。FOLLOW 的計算我們可以找出FOLLOW(E) = {+, $}FOLLOW(T) = {+, a, b, $}FOLLOW(F) = {+, *, a, b, $}輸入字串 a * b + a 的分析 -堆疊 ... 閱讀更多
解決方案步驟 1 - 構建增強語法(0) S′ → S(1) S → x A y(2) S → x B y(3) A → q S(4) A → q(5) B → q步驟 2 - 查詢閉包和 goto 函式以構建 LR(0) 專案。這裡方框表示新狀態,圓圈表示重複狀態。步驟 3 - FOLLOW 的計算S → x A yFOLLOW(S) = {$} (1)應用 FOLLOW 的規則 (2a)。將 S → x a y 與 A → ... 閱讀更多
分析器是編譯的第二階段。分析器將其輸入作為從上一階段生成的標記,即詞法分析器階段,並將它們組合起來以便可以識別它們的語法。例如,考慮 I0I0 - E′ → ∙ E E → ∙ E + T E → ∙ T T → ∙ T ∗ F T → ∙ F F → ∙ (E) F → ∙ id填充移進條目應用 SLR 分析表構建演算法的規則 (2a) 於一組 ... 閱讀更多