Changeset 71 in dev for BasicCompiler_Common
- Timestamp:
- Mar 15, 2007, 5:00:34 AM (18 years ago)
- Location:
- BasicCompiler_Common
- Files:
-
- 3 added
- 4 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/Class.cpp
r68 r71 389 389 } 390 390 391 //デフォルト コピーコンストラクタ メソッドを取得392 CMethod *CClass::GetCopyConstructorMethod() const393 {394 if( CopyConstructorMemberSubIndex == -1 ) return NULL;395 return methods[CopyConstructorMemberSubIndex];396 }397 398 391 //デストラクタ メソッドを取得 399 392 CMethod *CClass::GetDestructorMethod() const … … 858 851 if(psi->ParmNum==0) fConstructor=1; 859 852 860 // TODO: 消す861 //コピーコンストラクタ862 if(psi->ParmNum==1){863 if(psi->pParmInfo[0].type==DEF_OBJECT&&864 psi->pParmInfo[0].u.pobj_c==pobj_c) fConstructor=2;865 }866 867 853 //強制的にConst修飾子をつける 868 854 isConst = true; … … 888 874 if( fConstructor == 1 ) 889 875 pobj_c->ConstructorMemberSubIndex = (int)pobj_c->methods.size(); 890 else if( fConstructor == 2 )891 pobj_c->CopyConstructorMemberSubIndex = (int)pobj_c->methods.size();892 876 else if( bDestructor ) 893 877 pobj_c->DestructorMemberSubIndex = (int)pobj_c->methods.size(); … … 1032 1016 1033 1017 pobj_c->ConstructorMemberSubIndex=-1; 1034 pobj_c->CopyConstructorMemberSubIndex=-1;1035 1018 pobj_c->DestructorMemberSubIndex=-1; 1036 1019 … … 1188 1171 1189 1172 pobj_c->ConstructorMemberSubIndex=-1; 1190 pobj_c->CopyConstructorMemberSubIndex=-1;1191 1173 pobj_c->DestructorMemberSubIndex=-1; 1192 1174 -
BasicCompiler_Common/Class.h
r67 r71 73 73 std::vector<CMethod *> methods; 74 74 int ConstructorMemberSubIndex; 75 int CopyConstructorMemberSubIndex;76 75 int DestructorMemberSubIndex; 77 76 … … 139 138 //デフォルト コンストラクタ メソッドを取得 140 139 CMethod *GetConstructorMethod() const; 141 142 //デフォルト コピーコンストラクタ メソッドを取得143 CMethod *GetCopyConstructorMethod() const;144 140 145 141 //デストラクタ メソッドを取得 -
BasicCompiler_Common/Overload.cpp
r64 r71 24 24 //////////////////////// 25 25 26 CParameter*pobj_parameter=0;26 ParamImpl *pobj_parameter=0; 27 27 28 28 char MethodName[VN_SIZE]; … … 37 37 */ 38 38 //パラメータオブジェクトを生成 39 pobj_parameter=new CParameter(Parameter);39 pobj_parameter=new ParamImpl(Parameter); 40 40 if(pReturnTypeInfo) pobj_parameter->SetReturnType(pReturnTypeInfo); 41 41 … … 65 65 66 66 67 CParameter *pobj_Parameter=new CParameter(ppi,ParmNum);67 ParamImpl *pobj_Parameter=new ParamImpl(ppi,ParmNum); 68 68 if(pReturnTypeInfo) pobj_Parameter->SetReturnType(pReturnTypeInfo); 69 69 -
BasicCompiler_Common/ParamImpl.cpp
r70 r71 7 7 #endif 8 8 9 CParameter::CParameter(const char *buffer){9 ParamImpl::ParamImpl(const char *buffer){ 10 10 /////////////////////////// 11 11 // パラメータ文字列を整理 … … 61 61 ReturnTypeInfo.u.lpIndex=-1; 62 62 } 63 CParameter::CParameter(const PARAMETER_INFO *pParamInfo,const int ParmNum){63 ParamImpl::ParamImpl(const PARAMETER_INFO *pParamInfo,const int ParmNum){ 64 64 int i; 65 65 for(i=0;i<ParmNum;i++){ … … 73 73 ReturnTypeInfo.u.lpIndex=-1; 74 74 } 75 CParameter::~CParameter(){75 ParamImpl::~ParamImpl(){ 76 76 int i2; 77 77 … … 84 84 } 85 85 86 void CParameter::SetReturnType(TYPEINFO *pTypeInfo){86 void ParamImpl::SetReturnType(TYPEINFO *pTypeInfo){ 87 87 ReturnTypeInfo=*pTypeInfo; 88 88 } 89 89 90 BOOL CParameter::_overload_check(PARAMETER_INFO *ppi,int pi_num,TYPEINFO *pReturnTypeInfo,int overload_level){90 BOOL ParamImpl::_overload_check(PARAMETER_INFO *ppi,int pi_num,TYPEINFO *pReturnTypeInfo,int overload_level){ 91 91 //パラメータを識別してオーバーロードを解決 92 92 … … 143 143 } 144 144 145 SUBINFO * CParameter::OverloadSolutionWithReturnType( const char *name, std::vector<SUBINFO *> &subs ){145 SUBINFO *ParamImpl::OverloadSolutionWithReturnType( const char *name, std::vector<SUBINFO *> &subs ){ 146 146 int sw=0; 147 147 SUBINFO *psi; … … 178 178 return psi; 179 179 } 180 SUBINFO * CParameter::OverloadSolution( const char *name, std::vector<SUBINFO *> &subs ){180 SUBINFO *ParamImpl::OverloadSolution( const char *name, std::vector<SUBINFO *> &subs ){ 181 181 int sw=0; 182 182 SUBINFO *psi; … … 226 226 } 227 227 228 BOOL CParameter::ErrorCheck(const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum){228 BOOL ParamImpl::ErrorCheck(const char *FuncName,PARAMETER_INFO *ppi,int pi_num,int SecondParmNum){ 229 229 if(ParmsNum>pi_num){ 230 230 if(ppi[pi_num-1].type!=DEF_ELLIPSE){ … … 259 259 } 260 260 261 void CParameter::MacroParameterSupport(PARAMETER_INFO *ppi){261 void ParamImpl::MacroParameterSupport(PARAMETER_INFO *ppi){ 262 262 int i; 263 263 for(i=0;i<ParmsNum;i++){ -
BasicCompiler_Common/common.h
r70 r71 11 11 #include <shlobj.h> 12 12 #include <vector> 13 #include <string> 13 14 14 15 //boost libraries … … 16 17 17 18 #define foreach BOOST_FOREACH 19 20 using namespace std; 18 21 19 22 #ifdef _AMD64_ … … 140 143 141 144 142 // クラス管理用のクラス145 // クラス管理用のクラス 143 146 #include "Class.h" 144 147 145 // 列挙体管理用のクラス148 // 列挙体管理用のクラス 146 149 #include "Enum.h" 147 150 148 // 定数管理用のクラス151 // 定数管理用のクラス 149 152 #include "Const.h" 153 154 // パラメータ管理用のクラス 155 #include "Parameter.h" 156 150 157 151 158 … … 209 216 }; 210 217 211 //パラメータ212 218 struct PARAMETER_INFO{ 213 219 char *name; … … 244 250 int RealParmNum; 245 251 int RealSecondParmNum; 252 253 /* 254 //パラメータ 255 Parameters params; 256 int SecondParmNum; 257 Parameters realParams; 258 int RealSecondParmNum;*/ 246 259 247 260 //戻り値
Note:
See TracChangeset
for help on using the changeset viewer.