Make lexer recursive descent