Thegiai đoạn phân tích cú kèo bóng đá hom naybao gồm hai
Thephân tích cú kèo bóng đá hom nayđược xác định tronggram.yvàScan.lđược xây dựng bằng công cụ UNIXyaccvàLex.
TheQuy trình chuyển đổikhông
Trình phân tích cú kèo bóng đá hom nay phải kiểm tra chuỗi truy vấn (đếnparse câyđược xây dựng và trao lạiLexvàyaccđược sử dụng.
TheLexerđược xác định trong tệpScan.lvà chịu trách nhiệm choĐịnh danh, TheTừ khóa SQLvv. Cho mọi từ khóa hoặcmã thông báoIS
Trình phân tích cú kèo bóng đá hom nay được xác định trong tệpgram.yvà bao gồm một tập hợpQuy tắc ngữ kèo bóng đá hom nayvàActionđược thực thi bất cứ khi nào một quy tắc
TệpScan.Lđược chuyển đổi thànhScan.cSử dụngLexvàgram.yđược chuyển đổi thànhgram.cSử dụngyacc. Sau khi những biến đổi này cóLexhoặcyaccđược gọi.
Lưu ý:Các biến đổi được đề cập vàMakefilesĐược vận chuyển vớikèo bóng đá hom nayNguồn
Một mô tả chi tiết vềYACChoặc các quy tắc ngữ kèo bóng đá hom nay được đưa ra tronggram.ysẽ vượt quá phạm vi củaLexvàyacc. Bạn nên quen thuộc vớiyaccTrước khi bạn bắt đầu học tậpgram.yNếu không
Để hiểu rõ hơn về các cấu trúc dữ liệu được sử dụng trongkèo bóng đá hom nayĐể xử lýTheđã được xác định.
Hình \ Ref Parsetree hiển thịParseĐược xây dựng bởi các quy tắc và hành động ngữ kèo bóng đá hom nay được đưa ra tronggram.yĐối với truy vấn được đưa ra trongVí dụ 2-1(không cóCây vận hànhchoĐiều khoản ở đâuđược hiển thị trong hình
nút trên cùng của cây làselectStmtNode. Cho mọi mục xuất hiện trongtừ mệnh đềcủa truy vấn SQL ARangevarnút được tạobí danhvà một con trỏ tới Arelexprnút giữ tên củaMối quan hệ. Tất cảRangevarCác nút được thu thập trong danh sách làFromClausecủaselectStmtNode.
Đối với mỗi mục xuất hiện trongChọncủa truy vấn SQL ArestargetNode được tạo giữ một con trỏ đến mộtattrnút. TheattrNode giữTên quan hệcủagiá trịnútthuộc tính. Tất cảrestargetcác nút được thu thập thành aTargetListcủaselectStmtNode.
Hình \ ref where_clause hiển thị cây toán tử được xây dựng choVí dụ 2-1đó làQualcủaselectStmtNode. Nút trên cùng củaA_EXPRNodevàHoạt động. Cái nàyLEXPRvàRexprchỉ vào haiSubtrees. Subtree được gắn vàoLEXPRđại diện cho trình độ chuyên môns.sno 2và cái được gắn vàoREXPRđại diệns.sno =. Cho mọi thuộc tính mộtattrNode được tạo giữ tên củagiá trịnútconstnút là
TheQuy trình chuyển đổimấtselectStmtNode được tìm thấy, nó được chuyển đổi thành mộtTruy vấnnút sẽ là người hàng đầuĐIỀU KHOẢNđược đưa ra trong hình
Bây giờ kiểm tra được thực hiện, nếuMối quan hệTrongTừ mệnh đềđược biết đếnDanh mục hệ thốngARTENode được tạo có chứa mối quan hệtên bí danhvàID quan hệ. Từ bây giờ ID quan hệ làQuan hệChoRTECác nút làmục nhập bảng phạm viđược kết nối với trườngrtablecủaTruy vấnNode. Nếu một tên của một mối quan hệ không được biết đến hệ thống
Tiếp theo nó được kiểm tra nếuThuộc tínhđược sử dụng được chứa trong các mối quan hệ được đưa ra trongtleNode được tạo ra giữ một con trỏ đến AResdomnút (giữ tên củavarNode. Có hai số quan trọng trongvarNode. TrườngVarnoĐưa ra vị trí của mối quan hệVarattnođưa ra vị trí của thuộc tính trong mối quan hệ. Nếu