Ignore:
Timestamp:
Sep 27, 2007, 1:47:46 AM (17 years ago)
Author:
dai_9181
Message:

AddressOfの左辺値を加味した処理を簡潔にした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp

    r301 r331  
    301301}
    302302
    303 bool GetTermType( const char *term, Type &resultType, bool &isLiteral, bool *pIsClassName )
     303bool GetTermType( const char *term, const Type &baseType, Type &resultType, bool &isLiteral, bool *pIsClassName )
    304304{
    305305    char parameter[VN_SIZE];
     
    330330        bool isClassName = false;
    331331        Type leftType;
    332         if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
     332        if( GetTermType( termLeft, Type(), leftType, isLiteral, &isClassName ) ){
    333333            if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){
    334334                // 左側のオブジェクト部分がBlittable型のとき
     
    340340                    temporary );
    341341
    342                 if( !GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
     342                if( !GetTermType( termLeft, Type(), leftType, isLiteral, &isClassName ) ){
    343343                    goto globalArea;
    344344                }
     
    446446            ////////////////
    447447
    448             if( !CallProc(idProc,pProc,procName,parameter, resultType, false ) ){
     448            if( !CallProc(idProc,pProc,procName,parameter, baseType, resultType, false ) ){
    449449                return false;
    450450            }
     
    716716
    717717                    bool isLiteral = true;
    718                     if( GetTermType( term, resultType, isLiteral ) ){
     718                    if( GetTermType( term, baseType, resultType, isLiteral ) ){
    719719                        type_stack[sp] = resultType.GetBasicType();
    720720                        index_stack[sp] = resultType.GetIndex();
Note: See TracChangeset for help on using the changeset viewer.