Nhập môn Chương trình dch
Hc kì II 2006-2007
Bài 8: Phân tích LR (tiếp)
Lp trình bphân tích cú pháp
Trước đây: tviết bphân tích cú pháp
Hin nay: sdng các trình sinh bphân
tích cú pháp. VD: yacc, cup, bison
Ưu điểm:
Sdụng phương pháp phân tích LALR(1)
Cho phép khai báo tht ưu tiên, kết hp
ca các phép toán
Tự động sinh code phân tích pháp (kc
bng phân tích LALR(1))
Thtkết hp (1)
d
Nếu sdụng phương pháp LALR(1), ta s
được bphân tích như thê nào ?
S S + E | E
E s| (S)
E E + E | (E) | s
Thtkết hp (2)
Xung đột
E E + E | (E) | s
E E+ E +
E E + E+,$
xung đột gt / thu gn
gt: 1 + (2 + 3)
thu gn: (1 + 2) + 3
1 + 2 + 3
Khai báo cú pháp trong CUP
non terminal E; terminal PLUS, LPAREN...
precedence left PLUS;
E ::= E PLUS E
| LPAREN E RPAREN
| NUMBER ;
Khi gp du cng, thu gnnếu vếphi có du cng,
gtnếu vếphi không có du cng