Lexer: return a token list to caller