Dapatkah seseorang mencerahkan saya mengapa keturunan parser rekursif dengan backtracking yang mencoba produksi dan S → a a (agar) tidak mengakui bahasa yang dibentuk oleh grammar S → a S a | a a .
Tampaknya hanya mengurai kata-kata dari bahasa .
Saya membuat parser seperti itu menggunakan ABNF Parser Generator dengan aturan produksi S = "a" S "a" / "aa"dan parser tidak mengenali kata aaaaaa, misalnya.
Saya akan berharap untuk menggunakan produksi sampai gabungan dari parse pohon node terminal dari mulai kiri dengan 7 's, dan kemudian naik pohon parse memilih produksi S → a sebuah bukannya sampai terlihat pohon seperti ini:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa.
aaaaaaharus diurai dan tidak. Tapi aaaaapakah parse. Anda tampaknya benar tentang kekuatan 2. Benda itu harus disadap. hanya diurai aadengan S = "aa" / "a" [S] "a". Bisakah Anda melacak apa yang dilakukan parser?