void CodeGenerator::generateJSServerImp(const ContextPtr &cPtr) { string sFileName = TC_File::excludeFileExt(_sToPath + TC_File::extractFileName(cPtr->getFileName())) + "Imp.js"; if (TC_File::isFileExist(sFileName)) { return ; } ostringstream str; str << printHeaderRemark("Imp"); str << "\"use strict\";" << endl << endl; vector<NamespacePtr> namespaces = cPtr->getNamespaces(); set<string> setNamespace; for(size_t i = 0; i < namespaces.size(); i++) { if (setNamespace.count(namespaces[i]->getId()) != 0) { continue; } setNamespace.insert(namespaces[i]->getId()); str << "var " << namespaces[i]->getId() << " = require(\"./" << TC_File::excludeFileExt(TC_File::extractFileName(cPtr->getFileName())) << ".js\")." << namespaces[i]->getId() << ";" << endl; str << "module.exports." << namespaces[i]->getId() << " = " << namespaces[i]->getId() << ";" << endl; } str << endl; set<string> setInterface; for(size_t i = 0; i < namespaces.size(); i++) { vector<InterfacePtr> & is = namespaces[i]->getAllInterfacePtr(); for (size_t ii = 0; ii < is.size(); ii++) { if (setInterface.count(namespaces[i]->getId() + "::" + is[ii]->getId()) != 0) { continue; } setInterface.insert(namespaces[i]->getId() + "::" + is[ii]->getId()); str << namespaces[i]->getId() << "." << is[ii]->getId() << "Imp.prototype.initialize = function () {" << endl; INC_TAB; str << TAB << "//TODO::" << endl; DEL_TAB; str << "};" << endl << endl; } } for(size_t i = 0; i < namespaces.size(); i++) { str << generateJSServerImp(cPtr, namespaces[i]); } TC_File::makeDirRecursive(_sToPath, 0755); makeUTF8File(sFileName, str.str()); }
void Jce2Php::generatePHP_Pdu(const ContextPtr &pPtr) const { string n = taf::TC_File::excludeFileExt(taf::TC_File::extractFileName(pPtr->getFileName())); string fileH = m_sBaseDir + "/" + n + "_pdu.php"; string define = "<?php"; ostringstream s; s << define << endl; s << endl; s << g_parse->printHeaderRemark(); s << endl; s << "require_once('jce.php');" <<endl; vector<NamespacePtr> namespaces = pPtr->getNamespaces(); for(size_t i = 0; i < namespaces.size(); i++) { s << generatePHP(namespaces[i]) << endl; } s << "?>"; taf::TC_File::makeDirRecursive(m_sBaseDir, 0755); taf::TC_File::save2file(fileH, s.str()); }