Lexer не заботится о семантике. Единственная миссия в жизни для лексеров - преобразовать исходный код (поток символов) в токены, каждый из которых имеет эту форму <Token_type, Information_related_to_token>
информация может быть значением токена (строки), название оператора (=) ...
Затем токены отправляются парсеру, который занимается синтаксическим анализом. в качестве дополнительного задания лексер может создать таблицу символов.