Initial Lexer implementation, along with tests and driver module