Changeset 308 in dev for trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
- Timestamp:
- Aug 29, 2007, 9:05:22 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r299 r308 226 226 Compile_AddGlobalRootsForGc(); 227 227 } 228 else if( userProc.GetName() == compiler.globalAreaProcName ){ 229 //////////////////////////////////////// 230 // グローバル領域をコンパイル 231 //////////////////////////////////////// 232 233 const UserProc *pBackUserProc = &UserProc::CompilingUserProc(); 234 UserProc::CompileStartForGlobalArea(); 235 236 int BackCp = cp; 237 cp=-1; 238 239 //クラスに属する静的メンバを定義 240 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 241 242 //グローバル実行領域をコンパイル開始 243 CompileBuffer(0,0); 244 245 //Goto未知ラベルスケジュールが存在したらエラーにする 246 BOOST_FOREACH( const GotoLabelSchedule *pGotoLabelSchedule, compiler.codeGenerator.gotoLabelSchedules ) 247 { 248 if(pGotoLabelSchedule->GetName().size()>0){ 249 SetError(6,pGotoLabelSchedule->GetName(),pGotoLabelSchedule->GetSourceCodePos()); 250 } 251 else{ 252 char temporary[255]; 253 sprintf(temporary,"%d",pGotoLabelSchedule->GetLineNum()); 254 SetError(6,temporary,pGotoLabelSchedule->GetSourceCodePos()); 255 } 256 } 257 258 UserProc::CompileStartForUserProc( pBackUserProc ); 259 cp=BackCp; 260 } 228 261 else{ 229 262 SetError(); … … 422 455 //Continueアドレスを初期化 423 456 compiler.codeGenerator.ClearContinueArea(); 457 458 //レキシカルスコープ情報を初期化 459 compiler.codeGenerator.lexicalScopes.Init( compiler.codeGenerator.GetNativeCodeSize() ); 424 460 425 461 const PertialSchedule *pEspOffsetPertialSchedule = NULL; … … 768 804 } 769 805 void CompileLocal(){ 770 if( compiler.IsDll() ){ 806 if( compiler.IsDll() ) 807 { 771 808 //DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする 772 809 const UserProc *pUserProc=GetSubHash("_System_InitDllGlobalVariables"); … … 775 812 } 776 813 else SetError(300,NULL,cp); 814 } 815 else 816 { 817 // グローバル領域を一番初めにコンパイルする 818 extern const UserProc *pSub_System_GlobalArea; 819 CompileBufferInProcedure( *pSub_System_GlobalArea ); 777 820 } 778 821
Note:
See TracChangeset
for help on using the changeset viewer.