Lexikální analýza: Porovnání verzí
Smazaný obsah Přidaný obsah
Řádek 55:
== Chyby vzniklé během lexikální analýzy ==
Během chodu [[konečný automat|DKA]] může dojít k chybě. Chyba vznikne, pokud pro znak pod čtecí hlavou [[konečný automat|DKA]] neexistuje žádná větev vedoucí ze stavu, ve kterém se [[procesor]] nad [[konečný automat|DKA]] nachází a zároveň tento stav není koncový.
:Taková chyba vznikne jedním ze tří možných způsobů:
:#ve vstupním textu je přidán znak navíc
:#ve vstupním textu je znak vynechán
:#Ve vstupním textu je zaměněn správný znak za chybný
:Každý z těchto tří typů chyb by se měl ošetřit jiným způsobem:
:#opakovat pokus o nalezení větve v původním stavu
:#pokusit se nalézt nějakým způsobem stav, kam měl automat přejít a kam pokračovat
:#vynechat zaměněný znak a pokračovat dále podle bodu 2.
Nelze předem předpokládat, kterou z chyb na daném místě programátor udělá, proto se obvykle ošetřuje chyba vynecháním chybného znaku a na výstup lexikálního analyzátoru se odevzdá speciální symbol (NULSYM). Tím se zotavením po chybě odsune do fáze [[syntaktická analýza|syntaktické analýzy]].
Existují i metody známé z teorie informace ([[Hammingova vzdálenost]]), které mohou sloužit k opravě některých lexikálních chyb.
|