- Báo lỗ ix không đúng cú pháp của G Dừng vòng lặp
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Văn phạm ưu tiên toán tử
Văn phạm phi ngữ cảnh thỏa mãn các ĐK:
- Không có 2 sản xuất có cùng vế phải - Không có vế phải là ε
- Không có 2 ký hiệu chưa kết thúc đứng liền
Giáo trình Kiến trúc máy tính và Hệ điều hành
103
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Mối quan hệ ưu tiên giữa các ký hiệu
Với a, b ∈Σ có:
- a < b : a kém ưu tiên hơn b - a= b: a ưu tiên bằng b
- a > b: a ưu tiên hơn b
- a và b : không có quan hệ ưu tiên
⋅ ⋅ ⋅
Giáo trình Kiến trúc máy tính và Hệ điều hành
104
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Qui tắc xác định mối quan hệ (1) ∃ Sx mà vế phải có dạng αabβ hay αaCbβ (2) ∃ Sx mà vế phải có dạng αaBβ mà B⇒+ bγ hay B⇒+Cbγ (3) ∃ Sx mà vế phải có dạng αAbβ mà A⇒+ γa hay A⇒+ γaC a=b. a<b. a>b.
Giáo trình Kiến trúc máy tính và Hệ điều hành
105
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Qui tắc xác định mối quan hệ
(4) S⇒+γa hay S⇒+γaC hay S⇒+ aγ hay S⇒+Caγ Với a, b∈Σ; A,B,C∈Δ; α, β, γ ∈ (Σ∪Δ)* Lưu ý:- Cán:< > - a < b b < c a >$. . . . . a < c. (Không có T/c bắc cầu)
Giáo trình Kiến trúc máy tính và Hệ điều hành
106
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Thuật toán
Sử dụng: 1 stack và 1 Buffer Khởi tạo: - stack: $
- Buffer: x$
Lặp: If (Stack là $S) và (Buffer là $) Then - x đúng cú pháp của vp G
Giáo trình Kiến trúc máy tính và Hệ điều hành
107
1. Phương pháp phân tích cú pháp dưới lên
1.1. Phương pháp ưu tiên toán tử
Thuật toán
Else {giả sử k/h kết thúc gần đỉnh stack nhất là a và buffer là b}
If (a>b) Then