-=[ Index
| Volba jazyka
| Práce s gramatikou
| Konstrukce množin Empty, First, Follow, Empty
| Konstrukce LL tabulky
| Analýza věty
]=-
Analýza věty
Jakmile máme vytvořenu LL-tabulku, můžeme pomocí tabulky odsimulovat
prediktivní syntaktickou analýzu pro uživatelem zadanou větu.
Výchozí stav syntaktického analyzátoru je uveden na následujícím obrázku.
Volba způsobu vytváření množin
Do políčka "Vstupní věta" uživatel zadá větu, pro kterou chce provést
syntaktickou analýzu. Jednotlivé symboly musí oddělit mezerou.
Syntaktickou analýzu pro danou větu může provést buď automaticky naráz
a nebo ji může postupně krokovat, aby bylo možné průběžně sledovat
jednotlivé kroky. V každém kroku tak může sledovat hodnoty prvků
uložených na zásobníku a dostud nezpracovanou část vstupního řetězce.
Jedním krokem se rozumí provedení porovnání aktuálního vstupního symbolu
se symbolem na vrcholu zásobníku a nebo expanzi pomocí jistého pravidla:
Porovnání (POP)
Porovnání se provádí v případě, že na vrcholu zásobníku je obsažen symbol
reprezentující terminál. Dojde k porovnání tohoto terminálu na vrcholu
zásobníku se symbolem na vstupu. Pokud jsou symboly shodné, dojde k
odstranění terminálu na vrcholu zásobníku a k předčtení aktuálního symbolu
ze vstupu. Pokud symboly shodné nejsou, nastala chyba syntaktické analýzy.
Provedení akce POP
Expanze
Expanze se provádí v případě, že na vrcholu zásobníku je obsažen symbol
reprezentující nonterminál. Podle hodnoty tohoto nonterminálu a hodnoty
vstupního symbolu je vybráno pravidlo z LL-tabulky. Pokud v LL-tabulce
na této pozici žádné pravidlo není, nastala chyba syntaktické analýzy.
Expanze je potom provedena tak, že symbol reprezentující nonterminál
z vrcholu zásobníku je nahrazen reverzovanou pravou stranou vybraného pravidla.
Provedení akce POP
Syntaktická analýza může proběhnout úspěšně (daná věta je gramatikou generována)
nebo neúspěšně (daná věta není gramatikou generována).
Syntaktická analýza končí úspěšně, pokud na vrcholu zásobníku se nachází symbol $
a pokud celá věta zadaná na vstupu byla úspěšně přečtena.
Syntaktická analýza končí neúspěšně, pokud během ní nastala chyba při expanzi
a nebo při operaci POP (viz. výše)
Provedení akce POP
Provedení akce POP
-=[ Index
| Volba jazyka
| Práce s gramatikou
| Konstrukce množin Empty, First, Follow, Empty
| Konstrukce LL tabulky
| Analýza věty
]=-