為以下語法構造 SLR 解析表。並解析輸入字串 a * b + a。
描述 - 考慮以下語法
E → E + T|T
T → TF|F
F → 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 的解析 -
| 棧 | 輸入字串 | 動作 |
|---|---|---|
| 0 | a * b + a $ | 移進 |
| 0 a 4 | * b + a $ | 根據 F → a. 規約 |
| 0 F 3 | * b + a $ | 移進 |
| 0 F 3 * 8 | b + a $ | 根據 F → F ∗ 規約 |
| 0 F 3 | b + a $ | 根據 T → F 規約 |
| 0 T 2 | b + a $ | 移進 |
| 0 T 2 b 5 | +a $ | 根據 F → b 規約 |
| 0 T 2 F 7 | +a $ | 根據 T → TF 規約 |
| 0 T 2 | +a $ | 根據 E → T 規約 |
| 0 E 1 | +a $ | 移進 |
| 0 E 1 + 6 | a$ | 移進 |
| 0 E 1 + 6 a 4 | $ | 根據 F → a 規約 |
| 0 E 1 + 6 F 3 | $ | 根據 T → F 規約 |
| 0 E 1 + 6 T 9 | $ | 根據 E → E + T 規約 |
| 0 E 1 | $ | 接受 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP