Cho văn phạm, trước tiên dựng họ tập mục LR(1) chính tắc {I0,I1,…,IN1−1} (như mô tả ở bài "Dựng họ tập mục LR(1) chính tắc"). Gọi CORE của một trạng thái là tập các cặp (sản xuất, vị trí con trỏ) — BỎ QUA lookahead. Hai trạng thái LR(1) có CÙNG CORE sẽ được GỘP lại thành một trạng thái LALR(1) duy nhất; khi gộp, lookahead của mỗi mục là HỢP (union) các lookahead tương ứng từ mọi trạng thái được gộp.
Sau khi gộp xong còn lại N2 trạng thái LALR(1) (N2≤N1). Việc gộp có thể sinh THÊM xung đột reduce/reduce MỚI (theo lý thuyết, việc gộp KHÔNG BAO GIỜ sinh thêm xung đột shift/reduce mới nên chỉ cần xét reduce/reduce): tại một trạng thái đã gộp, nếu tồn tại 2 mục hoàn chỉnh KHÁC NHAU (khác sản xuất, không tính mục có LHS=S′) mà tập lookahead SAU KHI GỘP của chúng giao nhau khác rỗng, đó là xung đột.
Ví dụ kinh điển: văn phạm S -> a A d, S -> b B d, S -> a B e, S -> b A e, A -> c, B -> c là LR(1) (không có xung đột trong 14 trạng thái LR(1) chính tắc) NHƯNG không phải LALR(1): sau khi gộp còn 13 trạng thái, một trong số đó có xung đột reduce/reduce mới giữa A -> c . và B -> c ..
A -> X1 X2 ... Xk (vế phải rỗng thì A ->). Đảm bảo văn phạm không chứa ký hiệu S' hay $.CONFLICT nếu việc gộp sinh ra ít nhất 1 xung đột reduce/reduce mới ở bất kỳ trạng thái nào, ngược lại in NO CONFLICT.Ví dụ:
Đầu vào:
6
E -> E + T
E -> T
T -> T * F
T -> F
F -> ( E )
F -> id
Đầu ra:
22
12
NO CONFLICT
Đầu vào:
6
S -> a A d
S -> b B d
S -> a B e
S -> b A e
A -> c
B -> c
Đầu ra:
14
13
CONFLICT
Đang tải editor...