Changeset 537 in dev for trunk/ab5.0/abdev/BasicCompiler_Common
- Timestamp:
- May 3, 2008, 6:58:38 PM (17 years ago)
- Location:
- trunk/ab5.0/abdev/BasicCompiler_Common
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/Compile.cpp
r524 r537 242 242 243 243 case ESC_TYPEDEF: 244 if( UserProc::IsLocalAreaCompiling() ){244 if( compiler.IsLocalAreaCompiling() ){ 245 245 // ローカル領域をコンパイルしているとき 246 246 compiler.errorMessenger.Output(65,"TypeDef",cp ); … … 251 251 252 252 case ESC_DELEGATE: 253 if( UserProc::IsLocalAreaCompiling() ){253 if( compiler.IsLocalAreaCompiling() ){ 254 254 // ローカル領域をコンパイルしているとき 255 255 compiler.errorMessenger.Output(65,"Delegate",cp ); … … 335 335 break; 336 336 case ESC_DECLARE: 337 if( UserProc::IsLocalAreaCompiling() ){337 if( compiler.IsLocalAreaCompiling() ){ 338 338 // ローカル領域をコンパイルしているとき 339 339 compiler.errorMessenger.Output(65,"Declare",cp ); -
trunk/ab5.0/abdev/BasicCompiler_Common/NumOpe_GetType.cpp
r536 r537 751 751 // Blittable型のときは基本型として扱う 752 752 // ※ただし、コンパイル中のメソッドがBlittable型クラスに属していないこと 753 if( UserProc::IsLocalAreaCompiling()754 && UserProc::CompilingUserProc().HasParentClass()755 && UserProc::CompilingUserProc().GetParentClass().IsBlittableType() )753 if( compiler.IsLocalAreaCompiling() 754 && compiler.GetCompilingUserProc().HasParentClass() 755 && compiler.GetCompilingUserProc().GetParentClass().IsBlittableType() ) 756 756 { 757 757 // コンパイル中のメソッドがBlittable型クラスに属している -
trunk/ab5.0/abdev/BasicCompiler_Common/VarList.cpp
r536 r537 779 779 if(pUserProc){ 780 780 compiler.StartProcedureCompile( pUserProc ); 781 UserProc::CompileStartForUserProc( pUserProc );782 781 } 783 782 } -
trunk/ab5.0/abdev/BasicCompiler_Common/VariableOpe.cpp
r536 r537 560 560 const Variable *pVar = NULL; 561 561 562 if( UserProc::IsLocalAreaCompiling() ){562 if( compiler.IsLocalAreaCompiling() ){ 563 563 ///////////////// 564 564 // ローカル変数 565 565 ///////////////// 566 566 567 pVar = UserProc::CompilingUserProc().GetLocalVars().BackSearch( LexicalAnalyzer::FullNameToSymbol( VarName ) );567 pVar = compiler.GetCompilingUserProc().GetLocalVars().BackSearch( LexicalAnalyzer::FullNameToSymbol( VarName ) ); 568 568 if( pVar ){ 569 569 goto ok; … … 613 613 614 614 char temporary[VN_SIZE]; 615 if( UserProc::IsLocalAreaCompiling() ){615 if( compiler.IsLocalAreaCompiling() ){ 616 616 GetNowStaticVarFullName(VarName,temporary); 617 617 … … 905 905 906 906 BOOL GetNowStaticVarFullName(char *VarName,char *FullName){ 907 if( UserProc::IsGlobalAreaCompiling() ){907 if( compiler.IsGlobalAreaCompiling() ){ 908 908 // グローバル領域をコンパイル中のとき 909 909 return 0; 910 910 } 911 911 912 const UserProc &proc = UserProc::CompilingUserProc();912 const UserProc &proc = compiler.GetCompilingUserProc(); 913 913 914 914 //Static識別 … … 1082 1082 // Blittable型のときは基本型として扱う 1083 1083 // ※ただし、コンパイル中のメソッドがBlittable型クラスに属していないこと 1084 if( UserProc::IsLocalAreaCompiling()1085 && UserProc::CompilingUserProc().HasParentClass()1086 && UserProc::CompilingUserProc().GetParentClass().IsBlittableType() )1084 if( compiler.IsLocalAreaCompiling() 1085 && compiler.GetCompilingUserProc().HasParentClass() 1086 && compiler.GetCompilingUserProc().GetParentClass().IsBlittableType() ) 1087 1087 { 1088 1088 // コンパイル中のメソッドがBlittable型クラスに属している … … 1094 1094 } 1095 1095 1096 if(dwFlags&DIMFLAG_STATIC){ 1097 if( UserProc::IsGlobalAreaCompiling() ){ 1096 if(dwFlags&DIMFLAG_STATIC) 1097 { 1098 if( compiler.IsGlobalAreaCompiling() ) 1099 { 1098 1100 compiler.errorMessenger.Output(60,NULL,cp); 1099 1101 return; -
trunk/ab5.0/abdev/BasicCompiler_Common/WatchList.cpp
r536 r537 351 351 // ローカル変数 352 352 ///////////////// 353 if( UserProc::IsLocalAreaCompiling() ){354 const Variable *pVar = UserProc::CompilingUserProc().GetLocalVars().Find( LexicalAnalyzer::FullNameToSymbol( VarName ) );353 if( compiler.IsLocalAreaCompiling() ){ 354 const Variable *pVar = compiler.GetCompilingUserProc().GetLocalVars().Find( LexicalAnalyzer::FullNameToSymbol( VarName ) ); 355 355 356 356 if( pVar ){ -
trunk/ab5.0/abdev/BasicCompiler_Common/include/Compiler.h
r536 r537 192 192 193 193 void ClearCompilingUserProcAndClass(); 194 void StartGlobalAreaCompile(); 195 void FinishGlobalAreaCompile(); 194 196 void SetCompilingClass( const CClass *pClass ); 197 void SetCompilingUserProc( const UserProc *pUserProc ); 195 198 void StartProcedureCompile( const UserProc *pUserProc ); 196 199 void FinishProcedureCompile(); 197 200 198 201 bool IsGlobalAreaCompiling(); 202 bool IsLocalAreaCompiling(); 199 203 const UserProc &GetCompilingUserProc(); 200 204 bool IsCompilingClass(); -
trunk/ab5.0/abdev/BasicCompiler_Common/include/Procedure.h
r524 r537 371 371 372 372 373 374 /////////////////////////////////////////////////////////////////375 // コンパイル中の関数を管理376 /////////////////////////////////////////////////////////////////377 private:378 static const UserProc *pCompilingUserProc;379 public:380 373 static const UserProc *pGlobalProc; 381 static void CompileStartForGlobalArea(){382 pCompilingUserProc = NULL;383 }384 static void CompileStartForUserProc( const UserProc *pUserProc ){385 pCompilingUserProc = pUserProc;386 }387 static bool IsGlobalAreaCompiling(){388 return ( pCompilingUserProc == NULL );389 }390 static bool IsLocalAreaCompiling(){391 return ( pCompilingUserProc != NULL );392 }393 static const UserProc &CompilingUserProc(){394 return *pCompilingUserProc;395 }396 374 }; 397 375 -
trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp
r536 r537 222 222 } 223 223 224 void Compiler::SetCompilingUserProc( const UserProc *pUserProc ) 225 { 226 this->pCompilingUserProc = pUserProc; 227 228 this->SetCompilingClass( pUserProc->GetParentClassPtr() ); 229 } 230 231 void Compiler::StartGlobalAreaCompile() 232 { 233 ClearCompilingUserProcAndClass(); 234 } 235 224 236 void Compiler::StartProcedureCompile( const UserProc *pUserProc ) 225 237 { 226 238 //コンパイル中の関数 227 this->pCompilingUserProc = pUserProc; 228 229 //コンパイル中の関数が属するクラス 230 this->SetCompilingClass( pUserProc->GetParentClassPtr() ); 239 this->SetCompilingUserProc( pUserProc ); 231 240 232 241 //コンパイルスタートをクラス管理クラスに追加 233 242 this->GetObjectModule().meta.GetClasses().StartCompile( pUserProc ); 234 243 235 //コンパイル中の関数236 UserProc::CompileStartForUserProc( pUserProc );237 238 244 // コンパイル中の関数が属する名前空間 239 245 this->GetNamespaceSupporter().SetLivingNamespaceScopes( pUserProc->GetNamespaceScopes() ); … … 255 261 return ( pCompilingUserProc == NULL ); 256 262 } 263 bool Compiler::IsLocalAreaCompiling() 264 { 265 return ( pCompilingUserProc != NULL ); 266 } 257 267 const UserProc &Compiler::GetCompilingUserProc() 258 268 { -
trunk/ab5.0/abdev/BasicCompiler_Common/src/Exception.cpp
r524 r537 222 222 223 223 // Catchアドレス 224 const UserProc *pUserProc = & UserProc::CompilingUserProc();225 if( UserProc::IsGlobalAreaCompiling() )224 const UserProc *pUserProc = &compiler.GetCompilingUserProc(); 225 if( compiler.IsGlobalAreaCompiling() ) 226 226 { 227 227 pUserProc = UserProc::pGlobalProc; -
trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalScope.cpp
r485 r537 71 71 CallDestructorsOfScopeEnd(); 72 72 73 Variables *pVars = UserProc::IsGlobalAreaCompiling() ?73 Variables *pVars = compiler.IsGlobalAreaCompiling() ? 74 74 &compiler.GetObjectModule().meta.GetGlobalVars() : 75 & UserProc::CompilingUserProc().GetLocalVars();75 &compiler.GetCompilingUserProc().GetLocalVars(); 76 76 77 77 //使用済みローカル変数の生存チェックを外す … … 98 98 void LexicalScopes::CallDestructorsOfScopeEnd(){ 99 99 100 Variables *pVariabls = UserProc::IsGlobalAreaCompiling() ?100 Variables *pVariabls = compiler.IsGlobalAreaCompiling() ? 101 101 &compiler.GetObjectModule().meta.GetGlobalVars() : 102 & UserProc::CompilingUserProc().GetLocalVars();102 &compiler.GetCompilingUserProc().GetLocalVars(); 103 103 104 104 … … 109 109 Variable *pVar = (*pVariabls)[i3]; 110 110 111 if( UserProc::IsGlobalAreaCompiling() && GetNowLevel() == 0 ){111 if( compiler.IsGlobalAreaCompiling() && GetNowLevel() == 0 ){ 112 112 if( pVar->GetName() == "_System_GC" ){ 113 113 indexSystemGC=i3; … … 152 152 153 153 154 if( UserProc::IsGlobalAreaCompiling() ){154 if( compiler.IsGlobalAreaCompiling() ){ 155 155 //ここには来ないハズ 156 156 compiler.errorMessenger.Output(300,NULL,cp); -
trunk/ab5.0/abdev/BasicCompiler_Common/src/NativeCode.cpp
r465 r537 85 85 if( scheduleType == Schedule::CatchAddress ) 86 86 { 87 const UserProc *pUserProc = & UserProc::CompilingUserProc();88 if( UserProc::IsGlobalAreaCompiling() )87 const UserProc *pUserProc = &compiler.GetCompilingUserProc(); 88 if( compiler.IsGlobalAreaCompiling() ) 89 89 { 90 90 pUserProc = UserProc::pGlobalProc; -
trunk/ab5.0/abdev/BasicCompiler_Common/src/Procedure.cpp
r523 r537 483 483 } 484 484 485 const UserProc *UserProc::pCompilingUserProc = NULL;486 485 const UserProc *UserProc::pGlobalProc = NULL; 487 486
Note:
See TracChangeset
for help on using the changeset viewer.