Myšlenka

Aby jsme mohli určit, že gramatika je typu LL(1), je nutné, aby jsme byli schopni: Na základě těchto informací pak můžeme rozhodnout, zda lze rozklad provést deterministicky. K ověření výše uvedených vlastností gramatiky použijeme módy parserů, kde veškerá analýza bude prováděna za běhu. Určení daného atributu bude realizováno spuštěním parseru ve speciálním režimu, v němž bude schopen dané informace získat.

Nejdříve vytvoříme mód pro ověření schopnosti přijímat prázdný řetězec, pak pro výpočet množiny FIRST a konečně v části [*] ukážeme, jak získat postačující část množiny FOLLOW.

Vzhledem k použití módů musíme rozšířit pouze definice základních primitiv a konstruktorů. U složitějších parserů vyšších úrovní získáváme odpovídající chování v daném módu zdarma.



dvorka 2013-12-31