complete lexer