Lexikální analýza: Porovnání verzí

Smazaný obsah Přidaný obsah
m →‎Pojmy lexikální analýzy: vráceno odsazení tabulky
m typos
Řádek 1:
'''Lexikální analýza''' je činnost, kterou provádí tzv. '''lexikální analyzátor''' (''scanner'') - je součástí [[Překladač|překladače]]. LexikálniLexikální analyzátor rozdělí vstupní posloupnost znaků na lexémy - lexikální jednotky (např. identifikátory, čísla, klíčová slova, operátory, …). Tyto lexémy jsou reprezentovány ve formě [[Token|tokenů]], ty jsou poskytnuty ke zpracování [[Syntaktická analýza|syntaktickému analyzátoru]].
 
Úkolem lexikálního analyzátoru je také odstranění komentářů a bílých znaků ze zdrojového programu.
Řádek 30:
* '''Pattern''' – pravidla popisující množinu řetězců pro daný token. Většinou využívá regulární výrazy.
* '''Token''' – výstup lexikální analýzy a vstup [[syntaktická analýza|syntaktické analýzy]]. V [[syntaktická analýza|syntaktické analýze]] se nazývá '''terminál'''.
* '''Lexém''' – sekvence znaků ve zdrojovém kódu, která odpovídá nejakémunějakému patternu určitého tokenu.
* '''Literál''' – konstanta s určitou hodnotou.
 
Řádek 47:
 
== Generátory lexikálních analyzátorů ==
Existuji automatické nástroje pro tvorbu lexikárníchlexikálních analyzátorů, např. Lex, [[Flex]]
 
== Algoritmus lexikální analýzy ==
Jak bylo uvedeno dříve, lexikální analyzátor provádí překlad vstupního textu na posloupnost symbolů. Víme, že stavbu jednotlivých symbolů lze obvykle popsat [[Regulární gramatika|regulární gramatikou]]. Lexikální analyzátor je pak tvořen deterministickým konečným automatem (též [[konečný automat|DKA]]). Opakovanou činností [[procesor|procesoru]] nad tímto [[konečný automat|DKA]] získáme hledanou posloupnost symbolů. Identifikace přijatého symbolu se bude provádět podle koncového stavu automatu, v nemžněmž pro daný symbol [[procesor]] skončil svou činnost.
 
== Chyby vzniklé během lexikální analýzy ==