Challenge 6: Lexical Analyzer