Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

เฟสที่ 1: การแยกวิเคราะห์

นี่คือเอกสารที่อธิบายวิธีแยกวิเคราะห์สคริปต์ .mm

ไวยากรณ์

whamm.pest

ไวยากรณ์ของ Whamm เขียนขึ้นด้วยไลบรารี Rust ชื่อ Pest ซึ่งเป็นตัวสร้าง parser ที่ใช้ Parsing Expression Grammars (PEG) เป็นอินพุต การอ่านหนังสือ Pest ก่อนจะช่วยให้คุณเข้าใจวิธีอ่านไวยากรณ์ใน whamm.pest

Pest ทำการแยกวิเคราะห์สคริปต์ .mm ที่ส่งเข้ามา และสร้างชุด Rule ที่แมตช์ได้ ซึ่งจากนั้นจะถูกท่องไปใน whamm_parser.rs เพื่อสร้าง Abstract Syntax Tree (AST) ของ Whamm ชื่อของ Rule เหล่านี้สอดคล้องกับชื่อที่ใช้ในไวยากรณ์ whamm.pest

คุณติดตามตรรกะการสร้าง AST จาก Pest Rule ได้โดยเริ่มจากจุดเข้าของการแยกวิเคราะห์ นั่นคือฟังก์ชัน parse_script ที่อยู่ในไฟล์ whamm_parser.rs

Abstract Syntax Tree (AST)

เราใช้ AST เป็นตัวแทนของสคริปต์ .mm หลังการแยกวิเคราะห์ AST นี้ถูกนำไปใช้ต่างกันในแต่ละเฟสของคอมไพเลอร์ที่ตามมา

ระหว่าง การตรวจสอบ AST ถูกใช้สร้าง SymbolTable และทำการตรวจชนิด

ขณะ แปลง AST ให้เป็นตัวแทนของกลยุทธ์การอินเจกต์ AST จะถูกเยี่ยมชมและจัดโครงสร้างใหม่ให้คอมไพล์ได้ง่ายขึ้นสำหรับแต่ละกลยุทธ์ แต่ละโหนดจะมีข้อมูลใหม่ที่จำเพาะต่อกลยุทธ์ ซึ่งมีประโยชน์ระหว่างการปล่อยโค้ด

ขณะ ปล่อยโค้ด จะใช้รูปแบบ AST ที่เรียบง่ายกว่าที่กล่าวถึงข้างต้น เพื่อค้นหาคำสั่งโกลบอลและวนซ้ำนิยามของโพรบเพื่อฉีดเข้าไปยังตำแหน่งที่สนใจในโปรแกรม Wasm