std::shared_ptr<Parser> Parser::fromFile(std::string const& filename) { ParserImpl* pimpl = new ParserImpl(); pimpl->fromFile(filename); std::shared_ptr<Parser> parser(new Parser(pimpl)); return parser; }