Ignore:
Timestamp:
Aug 29, 2007, 9:19:17 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp

    r308 r309  
    146146
    147147            Compile_AddGlobalRootsForGc();
     148    }
     149    else if( userProc.GetName() == compiler.globalAreaProcName ){
     150        ////////////////////////////////////////
     151        // グローバル領域をコンパイル
     152        ////////////////////////////////////////
     153
     154        const UserProc *pBackUserProc = &UserProc::CompilingUserProc();
     155        UserProc::CompileStartForGlobalArea();
     156
     157        int BackCp = cp;
     158        cp=-1;
     159
     160        //クラスに属する静的メンバを定義
     161        compiler.GetObjectModule().meta.GetClasses().InitStaticMember();
     162
     163        //グローバル実行領域をコンパイル開始
     164        CompileBuffer(0,0);
     165
     166        //Goto未知ラベルスケジュールが存在したらエラーにする
     167        BOOST_FOREACH( const GotoLabelSchedule *pGotoLabelSchedule, compiler.codeGenerator.gotoLabelSchedules )
     168        {
     169            if(pGotoLabelSchedule->GetName().size()>0){
     170                SetError(6,pGotoLabelSchedule->GetName(),pGotoLabelSchedule->GetSourceCodePos());
     171            }
     172            else{
     173                char temporary[255];
     174                sprintf(temporary,"%d",pGotoLabelSchedule->GetLineNum());
     175                SetError(6,temporary,pGotoLabelSchedule->GetSourceCodePos());
     176            }
     177        }
     178
     179        UserProc::CompileStartForUserProc( pBackUserProc );
     180        cp=BackCp;
    148181    }
    149182    else{
     
    691724        else SetError(300,NULL,cp);
    692725    }
     726    else
     727    {
     728        // グローバル領域を一番初めにコンパイルする
     729        extern const UserProc *pSub_System_GlobalArea;
     730        CompileBufferInProcedure( *pSub_System_GlobalArea );
     731    }
    693732
    694733    //_System_TypeBase_InitializeUserTypesは一番最後にコンパイル
Note: See TracChangeset for help on using the changeset viewer.