A software developer builds a source file written in a high-level language. During the initial compilation phase, the program breaks the character stream into meaningful tokens (keywords, identifiers, operators).
Which compiler component performs this initial tokenization task?