Can Birisi Enlighten bana o geri çark ile özyinelemeli iniş ayrıştırıcı çalışır neden yapımları ve S → bir bir gramer oluşturduğu dili tanımıyor (bu sırayla) S → bir S a | a a .
Yalnızca dilden sözcükleri ayrıştırdığı anlaşılıyor .
Üretim kuralıyla bu ABNF Ayrıştırıcı Jeneratörünü kullanarak böyle bir ayrıştırıcı oluşturdum S = "a" S "a" / "aa"
ve ayrıştırıcı aaaaaa
örneğin sözcüğü tanımıyor .
Ayrıştırma ağacının terminal düğümlerinin soldan birleşmesi 7 's ile başlayana kadar üretimini kullanmasını beklerim ve daha sonra ağaç görünene kadar S → a a üretimini seçerek ayrıştırma ağacına giderim. bunun gibi:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
.
aaaaaa
ayrıştırılmalı ve ayrılmamalıdır. Ancak aaaa
ayrıştırır. Görünüşe göre 2 güçleri hakkında haklısın. sadece aa
ile ayrışır S = "aa" / "a" [S] "a"
. Ayrıştırıcının ne yaptığını izleyebilir misiniz?