Changeset 537 in dev for trunk/ab5.0/abdev
- Timestamp:
- May 3, 2008, 6:58:38 PM (17 years ago)
- Location:
- trunk/ab5.0/abdev
- Files:
-
- 17 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 -
trunk/ab5.0/abdev/compiler_x86/Compile_Func.cpp
r536 r537 614 614 } 615 615 616 resultType = UserProc::CompilingUserProc().ReturnType();616 resultType = compiler.GetCompilingUserProc().ReturnType(); 617 617 } 618 618 void Opcode_Func_System_Get_Bp() -
trunk/ab5.0/abdev/compiler_x86/Compile_ProcOp.cpp
r536 r537 32 32 33 33 const UserProc *pBackUserProc; 34 pBackUserProc = & UserProc::CompilingUserProc();35 UserProc::CompileStartForGlobalArea();34 pBackUserProc = &compiler.GetCompilingUserProc(); 35 compiler.StartGlobalAreaCompile(); 36 36 37 37 int BackCp; … … 57 57 GetGlobalDataForDll(); 58 58 59 UserProc::CompileStartForUserProc( pBackUserProc );59 compiler.SetCompilingUserProc( pBackUserProc ); 60 60 cp=BackCp; 61 61 … … 89 89 90 90 const UserProc *pBackUserProc; 91 pBackUserProc = & UserProc::CompilingUserProc();92 UserProc::CompileStartForGlobalArea();91 pBackUserProc = &compiler.GetCompilingUserProc(); 92 compiler.StartGlobalAreaCompile(); 93 93 94 94 compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd(); 95 95 96 UserProc::CompileStartForUserProc( pBackUserProc );96 compiler.SetCompilingUserProc( pBackUserProc ); 97 97 98 98 … … 225 225 UserProc::pGlobalProc = &userProc; 226 226 227 const UserProc *pBackUserProc = & UserProc::CompilingUserProc();228 UserProc::CompileStartForGlobalArea();227 const UserProc *pBackUserProc = &compiler.GetCompilingUserProc(); 228 compiler.StartGlobalAreaCompile(); 229 229 230 230 int BackCp = cp; … … 250 250 } 251 251 252 UserProc::CompileStartForUserProc( pBackUserProc );252 compiler.SetCompilingUserProc( pBackUserProc ); 253 253 cp=BackCp; 254 254 } -
trunk/ab5.0/abdev/compiler_x86/Compile_Statement.cpp
r465 r537 893 893 894 894 void OpcodeExitSub(void){ 895 if( UserProc::IsGlobalAreaCompiling() ){895 if( compiler.IsGlobalAreaCompiling() ){ 896 896 compiler.errorMessenger.Output(12,"Exit Sub/Function",cp); 897 897 return; … … 1231 1231 } 1232 1232 void OpcodeReturn(char *Parameter){ 1233 if( UserProc::IsGlobalAreaCompiling() ){1233 if( compiler.IsGlobalAreaCompiling() ){ 1234 1234 //Gosub~Returnとして扱う 1235 1235 … … 1240 1240 //戻り値をセット 1241 1241 if(Parameter[0]){ 1242 const UserProc &proc = UserProc::CompilingUserProc();1242 const UserProc &proc = compiler.GetCompilingUserProc(); 1243 1243 1244 1244 const char *temp = "_System_ReturnValue"; -
trunk/ab5.0/abdev/compiler_x86/Compile_Var.cpp
r536 r537 388 388 389 389 390 if( UserProc::IsLocalAreaCompiling() ){390 if( compiler.IsLocalAreaCompiling() ){ 391 391 ////////////////// 392 392 // ローカル変数 393 393 ////////////////// 394 394 395 const Variable *pVar = UserProc::CompilingUserProc().GetLocalVars().BackSearch( LexicalAnalyzer::FullNameToSymbol( VarName ) );395 const Variable *pVar = compiler.GetCompilingUserProc().GetLocalVars().BackSearch( LexicalAnalyzer::FullNameToSymbol( VarName ) ); 396 396 if( pVar ){ 397 397 //ポインタ変数の場合 … … 517 517 518 518 char temporary[VN_SIZE]; 519 if( UserProc::IsLocalAreaCompiling() ){519 if( compiler.IsLocalAreaCompiling() ){ 520 520 GetNowStaticVarFullName(VarName,temporary); 521 521 … … 1092 1092 1093 1093 void dim( char *VarName, const Subscripts &subscripts, const Type &type,const char *InitBuf,const char *ConstractParameter,DWORD dwFlags){ 1094 if( UserProc::IsGlobalAreaCompiling() ){1094 if( compiler.IsGlobalAreaCompiling() ){ 1095 1095 ///////////////////////// 1096 1096 // グローバル変数 … … 1104 1104 ///////////////// 1105 1105 1106 if( UserProc::CompilingUserProc().GetLocalVars().DuplicateCheck( LexicalAnalyzer::FullNameToSymbol( VarName ) ) ){1106 if( compiler.GetCompilingUserProc().GetLocalVars().DuplicateCheck( LexicalAnalyzer::FullNameToSymbol( VarName ) ) ){ 1107 1107 //2重定義のエラー 1108 1108 compiler.errorMessenger.Output(15,VarName,cp); … … 1128 1128 1129 1129 // 変数を追加 1130 UserProc::CompilingUserProc().GetLocalVars().push_back( pVar );1130 compiler.GetCompilingUserProc().GetLocalVars().push_back( pVar ); 1131 1131 1132 1132 //アラインメントを考慮 … … 1145 1145 // 呼び出し側のオフセットズレを考慮する 1146 1146 1147 if( 0 == ( UserProc::CompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE /* ret分 */ ) % alignment ){1147 if( 0 == ( compiler.GetCompilingUserProc().RealParams().GetMemorySize() + PTR_SIZE /* ret分 */ ) % alignment ){ 1148 1148 AllLocalVarSize += PTR_SIZE; 1149 1149 } -
trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp
r536 r537 365 365 366 366 cp=-1; 367 UserProc::CompileStartForGlobalArea();367 compiler.StartGlobalAreaCompile(); 368 368 369 369 if( !compiler.IsDll() ){
Note:
See TracChangeset
for help on using the changeset viewer.