final lexer