Pārlūkot izejas kodu

fix tars2xxx in windows bug

jarodruan 4 gadi atpakaļ
vecāks
revīzija
b0db8c4a2d

+ 1 - 1
servant/protocol

@@ -1 +1 @@
-Subproject commit 031245c42557ce925891023129c9397014110818
+Subproject commit 7c22d46777d76c8c08c2161f7cb4d9f0f45991d7

+ 1 - 1
tools/tars2android/tars2android.cpp

@@ -1383,7 +1383,7 @@ void Tars2Java::setBasePackage(const string& prefix)
 
 string Tars2Java::getFilePath(const string& ns) const
 {
-    return _baseDir + "/" + tars::TC_Common::replace(_packagePrefix, ".", "/") + "/" + ns + "/";
+    return _baseDir + FILE_SEP + tars::TC_Common::replace(_packagePrefix, ".", FILE_SEP) + FILE_SEP + ns + FILE_SEP;
 }
 
 // 增加的函数

+ 7 - 3
tools/tars2c/tars2c.cpp

@@ -671,9 +671,13 @@ string Tars2C::generateC(const NamespacePtr &pPtr) const
 
 void Tars2C::generateH(const ContextPtr &pPtr) const
 {
-    string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
+	string n        = g_parse->getFileName(pPtr->getFileName());
+	string fileH    = g_parse->getAbsoluteFileName(m_sBaseDir, g_parse->replaceFileName(n, "h"));
+	string fileCpp  = g_parse->getAbsoluteFileName(m_sBaseDir, g_parse->replaceFileName(n, "cpp"));
 
-    string fileH    = m_sBaseDir + "/" + n + ".h";
+//    string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
+//
+//    string fileH    = m_sBaseDir + FILE_SEP + n + ".h";
 
     string define   = tars::TC_Common::upper("__" + n + "_h_");
 
@@ -711,7 +715,7 @@ void Tars2C::generateH(const ContextPtr &pPtr) const
 void Tars2C::generateC(const ContextPtr &pPtr) const
 {
     string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
-    string fileC    = m_sBaseDir + "/" + n + ".c";
+    string fileC    = m_sBaseDir + FILE_SEP + n + ".c";
 
     string define   = tars::TC_Common::upper("__" + n + "_h_");
 

+ 8 - 4
tools/tars2cpp/tars2cpp.cpp

@@ -2435,9 +2435,13 @@ string Tars2Cpp::generateH(const NamespacePtr& pPtr) const
 
 void Tars2Cpp::generateH(const ContextPtr &pPtr) const
 {
-    string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
-
-    string fileH    = _baseDir + "/" + n + ".h";
+	string n        = g_parse->getFileName(pPtr->getFileName());
+	string fileH    = g_parse->getAbsoluteFileName(_baseDir, g_parse->replaceFileName(n, "h"));
+	string fileCpp  = g_parse->getAbsoluteFileName(_baseDir, g_parse->replaceFileName(n, "cpp"));
+//
+//    string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
+//
+//    string fileH    = _baseDir + FILE_SEP + n + ".h";
 
     string define   = tars::TC_Common::upper("__" + n + "_h_");
 
@@ -2822,7 +2826,7 @@ StructPtr Tars2Cpp::findStruct(const ContextPtr& pPtr, const string& id)
 //     cout << "Interface:" << sInterface << endl;
 //     string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName())) + "Coder";
 
-//     string fileH    = _baseDir + "/" + n + ".h";
+//     string fileH    = _baseDir + FILE_SEP + n + ".h";
 
 //     string define   = tars::TC_Common::upper("__" + n + "_h_");
 

+ 0 - 4
tools/tars2cs/main.cpp

@@ -72,8 +72,6 @@ int main(int argc, char* argv[])
 
     Tars2Cs t2cs;
 
-
-    //���������ļ��ĸ�Ŀ¼
     if(option.getValue("dir") != "")
     {
         t2cs.setBaseDir(option.getValue("dir"));
@@ -93,7 +91,6 @@ int main(int argc, char* argv[])
         t2cs.setBasePackage("Com.QQ.");
     }
 
-    //�Ƿ����ɷ������,Ĭ�ϲ�����
     if(option.hasParam("with-servant"))
     {
         t2cs.setWithServant(true);
@@ -104,7 +101,6 @@ int main(int argc, char* argv[])
     }
 	try
 	{
-        //�Ƿ������tars��ͷ
         g_parse->setTars(option.hasParam("with-tars"));
 
 	    for(size_t i = 0; i < vTars.size(); i++)

+ 1 - 4
tools/tars2cs/tars2cs.cpp

@@ -49,7 +49,6 @@ string Tars2Cs::toTypeInit(const TypePtr &pPtr) const
     VectorPtr vPtr = VectorPtr::dynamicCast(pPtr);
     if (vPtr)
     {
-        //�������⴦��
         string sType;
         size_t iPosBegin, iPosEnd;
         sType = tostr(vPtr->getTypePtr());
@@ -57,7 +56,6 @@ string Tars2Cs::toTypeInit(const TypePtr &pPtr) const
         {
             sType = sType.substr(0, iPosBegin) +  sType.substr(iPosEnd+1);
         }
-        //[] (����)�������Ϊ[1]
         sType = tars::TC_Common::replace(sType, "[]" , "[1]");
         return "(" + tostr(vPtr->getTypePtr()) + "[]) new " + sType + "[1];";;
     }
@@ -186,7 +184,6 @@ string Tars2Cs::generateCs(const StructPtr &pPtr, const NamespacePtr &nPtr) cons
     s << TAB << "{" << endl;
     INC_TAB;
 
-    //�����Ա����set;get����
     for (size_t i = 0; i < member.size(); i++)
     {
         string sDefault;
@@ -419,6 +416,6 @@ void Tars2Cs::setBasePackage(const string &prefix)
 
 string Tars2Cs::getFilePath(const string &ns) const
 {
-    return _baseDir + "/" + tars::TC_Common::replace(_packagePrefix, ".", "/") + "/" + ns + "/";
+    return _baseDir + FILE_SEP + tars::TC_Common::replace(_packagePrefix, ".", FILE_SEP) + FILE_SEP + ns + FILE_SEP;
 }
 

+ 7 - 28
tools/tars2oc/tars2oc.cpp

@@ -99,7 +99,6 @@ string Tars2OC::toAddtionalClassName(const TypePtr &pPtr) const
 	if (vPtr)
 	{
 		string s = "";
-		//vector<byte>�������Ӹ�����Ϣ����
 		if (toClassName(vPtr) == "list<char>")
 		{
 			s = "ONSData";
@@ -121,7 +120,6 @@ string Tars2OC::toAddtionalClassName(const TypePtr &pPtr) const
 		ostringstream osKeyLen;
 		{
 			int iLen = sKey.length();
-			//�涨���ܳ���99
 			assert(iLen <= 99 && iLen >=0);
 			char sLen[3];
 			snprintf(&sLen[0],3,"%.2d",iLen);
@@ -133,14 +131,12 @@ string Tars2OC::toAddtionalClassName(const TypePtr &pPtr) const
 	StructPtr sPtr = StructPtr::dynamicCast(pPtr);
 	if (sPtr)
 	{
-		//struct����Object����
 		return "O" + tostrStruct(sPtr);//TC_Common::replace(sPtr->getSid(), "::", "");
 	}
 
 	EnumPtr ePtr = EnumPtr::dynamicCast(pPtr);
 	if (ePtr)
 	{
-		//Enum����Object����
 		return "ONSNumber";
 	}
 
@@ -302,14 +298,14 @@ string Tars2OC::toTarsV2Procstr(const TypeIdPtr &pPtr) const
 
 	if (bPtr)
 	{
-		//��ͨ����ʹ��JV2_PROP_NM
+		//
 		s << "JV2_PROP_NM(" << getReqOptionType(pPtr) << "," << pPtr->getTag() <<","<< pPtr->getId() << ")";
 	}
 
 	VectorPtr vPtr = VectorPtr::dynamicCast(pPtr->getTypePtr());
 	if (vPtr)
 	{
-		//vector<byte>�������Ӹ�����Ϣ����
+		//vector<byte>
 		if (toClassName(vPtr) == "list<char>")
 		{
 			s << "JV2_PROP_NM(" << getReqOptionType(pPtr) << "," << pPtr->getTag() << "," << pPtr->getId() << ")";
@@ -369,7 +365,6 @@ string Tars2OC::tostrEnum(const EnumPtr &pPtr) const
 
 void Tars2OC::toIncludeName(const TypePtr &pPtr,map<string,int>& mReference) const
 {
-	//��������û�����������ṹ
 	BuiltinPtr bPtr = BuiltinPtr::dynamicCast(pPtr);
 	if (bPtr)
 	{
@@ -420,7 +415,6 @@ map<string,int> Tars2OC::getReferences(const StructPtr &pPtr, const string& name
     map<string,int> mTemp;
 	vector<TypeIdPtr>& vMember = pPtr->getAllMemberPtr();
 
-	//�鿴��Ա�����Ƿ����������Ľṹ��
 	for (size_t j = 0; j < vMember.size(); j++)
 	{
 		BuiltinPtr bPtr = BuiltinPtr::dynamicCast(vMember[j]->getTypePtr());
@@ -432,7 +426,7 @@ map<string,int> Tars2OC::getReferences(const StructPtr &pPtr, const string& name
 		VectorPtr vPtr = VectorPtr::dynamicCast(vMember[j]->getTypePtr());
 		if (vPtr)
 		{
-			//vector<byte>�������Ӹ�����Ϣ����
+			//vector<byte>
 			if (toClassName(vPtr) == "list<char>")
 			{
 				continue;
@@ -467,7 +461,6 @@ map<string,int> Tars2OC::getReferences(const StructPtr &pPtr, const string& name
 }
 bool Tars2OC::IsRetainType(const TypePtr &pPtr) const
 {
-	//����������retain,enum is NSInteger
 	BuiltinPtr bPtr  = BuiltinPtr::dynamicCast(pPtr);
 	EnumPtr ePtr = EnumPtr::dynamicCast(pPtr);
 	if((bPtr && bPtr->kind() != Builtin::KindString) || ePtr)
@@ -539,7 +532,6 @@ string Tars2OC::generateH(const StructPtr &pPtr, const string& namespaceId) cons
     s << "@interface " << sStructName << " : TarsObjectV2"<< endl;
 	s << endl;
 
-    //�����Ա����
     vector<TypeIdPtr>& vMember = pPtr->getAllMemberPtr();
     for (size_t j = 0; j < vMember.size(); j++)
     {
@@ -570,7 +562,6 @@ string Tars2OC::writeInit(const vector<TypeIdPtr>& vMember) const
 	INC_TAB;
 	for (size_t j = 0; j < vMember.size(); j++)
 	{
-		//�������ͳ�ʼ��,��Ĭ��ֵ����˵string���Ͳų�ʼ��
 		BuiltinPtr bPtr  = BuiltinPtr::dynamicCast(vMember[j]->getTypePtr());
 		if(bPtr)
 		{
@@ -595,10 +586,8 @@ string Tars2OC::writeInit(const vector<TypeIdPtr>& vMember) const
 			{
 				s <<TAB << getPropertyName(vMember[j]->getId()) << " = " << vMember[j]->def() << ";" << endl;
 			}
-			//��������Ļ������Ͳ��ó�ʼ����ϵͳ�ṩĬ��ֵ
 		}
 
-		//�Ƿ�require�ֶ�,����retain����
 		if(vMember[j]->isRequire() && IsRetainType(vMember[j]->getTypePtr()))
 		{
 			VectorPtr vPtr = VectorPtr::dynamicCast(vMember[j]->getTypePtr());
@@ -644,7 +633,7 @@ string Tars2OC::writedealloc(const vector<TypeIdPtr>& vMember) const
 	INC_TAB;
 	for (size_t j = 0; j < vMember.size(); j++)
 	{
-		//�������Ͳ���Ҫ=nil,NSString�Ƕ�������
+		//nil,NSString
 		if(IsRetainType(vMember[j]->getTypePtr()))
 		{
 			s <<TAB << getPropertyName(vMember[j]->getId()) << " = nil;" <<endl;
@@ -727,7 +716,7 @@ string Tars2OC::generateM(const EnumPtr &pPtr, const string& namespaceId) const
 
 	string sEnumPrefix = getNamePrix(namespaceId) + pPtr->getId();
 
-	string fileH = m_sBaseDir + "/" + sEnumPrefix + ".m";
+	string fileH = m_sBaseDir + FILE_SEP + sEnumPrefix + ".m";
 
 	s << g_parse->printHeaderRemark();
 
@@ -742,7 +731,6 @@ string Tars2OC::generateM(const EnumPtr &pPtr, const string& namespaceId) const
 
 	s << "@implementation " <<sEnumPrefix<<"Helper"<<endl;
 	s << endl;
-	//����ö��ת�ַ�������
 	s << "+ (NSString *)etos:(" << sEnumPrefix << ")e" << endl;
 	s << "{" << endl;
 
@@ -767,7 +755,6 @@ string Tars2OC::generateM(const EnumPtr &pPtr, const string& namespaceId) const
 
 	s << endl;
 
-	//�����ַ���תö�ٺ���
 	s << "+ (" << sEnumPrefix << ")stoe:(NSString *)s" << endl;
 	s << "{" << endl;
 
@@ -802,10 +789,9 @@ string Tars2OC::generateM(const StructPtr &pPtr, const string& namespaceId) cons
 
     ostringstream s;
 
-    string fileM = m_sBaseDir + "/" + sStructName + ".m";
+    string fileM = m_sBaseDir + FILE_SEP + sStructName + ".m";
 
     s << g_parse->printHeaderRemark();
-    //�����Ա����
     vector<TypeIdPtr>& member = pPtr->getAllMemberPtr();
 
     ////////////////////////////////////////////////////////////
@@ -858,7 +844,7 @@ string Tars2OC::generateH(const EnumPtr &pPtr, const string& namespaceId) const
 
 	string sEnumPrefix = getNamePrix(namespaceId) + pPtr->getId();
 
-	string fileH = m_sBaseDir + "/" + sEnumPrefix + ".h";
+	string fileH = m_sBaseDir + FILE_SEP + sEnumPrefix + ".h";
 
     s << g_parse->printHeaderRemark();
 
@@ -913,14 +899,12 @@ string Tars2OC::generate(const NamespacePtr &pPtr) const
     vector<StructPtr>&ss = pPtr->getAllStructPtr();
     vector<EnumPtr>&es = pPtr->getAllEnumPtr();
 
-	//�ȱ���ö������,���������ļ�
 	for (size_t i = 0; i < es.size(); i++)
 	{
 		generateH(es[i], pPtr->getId());
 		generateM(es[i], pPtr->getId());
 	}
 
-	//�����ṹ������,���������ļ�
 	for (size_t i = 0; i < ss.size(); i++)
 	{
 		generateH(ss[i], pPtr->getId());
@@ -930,8 +914,6 @@ string Tars2OC::generate(const NamespacePtr &pPtr) const
     return "";
 }
 
-
-
 /******************************Tars2OC***************************************/
 
 void Tars2OC::generate(const ContextPtr &pPtr) const
@@ -943,8 +925,6 @@ void Tars2OC::generate(const ContextPtr &pPtr) const
     }
 }
 
-
-
 void Tars2OC::createFile(const string &file)
 {
     std::vector<ContextPtr> contexts = g_parse->getContexts();
@@ -953,7 +933,6 @@ void Tars2OC::createFile(const string &file)
         if (file == contexts[i]->getFileName())
         {
            generate(contexts[i]);
-          //generateM(contexts[i]);
         }
     }
 }

+ 3 - 9
tools/tars2php/tars2php.cpp

@@ -44,8 +44,6 @@ string Tars2Php::readFrom(const TypeIdPtr &pPtr, bool bIsRequire) const
     return s.str();
 }
 
-
-/*******************************��ȡ������������********************************/
 int Tars2Php::getSuffix(const TypeIdPtr &pPtr) const
 {
     BuiltinPtr bPtr = BuiltinPtr::dynamicCast(pPtr->getTypePtr());
@@ -63,8 +61,6 @@ int Tars2Php::getSuffix(const TypeIdPtr &pPtr) const
     return -1;
 }
 
-/*******************************������������********************************/
-
 string Tars2Php::toStrSuffix(const TypeIdPtr &pPtr) const
 {
     ostringstream s;
@@ -180,8 +176,7 @@ string Tars2Php::generatePHP(const StructPtr &pPtr, const string& namespaceId) c
     s << TAB << "class " << pPtr->getId() << " extends c_struct" << endl;
     s << TAB << "{" << endl;
     INC_TAB;
-    //��������
-    for(size_t k = 0;k < member.size();k++) 
+    for(size_t k = 0;k < member.size();k++)
     {
         s<< TAB << "public $" <<member[k]->getId()<<";"<<endl;
     }
@@ -277,7 +272,7 @@ string Tars2Php::generatePHP(const NamespacePtr &pPtr) const
 void Tars2Php::generatePHP(const ContextPtr &pPtr) const
 {
     string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
-    string fileH    = m_sBaseDir + "/" + n + "_wup.php";
+    string fileH    = m_sBaseDir + FILE_SEP + n + "_wup.php";
 
     string define = "<?php";
 
@@ -306,7 +301,7 @@ void Tars2Php::generatePHP(const ContextPtr &pPtr) const
 void Tars2Php::generatePHP_Pdu(const ContextPtr &pPtr) const
 {
     string n        = tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName()));
-    string fileH    = m_sBaseDir + "/" + n + "_pdu.php";
+    string fileH    = m_sBaseDir + FILE_SEP + n + "_pdu.php";
 
     string define = "<?php";
 
@@ -336,7 +331,6 @@ void Tars2Php::createFile(const string &file, const vector<string> &vsCoder)
     {
         if(file == contexts[i]->getFileName())
         {
-			//tup�汾��
             generatePHP(contexts[i]);
         }
     }

+ 17 - 26
tools/tars2php/tars2php.h

@@ -24,8 +24,6 @@
 using namespace tars;
 
 /**
- * ����tars����c++�ļ�
- * �����ṹ�ı�����Լ�����Proxy��Servant
  */
 class Tars2Php
 {
@@ -33,28 +31,27 @@ public:
 	Tars2Php();
 
     /**
-     * ����
+     *
      * @param file
      */
     void createFile(const string &file, const vector<string> &vsCoder);
 
 
     /**
-    * ���������ļ���Ŀ¼
+    *
     *
     */
     void setBaseDir(const std::string & sPath) { m_sBaseDir = sPath; }
 
 	/**
-	 * �����Ƿ���Ҫ���Ĭ��ֵ
+	 *
 	 */
 	void setCheckDefault(bool bCheck) { m_bCheckDefault = bCheck; }
 
-    //�����DZ�����Դ������
 protected:
 
     /**
-     * ����ij���͵Ľ���Դ��
+     *
      * @param pPtr
      *
      * @return string
@@ -62,18 +59,16 @@ protected:
     string writeTo(const TypeIdPtr &pPtr) const;
 
     /**
-     * ����ij���͵ı���Դ��
+     *
      * @param pPtr
      *
      * @return string
      */
     string readFrom(const TypeIdPtr &pPtr, bool bIsRequire = true) const;
 
-
-    //����������������Դ������
 protected:
     /**
-     * ����ij���͵��ַ�������Դ��
+     *
      * @param pPtr
      *
      * @return string
@@ -81,14 +76,13 @@ protected:
     string tostr(const TypePtr &pPtr) const;
 
     /**
-     * �����ڽ����͵��ַ���Դ��
      * @param pPtr
      *
      * @return string
      */
     string tostrBuiltin(const BuiltinPtr &pPtr) const;
     /**
-     * ����vector���ַ�������
+     *
      * @param pPtr
      *
      * @return string
@@ -96,7 +90,7 @@ protected:
     string tostrVector(const VectorPtr &pPtr) const;
 
     /**
-     * ����map���ַ�������
+     *
      * @param pPtr
      *
      * @return string
@@ -104,7 +98,7 @@ protected:
     string tostrMap(const MapPtr &pPtr) const;
 
     /**
-     * ����ij�ֽṹ�ķ�������
+     *
      * @param pPtr
      *
      * @return string
@@ -112,7 +106,7 @@ protected:
     string tostrStruct(const StructPtr &pPtr) const;
 
     /**
-     * ����ij��ö�ٵķ�������
+     *
      * @param pPtr
      *
      * @return string
@@ -120,7 +114,7 @@ protected:
     string tostrEnum(const EnumPtr &pPtr) const;
 
     /**
-     * ��ȡ�������������
+     *
      * @param pPtr
      *
      * @return string
@@ -129,7 +123,7 @@ protected:
     string toStrSuffix(const TypeIdPtr &pPtr) const;
 
     /**
-     * ��ȡ�������������
+     *
      * @param pPtr
      *
      * @return int
@@ -137,7 +131,7 @@ protected:
     int getSuffix(const TypeIdPtr &pPtr) const;
 
     /**
-     * �������ͱ����Ľ���Դ��
+     *
      * @param pPtr
      *
      * @return string
@@ -145,35 +139,32 @@ protected:
     string decode(const TypeIdPtr &pPtr) const;
 
     /**
-     * �������ͱ����ı���Դ��
+     *
      * @param pPtr
      *
      * @return string
      */
     string encode(const TypeIdPtr &pPtr) const;
 
-    //������h��cpp�ļ��ľ�������
 protected:
     /**
-     * ���ɽṹ��ͷ�ļ�����
+     *
      * @param pPtr
      *
      * @return string
      */
     string generatePHP(const StructPtr &pPtr, const string& namespaceId) const;
 
-
     /**
-     * �������ֿռ��ͷ�ļ�Դ��
+     *
      * @param pPtr
      *
      * @return string
      */
     string generatePHP(const NamespacePtr &pPtr) const;
 
-
     /**
-     * �������ֿռ��ͷ�ļ�Դ��
+     *
      * @param pPtr
      *
      * @return string

+ 3 - 19
tools/tars2python/tars2python.cpp

@@ -34,7 +34,6 @@ string Tars2Python::generatePython(const EnumPtr &pPtr, const std::string &sName
 	s << TAB << "class " << pPtr->getId() << ":" << endl;
 	INC_TAB;
 
-	//��Ա����
 	int nenum = -1;
 	vector<TypeIdPtr>& member = pPtr->getAllMemberPtr();
 	for (size_t i = 0; i < member.size(); i++)
@@ -109,12 +108,6 @@ std::string Tars2Python::toFunctionName(const TypeIdPtr & pPtr, const string & s
 	return "";
 }
 
-
-
-
-
-
-
 string Tars2Python::getDefault(const TypeIdPtr & pPtr, const std::string &sDefault, const std::string & sCurStruct)
 {
 	BuiltinPtr bPtr = BuiltinPtr::dynamicCast(pPtr->getTypePtr());
@@ -233,7 +226,6 @@ string Tars2Python::generatePython(const StructPtr & pPtr, const NamespacePtr &
 	s << TAB << "class " << pPtr->getId() << "(tarscore.struct):"<< endl;
 	INC_TAB;
 
-	//STEP01 ��ʼ��������Ҫ������
 	s << TAB << "__tars_class__ = \"" << nPtr->getId() << "." << pPtr->getId() << "\";" << endl;
 	for (size_t i = 0, len = member.size(); i < len; i++)
 	{
@@ -255,7 +247,6 @@ string Tars2Python::generatePython(const StructPtr & pPtr, const NamespacePtr &
 		}
 	}
 
-	//STEP02 �������ݳ�Ա
 	s << TAB << endl;
 	s << TAB << "def __init__(self):" << endl;
 	INC_TAB;
@@ -265,7 +256,6 @@ string Tars2Python::generatePython(const StructPtr & pPtr, const NamespacePtr &
 	}
 	DEL_TAB;
 
-	//STEP03 ��ʼ����writeTo����
 	s << TAB << endl;
 	s << TAB << "@staticmethod" << endl;
 	s << TAB << "def writeTo(oos, value):" << endl;
@@ -277,7 +267,6 @@ string Tars2Python::generatePython(const StructPtr & pPtr, const NamespacePtr &
 	}
 	DEL_TAB;
 
-   	//STEP04 ��ʼ����readFrom����
 	s << TAB << endl;
 	s << TAB << "@staticmethod" << endl;
 	s << TAB << "def readFrom(ios):" << endl;
@@ -424,7 +413,6 @@ string Tars2Python::generatePython(const InterfacePtr &pPtr)
 	vector<OperationPtr>& vOperation = pPtr->getAllOperationPtr();
 	for(size_t i = 0; i < vOperation.size(); i++)
 	{
-		//����ÿ���ӿڵı����
 		str << TAB << "def " << vOperation[i]->getId() << "(self, " << makeParams(vOperation[i]) << "):" << endl;
 		INC_TAB;
 		str << makeOperations(vOperation[i]) << endl;
@@ -441,7 +429,6 @@ string Tars2Python::generatePython(const NamespacePtr &pPtr)
 	std::ostringstream str;
 
 	/*
-	//STEP01 ��ʼ���ɳ���
 	vector<ConstPtr> &cs = pPtr->getAllConstPtr();
 	for (size_t i = 0; i < cs.size(); i++)
 	{
@@ -450,21 +437,18 @@ string Tars2Python::generatePython(const NamespacePtr &pPtr)
 	str << endl;
 	*/
 
-	//STEP02 ��ʼ����ö��ֵ
 	vector<EnumPtr> & es = pPtr->getAllEnumPtr();
 	for (size_t i = 0; i < es.size(); i++)
 	{
 		str << generatePython(es[i], pPtr->getId()) << endl;
 	}
 
-	//STEP03 ��ʼ���ɽṹ�����뺯��
 	vector<StructPtr> & ss = pPtr->getAllStructPtr();
 	for (size_t i = 0; i < ss.size(); i++)
 	{
 		str << generatePython(ss[i], pPtr) << endl;
 	}
 
-	//STEP04 ��ʼ����Proxy����
 	vector<InterfacePtr> & is = pPtr->getAllInterfacePtr();
     for(size_t i = 0; i < is.size(); i++)
     {
@@ -498,7 +482,7 @@ void Tars2Python::generatePython(const ContextPtr &pPtr)
 
 		str << generatePython(namespaces[i]) << endl;
 
-		string sPath = getFilePath() + "/" + namespaces[i]->getId() + "/";
+		string sPath = getFilePath() + FILE_SEP + namespaces[i]->getId() + FILE_SEP;
 		string sFileName = sPath + tars::TC_File::excludeFileExt(tars::TC_File::extractFileName(pPtr->getFileName())) + ".py";
 		tars::TC_File::makeDirRecursive(sPath);
 		tars::TC_File::save2file(sFileName, str.str());
@@ -544,12 +528,12 @@ void Tars2Python::makePackages()
 	{
 		if (tars::TC_File::isFileExist(files[i], S_IFDIR) == true)
 		{
-			tars::TC_File::save2file(files[i] + "/__init__.py", "");
+			tars::TC_File::save2file(files[i] + FILE_SEP + "__init__.py", "");
 		}
 	}
 }
 
 string Tars2Python::getFilePath() const
 {
-	return _baseDir + "/" + tars::TC_Common::replace(_packagePrefix, ".", "/");
+	return _baseDir + FILE_SEP + tars::TC_Common::replace(_packagePrefix, ".", FILE_SEP);
 }

+ 28 - 6
tools/tarsparse/parse.cpp

@@ -72,20 +72,16 @@ void TarsParse::clear()
 
 void TarsParse::parse(const string& sFileName)
 {
-    cout << "parse:" << sFileName << "," << _bUseCurrentPath << "," << _bUseCurrentPathFirst << endl;
     if (_bUseCurrentPath)
     {
         std::string sTemp = sFileName;
         bool isExist = tars::TC_File::isFileExist(sFileName);
 
-        cout << "file exists:" << isExist << endl;
-             
         if (!isExist)
         {
             sTemp = tars::TC_File::extractFileName(sFileName);
         }
 
-        cout << "temp:" << sTemp << endl;
         clear();
 
         _contains.push(new Container(""));
@@ -135,8 +131,6 @@ void TarsParse::parse(const string& sFileName)
             error("open file '" + sFileName + "' error :" + string(strerror(errno)));
         }
 
-        cout << "push:" << sFileName << endl;
-
         pushFile(sFileName);
 
         yyparse();
@@ -606,4 +600,32 @@ string TarsParse::printHeaderRemark()
     return s.str();
 }
 
+string TarsParse::getFileName(const string &fileName)
+{
+	string tmpFileName = fileName;
+	string::size_type pos = tmpFileName.rfind('/');
+	if(pos != string::npos)
+	{
+		tmpFileName = tmpFileName.substr(pos + 1);
+	}
+	else
+	{
+		pos = tmpFileName.rfind('\\');
+		if(pos != string::npos)
+		{
+			tmpFileName = tmpFileName.substr(pos + 1);
+		}
+	}
+
+	return tars::TC_File::excludeFileExt(tmpFileName);
+}
 
+string TarsParse::replaceFileName(const string &fileName, const string &ext)
+{
+	return tars::TC_File::excludeFileExt(getFileName(fileName)) + "." + ext;
+}
+
+string TarsParse::getAbsoluteFileName(const string &baseDir, const string &fileName)
+{
+	return baseDir + FILE_SEP + fileName;
+}

+ 23 - 0
tools/tarsparse/parse.h

@@ -321,6 +321,29 @@ public:
         _vIncludePath.insert(_vIncludePath.end(), v.begin(), v.end());
     }
 
+    /**
+     *
+     * @param fileName
+     * @return
+     */
+	string getFileName(const string &fileName);
+
+	/**
+	 * replace ext
+	 * @param fileName
+	 * @param ext
+	 * @return
+	 */
+	string replaceFileName(const string &fileName, const string &ext);
+
+	/**
+	 * get absolute filename
+	 * @param baseDir
+	 * @param fileName
+	 * @return
+	 */
+	string getAbsoluteFileName(const string &baseDir, const string &fileName);
+
 protected:
     /**
      * 添加名字空间