empty
a first
, výhled ve vstupním textu, DFOLLOW
a rozkladové tabulky lze použít i pro nejednoznačné
gramatiky. Syntaktickou analýzu jazyků generovaných těmito gramatikami
tak lze podstatným způsobem zefektivit.
Úpravou ll1/4
vytvoříme mód pseudoll1/4
, který
bude umožňovat provádění rozkladu pomocí tabulek i v případě kolizí
mezi množinami FIRST jednotlivých alternativ.
Selektor módu pseudoll1/4
má následující signaturu:
kde jednotlivé parametry mají stejný význam jako v případě
ll1/4
, pouze v parametru je navíc volba
OptionalDFOLLOW
, která povoluje
resp. zakazuje použití množiny DFOLLOW. Pro spouštění parserů v tomto
módu je připraven predikát invokePseudoLL1
.
Rozklad probíhá podobně jako v módu ll1/4
. V kombinátoru
alternativní kompozice se při výběru vhodné alternativy postupuje
dle následujícího algoritmu: