void parseIDL(const char* idlFilePath, fbvector<PhpFunc>& funcVec, fbvector<PhpClass>& classVec, fbvector<PhpConst>& constVec, fbvector<PhpExtension>& extVec) { std::ostringstream jsonString; std::ifstream infile(idlFilePath); infile >> jsonString.rdbuf(); auto parsed = folly::parseJson(jsonString.str()); for (auto const& f : parsed["funcs"]) { PhpFunc func(f, ""); funcVec.push_back(func); } for (auto const& c : parsed["classes"]) { PhpClass klass(c); classVec.push_back(klass); } for (auto const& c : parsed["consts"]) { PhpConst cns(c); constVec.push_back(cns); } auto it = parsed.find("extension"); if (it != parsed.items().end()) { PhpExtension ext(it->second); extVec.push_back(ext); } }
void parseIDL(const char* idlFilePath, fbvector<PhpFunc>& funcVec, fbvector<PhpClass>& classVec) { std::ostringstream jsonString; std::ifstream infile(idlFilePath); infile >> jsonString.rdbuf(); auto parsed = folly::parseJson(jsonString.str()); for (auto const& f : parsed["funcs"]) { auto func = PhpFunc::fromDynamic(f, ""); funcVec.push_back(func); } for (auto const& c : parsed["classes"]) { PhpClass klass; klass.name = c["name"].asString(); klass.flags = folly::convertTo<fbvector<fbstring>>(c["flags"]); for (auto const& f : c["funcs"]) { auto func = PhpFunc::fromDynamic(f, c["name"].asString()); klass.methods.push_back(func); } classVec.push_back(klass); } }
void parseIDL(const char* idlFilePath, fbvector<PhpFunc>& funcVec, fbvector<PhpClass>& classVec, fbvector<PhpConst>& constVec) { std::ostringstream jsonString; std::ifstream infile(idlFilePath); infile >> jsonString.rdbuf(); auto parsed = folly::parseJson(jsonString.str()); for (auto const& f : parsed["funcs"]) { PhpFunc func(f, ""); funcVec.push_back(func); } for (auto const& c : parsed["classes"]) { PhpClass klass(c); classVec.push_back(klass); } for (auto const& c : parsed["consts"]) { PhpConst cns(c); constVec.push_back(cns); } }