Lexical analyzer มีหน้าที่อะไร ที่ lexical analyzer ลบ white space ออกจากไฟล์ต้นฉบับอย่างไร?
Lexical analyzer มีหน้าที่อะไร ที่ lexical analyzer ลบ white space ออกจากไฟล์ต้นฉบับอย่างไร?

วีดีโอ: Lexical analyzer มีหน้าที่อะไร ที่ lexical analyzer ลบ white space ออกจากไฟล์ต้นฉบับอย่างไร?

วีดีโอ: Lexical analyzer มีหน้าที่อะไร ที่ lexical analyzer ลบ white space ออกจากไฟล์ต้นฉบับอย่างไร?
วีดีโอ: Token Separation(Lexical Analyzer) using Python 2024, ธันวาคม
Anonim

NS งานของเครื่องวิเคราะห์คำศัพท์ (หรือบางครั้งเรียกว่าสแกนเนอร์) คือการสร้างโทเค็น ทำได้โดยการสแกนโค้ดทั้งหมด (ในลักษณะเชิงเส้นโดยการโหลดโค้ดลงในอาร์เรย์) จากจุดเริ่มต้นจนถึงจุดสิ้นสุดของสัญลักษณ์ทีละสัญลักษณ์ และจัดกลุ่มเป็นโทเค็น

ในทำนองเดียวกัน มีคนถามว่า lexical analyzer มีหน้าที่อะไร?

ในฐานะที่เป็นเฟสแรกของคอมไพเลอร์ main งาน ของ เครื่องวิเคราะห์คำศัพท์ คือการอ่านอักขระอินพุตของโปรแกรมต้นทาง จัดกลุ่มเป็น lexemes และสร้างลำดับของโทเค็นสำหรับแต่ละ lexeme ในโปรแกรมต้นทางเป็นเอาต์พุต สตรีมของโทเค็นถูกส่งไปยัง พาร์เซอร์ สำหรับไวยากรณ์ การวิเคราะห์.

ประการที่สอง ผลลัพธ์ของ lexical analyzer คืออะไร? (I) ดิ ผลผลิต ของ เครื่องวิเคราะห์คำศัพท์ คือโทเค็น (II) จำนวนโทเค็นทั้งหมดใน printf("i=%d, &i=%x", i, &i); คือ 10 (III) ตารางสัญลักษณ์สามารถนำไปใช้ได้โดยใช้อาร์เรย์ ตารางแฮช ต้นไม้ และรายการที่เชื่อมโยง

ดังนั้น การดำเนินการกู้คืนข้อผิดพลาดที่เป็นไปได้ใน lexical analyzer คืออะไร?

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

เราจะใช้ตัววิเคราะห์คำศัพท์ได้อย่างไร

การวิเคราะห์คำศัพท์ เป็นไปได้ ดำเนินการ ด้วยออโตมาตะจำกัดที่กำหนดขึ้นได้

  1. Lexical analyser อ่าน int ก่อนและพบว่าถูกต้องและยอมรับเป็นโทเค็น
  2. max ถูกอ่านและพบว่าเป็นชื่อฟังก์ชันที่ถูกต้องหลังจากอ่าน (
  3. int ก็เป็นโทเค็นเช่นกัน จากนั้นฉันก็เป็นโทเค็นอื่นและในที่สุด

แนะนำ: