Menangani produksi yang dapat dibatalkan dalam tata bahasa LR(0).

Menurut saya ini pertanyaan yang cukup mudah, tetapi saya tidak dapat menemukan jawabannya di mana pun.

Jika saya memiliki tata bahasa dengan non-terminal yang menurunkan NULL, seperti ini:

  1. S -> B$
  2. B -> idP
  3. P -> (E)
  4. P ->
  5. E -> B

Bagaimana cara menangani produksi #3 untuk membuat diagram status LR(0)-nya? Apakah saya harus menyertakan kolom yang sesuai dengan transisi dengan set kosong di tabel parsing LR(0) saya?


person gcolucci    schedule 22.10.2014    source sumber


Jawaban (1)


Item P -> · tidak berbeda dengan item lainnya dengan · di ujung kanan; fakta bahwa tidak ada yang mendahului · tidak membuatnya istimewa. Penutupan item

B -> id · P

akan menjadi negara bagian q:

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

dari mana goto(q, P) akan menunjukkan transisi ke B -> id P · dan goto(q, () akan menunjukkan transisi ke P -> ( · E ). goto pada $ dan ) tidak ditentukan pada keadaan itu, tetapi action ditentukan; ini akan menunjukkan bahwa P harus dikurangi menggunakan aturan P ->, setelah itu goto(q, P) akan digunakan.

person rici    schedule 22.10.2014