De um jeito simplificado, é equivalente ao que o nosso cérebro faz quando lê um texto:
"Eu gosto de sorvete" -> ["Eu", "gosto", "de", "sorvete"]
Não lemos letra por letra, agrupamos automaticamente em palavras, um lexer faz o mesmo: recebe um texto bruto e o divide em sequências de caracteres com significado (chamados de tokens). Em um código, por exemplo:
let x = 10 + 5Res:
[ LET ] [ IDENTIFIER: "x"] [ EQUALS ] [ NUMBER: 10 ] [ PLUS ] [ NUMBER: 5 ] [ SEMICOLON ]
-> Parser