Read input characters of the source program, group them into lexemes
produce a sequence of tokens for each lexeme in the source program.
The stream of tokens is sent to the parser for syntax analysis.
We can produce a lexical analyzer automatically by specifying the lexeme patterns to a lexical analyzer generator and compiling those patterns into code functions as a lexical analyzer
When the lexical analyzer discovers a lexeme constituting an identifier, it needs to enter that lexeme into the symbol table