(รูปหมายเลข 148)
- บรรทัดที่ 3 คลาส EToken เพิ่มแอตทริบิวต์ชื่อ name มีชนิดเป็น String และเราจะใช้แอตทริบิวต์นี้เก็บชื่อ Token หรือคำที่เพิ่มเข้ามาครับ
- บรรทัดที่ 6 ภายหลังสร้าง Constructor ของคลาส EToken ที่รับเอา name, nameIndex, typeIndex มาแล้ว เราเรียกไปยัง Constructor ของคลาสที่สืบทอดมา (คลาสแม่) ซึ่งคือคลาส Token โดยคำสั่ง supper เพื่อส่ง nameIndex และ typeIndex ไปเก็บไว้ที่นั่น (ส่วน name เก็บไว้ยังแอตทริบิวต์ชื่อ name ของคลาส EToken เอง)
- บรรทัดที่ 10 เป็นต้นไปสร้าง Getter และ Setter ตามวิธีการที่ได้เสนอมาแล้วจากบทความก่อนหน้านี้ครับ
(รูปหมายเลข 148_1)
- กรอบสี่เหลี่ยมในรูป เราเรียกไปยัง toString() ของคลาสที่สืบทอดมา (Token) หรือกล่าวว่า นำสตริงของคลาสลูกต่อกับสตริงของคลาสแม่นั่นเองครับ
(รูปหมายเลข 149)
(รูปหมายเลข 150)
import java.util.LinkedList;
แต่หากเพื่อนๆใช้วิธีการกด Ctrl + Space bar แล้วค่อยๆพิมพ์ LinkedL... ณ บรรทัดที่ 22 ดังกล่าว แล้วกด Enter, NetBeans IDE จะช่วยจัดการเรื่อง import ให้อัตโนมัติ
(รูปหมายเลข 151)
- เมธอดนี้รับ tokenName มีชนิดเป็น String และ tokenTypeIndex มีชนิดเป็น int
- สำหรับ tokenName คือชื่อ Token หรือคำที่ตัดได้จากกระบวนการ Lexical (ขณะนี้ยังโค้ดไม่เสร็จ) ที่ถูกส่งเข้ามาเพิ่มตรวจสอบว่าซ้ำกับชื่อ Token หรือคำที่ถูกบรรจุไว้ก่อนหรือไม่ ?
- บรรทัดที่ 25 เขียนอัลกอริทึมตรวสอบคำที่รับเข้ามา (tokenName) หากซ้ำกับชื่อคำที่มีอยู่ก่อน ก็จะคืนค่า false แล้วออกจากเมธอดทันที
- บรรทัดที่ 30 เมื่อคำไม่ซ้ำ สร้างออบเจ็กค์จากคลาส EToken โดยอ้างอิงกับอินสแตนท์ชื่อ newToken ผ่าน Constructor ส่ง tokenName, อันดับ (รหัส) ที่ได้รับ (ไม่ซ้ำ) และ tokenTypeIndex
- บรรทัดที่ 31 เพิ่มออบเจ็กค์ newToken ให้กับ LinkedList ชื่อ symbolTable ที่ได้สร้างไว้ก่อนแล้ว กล่าวคือเพิ่มคำใหม่ลงใน Symbol Table นั่นเอง
- สุดท้ายคืนค่า true ครับ
***หมายเหตุ อันดับ (รหัส) ที่ได้รับ (ไม่ซ้ำ) ในที่นี้ผมใช้จำนวนของคำที่อยู่ใน Symbol Table ครับ โดยเขียนเป็น symbolTable.size()
(รูปหมายเลข 152)
(รูปหมายเลข 153)
- สร้างเมธอดชื่อ getTokenName() คราวนี้ส่งหมายเลขรหัสของคำเข้าไป ให้ออกมาเป็นชื่อของคำแทน (เอารหัสไป เอาชื่อมา)
(รูปหมายเลข 154)
สิ้นสุดคลาส SymbolTable เท่านี้ โอกาสต่อไปเป็นทีของคลาส TokenType ครับ
อ่านเนื้อหาที่เกี่ยวข้อง ก่อนหน้า หรือ ถัดไป
What i don't realize is in fact how you are no longer really much more smartly-preferred than you might be now. You are very intelligent. You know thus significantly in relation to this subject, made me individually believe it from so many various angles. Its like women and men aren't fascinated until it is something to do with Lady
ตอบลบgaga! Your personal stuffs great. All the time deal with it up!
Also visit my web site: cellulite treatment reviews