Changeset 391 in dev for trunk


Ignore:
Timestamp:
Feb 14, 2008, 2:50:50 AM (16 years ago)
Author:
dai_9181
Message:

・コンストラクタを呼び出す前に動的型情報を用意するようにした。
・Foreachの一時オブジェクトの初期値をNothingにした(64bit)
・Catchステートメントのエラーメッセージを改修した。

Location:
trunk/abdev
Files:
5 edited

Legend:

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

    r370 r391  
    5050    }
    5151
    52     //コンストラクタを呼び出す
    53     Opcode_CallProc(CreateParameter,
    54         pUserProc,
    55         PROCFLAG_NEW,"");
    56 
    5752    {
    5853        // 動的型情報をセットする
     
    7570        // TODO: 実装
    7671    }
     72
     73    //コンストラクタを呼び出す
     74    Opcode_CallProc(CreateParameter,
     75        pUserProc,
     76        PROCFLAG_NEW,"");
    7777
    7878
  • trunk/abdev/BasicCompiler64/Compile_Object.cpp

    r370 r391  
    4848    }
    4949
    50     //コンストラクタを呼び出す
    51     Opcode_CallProc(CreateParameter,
    52         pUserProc,
    53         PROCFLAG_NEW,"");
    54 
    5550    {
    5651        // 動的型情報をセットする
     
    7065        }
    7166    }
     67
     68    //コンストラクタを呼び出す
     69    Opcode_CallProc(CreateParameter,
     70        pUserProc,
     71        PROCFLAG_NEW,"");
    7272
    7373    if(bSomeObjects){
  • trunk/abdev/BasicCompiler64/Compile_Statement.cpp

    r386 r391  
    502502
    503503        // 未定義の場合は自動的に定義する
    504         sprintf(temporary,"%s%c%c%s", variable, 1, ESC_AS, collectionType.GetActualGenericType(0).GetClass().GetFullName().c_str() );
     504        sprintf(temporary,"%s=Nothing%c%c%s", variable, 1, ESC_AS, collectionType.GetActualGenericType(0).GetClass().GetFullName().c_str() );
    505505        OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR);
    506506    }
  • trunk/abdev/BasicCompiler_Common/error.cpp

    r370 r391  
    170170    if(num==71) lstrcpy(msg,"Finallyの後ろにCatchを記述することはできません。");
    171171    if(num==72) lstrcpy(msg,"Catchのパラメータの型が指定されていません。");
    172     if(num==73) lstrcpy(msg,"Catchのパラメータの型はクラス型でなければなりません。");
     172    if(num==73) lstrcpy(msg,"\"%s\" Catchのパラメータの型はクラス型でなければなりません。");
     173    if(num==74) sprintf(msg,"\"%s\" 型として認識できません。",tempKeyWord);
    173174
    174175
  • trunk/abdev/BasicCompiler_Common/src/Exception.cpp

    r371 r391  
    277277            if( !compiler.StringToType( typeName, paramType ) )
    278278            {
    279                 SetError(73,NULL,cp);
     279                SetError(74,typeName,cp);
     280            }
     281            else
     282            {
     283                if( !paramType.IsObject() )
     284                {
     285                    SetError(73,typeName,cp);
     286                }
    280287            }
    281288        }
Note: See TracChangeset for help on using the changeset viewer.