complete Lexer