Parsery s výhledem

Módy emptyfirst, 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:



Subsections

dvorka 2013-12-31