Working Lexer code