Výběr parseru v alternativní kompozici v módu ll1/4
.
Vstup: |
Množina DFOLLOW a výhled . |
Výstup: |
Seznam úspěšných rozkladů získaný aplikací parseru . |
Metoda: |
|
- Proveď mělké zanoření přes všechny bezprostředně následující
varianty kombinátorů alternativní kompozice. Získáš tak množinu
všech alternativ, jež přicházejí v úvahu pro pokračování v rozkladu.
- Použij mód
first/0
pro výpočet množin jednotlivých
alternativ.
- Ověř, zda mezi množinami došlo ke konfliktu, tj.:
V případě kolize přejdi do 6, jinak pokračuj krokem 4.
Vytvoř fragment tabulky a ulož jej dle parametrů selektoru
pro pozdější použití ve zvolené reprezentaci.
- Jestliže:
potom a přejdi do 7, v opačném případě pokračuj v 5.
- Protože množina , která by obsahovala symbol neexistuje,
pokus se o -přechod. Nejvýše jedna z alternativ může
obsahovat ve své množině FIRST prázdný řetězec (ověřeno
v kroku 3). Pokud:
proveď výpočet množiny DFOLLOW dle . Jestliže:
pak a přejdi do 7, v opačném případě neexistuje alternativa
umožňující pokračování ve výpočtu a rozklad musí být
ukončen -- krok 6.
Vzájemná disjunktnost celé DFOLLOW a množin FIRST se vzhledem
k časové složitosti této operace neověřuje.
- Chyba -- pokus se vyhledat ve vnořeném selektoru pozici ve
vstupním textu a vypiš chybové hlášení.
- Aplikuj parser .
Pokud je v selektoru módu povoleno ukládání, první spuštění parseru
sice ještě není příliš rychlé, ale při dalších jeho aplikacích
se již jejich abstraktní interpretace provádí jen výjimečně a využívají
se při ní již dříve získaná data.
dvorka
2013-12-31