#include "../BasicCompiler_Common/common.h" #ifdef _AMD64_ #include "../BasicCompiler64/opcode.h" #else #include "../BasicCompiler32/opcode.h" #endif SubInfo *OverloadSolutionWithStrParam( const char *name, std::vector &subs, const char *Parameter, const char *ObjectName, TYPEINFO *pReturnTypeInfo){ // オーバーロードの解決 //オーバーロードされていないとき if( subs.size() == 1 ) return subs[0]; //////////////////////// // パラメータをセット //////////////////////// ParamImpl *pobj_parameter=0; char MethodName[VN_SIZE]; if( !SplitMemberName( name, NULL, MethodName ) ) lstrcpy( MethodName, name ); /* //メソッドの場合は静的かどうかを調べる bool isStatic = false; CClass *pClass = subs[0]->pobj_ParentClass; if( pClass ){ isStatic = pClass->IsExistStaticMethod( MethodName ); } */ //パラメータオブジェクトを生成 if(lstrcmp(Parameter,"\"test\"")==0){ int i=0; } pobj_parameter=new ParamImpl(Parameter); if(pReturnTypeInfo) pobj_parameter->SetReturnType(pReturnTypeInfo); SubInfo *psi; psi=pobj_parameter->OverloadSolution(name,subs); //パラメータオブジェクトを破棄 delete pobj_parameter; pobj_parameter=0; return psi; } SubInfo *OverloadSolution( const char *name, std::vector &subs, const PARAMETER_INFO *ppi, const int ParmNum, TYPEINFO *pReturnTypeInfo){ // オーバーロードの解決 //オーバーロードされていないとき if( subs.size() == 1 ) return subs[0]; ParamImpl *pobj_Parameter=new ParamImpl(ppi,ParmNum); if(pReturnTypeInfo) pobj_Parameter->SetReturnType(pReturnTypeInfo); SubInfo *psi; psi=pobj_Parameter->OverloadSolution(name,subs); delete pobj_Parameter; return psi; }