Changeset 199 in dev
- Timestamp:
- Jun 27, 2007, 3:16:11 AM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r198 r199 282 282 283 283 // コンパイル中の関数が属する名前空間 284 namespaceSupporter.SetLivingNamespaceScopes( pUserProc->GetNamespaceScopes() );284 compiler.GetNamespaceSupporter().SetLivingNamespaceScopes( pUserProc->GetNamespaceScopes() ); 285 285 286 286 // コンパイル中の関数でImportsされている名前空間 287 namespaceSupporter.SetImportedNamespaces( pUserProc->GetImportedNamespaces() );287 compiler.GetNamespaceSupporter().SetImportedNamespaces( pUserProc->GetImportedNamespaces() ); 288 288 289 289 if(pUserProc->IsSystem()){ -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r195 r199 371 371 if(!bDll){ 372 372 // 名前空間が初期化されているかをチェック 373 if( namespaceSupporter.GetLivingNamespaceScopes().size() ){373 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 374 374 SetError(); 375 375 } … … 471 471 472 472 // 名前空間が正しく閉じられているかをチェック 473 if( namespaceSupporter.GetLivingNamespaceScopes().size() ){473 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 474 474 SetError(63,NULL,-1); 475 475 } -
trunk/abdev/BasicCompiler_Common/Compile.cpp
r195 r199 253 253 254 254 case ESC_NAMESPACE: 255 namespaceSupporter.GetLivingNamespaceScopes().push_back( Command + 2 );255 compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().push_back( Command + 2 ); 256 256 break; 257 257 case ESC_ENDNAMESPACE: 258 if( namespaceSupporter.GetLivingNamespaceScopes().size() <= 0 ){258 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() <= 0 ){ 259 259 SetError(12,"End Namespace",cp); 260 260 } 261 namespaceSupporter.GetLivingNamespaceScopes().pop_back();261 compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().pop_back(); 262 262 break; 263 263 case ESC_IMPORTS: 264 namespaceSupporter.ImportsNamespace( Command + 2 );264 compiler.GetNamespaceSupporter().ImportsNamespace( Command + 2 ); 265 265 break; 266 266 case ESC_CLEARNAMESPACEIMPORTED: 267 namespaceSupporter.GetImportedNamespaces().clear();267 compiler.GetNamespaceSupporter().GetImportedNamespaces().clear(); 268 268 break; 269 269 -
trunk/abdev/BasicCompiler_Common/Const.cpp
r195 r199 15 15 return false; 16 16 } 17 return namespaceSupporter.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes );17 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->namespaceScopes, namespaceScopes ); 18 18 } 19 19 bool ConstBase::IsEqualSymbol( const string &fullName ) const -
trunk/abdev/BasicCompiler_Common/Enum.cpp
r195 r199 4 4 #include <jenga/include/smoothie/LexicalAnalysis.h> 5 5 6 #include < NamespaceSupporter.h>6 #include <Compiler.h> 7 7 8 8 #include "common.h" … … 117 117 118 118 // 名前空間管理 119 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();119 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 120 120 namespaceScopes.clear(); 121 121 -
trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp
r195 r199 2 2 #include <jenga/include/smoothie/LexicalAnalysis.h> 3 3 4 #include < NamespaceSupporter.h>4 #include <Compiler.h> 5 5 6 6 #include "../BasicCompiler_Common/common.h" … … 252 252 253 253 // 名前空間管理 254 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();254 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 255 255 namespaceScopes.clear(); 256 256 -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r195 r199 629 629 630 630 // 名前空間管理 631 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();631 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 632 632 namespaceScopes.clear(); 633 633 634 634 // Importsされた名前空間の管理 635 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces();635 NamespaceScopesCollection &importedNamespaces = compiler.GetNamespaceSupporter().GetImportedNamespaces(); 636 636 importedNamespaces.clear(); 637 637 … … 687 687 temporary[i2]=basbuf[i]; 688 688 } 689 if( ! namespaceSupporter.ImportsNamespace( temporary ) )689 if( !compiler.GetNamespaceSupporter().ImportsNamespace( temporary ) ) 690 690 { 691 691 SetError(64,temporary,cp ); -
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r198 r199 977 977 bool isConst = ( dwFlag & DIMFLAG_CONST ) ? true:false; 978 978 979 Variable *pVar = new VariableImpl( namespaceSupporter.GetLivingNamespaceScopes(), name, type, isConst );979 Variable *pVar = new VariableImpl( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(), name, type, isConst ); 980 980 981 981 if( SubScripts[0] != -1 ){ -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r195 r199 2 2 3 3 #include <CodeGenerator.h> 4 #include <NamespaceSupporter.h> 4 5 #include <MetaImpl.h> 5 6 6 7 class Compiler 7 8 { 9 // ネイティブコード 8 10 NativeCode nativeCode; 11 12 // 名前空間サポート 13 NamespaceSupporter namespaceSupporter; 14 15 // メタ情報 9 16 MetaImpl metaImpl; 10 17 … … 13 20 { 14 21 return nativeCode; 22 } 23 24 NamespaceSupporter &GetNamespaceSupporter() 25 { 26 return namespaceSupporter; 15 27 } 16 28 -
trunk/abdev/BasicCompiler_Common/include/NamespaceSupporter.h
r198 r199 1 1 #pragma once 2 2 3 #include < Compiler.h>3 #include <jenga/include/smoothie/Namespace.h> 4 4 5 5 class NamespaceSupporter … … 20 20 this->importedNamespaces = namespaces; 21 21 } 22 bool ImportsNamespace( const std::string &namespaceStr ) 23 { 24 NamespaceScopes namespaceScopes( namespaceStr ); 25 if( !compiler.GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){ 26 return false; 27 } 28 29 this->importedNamespaces.push_back( namespaceScopes ); 30 31 return true; 32 } 22 bool ImportsNamespace( const std::string &namespaceStr ); 33 23 34 24 NamespaceScopes &GetLivingNamespaceScopes() … … 109 99 static bool CollectNamespaces( const char *source, NamespaceScopesCollection &namespaceScopesCollection ); 110 100 }; 111 extern NamespaceSupporter namespaceSupporter; -
trunk/abdev/BasicCompiler_Common/src/ClassImpl.cpp
r198 r199 83 83 } 84 84 85 return namespaceSupporter.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );85 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes ); 86 86 } 87 87 … … 518 518 519 519 // 名前空間管理 520 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();520 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 521 521 namespaceScopes.clear(); 522 522 523 523 // Importsされた名前空間の管理 524 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces();524 NamespaceScopesCollection &importedNamespaces = compiler.GetNamespaceSupporter().GetImportedNamespaces(); 525 525 importedNamespaces.clear(); 526 526 … … 559 559 temporary[i2]=source[i]; 560 560 } 561 if( ! namespaceSupporter.ImportsNamespace( temporary ) )561 if( !compiler.GetNamespaceSupporter().ImportsNamespace( temporary ) ) 562 562 { 563 563 SmoothieException::Throw(64,temporary,i ); … … 654 654 655 655 // 名前空間をセット 656 namespaceSupporter.GetLivingNamespaceScopes() = objClass.GetNamespaceScopes();656 compiler.GetNamespaceSupporter().GetLivingNamespaceScopes() = objClass.GetNamespaceScopes(); 657 657 658 658 int i=0; … … 675 675 } 676 676 677 namespaceSupporter.GetLivingNamespaceScopes().clear();677 compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().clear(); 678 678 679 679 cp=back_cp; … … 710 710 711 711 // 名前空間管理 712 NamespaceScopes backupNamespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();713 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();712 NamespaceScopes backupNamespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 713 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 714 714 namespaceScopes.clear(); 715 715 … … 1153 1153 1154 1154 // 名前空間を元に戻す 1155 namespaceSupporter.GetLivingNamespaceScopes() = backupNamespaceScopes;1155 compiler.GetNamespaceSupporter().GetLivingNamespaceScopes() = backupNamespaceScopes; 1156 1156 } 1157 1157 void ClassesImpl::GetAllClassInfo(void){ … … 1165 1165 pobj_LoopRefCheck=0; 1166 1166 1167 // イテレータ 用のデータを作る1167 // イテレータの準備 1168 1168 this->Iterator_Init(); 1169 1169 } -
trunk/abdev/BasicCompiler_Common/src/NamespaceSupporter.cpp
r195 r199 1 1 #include <jenga/include/smoothie/SmoothieException.h> 2 2 3 #include < NamespaceSupporter.h>3 #include <Compiler.h> 4 4 5 NamespaceSupporter namespaceSupporter; 5 bool NamespaceSupporter::ImportsNamespace( const std::string &namespaceStr ) 6 { 7 NamespaceScopes namespaceScopes( namespaceStr ); 8 if( !compiler.GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){ 9 return false; 10 } 11 12 this->importedNamespaces.push_back( namespaceScopes ); 13 14 return true; 15 } 6 16 7 17 bool NamespaceSupporter::CollectNamespaces( const char *source, NamespaceScopesCollection &namespaceScopesCollection ) -
trunk/abdev/BasicCompiler_Common/src/ProcedureImpl.cpp
r198 r199 389 389 } 390 390 391 return namespaceSupporter.IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes );391 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( GetNamespaceScopes(), namespaceScopes ); 392 392 } 393 393 bool GlobalProc::IsEqualSymbol( const GlobalProc &globalProc ) const … … 409 409 return false; 410 410 } 411 return namespaceSupporter.IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes );411 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->GetNamespaceScopes(), namespaceScopes ); 412 412 } 413 413 bool DllProcImpl::SetParamsAndReturnType( const char *sourceOfParams, int nowLine ){ -
trunk/abdev/BasicCompiler_Common/src/TypeDef.cpp
r195 r199 25 25 return false; 26 26 } 27 return namespaceSupporter.IsSameAreaNamespace( this->namespaceScopes, namespaceScopes );27 return compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->namespaceScopes, namespaceScopes ); 28 28 } 29 29 bool TypeDef::IsEqualSymbol( const string &fullName ) const … … 148 148 149 149 // 名前空間管理 150 NamespaceScopes &namespaceScopes = namespaceSupporter.GetLivingNamespaceScopes();150 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); 151 151 namespaceScopes.clear(); 152 152 153 153 // Importsされた名前空間の管理 154 NamespaceScopesCollection &importedNamespaces = namespaceSupporter.GetImportedNamespaces();154 NamespaceScopesCollection &importedNamespaces = compiler.GetNamespaceSupporter().GetImportedNamespaces(); 155 155 importedNamespaces.clear(); 156 156 … … 193 193 temporary[i2]=basbuf[i]; 194 194 } 195 if( ! namespaceSupporter.ImportsNamespace( temporary ) )195 if( !compiler.GetNamespaceSupporter().ImportsNamespace( temporary ) ) 196 196 { 197 197 SmoothieException::Throw(64,temporary,i ); -
trunk/abdev/BasicCompiler_Common/src/VariableImpl.cpp
r195 r199 6 6 { 7 7 if( GetName() == symbol.GetName() 8 && namespaceSupporter.IsSameAreaNamespace( this->GetNamespaceScopes(), symbol.GetNamespaceScopes() ) )8 && compiler.GetNamespaceSupporter().IsSameAreaNamespace( this->GetNamespaceScopes(), symbol.GetNamespaceScopes() ) ) 9 9 { 10 10 return true;
Note:
See TracChangeset
for help on using the changeset viewer.