/******************************NamespacePtr***************************************/ string Jce2Php::generatePHP(const NamespacePtr &pPtr) const { ostringstream s; vector<StructPtr> &ss = pPtr->getAllStructPtr(); for(size_t i = 0; i < ss.size(); i++) { s << generatePHP(ss[i], pPtr->getId()) << endl; } return s.str(); }
string CodeGenerator::generateJSServerImp(const ContextPtr &cPtr, const NamespacePtr &nPtr) { ostringstream str; vector<InterfacePtr> & is = nPtr->getAllInterfacePtr(); for (size_t i = 0; i < is.size(); i++) { str << generateJSServerImp(nPtr, is[i]) << endl; } return str.str(); }
StructPtr HceParse::findStruct(const string &sid) { string ssid = sid; //在当前namespace中查找 NamespacePtr np = currentNamespace(); if(ssid.find("::") == string::npos) { ssid = np->getId() + "::" + ssid; } for(size_t i = 0; i < _structs.size(); i++) { if(_structs[i]->getSid() == ssid) { return _structs[i]; } } return NULL; }
string CodeGenerator::generateJSServerImp(const NamespacePtr &nPtr, const InterfacePtr &pPtr, const OperationPtr &oPtr) { ostringstream str; str << nPtr->getId() << "." << pPtr->getId() << "Imp.prototype." << oPtr->getId() << " = function (current"; vector<ParamDeclPtr> & vParamDecl = oPtr->getAllParamDeclPtr(); for (size_t i = 0; i < vParamDecl.size(); i++) { str << ", " << vParamDecl[i]->getTypeIdPtr()->getId(); } str << ") {" << endl; INC_TAB; str << TAB << "//TODO::" << endl; DEL_TAB; str << "};" << endl << endl; return str.str(); }