Changeset 195 in dev
- Timestamp:
- Jun 26, 2007, 1:48:18 PM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 2 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/BasicCompiler.vcproj
r193 r195 1276 1276 </File> 1277 1277 <File 1278 RelativePath="..\BasicCompiler_Common\src\NamespaceSupporter.cpp" 1279 > 1280 </File> 1281 <File 1278 1282 RelativePath="..\BasicCompiler_Common\src\ProcedureImpl.cpp" 1279 1283 > … … 1377 1381 </File> 1378 1382 <File 1383 RelativePath="..\BasicCompiler_Common\include\NamespaceSupporter.h" 1384 > 1385 </File> 1386 <File 1379 1387 RelativePath="..\BasicCompiler_Common\include\ProcedureImpl.h" 1380 1388 > -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r193 r195 7 7 #include <ClassImpl.h> 8 8 #include <VariableImpl.h> 9 #include <NamespaceSupporter.h> 9 10 10 11 #include "../BasicCompiler_Common/common.h" … … 281 282 282 283 // コンパイル中の関数が属する名前空間 283 Smoothie::Temp::liveingNamespaceScopes= pUserProc->GetNamespaceScopes();284 namespaceSupporter.GetLivingNamespaceScopes() = pUserProc->GetNamespaceScopes(); 284 285 285 286 // コンパイル中の関数でImportsされている名前空間 286 compiler.SetImportedNamespaces( pUserProc->GetImportedNamespaces() );287 namespaceSupporter.SetImportedNamespaces( pUserProc->GetImportedNamespaces() ); 287 288 288 289 if(pUserProc->IsSystem()){ -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r193 r195 6 6 #include <ClassImpl.h> 7 7 #include <Compiler.h> 8 #include <NamespaceSupporter.h> 8 9 9 10 #include "../BasicCompiler_Common/common.h" … … 169 170 170 171 // 名前空間情報を取得 171 NamespaceS copesCollection::CollectNamespaces(172 NamespaceSupporter::CollectNamespaces( 172 173 Smoothie::Lexical::source.GetBuffer(), 173 174 compiler.GetMeta().GetNamespaces() … … 370 371 if(!bDll){ 371 372 // 名前空間が初期化されているかをチェック 372 if( Smoothie::Temp::liveingNamespaceScopes.size() ){373 if( namespaceSupporter.GetLivingNamespaceScopes().size() ){ 373 374 SetError(); 374 375 } … … 470 471 471 472 // 名前空間が正しく閉じられているかをチェック 472 if( Smoothie::Temp::liveingNamespaceScopes.size() ){473 if( namespaceSupporter.GetLivingNamespaceScopes().size() ){ 473 474 SetError(63,NULL,-1); 474 475 } -
trunk/abdev/BasicCompiler_Common/Compile.cpp
r193 r195 6 6 #include <CodeGenerator.h> 7 7 #include <Compiler.h> 8 #include <NamespaceSupporter.h> 8 9 9 10 #include "../BasicCompiler_Common/common.h" … … 252 253 253 254 case ESC_NAMESPACE: 254 Smoothie::Temp::liveingNamespaceScopes.push_back( Command + 2 );255 namespaceSupporter.GetLivingNamespaceScopes().push_back( Command + 2 ); 255 256 break; 256 257 case ESC_ENDNAMESPACE: 257 if( Smoothie::Temp::liveingNamespaceScopes.size() <= 0 ){258 if( namespaceSupporter.GetLivingNamespaceScopes().size() <= 0 ){ 258 259 SetError(12,"End Namespace",cp); 259 260 } 260 Smoothie::Temp::liveingNamespaceScopes.pop_back();261 namespaceSupporter.GetLivingNamespaceScopes().pop_back(); 261 262 break; 262 263 case ESC_IMPORTS: 263 compiler.ImportsNamespace( Command + 2 );264 namespaceSupporter.ImportsNamespace( Command + 2 ); 264 265 break; 265 266 case ESC_CLEARNAMESPACEIMPORTED: 266 compiler.GetImportedNamespaces().clear();267 namespaceSupporter.GetImportedNamespaces().clear(); 267 268 break; 268 269 -
trunk/abdev/BasicCompiler_Common/Const.cpp
r193 r195 1 1 #include <Compiler.h> 2 #include <NamespaceSupporter.h> 2 3 3 4 #include "common.h" … … 14 15 return false; 15 16 } 16 return compiler.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes );17 return namespaceSupporter.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes ); 17 18 } 18 19 bool ConstBase::IsEqualSymbol( const string &fullName ) const -
trunk/abdev/BasicCompiler_Common/Enum.cpp
r182 r195 3 3 #include <jenga/include/smoothie/Smoothie.h> 4 4 #include <jenga/include/smoothie/LexicalAnalysis.h> 5 6 #include <NamespaceSupporter.h> 5 7 6 8 #include "common.h" … … 115 117 116 118 // 名前空間管理 117 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;119 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 118 120 namespaceScopes.clear(); 119 121 -
trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp
r182 r195 1 1 #include <jenga/include/smoothie/Smoothie.h> 2 2 #include <jenga/include/smoothie/LexicalAnalysis.h> 3 4 #include <NamespaceSupporter.h> 3 5 4 6 #include "../BasicCompiler_Common/common.h" … … 250 252 251 253 // 名前空間管理 252 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;254 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 253 255 namespaceScopes.clear(); 254 256 -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r193 r195 4 4 #include <Compiler.h> 5 5 #include <ProcedureImpl.h> 6 #include <NamespaceSupporter.h> 6 7 7 8 #include "../BasicCompiler_Common/common.h" … … 628 629 629 630 // 名前空間管理 630 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;631 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 631 632 namespaceScopes.clear(); 632 633 633 634 // Importsされた名前空間の管理 634 NamespaceScopesCollection &importedNamespaces = compiler.GetImportedNamespaces();635 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces(); 635 636 importedNamespaces.clear(); 636 637 … … 686 687 temporary[i2]=basbuf[i]; 687 688 } 688 if( ! compiler.ImportsNamespace( temporary ) )689 if( !namespaceSupporter.ImportsNamespace( temporary ) ) 689 690 { 690 691 SetError(64,temporary,cp ); -
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r193 r195 5 5 #include <LexicalScopingImpl.h> 6 6 #include <VariableImpl.h> 7 #include <NamespaceSupporter.h> 7 8 8 9 #include "../BasicCompiler_Common/common.h" … … 976 977 bool isConst = ( dwFlag & DIMFLAG_CONST ) ? true:false; 977 978 978 Variable *pVar = new VariableImpl( Smoothie::Temp::liveingNamespaceScopes, name, type, isConst );979 Variable *pVar = new VariableImpl( namespaceSupporter.GetLivingNamespaceScopes(), name, type, isConst ); 979 980 980 981 if( SubScripts[0] != -1 ){ -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r193 r195 8 8 NativeCode nativeCode; 9 9 MetaImpl metaImpl; 10 11 NamespaceScopesCollection importedNamespaces;12 10 13 11 public: … … 22 20 } 23 21 24 NamespaceScopesCollection &GetImportedNamespaces()25 {26 return importedNamespaces;27 }28 void SetImportedNamespaces( const NamespaceScopesCollection &namespaces )29 {30 this->importedNamespaces = namespaces;31 }32 bool ImportsNamespace( const std::string &namespaceStr )33 {34 NamespaceScopes namespaceScopes( namespaceStr );35 if( !this->GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){36 return false;37 }38 39 this->importedNamespaces.push_back( namespaceScopes );40 41 return true;42 }43 44 22 static bool StringToType( const std::string &typeName, Type &type ); 45 23 static const std::string TypeToString( const Type &type ); 46 47 // 指定された名前空間が同一エリアと見なされるかどうかをチェック48 bool IsSameAreaNamespace( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ){49 if( entryNamespaceScopes.size() ){50 if( baseNamespaceScopes.IsCoverd( entryNamespaceScopes ) ){51 // 包括しているときは同一と見なす52 return true;53 }54 }55 else{56 if( baseNamespaceScopes.size() ){57 // 名前空間の判断が必要なとき58 if( this->importedNamespaces.IsImported( baseNamespaceScopes )59 || baseNamespaceScopes.IsLiving() ){60 // Using指定があるとき61 // または62 // 指定された名前空間が現在の名前空間スコープと同一のとき63 return true;64 }65 }66 else{67 return true;68 }69 }70 71 return false;72 }73 24 }; 74 25 75 staticCompiler compiler;26 extern Compiler compiler; -
trunk/abdev/BasicCompiler_Common/src/ClassImpl.cpp
r193 r195 7 7 #include <ClassImpl.h> 8 8 #include <Compiler.h> 9 #include <NamespaceSupporter.h> 9 10 10 11 #include "../common.h" … … 82 83 } 83 84 84 return compiler.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );85 return namespaceSupporter.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes ); 85 86 } 86 87 … … 517 518 518 519 // 名前空間管理 519 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;520 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 520 521 namespaceScopes.clear(); 521 522 522 523 // Importsされた名前空間の管理 523 NamespaceScopesCollection &importedNamespaces = compiler.GetImportedNamespaces();524 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces(); 524 525 importedNamespaces.clear(); 525 526 … … 558 559 temporary[i2]=source[i]; 559 560 } 560 if( ! compiler.ImportsNamespace( temporary ) )561 if( !namespaceSupporter.ImportsNamespace( temporary ) ) 561 562 { 562 563 SmoothieException::Throw(64,temporary,i ); … … 653 654 654 655 // 名前空間をセット 655 Smoothie::Temp::liveingNamespaceScopes= objClass.GetNamespaceScopes();656 namespaceSupporter.GetLivingNamespaceScopes() = objClass.GetNamespaceScopes(); 656 657 657 658 int i=0; … … 674 675 } 675 676 676 Smoothie::Temp::liveingNamespaceScopes.clear();677 namespaceSupporter.GetLivingNamespaceScopes().clear(); 677 678 678 679 cp=back_cp; … … 709 710 710 711 // 名前空間管理 711 NamespaceScopes backupNamespaceScopes = Smoothie::Temp::liveingNamespaceScopes;712 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;712 NamespaceScopes backupNamespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 713 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 713 714 namespaceScopes.clear(); 714 715 … … 1152 1153 1153 1154 // 名前空間を元に戻す 1154 Smoothie::Temp::liveingNamespaceScopes= backupNamespaceScopes;1155 namespaceSupporter.GetLivingNamespaceScopes() = backupNamespaceScopes; 1155 1156 } 1156 1157 void ClassesImpl::GetAllClassInfo(void){ -
trunk/abdev/BasicCompiler_Common/src/Compiler.cpp
r193 r195 4 4 #include <Compiler.h> 5 5 6 Compiler compiler; 6 7 7 8 bool Compiler::StringToType( const string &typeName, Type &type ){ -
trunk/abdev/BasicCompiler_Common/src/ProcedureImpl.cpp
r193 r195 4 4 #include <Compiler.h> 5 5 #include <ProcedureImpl.h> 6 #include <NamespaceSupporter.h> 6 7 7 8 #include "../common.h" … … 388 389 } 389 390 390 return compiler.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );391 return namespaceSupporter.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes ); 391 392 } 392 393 bool GlobalProc::IsEqualSymbol( const GlobalProc &globalProc ) const … … 408 409 return false; 409 410 } 410 return compiler.IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes );411 return namespaceSupporter.IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes ); 411 412 } 412 413 bool DllProcImpl::SetParamsAndReturnType( const char *sourceOfParams, int nowLine ){ -
trunk/abdev/BasicCompiler_Common/src/TypeDef.cpp
r193 r195 5 5 #include <TypeDef.h> 6 6 #include <Compiler.h> 7 #include <NamespaceSupporter.h> 7 8 8 9 TypeDef::TypeDef( const NamespaceScopes &namespaceScopes, const string &name, const string &baseName, int nowLine ) … … 24 25 return false; 25 26 } 26 return compiler.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes );27 return namespaceSupporter.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes ); 27 28 } 28 29 bool TypeDef::IsEqualSymbol( const string &fullName ) const … … 147 148 148 149 // 名前空間管理 149 NamespaceScopes &namespaceScopes = Smoothie::Temp::liveingNamespaceScopes;150 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes(); 150 151 namespaceScopes.clear(); 151 152 152 153 // Importsされた名前空間の管理 153 NamespaceScopesCollection &importedNamespaces = compiler.GetImportedNamespaces();154 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces(); 154 155 importedNamespaces.clear(); 155 156 … … 192 193 temporary[i2]=basbuf[i]; 193 194 } 194 if( ! compiler.ImportsNamespace( temporary ) )195 if( !namespaceSupporter.ImportsNamespace( temporary ) ) 195 196 { 196 197 SmoothieException::Throw(64,temporary,i ); -
trunk/abdev/BasicCompiler_Common/src/VariableImpl.cpp
r193 r195 1 1 #include <Compiler.h> 2 2 #include <VariableImpl.h> 3 #include <NamespaceSupporter.h> 3 4 4 5 bool VariableImpl::IsEqualSymbol( const Symbol &symbol, bool isSupportStaticMember ) const 5 6 { 6 7 if( GetName() == symbol.GetName() 7 && compiler.IsSameAreaNamespace( this->GetNamespaceScopes(), symbol.GetNamespaceScopes() ) )8 && namespaceSupporter.IsSameAreaNamespace( this->GetNamespaceScopes(), symbol.GetNamespaceScopes() ) ) 8 9 { 9 10 return true;
Note:
See TracChangeset
for help on using the changeset viewer.