Phân tích ưu tiên toán tử (operator-precedence parsing) là một dạng shift-reduce dùng quan hệ ưu tiên ⋖ (<), ≐ (=), ⋗ (>) giữa các ký hiệu kết thúc để quyết định shift hay reduce.
Thuật toán (đơn giản hóa): ngăn xếp bắt đầu ['$']. Gọi a là ký hiệu kết thúc trên đỉnh, b là token hiện tại:
a < b hoặc a = b → shift b.a > b → reduce (pop một ký hiệu khỏi đỉnh).a = $ và b = $ → accept.Cho bảng quan hệ và chuỗi, hãy in dãy thao tác.
$ < id, id > $: với chuỗi $ id $ → shift id, reduce, accept.
Dòng đầu nr. nr dòng a REL b với REL là <, = hoặc >. Dòng cuối là chuỗi ký hiệu kết thúc, bắt đầu và kết thúc bằng $, cách nhau bởi dấu cách.
1 ≤ nr ≤ 200. Chuỗi vào có tối đa 100 token.
In dãy thao tác, mỗi thao tác một dòng: shift <tok>, reduce, accept, hoặc error.
Ví dụ:
Đầu vào:
2
$ < id
id > $
$ id $
Đầu ra:
shift id
reduce
accept
Giải thích:
Đang tải editor...