Changeset 301 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Aug 23, 2007, 10:58:43 PM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler32
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/CParameter.cpp

    r299 r301  
    159159}
    160160
    161 int ParamImpl::SetParameter( const string &procName, const Parameters &params, int SecondParmNum ){
     161int ParamImpl::SetParameter( const string &procName, const Parameters &params, int SecondParmNum, const UserProc *pUserProc ){
    162162    if( SecondParmNum == -1 ) SecondParmNum = (int)params.size();
    163163
     
    215215
    216216            // 型パラメータを解決
    217             ResolveFormalGenericTypeParameter( dummyType, leftType );
     217            ResolveFormalGenericTypeParameter( dummyType, leftType, pUserProc );
    218218        }
    219219
  • trunk/abdev/BasicCompiler32/Compile_CallProc.cpp

    r294 r301  
    244244
    245245    //レジスタ、スタックフレームにセット
    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 );
    247247
    248248    if(pUserProc->ReturnType().IsStruct() ){
  • trunk/abdev/BasicCompiler32/Compile_Func.cpp

    r299 r301  
    357357
    358358    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     }*/
    370359}
    371360void Opcode_Func_ObjPtr( const char *Parameter, Type &resultType, bool isCallOn ){
  • trunk/abdev/BasicCompiler32/Compile_Var.cpp

    r299 r301  
    726726        }
    727727
     728        Type classType( resultType );
     729
    728730        if(!_member_offset(
    729731            isErrorEnabled,
    730732            isWriteAccess,
    731             resultType,
     733            classType,
    732734            member,pRelativeVar,resultType,0)) return false;
    733735
  • trunk/abdev/BasicCompiler32/NumOpe.cpp

    r299 r301  
    233233bool TermOpe( const char *term, const Type &baseType, Type &resultType, bool &isLiteral, BOOL *pbUseHeap, bool isWantObject, bool *pIsClassName, bool isProcedureCallOnly ){
    234234    char parameter[VN_SIZE];
    235 
    236     if( (string)term=="a[1]")
    237     {
    238         int test=0;
    239     }
    240235
    241236    // Withを解決
  • trunk/abdev/BasicCompiler32/Opcode.h

    r299 r301  
    203203    void MacroParameterSupport( const Parameters &params );
    204204    void SetStructParameter( const Type &baseType, const char *expression );
    205     int SetParameter( const string &procName, const Parameters &params, int SecondParmNum = -1 );
     205    int SetParameter( const string &procName, const Parameters &params, int SecondParmNum = -1, const UserProc *pUserProc = NULL );
    206206
    207207    //一時オブジェクトパラメータの生成と破棄
Note: See TracChangeset for help on using the changeset viewer.