Với một văn phạm phi ngữ cảnh (quy ước ký hiệu như bài toán xây dựng tập trạng thái LR(0): ký hiệu chưa kết thúc là chữ in hoa A-Z; đảm bảo mọi ký hiệu chưa kết thúc dùng ở vế phải đều có luật sinh riêng), hãy:
$).$.Văn phạm là SLR(1) khi và chỉ khi không có xung đột nào (cả SR lẫn RR đều bằng 0).
Ví dụ (văn phạm KHÔNG phải SLR(1)): S→L=R∣R,L→∗R∣id,R→L có 10 trạng thái LR(0), và có đúng 1 xung đột shift-reduce (tại trạng thái chứa đồng thời mục S→L.=R và R→L., khi ký hiệu vào là =), 0 xung đột reduce-reduce → không phải SLR(1).
Dòng đầu: S P — S là ký hiệu bắt đầu, P (1≤P≤30) số luật sinh. P dòng tiếp theo: A -> X1 ... Xk (k=0 ghi A -> eps).
In ra 4 dòng: dòng 1 — tổng số trạng thái LR(0); dòng 2 — số ô có xung đột SR; dòng 3 — số ô có xung đột RR; dòng 4 — SLR(1): YES nếu dòng 2 và dòng 3 đều bằng 0, ngược lại SLR(1): NO.
Ví dụ:
Đầu vào:
S 5
S -> L = R
S -> R
L -> * R
L -> id
R -> L
Đầu ra:
10
1
0
SLR(1): NO
Đầu vào:
E 6
E -> E + T
E -> T
T -> T * F
T -> F
F -> ( E )
F -> id
Đầu ra:
12
0
0
SLR(1): YES
Đang tải editor...