- x đúng cú pháp của vpG Dừng vòng lặp
1.4. Phương pháp Canonical LR (LR(1))
- Trong PP SLR xung đột chỉ xảy ra ở những
thực thể Aα .
- Khi xảy ra xung đột ta có thể sử dụng PP
Giáo trình Kiến trúc máy tính và Hệ điều hành
168
1. Phương pháp phân tích cú pháp dưới lên
1.4. Phương pháp Canonical LR (LR(1))
Cấu tạo: như SLR Hoạt động: như SLR Thuật toán: như SLR
Giáo trình Kiến trúc máy tính và Hệ điều hành
169
1. Phương pháp phân tích cú pháp dưới lên
1.4. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Văn phạm gia tố: như SLR - Thực thể: gồm có 2 phần
+ Phần nhân: giống thực thể trong SLR + Ký hiệu nhìn trước: a∈Σ
Giáo trình Kiến trúc máy tính và Hệ điều hành
170
1. Phương pháp phân tích cú pháp dưới lên
1.4. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Hàm tính bao đóng closure(Ii): 2 qui tắc
(1)Đưa tất cả các thực thể trong Ii vào closure(Ii)
(2)Cứ thực thể [Aα.Bβ,a]∈closure(Ii) mà Bγ
thì thêm [B.γ, b] với [B.γ, b]∉closure(Ii) và b∈first(βa)
Giáo trình Kiến trúc máy tính và Hệ điều hành
171
1. Phương pháp phân tích cú pháp dưới lên
1.4. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Qui tắc xác định First(α)
First(α)={(a∈Δ|α⇒+aβ)∪(a=$|α⇒+ε )}
- Hàm tính goto(Ii,X)
Goto(Ii,X)=Closure({AαX.β, a}) với {Aα.Xβ, a}⊂ Ii và X∈(Σ∪Δ)
Giáo trình Kiến trúc máy tính và Hệ điều hành
172
1. Phương pháp phân tích cú pháp dưới lên
1.3. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Qui tắc xác định hành động
(1)∃ [Aα.aβ,b]∈ Ii và goto(Ii,a)=Ij với a ∈Σ thì: Action[i,a]= Sj
(2)∃ [Aα.Xβ,b] ∈ Ii và goto(Ii,X)=Ij với X
Giáo trình Kiến trúc máy tính và Hệ điều hành
173
1. Phương pháp phân tích cú pháp dưới lên
1.3. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Qui tắc xác định hành động
(3)∃ [S’S.,$] ∈ Ii thì: Action[i,$]= accept
(4)∃ [Aα.,a]∈Ii thì Action[i,a]= Reduce Aα với A<>S’
Giáo trình Kiến trúc máy tính và Hệ điều hành
174
1. Phương pháp phân tích cú pháp dưới lên
1.3. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR
- Trộn các tập thực thể
Với các tập thực thể có chung phần nhân,
khác nhau phần ký hiệu nhìn trước ta có thể trộn chúng lại với nhau để được một tập
thực thể mới có:
+ phần nhân: phần giống nhau
Giáo trình Kiến trúc máy tính và Hệ điều hành
175
1. Phương pháp phân tích cú pháp dưới lên
1.4. Phương pháp Canonical LR (LR(1))
Xây dựng bảng Canonical LR Ví dụ: S CC
Giáo trình Kiến trúc máy tính và Hệ điều hành
176