Rad by som si urobil jasno v pojmoch.
Lexer prevedie retazec zdrojoveho kodu na pole tokenov.
Nasledne parser z pola tokenov urobi abstraktny syntakticky strom (AST).
Napriklad v lispe z prvkov medzi pravou a lavou zatvorkou parser urobi List a potom prechadza rekurzivne vsetky prvky toho Listu a z nich tiez vygeneruje bud List, Identifikator alebo Literal?
Nasledne cely strom vyhodnoti funkcia eval?
chapem tomu spravne? Alebo sa mylim? A ako sa nazyva polozka toho AST?
Chapes to spravne. Ten AST by se jeste mel projit aby se provedla semanticka kontrola. Napr: ' 1 + "Ahoj" ' je syntakticky spravne, ale semanticky to nedava smysl (alespon u casti jazyku).
V realu je casto potreba provadet vsechny kroky najednou (paralelne). Napr. tzv "kontext sensitive lexer" by mel poznat jestli je "ahoj" jmeno typu anebo ne. Bez toho by dalsi parsovani nemelo smysl.