Encyklopedia w MarkpolReklama:Dangling else problem to problem niejednoznaczności spotykanych w praktyce gramatyk bezkontekstowych. Niech polecenie redukuje się do if (warunek) polecenie, do if (warunek) polecenie else polecenie oraz do jakiegoś innego polecenia, np. zmienna = wyrażenie. Weźmy teraz polecenie: :if (warunek1) if (warunek2) zmienna = wyrażenie else zmienna = wyrażenie Gramatyka w żaden sposób nie rozstrzyga do którego if odnosi się to else: :if (warunek1) { if (warunek2) zmienna = wyrażenie else zmienna = wyrażenie } czy też: :if (warunek1) { if (warunek2) zmienna = wyrażenie } else zmienna = wyrażenie Gramatykę taką zawszę można przekształcić w gramatykę jednoznaczną, zwykle zakładając że else dotyczy najwewnętrzniejszego wolnego if (czyli pierwsza z podanych wyżej interpretacji). Jest to również rozwiązanie najlepsze ze względu na strukturę analizatora składni: aby skojarzyć napotkany else z właściwym if nie potrzeba sprawdzać liczby else-ów następujących w dalszej części analizowanego napisu. Chcesz wypromować swoją stronę w internecie?? - nie zwlekaj pozycjonowanie w Luman.biz to rozsądny wybór |
|