-=[ 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 ]=-