หลายของเครื่องมือเหล่านี้ทำทำงานโดยตรงกับต้นไม้ไวยากรณ์นามธรรม (หรือมากกว่าโดยตรงแบบหนึ่งต่อหนึ่งภาพของมัน) ซึ่งรวมถึง Blockly ซึ่งคุณเคยเห็นและภาษาบล็อกอื่น ๆ ตามและบรรณาธิการเช่นนั้น ( Scratch , ดินสอรหัส / หยด , จัง! , GP , กระเบื้องเกรซ , และอื่น ๆ )
ระบบเหล่านั้นไม่ได้แสดงการแสดงกราฟจุดสุดยอดและแบบดั้งเดิมด้วยเหตุผลที่อธิบายไว้ที่อื่น (เว้นวรรคและความยากลำบากในการโต้ตอบ) แต่มันก็เป็นตัวแทนของต้นไม้โดยตรง โหนดหนึ่งหรือบล็อกเป็นลูกของอีกถ้ามันโดยตรงร่างกายภายในผู้ปกครอง
ฉันสร้างหนึ่งในระบบเหล่านี้ ( Tiled Grace , paper , paper ) ฉันรับรองกับคุณได้เลยว่ามันทำงานได้ดีกับ AST โดยตรง: สิ่งที่คุณเห็นบนหน้าจอคือการแสดงแผนผังต้นไม้ที่ถูกต้องในฐานะองค์ประกอบ DOM ที่ซ้อนกัน (เช่นต้นไม้!)
นี่คือ AST ของรหัสบางส่วน รูทเป็นโหนดการเรียกเมธอด "for ... do" โหนดนั้นมีลูกบางส่วนเริ่มต้นด้วย "_ .. _" ซึ่งมีสองลูกคือโหนด "1" และโหนด "10" สิ่งที่เกิดขึ้นบนหน้าจอคือสิ่งที่แบ็กเอนด์คอมไพเลอร์ถ่มน้ำลายกลางกระบวนการ - ซึ่งเป็นพื้นฐานการทำงานของระบบ
ถ้าคุณชอบคุณสามารถคิดว่ามันเป็นเลย์เอาต์ต้นไม้มาตรฐานโดยมีขอบที่ชี้ออกมาจากหน้าจอที่มีต่อคุณ (และบล็อกที่อยู่ตรงหน้าพวกมัน) แต่การทำรังนั้นเป็นวิธีที่แสดงต้นไม้ได้อย่างถูกต้อง แผนภาพ
นอกจากนี้ยังจะ "ทำการปัดเศษจากต้นทางไปยังโหนดกราฟแล้วกลับไปยังแหล่งข้อมูลอีกครั้งเมื่อจำเป็น" ในความเป็นจริงคุณจะเห็นว่าเกิดขึ้นเมื่อคุณคลิก "ดูรหัส" ที่ด้านล่าง หากคุณแก้ไขข้อความข้อความนั้นจะถูกวิเคราะห์ใหม่และแผนผังผลลัพธ์จะแสดงขึ้นเพื่อให้คุณแก้ไขอีกครั้งและหากคุณแก้ไขบล็อกสิ่งเดียวกันก็เกิดขึ้นกับแหล่งที่มา
ดินสอรหัสไม่เป็นหลักสิ่งเดียวกันกับที่จุดนี้อินเตอร์เฟซที่ดีกว่า บล็อกที่ใช้เป็นมุมมองกราฟิกของ CoffeeScript AST ดังนั้นระบบอื่น ๆ ที่ใช้บล็อก - หรือไทล์โดยและขนาดใหญ่ถึงแม้ว่าบางส่วนของพวกเขาไม่ได้ทำมุมมองการทำรังค่อนข้างชัดเจนในการแสดงภาพและหลายคนไม่มีภาษาต้นฉบับจริงที่อยู่เบื้องหลังดังนั้น " ต้นไม้ไวยากรณ์ "อาจเป็นภาพลวงตาเล็กน้อย แต่หลักการอยู่ที่นั่น
สิ่งที่คุณกำลังขาดหายไปก็คือว่าระบบเหล่านี้จริงๆจะทำงานโดยตรงกับต้นไม้ไวยากรณ์นามธรรม สิ่งที่คุณเห็นและจัดการคือการเรนเดอร์ต้นไม้อย่างมีประสิทธิภาพในพื้นที่ในหลาย ๆ กรณีตัวอักษรที่ AST คอมไพเลอร์หรือตัวแยกวิเคราะห์สร้าง