Ignore:
Timestamp:
Mar 24, 2008, 8:05:20 PM (16 years ago)
Author:
dai_9181
Message:

Messenger/ErrorMessengerクラスを導入。SetError関数によるエラー生成を廃止した。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler32/Compile_Var.cpp

    r461 r465  
    3535    else{
    3636        //エラー
    37         SetError(1,NULL,cp);
     37        compiler.errorMessenger.Output(1,NULL,cp);
    3838        return;
    3939    }
     
    185185    if( !pMember )
    186186    {
    187         if(isErrorEnabled) SetError(103,VarName,cp);
     187        if(isErrorEnabled) compiler.errorMessenger.Output(103,VarName,cp);
    188188        return false;
    189189    }
     
    196196        //同一クラスオブジェクトの場合はプライベートアクセスを容認する
    197197        if(pMember->IsNoneAccess()){
    198             if(isErrorEnabled) SetError(107,VarName,cp);
     198            if(isErrorEnabled) compiler.errorMessenger.Output(107,VarName,cp);
    199199            return false;
    200200        }
     
    203203        if((bPrivateAccess==0&&pMember->IsPrivate())||
    204204            pMember->IsNoneAccess()){
    205             if(isErrorEnabled) SetError(107,VarName,cp);
     205            if(isErrorEnabled) compiler.errorMessenger.Output(107,VarName,cp);
    206206            return false;
    207207        }
    208208        else if(bPrivateAccess==0&&pMember->IsProtected()){
    209             if(isErrorEnabled) SetError(108,VarName,cp);
     209            if(isErrorEnabled) compiler.errorMessenger.Output(108,VarName,cp);
    210210            return false;
    211211        }
     
    219219        ){
    220220            //Const定義の変数に書き込みアクセスをしようとした場合
    221             SetError(61,VarName,cp);
     221            compiler.errorMessenger.Output(61,VarName,cp);
    222222    }
    223223
     
    237237    else{
    238238        if(lpPtrOffset[0]){
    239             if(isErrorEnabled) SetError(16,member,cp);
     239            if(isErrorEnabled) compiler.errorMessenger.Output(16,member,cp);
    240240            return false;
    241241        }
     
    250250        //配列オフセット
    251251        if(!GetArrayOffset(pMember->GetSubscripts(),array,pMember->GetType())){
    252             if(isErrorEnabled) SetError(14,member,cp);
     252            if(isErrorEnabled) compiler.errorMessenger.Output(14,member,cp);
    253253            return false;
    254254        }
     
    263263        if( resultType.IsObject() || resultType.IsStruct() ){
    264264            if( refType != RefDot ){
    265                 if(isErrorEnabled) SetError(104,member,cp);
     265                if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp);
    266266                return false;
    267267            }
     
    279279                if( ( resultType.IsObjectPtr() || resultType.IsStructPtr() )
    280280                    && refType != RefDot ){
    281                         if(isErrorEnabled) SetError(104,member,cp);
     281                        if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp);
    282282                        return false;
    283283                }
     
    293293                if( ( resultType.IsObjectPtr() || resultType.IsStructPtr() )
    294294                    && refType != RefPointer ){
    295                         if(isErrorEnabled) SetError(104,member,cp);
     295                        if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp);
    296296                        return false;
    297297                }
     
    307307                //ppObj[n]->member
    308308                if( refType != RefPointer ){
    309                     if(isErrorEnabled) SetError(104,member,cp);
     309                    if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp);
    310310                    return false;
    311311                }
     
    321321            }
    322322            else{
    323                 if(isErrorEnabled) SetError(104,member,cp);
     323                if(isErrorEnabled) compiler.errorMessenger.Output(104,member,cp);
    324324                return false;
    325325            }
     
    403403            else{
    404404                if(lpPtrOffset[0]){
    405                     SetError(16,variable,cp);
     405                    compiler.errorMessenger.Output(16,variable,cp);
    406406                    pRelativeVar->dwKind=NON_VAR;
    407407                    return false;
     
    485485            compiler.pCompilingClass->IsCompilingDestructor() == false
    486486            ){
    487                 SetError(131, NULL, cp );
     487                compiler.errorMessenger.Output(131, NULL, cp );
    488488        }
    489489
     
    577577        }
    578578
    579         if(isErrorEnabled) SetError(3,variable,cp);
     579        if(isErrorEnabled) compiler.errorMessenger.Output(3,variable,cp);
    580580        pRelativeVar->dwKind=NON_VAR;
    581581        return false;
     
    593593        else{
    594594            if(lpPtrOffset[0]){
    595                 SetError(16,variable,cp);
     595                compiler.errorMessenger.Output(16,variable,cp);
    596596                pRelativeVar->dwKind=NON_VAR;
    597597                return false;
     
    619619        if( resultType.IsObject() ){
    620620            //オブジェクト定数
    621             SetError(130, VarName, cp );
     621            compiler.errorMessenger.Output(130, VarName, cp );
    622622        }
    623623        else{
    624624            //一般のConst変数
    625             SetError(61,VarName,cp);
     625            compiler.errorMessenger.Output(61,VarName,cp);
    626626        }
    627627    }
     
    647647    if(array[0]){
    648648        if(!GetArrayOffset(*pSubscripts,array,resultType)){
    649             SetError(14,variable,cp);
     649            compiler.errorMessenger.Output(14,variable,cp);
    650650            pRelativeVar->dwKind=NON_VAR;
    651651            return false;
     
    656656            //実態オブジェクトのメンバを参照(obj.member)
    657657            if( refType != RefDot ){
    658                 SetError(104,VarName,cp);
     658                compiler.errorMessenger.Output(104,VarName,cp);
    659659                pRelativeVar->dwKind=NON_VAR;
    660660                return false;
     
    671671                //pObj[n].member
    672672                if( refType != RefDot ){
    673                     SetError(104,VarName,cp);
     673                    compiler.errorMessenger.Output(104,VarName,cp);
    674674                    pRelativeVar->dwKind=NON_VAR;
    675675                    return false;
     
    681681                //pObj->member
    682682                if( refType != RefPointer ){
    683                     SetError(104,VarName,cp);
     683                    compiler.errorMessenger.Output(104,VarName,cp);
    684684                    pRelativeVar->dwKind=NON_VAR;
    685685                    return false;
     
    698698                //ppObj[n]->member
    699699                if( refType != RefPointer ){
    700                     SetError(104,VarName,cp);
     700                    compiler.errorMessenger.Output(104,VarName,cp);
    701701                    pRelativeVar->dwKind=NON_VAR;
    702702                    return false;
     
    713713            }
    714714            else{
    715                 SetError(104,VarName,cp);
     715                compiler.errorMessenger.Output(104,VarName,cp);
    716716                pRelativeVar->dwKind=NON_VAR;
    717717                return false;
     
    719719        }
    720720        else{
    721             SetError(102,VarName,cp);
     721            compiler.errorMessenger.Output(102,VarName,cp);
    722722            pRelativeVar->dwKind=NON_VAR;
    723723            return false;
     
    768768                while(1){
    769769                    if( subscripts[0] < i2 ){
    770                         SetError(41,0,cp);
     770                        compiler.errorMessenger.Output(41,0,cp);
    771771                        return 0;
    772772                    }
     
    790790            BOOST_FOREACH( CMember *pMember, objClass.GetDynamicMembers() ){
    791791                if(InitBuf[i]=='\0'){
    792                     SetError(41,0,cp);
     792                    compiler.errorMessenger.Output(41,0,cp);
    793793                    return false;
    794794                }
     
    806806        }
    807807
    808         SetError(41,0,cp);
     808        compiler.errorMessenger.Output(41,0,cp);
    809809        return false;
    810810    }
     
    816816
    817817    if( subscripts.size() > 0 ){
    818         SetError(41,0,cp);
     818        compiler.errorMessenger.Output(41,0,cp);
    819819        return false;
    820820    }
     
    931931                while(1){
    932932                    if( subscripts[0] < i2 ){
    933                         SetError(41,0,cp);
     933                        compiler.errorMessenger.Output(41,0,cp);
    934934                        return 0;
    935935                    }
     
    953953            BOOST_FOREACH( CMember *pMember, objClass.GetDynamicMembers() ){
    954954                if(InitBuf[i]=='\0'){
    955                     SetError(41,0,cp);
     955                    compiler.errorMessenger.Output(41,0,cp);
    956956                    return false;
    957957                }
     
    971971        }
    972972
    973         SetError(41,0,cp);
     973        compiler.errorMessenger.Output(41,0,cp);
    974974        return false;
    975975    }
     
    981981
    982982    if( subscripts.size() > 0 ){
    983         SetError(41,0,cp);
     983        compiler.errorMessenger.Output(41,0,cp);
    984984        return false;
    985985    }
     
    11051105        if( UserProc::CompilingUserProc().GetLocalVars().DuplicateCheck( Symbol( VarName ) ) ){
    11061106            //2重定義のエラー
    1107             SetError(15,VarName,cp);
     1107            compiler.errorMessenger.Output(15,VarName,cp);
    11081108            return;
    11091109        }
     
    12181218        else{
    12191219            if( subscripts.size() > 1 ){
    1220                 SetError(300,NULL,cp);
     1220                compiler.errorMessenger.Output(300,NULL,cp);
    12211221            }
    12221222            sprintf( objectSize, "%d", subscripts[0] );
     
    12301230        GetVarOffset( true, false, VarName, &RelativeVar, Type() );
    12311231        if( RelativeVar.dwKind == VAR_DIRECTMEM ){
    1232             SetError();
     1232            compiler.errorMessenger.OutputFatalError();
    12331233        }
    12341234        SetVariableFromEax( Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr() ), DEF_OBJECT, &RelativeVar );
     
    13061306void SetVarPtrToReg(int reg,RELATIVE_VAR *pRelativeVar){
    13071307    if( reg != REG_EAX ){
    1308         SetError();
     1308        compiler.errorMessenger.OutputFatalError();
    13091309        //TODO: 未完成
    13101310    }
     
    13151315    const UserProc *pUserProc_AddGlobalRootPtr = GetClassMethod( "_System_CGarbageCollection", "AddGlobalRootPtr" );
    13161316    if( !pUserProc_AddGlobalRootPtr ){
    1317         SetError(3, "_System_CGarbageCollection.AddGlobalRootPtr", -1 );
     1317        compiler.errorMessenger.Output(3, "_System_CGarbageCollection.AddGlobalRootPtr", -1 );
    13181318        return false;
    13191319    }
Note: See TracChangeset for help on using the changeset viewer.