การจัดการการผลิตที่เป็นโมฆะในไวยากรณ์ LR(0)

ฉันคิดว่ามันเป็นคำถามที่ค่อนข้างตรงไปตรงมา แต่ฉันไม่สามารถหาคำตอบได้ทุกที่

หากฉันมีไวยากรณ์ที่ไม่ใช่เทอร์มินัลที่ได้รับค่า NULL เช่นนี้

  1. S -> B$
  2. B -> ไอดีพี
  3. P -> (E)
  4. P ->
  5. E -> B

ฉันจะจัดการการผลิต #3 เพื่อสร้างไดอะแกรมสถานะ LR(0) ได้อย่างไร ฉันจำเป็นต้องรวมคอลัมน์ที่สอดคล้องกับการเปลี่ยนแปลงด้วยชุดว่างในตารางแยกวิเคราะห์ LR(0) ของฉันหรือไม่


person gcolucci    schedule 22.10.2014    source แหล่งที่มา


คำตอบ (1)


รายการ P -> · ไม่แตกต่างจากรายการอื่นๆ โดยมี · อยู่ทางด้านขวามือ ความจริงที่ว่าไม่มีสิ่งใดนำหน้า · ไม่ได้ทำให้มันพิเศษ การปิดรายการ

B -> id · P

จะเป็นสถานะ q:

B -> id · P
P -> · ( E )
P -> ·

โดยที่ goto(q, P) จะระบุถึงการเปลี่ยนเป็น B -> id P · และ goto(q, () จะระบุถึงการเปลี่ยนเป็น P -> ( · E ) goto บน $ และ ) ไม่ได้ถูกกำหนดไว้ในสถานะนั้น แต่ action คือ; มันจะระบุว่าควรลด P โดยใช้กฎ P -> หลังจากนั้นจะใช้ goto(q, P)

person rici    schedule 22.10.2014