int[][] lookaheads = new int[robust.size()][];
IConstructor[] robustProds = new IConstructor[robust.size()];
initializeRecovery(robust, lookaheads, robustProds);
__setInterrupt(false);
IActionExecutor<IConstructor> exec = new RascalFunctionActionExecutor(this);
return (IConstructor) parser.parse(name, location, input, exec, new DefaultNodeFlattener<IConstructor, IConstructor, ISourceLocation>(), new UPTRNodeFactory(), robustProds.length == 0 ? null : new Recoverer(robustProds, lookaheads));
}