I want to implement an ES6 (JavaScript) parser in Dlang so I can implement a transpiler. Because it's a transpiler, I need to be able to visit and rewrite AST nodes, then generate code from the AST. Ideally, the parser generator supports streaming the input into the AST visitor out to the output. What parser generator library should I use for this purpose?