3
ตัวแยกวิเคราะห์แบบสืบเชื้อสายซ้ำพร้อมการย้อนรอยสำหรับไวยากรณ์
คนที่สามารถสอนให้ฉันทำไม parser โคตร recursive กับ backtracking ที่พยายามที่โปรดักชั่นและ (ตามลำดับ) ไม่รู้จักภาษาเกิดขึ้นจากไวยากรณ์AAS→ a SaS→aSaS \rightarrow aSaS→S→aaS \rightarrow aaS→ a Sa | S→aSa | aaS \rightarrow aSa\ |\ aa มันจะปรากฏคำเฉพาะแยกจากภาษา\}{ a2n | n≥1} {a2n | n≥1}\{a^{2^n}\ |\ n \ge 1 \} ฉันสร้างตัวแยกวิเคราะห์ดังกล่าวโดยใช้ตัวแยกวิเคราะห์ ABNF นี้กับกฎการผลิตS = "a" S "a" / "aa"และตัวแยกวิเคราะห์ไม่รู้จักคำaaaaaaเช่น ฉันคาดหวังว่ามันจะใช้การผลิตจนกระทั่งการต่อเชื่อมของโหนดเทอร์มินัลของการแยกจากซ้ายเริ่มต้นด้วย 7 ของจากนั้นขึ้นไปที่การแยกเลือกการผลิตแทนจนกระทั่งต้นไม้ดูเหมือน นี้:S→ …