Part 1 can be found here.
Lexer
The Lexer serves as the most basic element. Its primary function involves iterating through the characters present in the source code. It may combine certain characters to create a single token and subsequently generate a token object with its associated type. This object is then added to the resulting list.