Pok-6-wyk-Slajd42

Z Studia Informatyczne
Wersja z dnia 19:17, 30 sie 2006 autorstwa Complak (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Rozwiązywanie konfliktów alternatyw

Rozwiązywanie konfliktów alternatyw


Do rozwiązywania konfliktów alternatyw w generatorze LLgen przewidziano odpowiedni zestaw słów kluczowych.

Do dynamicznego rozwiązywania konfliktów służy słowo kluczowe % if , za którym należy umieścić zapisany w języku C i ujęty w nawiasy okrągłe warunek. Konstrukcję tę należy umieścić na początku prawej strony pierwszej alternatywy produkcji, w której występuje konflikt. Przy każdym wystąpieniu konfliktu warunek będzie obliczany i jeżeli będzie prawdziwy będzie wybierana ta alternatywa. Jeżeli warunek będzie fałszywy wykorzystana zostanie któraś z pozostałych alternatyw.

W przypadku statycznego rozstrzygania konfliktów używamy słów kluczowych % prefer (równoważne % if(1 )) i % avoid (równoważne % if(0 )). Oczywiście, nic nie stoi na przeszkodzie, aby również w przypadku statycznego rozstrzygania konfliktów użyć słowa kluczowego % if , ale może to spowodować wygenerowanie nadmiarowego kodu.


<< Poprzedni slajd | Spis treści | Następny slajd >>