Complete lexer