Changeset 301 in dev for trunk/abdev/BasicCompiler32
- Timestamp:
- Aug 23, 2007, 10:58:43 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler32
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/CParameter.cpp
r299 r301 159 159 } 160 160 161 int ParamImpl::SetParameter( const string &procName, const Parameters ¶ms, int SecondParmNum ){161 int ParamImpl::SetParameter( const string &procName, const Parameters ¶ms, int SecondParmNum, const UserProc *pUserProc ){ 162 162 if( SecondParmNum == -1 ) SecondParmNum = (int)params.size(); 163 163 … … 215 215 216 216 // 型パラメータを解決 217 ResolveFormalGenericTypeParameter( dummyType, leftType );217 ResolveFormalGenericTypeParameter( dummyType, leftType, pUserProc ); 218 218 } 219 219 -
trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
r294 r301 244 244 245 245 //レジスタ、スタックフレームにセット 246 int ParmSize = pobj_parameter->SetParameter(pUserProc->GetName(),pUserProc->RealParams(),pUserProc->GetRealSecondParmNum() );246 int ParmSize = pobj_parameter->SetParameter(pUserProc->GetName(),pUserProc->RealParams(),pUserProc->GetRealSecondParmNum(), pUserProc ); 247 247 248 248 if(pUserProc->ReturnType().IsStruct() ){ -
trunk/abdev/BasicCompiler32/Compile_Func.cpp
r299 r301 357 357 358 358 SetVarPtrToEax(&RelativeVar); 359 360 // TODO: 取り除く(この動きはObjPtrに託す)361 /*362 if( beforeType == DEF_OBJECT && lstrcmpi( Parameter, "This" ) != 0 ){363 //参照をオブジェクトポインタに変更364 365 //mov eax,dword ptr[eax]366 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EAX, 0, MOD_BASE );367 368 SetError(-120,NULL,cp);369 }*/370 359 } 371 360 void Opcode_Func_ObjPtr( const char *Parameter, Type &resultType, bool isCallOn ){ -
trunk/abdev/BasicCompiler32/Compile_Var.cpp
r299 r301 726 726 } 727 727 728 Type classType( resultType ); 729 728 730 if(!_member_offset( 729 731 isErrorEnabled, 730 732 isWriteAccess, 731 resultType,733 classType, 732 734 member,pRelativeVar,resultType,0)) return false; 733 735 -
trunk/abdev/BasicCompiler32/NumOpe.cpp
r299 r301 233 233 bool TermOpe( const char *term, const Type &baseType, Type &resultType, bool &isLiteral, BOOL *pbUseHeap, bool isWantObject, bool *pIsClassName, bool isProcedureCallOnly ){ 234 234 char parameter[VN_SIZE]; 235 236 if( (string)term=="a[1]")237 {238 int test=0;239 }240 235 241 236 // Withを解決 -
trunk/abdev/BasicCompiler32/Opcode.h
r299 r301 203 203 void MacroParameterSupport( const Parameters ¶ms ); 204 204 void SetStructParameter( const Type &baseType, const char *expression ); 205 int SetParameter( const string &procName, const Parameters ¶ms, int SecondParmNum = -1 );205 int SetParameter( const string &procName, const Parameters ¶ms, int SecondParmNum = -1, const UserProc *pUserProc = NULL ); 206 206 207 207 //一時オブジェクトパラメータの生成と破棄
Note:
See TracChangeset
for help on using the changeset viewer.