- Timestamp:
- Aug 7, 2007, 4:14:06 AM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 2 added
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/BasicCompiler.vcproj
r260 r266 1325 1325 </File> 1326 1326 <File 1327 RelativePath="..\BasicCompiler_Common\src\Source.cpp" 1328 > 1329 </File> 1330 <File 1327 1331 RelativePath="..\BasicCompiler_Common\src\Symbol.cpp" 1328 1332 > … … 1494 1498 </File> 1495 1499 <File 1500 RelativePath="..\BasicCompiler_Common\include\Source.h" 1501 > 1502 </File> 1503 <File 1496 1504 RelativePath="..\BasicCompiler_Common\include\Symbol.h" 1497 1505 > -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r265 r266 28 28 //////////////////////////////////////// 29 29 30 extern BOOL bDll; 31 if(!bDll){ 30 if( !compiler.IsDll() ){ 32 31 //ret 33 32 compiler.codeGenerator.op_ret(); … … 757 756 } 758 757 void CompileLocal(){ 759 extern BOOL bDll; 760 if(bDll){ 758 if( compiler.IsDll() ){ 761 759 //DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする 762 760 const UserProc *pUserProc=GetSubHash("_System_InitDllGlobalVariables"); -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r265 r266 121 121 extern HANDLE hHeap; 122 122 extern BOOL bDebugCompile; 123 extern BOOL bDll;124 123 extern DWORD ImageBase; 125 124 extern int obp_AllocSize; … … 140 139 141 140 //エクスポート セクションを利用するかどうか 142 if( bDll) bUse_ExportSection=1;141 if( compiler.IsDll() ) bUse_ExportSection=1; 143 142 else bUse_ExportSection=0; 144 143 … … 176 175 // 名前空間情報を取得 177 176 NamespaceSupporter::CollectNamespaces( 178 Smoothie::Lexical::source.GetBuffer(),177 compiler.GetObjectModule().source.GetBuffer(), 179 178 compiler.GetObjectModule().meta.GetNamespaces() 180 179 ); … … 183 182 // CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。 184 183 // ※オブジェクトの内容までは取得しない 185 compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );184 compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source ); 186 185 187 186 //TypeDef情報を初期化 … … 194 193 compiler.pCompilingClass = NULL; 195 194 CollectProcedures( 196 Smoothie::Lexical::source,195 compiler.GetObjectModule().source, 197 196 compiler.GetObjectModule().meta.GetUserProcs(), 198 197 compiler.GetObjectModule().meta.GetDllProcs() … … 409 408 UserProc::CompileStartForGlobalArea(); 410 409 411 if( !bDll){410 if( !compiler.IsDll() ){ 412 411 // 名前空間が初期化されているかをチェック 413 412 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ … … 864 863 865 864 866 if( bDll){865 if( compiler.IsDll() ){ 867 866 //DLLの場合はリロケーション情報を仮生成 868 867 //※正式な生成は各セクションのメモリ上のサイズが決定してから再度行う。 … … 1160 1159 1161 1160 1162 if( bDll){1161 if( compiler.IsDll() ){ 1163 1162 //DLLの場合はリロケーション情報を生成 1164 1163 pobj_Reloc->ResetRelocBuffer(); … … 1299 1298 ImagePeHdr.FileHeader.NumberOfSymbols= 0x00000000; 1300 1299 ImagePeHdr.FileHeader.SizeOfOptionalHeader= IMAGE_SIZEOF_NT_OPTIONAL32_HEADER; 1301 if( bDll){1300 if( compiler.IsDll() ){ 1302 1301 ImagePeHdr.FileHeader.Characteristics= IMAGE_FILE_EXECUTABLE_IMAGE| 1303 1302 IMAGE_FILE_32BIT_MACHINE| … … 1319 1318 ImagePeHdr.OptionalHeader.SizeOfInitializedData=FileSize_DataSection; //データサイズ(.dataのセッションサイズ) 1320 1319 ImagePeHdr.OptionalHeader.SizeOfUninitializedData=0; //未初期化データのサイズ(なし) 1321 if( bDll){1320 if( compiler.IsDll() ){ 1322 1321 if(DllMain_EntryPoint==-1) 1323 1322 ImagePeHdr.OptionalHeader.AddressOfEntryPoint=0; -
trunk/abdev/BasicCompiler64/BasicCompiler.vcproj
r257 r266 388 388 </File> 389 389 <File 390 RelativePath="..\BasicCompiler_Common\include\Source.h" 391 > 392 </File> 393 <File 390 394 RelativePath="..\BasicCompiler_Common\include\Symbol.h" 391 395 > … … 1180 1184 </File> 1181 1185 <File 1186 RelativePath="..\BasicCompiler_Common\src\Source.cpp" 1187 > 1188 </File> 1189 <File 1182 1190 RelativePath="..\BasicCompiler_Common\src\Symbol.cpp" 1183 1191 > -
trunk/abdev/BasicCompiler64/Compile_Calc.cpp
r257 r266 96 96 } 97 97 else{ 98 if( compiler. objectModule.meta.GetGlobalConsts().IsExist(variable)99 || compiler. objectModule.meta.GetGlobalConstMacros().IsExist(variable) )98 if( compiler.GetObjectModule().meta.GetGlobalConsts().IsExist(variable) 99 || compiler.GetObjectModule().meta.GetGlobalConstMacros().IsExist(variable) ) 100 100 { 101 101 //定数リストに該当したとき … … 236 236 } 237 237 238 if( varType.IsObject() && compiler. objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){238 if( varType.IsObject() && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( calcType ) ){ 239 239 // Blittable型をオブジェクトとして扱う 240 240 vector<const UserProc *> userProcs; 241 compiler. objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );241 compiler.GetObjectModule().meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs ); 242 242 if( userProcs.size() != 1 ){ 243 243 SetError(); -
trunk/abdev/BasicCompiler64/Compile_CallProc.cpp
r257 r266 126 126 pobj_c = &varType.GetClass(); 127 127 if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){ 128 pobj_c=compiler. objectModule.meta.GetClasses().Find(ObjectName);128 pobj_c=compiler.GetObjectModule().meta.GetClasses().Find(ObjectName); 129 129 if( pobj_c ){ 130 130 isStatic = true; -
trunk/abdev/BasicCompiler64/Compile_Func.cpp
r262 r266 36 36 tempParm=temp2; 37 37 38 type.SetType( DEF_OBJECT, compiler. objectModule.meta.GetClasses().GetStringClassPtr() );38 type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ); 39 39 } 40 40 … … 84 84 85 85 //オーバーロードを解決 86 pUserProc=OverloadSolution(name,subs,compiler. objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );86 pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() ); 87 87 88 88 if(!pUserProc){ -
trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp
r263 r266 23 23 // DLLのグローバル領域をコンパイル 24 24 //////////////////////////////////////// 25 extern BOOL bDll; 26 if(!bDll){ 25 if(!compiler.IsDll()){ 27 26 //ret 28 27 compiler.codeGenerator.op_ret(); … … 55 54 56 55 //クラスに属する静的メンバを定義 57 compiler. objectModule.meta.GetClasses().InitStaticMember();56 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 58 57 59 58 GetGlobalDataForDll(); … … 77 76 const PertialSchedule *pStackFramePertialSchedule = compiler.codeGenerator.op_sub_rsp( 0, true ); 78 77 79 BOOST_FOREACH( Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){78 BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 80 79 if(memicmp(pVar->GetName().c_str(),"Static%",7)==0){ 81 80 //コンストラクタ呼び出し … … 140 139 && userProc.HasParentClass() 141 140 && userProc.GetParentClass().GetName() == "_System_TypeBase" ){ 142 compiler. objectModule.meta.GetClasses().Compile_System_InitializeUserTypes();141 compiler.GetObjectModule().meta.GetClasses().Compile_System_InitializeUserTypes(); 143 142 } 144 143 else if( userProc.GetName() == "RegisterGlobalRoots" … … 189 188 190 189 //コンパイルスタートをクラス管理クラスに追加 191 compiler. objectModule.meta.GetClasses().StartCompile( pUserProc );190 compiler.GetObjectModule().meta.GetClasses().StartCompile( pUserProc ); 192 191 193 192 //コンパイル中の関数 … … 693 692 } 694 693 void CompileLocal(){ 695 extern BOOL bDll; 696 if(bDll){ 694 if( compiler.IsDll() ){ 697 695 //DLLの場合はグローバル変数を初期化するための関数を一番初めにコンパイルする 698 696 const UserProc *pUserProc = GetSubHash("_System_InitDllGlobalVariables"); … … 717 715 718 716 repeat: 719 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();720 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )717 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 718 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 721 719 { 722 UserProc *pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();720 UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 723 721 CompileBufferInProcedure( *pUserProc ); 724 722 } … … 736 734 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 737 735 738 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();739 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )736 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 737 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 740 738 { 741 UserProc *pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();739 UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 742 740 CompileBufferInProcedure( *pUserProc ); 743 741 } -
trunk/abdev/BasicCompiler64/Compile_Statement.cpp
r263 r266 136 136 if(resultType.IsDouble()){ 137 137 double dbl=0; 138 offset=compiler. objectModule.dataTable.Add( dbl );138 offset=compiler.GetObjectModule().dataTable.Add( dbl ); 139 139 140 140 //comisd xmm0,qword ptr[data table offset] … … 153 153 else if(resultType.IsSingle()){ 154 154 float flt=0; 155 offset=compiler. objectModule.dataTable.Add( flt );155 offset=compiler.GetObjectModule().dataTable.Add( flt ); 156 156 157 157 //comiss xmm0,dword ptr[data table offset] -
trunk/abdev/BasicCompiler64/Compile_Var.cpp
r257 r266 389 389 // 名前空間を分離 390 390 char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE]; 391 compiler. objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );391 compiler.GetObjectModule().meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName ); 392 392 393 393 // 先頭オブジェクトまたはクラス名と入れ子メンバに分割 … … 482 482 //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき 483 483 //(コンストラクタ、デストラクタ内を除く) 484 const CMethod *pMethod = compiler. objectModule.meta.GetClasses().GetNowCompilingMethodInfo();484 const CMethod *pMethod = compiler.GetObjectModule().meta.GetClasses().GetNowCompilingMethodInfo(); 485 485 if( isWriteAccess && 486 486 pMethod->IsConst() && … … 519 519 GetNowStaticVarFullName(VarName,temporary); 520 520 521 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );521 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temporary ) ); 522 522 if( pVar ){ 523 523 goto GlobalOk; … … 542 542 } 543 543 544 int typeDefIndex = compiler. objectModule.meta.GetTypeDefs().GetIndex( VarName );544 int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( VarName ); 545 545 if( typeDefIndex != -1 ){ 546 546 // TypeDef後の型名だったとき 547 lstrcpy( VarName, compiler. objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );547 lstrcpy( VarName, compiler.GetObjectModule().meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() ); 548 548 } 549 549 550 550 char temp2[VN_SIZE]; 551 551 sprintf(temp2,"%s.%s",VarName,temporary); 552 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );552 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) ); 553 553 if( pVar ){ 554 554 lstrcpy(member,tempMember); … … 562 562 char temp2[VN_SIZE]; 563 563 sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName); 564 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );564 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) ); 565 565 if( pVar ){ 566 566 goto GlobalOk; … … 572 572 ///////////////////// 573 573 574 pVar = compiler. objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );574 pVar = compiler.GetObjectModule().meta.GetGlobalVars().BackSearch( Symbol( VarName ) ); 575 575 if( pVar ){ 576 576 goto GlobalOk; … … 857 857 char *temp; 858 858 temp=(char *)i64data; 859 i2=compiler. objectModule.dataTable.AddString( temp );859 i2=compiler.GetObjectModule().dataTable.AddString( temp ); 860 860 HeapDefaultFree(temp); 861 861 … … 1007 1007 char *temp; 1008 1008 temp=(char *)i64data; 1009 i2=compiler. objectModule.dataTable.AddString( temp );1009 i2=compiler.GetObjectModule().dataTable.AddString( temp ); 1010 1010 HeapDefaultFree(temp); 1011 1011 … … 1278 1278 } 1279 1279 1280 BOOST_FOREACH( const Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){1280 BOOST_FOREACH( const Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 1281 1281 if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){ 1282 1282 // オブジェクトまたはポインタだったとき -
trunk/abdev/BasicCompiler64/MakePeHdr.cpp
r263 r266 105 105 extern HANDLE hHeap; 106 106 extern BOOL bDebugCompile; 107 extern BOOL bDll;108 107 extern DWORD ImageBase; 109 108 extern int obp_AllocSize; … … 123 122 124 123 //エクスポート セクションを利用するかどうか 125 if( bDll) bUse_ExportSection=1;124 if( compiler.IsDll() ) bUse_ExportSection=1; 126 125 else bUse_ExportSection=0; 127 126 … … 129 128 ////////////////// 130 129 // データテーブル 131 compiler. objectModule.dataTable.Clear();130 compiler.GetObjectModule().dataTable.Clear(); 132 131 if(bDebugCompile){ 133 compiler. objectModule.dataTable.Add( (long)0x00000002 );132 compiler.GetObjectModule().dataTable.Add( (long)0x00000002 ); 134 133 } 135 134 … … 155 154 156 155 //関数ポインタ情報を初期化 157 compiler. objectModule.meta.GetProcPointers().clear();156 compiler.GetObjectModule().meta.GetProcPointers().clear(); 158 157 159 158 // 名前空間情報を取得 160 159 NamespaceSupporter::CollectNamespaces( 161 Smoothie::Lexical::source.GetBuffer(),162 compiler. objectModule.meta.GetNamespaces()160 compiler.GetObjectModule().source.GetBuffer(), 161 compiler.GetObjectModule().meta.GetNamespaces() 163 162 ); 164 163 … … 166 165 // CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。 167 166 // ※オブジェクトの内容までは取得しない 168 compiler. objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );167 compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( compiler.GetObjectModule().source ); 169 168 170 169 //TypeDef情報を初期化 171 compiler. objectModule.meta.GetTypeDefs().Init();170 compiler.GetObjectModule().meta.GetTypeDefs().Init(); 172 171 173 172 //定数情報を取得 … … 177 176 compiler.pCompilingClass = NULL; 178 177 CollectProcedures( 179 Smoothie::Lexical::source,180 compiler. objectModule.meta.GetUserProcs(),181 compiler. objectModule.meta.GetDllProcs()178 compiler.GetObjectModule().source, 179 compiler.GetObjectModule().meta.GetUserProcs(), 180 compiler.GetObjectModule().meta.GetDllProcs() 182 181 ); 183 182 184 183 // クラス情報を取得(※注 - CollectProceduresの後に呼び出す) 185 compiler. objectModule.meta.GetClasses().GetAllClassInfo();184 compiler.GetObjectModule().meta.GetClasses().GetAllClassInfo(); 186 185 187 186 // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備 188 compiler. objectModule.meta.GetUserProcs().Iterator_Init();189 compiler. objectModule.meta.GetDllProcs().Iterator_Init();187 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Init(); 188 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init(); 190 189 191 190 /* 192 if( !compiler. objectModule.meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )191 if( !compiler.GetObjectModule().meta.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) ) 193 192 { 194 193 MessageBox(0,"XML書き込みに失敗","test",0); … … 200 199 } 201 200 202 if( !compiler. objectModule.meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )201 if( !compiler.GetObjectModule().meta.WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) ) 203 202 { 204 203 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 209 208 MessageBox(0,"バイナリ読み込みに失敗","test",0); 210 209 } 211 if( !compiler. objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )210 if( !compiler.GetObjectModule().meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) ) 212 211 { 213 212 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 218 217 MessageBox(0,"バイナリ読み込みに失敗","test",0); 219 218 } 220 compiler. objectModule.meta = (*pTempMeta);*/219 compiler.GetObjectModule().meta = (*pTempMeta);*/ 221 220 222 221 … … 353 352 UserProc::CompileStartForGlobalArea(); 354 353 355 if( !bDll){354 if( !compiler.IsDll() ){ 356 355 // 名前空間が初期化されているかをチェック 357 356 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ … … 379 378 380 379 // コード生成対象を選択 381 compiler.codeGenerator.Select( compiler. objectModule.globalNativeCode );380 compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode ); 382 381 383 382 trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" ); … … 402 401 403 402 //クラスに属する静的メンバを定義 404 compiler. objectModule.meta.GetClasses().InitStaticMember();403 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 405 404 406 405 //グローバル実行領域をコンパイル開始 … … 506 505 507 506 vector<ObjectModule *> masterObjectModules; 508 masterObjectModules.push_back( &compiler. objectModule);507 masterObjectModules.push_back( &compiler.GetObjectModule() ); 509 508 compiler.linker.Link( masterObjectModules ); 510 509 … … 520 519 // 使用するDLL関数のチェック 521 520 //////////////////////////////// 522 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();523 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )521 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 522 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 524 523 { 525 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();524 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 526 525 527 526 if( !pDllProc->IsUsing() ){ … … 594 593 //辞書順にサーチ 595 594 temporary[0]=0; 596 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();597 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )595 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 596 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 598 597 { 599 pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();598 pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 600 599 if(pUserProc->IsExport()){ 601 600 if(temporary[0]=='\0'){ … … 698 697 int ImportDllNum=0; 699 698 700 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();701 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )699 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 700 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 702 701 { 703 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();702 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 704 703 705 704 if( !pDllProc->IsUsing() ){ … … 737 736 pImportDescriptor[i].Name=i*0x10; //※すぐ下で再計算 738 737 739 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();740 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )738 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 739 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 741 740 { 742 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();741 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 743 742 744 743 if( !pDllProc->IsUsing() ){ … … 775 774 pHintTable=(char *)HeapAlloc(hHeap,0,HintAllocSize); 776 775 for(i=0,i5=0;i<ImportDllNum;i++){ 777 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();778 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )776 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 777 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 779 778 { 780 DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();779 DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 781 780 782 781 if( !pDllProc->IsUsing() ){ … … 815 814 816 815 817 if( bDll){816 if( compiler.IsDll() ){ 818 817 //DLLの場合はリロケーション情報を仮生成 819 818 //※正式な生成は各セクションのメモリ上のサイズが決定してから再度行う。 … … 826 825 //(デバッグ情報で利用される) 827 826 extern int AllInitGlobalVarSize; 828 BOOST_FOREACH( Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){827 BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 829 828 if(pVar->GetOffsetAddress()&0x80000000){ 830 829 pVar->SetOffsetAddress( … … 839 838 // デバッグセクションを生成 840 839 //////////////////////////////////// 841 842 //機械語コードとBasicコードの関係を整理843 extern SourceLines oldSourceLines;844 int MinObp,MaxObp;845 SourceLines tempSourceLines;846 MaxObp=0;847 while(1){848 for(i3=0,MinObp=0x0FFFFFFF;i3<oldSourceLines.size();i3++){849 if(oldSourceLines[i3].GetNativeCodePos()<MinObp&&MaxObp<oldSourceLines[i3].GetNativeCodePos()){850 MinObp=oldSourceLines[i3].GetNativeCodePos();851 i4=i3;852 }853 }854 if(MinObp==0x0FFFFFFF) break;855 tempSourceLines.push_back( oldSourceLines[i4] );856 MaxObp=tempSourceLines.back().GetNativeCodePos();857 }858 oldSourceLines = tempSourceLines;859 840 860 841 //デバッグセクションを生成 … … 903 884 904 885 //データセクションのファイル上のサイズ 905 if(compiler. objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT);906 else FileSize_DataSection=compiler. objectModule.dataTable.GetSize();886 if(compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT); 887 else FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize(); 907 888 if(FileSize_DataSection) bUse_DataSection=1; 908 889 else bUse_DataSection=0; … … 1065 1046 LookupSize; //ルックアップテーブル 1066 1047 1067 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();1068 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )1048 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 1049 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 1069 1050 { 1070 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();1051 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 1071 1052 1072 1053 if( !pDllProc->IsUsing() ){ … … 1086 1067 //////////////////////////////////////// 1087 1068 //仮想関数データテーブルスケジュール 1088 compiler. objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);1069 compiler.GetObjectModule().meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection); 1089 1070 1090 1071 … … 1130 1111 1131 1112 1132 if( bDll){1113 if( compiler.IsDll() ){ 1133 1114 //DLLの場合はリロケーション情報を生成 1134 1115 pobj_Reloc->ResetRelocBuffer(); … … 1269 1250 ImagePeHdr.FileHeader.NumberOfSymbols= 0x00000000; 1270 1251 ImagePeHdr.FileHeader.SizeOfOptionalHeader= IMAGE_SIZEOF_NT_OPTIONAL64_HEADER; 1271 if( bDll){1252 if( compiler.IsDll() ){ 1272 1253 ImagePeHdr.FileHeader.Characteristics= IMAGE_FILE_EXECUTABLE_IMAGE| 1273 1254 IMAGE_FILE_DLL| … … 1286 1267 ImagePeHdr.OptionalHeader.SizeOfInitializedData=FileSize_DataSection; //データサイズ(.dataのセッションサイズ) 1287 1268 ImagePeHdr.OptionalHeader.SizeOfUninitializedData=0; //未初期化データのサイズ(なし) 1288 if( bDll){1269 if( compiler.IsDll() ){ 1289 1270 if(DllMain_EntryPoint==-1) 1290 1271 ImagePeHdr.OptionalHeader.AddressOfEntryPoint=0; … … 1636 1617 if(bUse_DataSection){ 1637 1618 //データ テーブル 1638 WriteFile(hFile,compiler. objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL);1619 WriteFile(hFile,compiler.GetObjectModule().dataTable.GetPtr(),compiler.GetObjectModule().dataTable.GetSize(),(DWORD *)&i2,NULL); 1639 1620 i+=i2; 1640 1621 } … … 1748 1729 1749 1730 //クラスに関するメモリを解放 1750 compiler. objectModule.meta.GetClasses().Clear();1731 compiler.GetObjectModule().meta.GetClasses().Clear(); 1751 1732 } -
trunk/abdev/BasicCompiler64/NumOpe.cpp
r257 r266 25 25 SetStringQuotes( parameter ); 26 26 27 Operator_New( *compiler. objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ) );27 Operator_New( *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ) ); 28 28 29 29 free( parameter ); … … 259 259 Type leftType; 260 260 if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){ 261 if( isClassName == false && compiler. objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){261 if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){ 262 262 // 左側のオブジェクト部分がBlittable型のとき 263 263 … … 265 265 lstrcpy( temporary, termLeft ); 266 266 sprintf( termLeft, "%s(%s)", 267 compiler. objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),267 compiler.GetObjectModule().meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(), 268 268 temporary ); 269 269 } … … 293 293 294 294 if( pIsClassName ){ 295 if( compiler. objectModule.meta.GetClasses().Find( termFull ) ){295 if( compiler.GetObjectModule().meta.GetClasses().Find( termFull ) ){ 296 296 *pIsClassName = true; 297 297 return true; … … 387 387 } 388 388 389 ConstMacro *pConstMacro = compiler. objectModule.meta.GetGlobalConstMacros().Find( procName );389 ConstMacro *pConstMacro = compiler.GetObjectModule().meta.GetGlobalConstMacros().Find( procName ); 390 390 if( pConstMacro ) 391 391 { … … 574 574 } 575 575 576 i2 = compiler. objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() );576 i2 = compiler.GetObjectModule().dataTable.AddBinary( binary, num * tempBaseType.GetSize() ); 577 577 578 578 //mov reg,i2 … … 603 603 604 604 if(resultType.IsDouble()){ 605 i3 = compiler. objectModule.dataTable.Add( i64data );605 i3 = compiler.GetObjectModule().dataTable.Add( i64data ); 606 606 607 607 //movlpd xmm_reg,qword ptr[data table offset] … … 617 617 memcpy(&i32data,&flt,sizeof(long)); 618 618 619 i3 = compiler. objectModule.dataTable.Add( i32data );619 i3 = compiler.GetObjectModule().dataTable.Add( i32data ); 620 620 621 621 //movss xmm_reg,dword ptr[data table offset] … … 798 798 799 799 type_stack[sp]=DEF_OBJECT; 800 index_stack[sp]=(LONG_PTR)compiler. objectModule.meta.GetClasses().GetStringClassPtr();800 index_stack[sp]=(LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(); 801 801 bLiteralCalculation=0; 802 802 … … 811 811 bLiteralCalculation=0; 812 812 813 i2 = compiler. objectModule.dataTable.AddString( term, i3 );813 i2 = compiler.GetObjectModule().dataTable.AddString( term, i3 ); 814 814 815 815 //mov reg,i2 … … 904 904 } 905 905 else{ 906 index_stack[sp] = (LONG_PTR)compiler. objectModule.meta.GetClasses().GetObjectClassPtr();906 index_stack[sp] = (LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr(); 907 907 } 908 908 … … 927 927 ////////////// 928 928 929 i3 = compiler. objectModule.meta.GetGlobalConsts().GetBasicType(term);929 i3 = compiler.GetObjectModule().meta.GetGlobalConsts().GetBasicType(term); 930 930 if(i3){ 931 if( compiler. objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){931 if( compiler.GetObjectModule().meta.GetGlobalConsts().IsStringPtr( term ) ){ 932 932 //リテラル文字列 933 933 934 double dbl = compiler. objectModule.meta.GetGlobalConsts().GetDoubleData(term);934 double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term); 935 935 memcpy(&i64data,&dbl,sizeof(double)); 936 936 … … 946 946 if(IsRealNumberType(i3)){ 947 947 //実数 948 double dbl = compiler. objectModule.meta.GetGlobalConsts().GetDoubleData(term);948 double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term); 949 949 memcpy(&i64data,&dbl,sizeof(double)); 950 950 goto Literal; … … 952 952 else if(IsWholeNumberType(i3)){ 953 953 //整数 954 i64data = compiler. objectModule.meta.GetGlobalConsts().GetWholeData(term);954 i64data = compiler.GetObjectModule().meta.GetGlobalConsts().GetWholeData(term); 955 955 goto Literal; 956 956 } … … 993 993 } 994 994 else{ 995 i3 = compiler. objectModule.dataTable.Add( i64data );995 i3 = compiler.GetObjectModule().dataTable.Add( i64data ); 996 996 997 997 //movlpd xmm_reg,qword ptr[data table offset] … … 1015 1015 } 1016 1016 else{ 1017 i3=compiler. objectModule.dataTable.Add( i32data );1017 i3=compiler.GetObjectModule().dataTable.Add( i32data ); 1018 1018 1019 1019 //movss xmm_reg,dword ptr[data table offset] -
trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp
r257 r266 470 470 double dbl; 471 471 dbl=-1; 472 i32data = compiler. objectModule.dataTable.Add( dbl );472 i32data = compiler.GetObjectModule().dataTable.Add( dbl ); 473 473 474 474 //mulsd xmm_reg,qword ptr[data table offset] ※data = -1 … … 495 495 float flt; 496 496 flt=-1; 497 i32data = compiler. objectModule.dataTable.Add( flt );497 i32data = compiler.GetObjectModule().dataTable.Add( flt ); 498 498 499 499 //mulss xmm_reg,dword ptr[data table offset] ※data = -1 -
trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp
r257 r266 89 89 //addsd xmm_reg,qword ptr[offset] ※offset value:43f0000000000000 90 90 _int64 i64data=0x43f0000000000000; 91 long temp=compiler. objectModule.dataTable.Add( i64data );91 long temp=compiler.GetObjectModule().dataTable.Add( i64data ); 92 92 compiler.codeGenerator.PutOld( 93 93 (char)0xF2, … … 149 149 //addss xmm_reg,dword ptr[offset] ※offset value:5f800000 150 150 long i32data=0x5f800000; 151 long temp=compiler. objectModule.dataTable.Add( i32data );151 long temp=compiler.GetObjectModule().dataTable.Add( i32data ); 152 152 compiler.codeGenerator.PutOld( 153 153 (char)0xF3, -
trunk/abdev/BasicCompiler_Common/BasicCompiler.cpp
r232 r266 4 4 5 5 #include <Program.h> 6 #include <Compiler.h> 6 7 7 8 #include "BasicCompiler.h" … … 306 307 } 307 308 void MakeMessageText(char *buffer,char *msg,int flag){ 308 extern BOOL bDll;309 309 char temporary[MAX_PATH]; 310 310 if(bClipCompileView){ … … 321 321 //日本語 322 322 if(flag==0){ 323 if(bDll) sprintf(buffer,"DLLファイル \"%s\" [ %s ]",temporary,msg); 323 if(compiler.IsDll()) 324 { 325 sprintf(buffer,"DLLファイル \"%s\" [ %s ]",temporary,msg); 326 } 324 327 else sprintf(buffer,"実行ファイル \"%s\" [ %s ]",temporary,msg); 325 328 } … … 329 332 //英語 330 333 if(flag==0){ 331 if( bDll) sprintf(buffer,"DLL file \"%s\" [ %s ]",temporary,msg);334 if(compiler.IsDll()) sprintf(buffer,"DLL file \"%s\" [ %s ]",temporary,msg); 332 335 else sprintf(buffer,"Execution file \"%s\" [ %s ]",temporary,msg); 333 336 } … … 563 566 //_Test(); 564 567 565 //MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK);568 MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK); 566 569 trace( "Start ActiveBasic Compiler!" ); 567 570 … … 608 611 609 612 BOOL bFromEditor=0; 610 bDll=0;611 613 OutputFileName[0]=0; 612 614 if(lpCmdLine[i]&&lpCmdLine[i]!='/'){ … … 711 713 712 714 //DLL生成 713 else if(lstrcmp(temp2,"dll")==0) bDll=1; 715 else if(lstrcmp(temp2,"dll")==0) 716 { 717 compiler.SetTargetModuleType( Compiler::Dll ); 718 } 719 720 // StaticLibrary生成 721 else if( lstrcmp( temp2, "static_library" ) ==0 ) 722 { 723 compiler.SetTargetModuleType( Compiler::StaticLibrary ); 724 } 714 725 715 726 //Unicode … … 752 763 GetFullPath(szIncludeDir,(Jenga::Common::Environment::GetAppDir()+"\\").c_str()); 753 764 754 if( bDll){765 if( compiler.IsDll() ){ 755 766 //DLLファイル名を取得 756 767 _splitpath(OutputFileName,NULL,NULL,szDllName,temporary); -
trunk/abdev/BasicCompiler_Common/BasicCompiler.h
r263 r266 22 22 BOOL bStrict; 23 23 DWORD ImageBase; 24 INCLUDEFILEINFO IncludeFileInfo;25 24 26 25 ERRORINFO *pErrorInfo; … … 68 67 int cp; 69 68 70 BOOL bDll;71 69 int typeOfPtrChar = MAKE_PTR_TYPE(DEF_SBYTE,1); 72 70 int typeOfPtrUChar = MAKE_PTR_TYPE(DEF_BYTE,1); -
trunk/abdev/BasicCompiler_Common/BreakPoint.cpp
r263 r266 2 2 3 3 #include <jenga/include/common/Environment.h> 4 #include <jenga/include/smoothie/Source.h>5 4 5 #include <Source.h> 6 6 #include <Compiler.h> 7 7 -
trunk/abdev/BasicCompiler_Common/Debug.cpp
r265 r266 350 350 char temporary[1024]; 351 351 352 extern BOOL bDll;353 352 char ExeFilePathForDll[MAX_PATH]; 354 if( bDll){353 if( compiler.IsDll() ){ 355 354 //DLLをデバッグする場合 356 355 extern char szDebugExeForDll[1024]; … … 428 427 memset(&si,0,sizeof(STARTUPINFO)); 429 428 si.cb=sizeof(STARTUPINFO); 430 if( !bDll){429 if( !compiler.IsDll() ){ 431 430 //EXEファイルをデバッグ 432 431 CreateProcess(OutputFileName,szDebugCmdLine,NULL,NULL,0,NORMAL_PRIORITY_CLASS|DEBUG_ONLY_THIS_PROCESS,NULL,NULL,&si,&pi); -
trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp
r265 r266 84 84 85 85 // サイズ 86 *(long *)(buffer+i2) = textString.size();86 *(long *)(buffer+i2) = (long)textString.size(); 87 87 i2+=sizeof(long); 88 88 … … 99 99 // バッファ 100 100 memcpy( buffer+i2, textString.c_str(), textString.size() ); 101 i2 += textString.size();101 i2 += (int)textString.size(); 102 102 } 103 103 … … 111 111 i2+=lstrlen(buffer+i2)+1; 112 112 } 113 buffer[i2++]=0;114 113 for(i3=0;;i3++){ 115 114 buffer[i2++]=(char)IncludeFileInfo.LineOfFile[i3]; … … 122 121 } 123 122 } 124 125 //ソースコード126 {127 //バッファが足りない場合は再確保128 int bufferLen = lstrlen( basbuf );129 if(BufferSize<i2+(int)bufferLen+32768){130 while( BufferSize<i2+(int)bufferLen+32768 )131 {132 BufferSize+=32768;133 }134 135 buffer=(char *)HeapReAlloc(hHeap,0,buffer,BufferSize);136 }137 }138 lstrcpy(buffer+i2,basbuf);139 i2+=lstrlen( buffer + i2 )+1;140 123 141 124 … … 246 229 if(_IncludeFileInfo.LineOfFile[i3]==-1) break; 247 230 } 248 249 //ソースコード250 i2++;251 source.SetBuffer( buffer + i2 );252 i2+=lstrlen(buffer+i2)+1;253 231 254 232 //コードと行番号の関係 … … 416 394 IncludeFileInfo=this->_IncludeFileInfo; 417 395 418 //ソースコード419 Smoothie::Lexical::source = source;420 421 396 //コードと行番号の関係 422 397 extern SourceLines oldSourceLines; -
trunk/abdev/BasicCompiler_Common/DebugSection.h
r265 r266 1 1 #pragma once 2 2 3 #include <jenga/include/smoothie/Source.h> 4 3 #include <Source.h> 5 4 #include <Compiler.h> 6 5 … … 31 30 //インクルード情報 32 31 INCLUDEFILEINFO _IncludeFileInfo; 33 34 //ソースコード35 BasicSource source;36 32 37 33 //コードと行番号の関係 -
trunk/abdev/BasicCompiler_Common/Enum.cpp
r215 r266 115 115 iEnumParentNum=0; 116 116 117 const char *source = Smoothie::Lexical::source.GetBuffer();117 const char *source = compiler.GetObjectModule().source.GetBuffer(); 118 118 119 119 // 名前空間管理 -
trunk/abdev/BasicCompiler_Common/MakeExe.cpp
r265 r266 24 24 25 25 //最後尾に貼り付け 26 Smoothie::Lexical::source.Addition( temp );26 compiler.GetObjectModule().source.Addition( temp ); 27 27 28 28 HeapDefaultFree(temp); … … 38 38 char temp2[MAX_PATH]; 39 39 40 // 開始時刻を記録 41 DWORD beforeTickCount = GetTickCount(); 42 40 43 //プログレスバーの設定 41 44 PostMessage(GetDlgItem(hMainDlg,IDC_PROGRESS),PBM_SETRANGE,0,MAKELPARAM(0,6)); … … 54 57 //プログラムをファイルから読み込む 55 58 extern char SourceFileName[MAX_PATH]; 56 if( ! Smoothie::Lexical::source.ReadFile( SourceFileName ) ){59 if( !compiler.GetObjectModule().source.ReadFile( SourceFileName ) ){ 57 60 SetError(201,SourceFileName,-1); 58 61 goto EndCompile; … … 61 64 //イメージベースの設定 62 65 extern DWORD ImageBase; 63 extern BOOL bDll; 64 if(bDll) ImageBase=0x10000000; 66 if(compiler.IsDll()) ImageBase=0x10000000; 65 67 else ImageBase=0x00400000; 66 68 … … 179 181 if(bError==0){ 180 182 //"コンパイルは正常に完了しました(エラー:%d、警告:%d)" 181 sprintf(temp2,STRING_COMPILE_SUCCESS,ErrorNum-CompileMsgNum-WarningNum,WarningNum); 183 sprintf(temp2, 184 STRING_COMPILE_SUCCESS, 185 ErrorNum-CompileMsgNum-WarningNum, 186 WarningNum, 187 ((double)(GetTickCount() - beforeTickCount))/1000 188 ); 182 189 } 183 190 else{ -
trunk/abdev/BasicCompiler_Common/PESchedule.cpp
r253 r266 1 1 #include "stdafx.h" 2 3 #include <Compiler.h> 2 4 3 5 #include "../BasicCompiler_Common/common.h" … … 55 57 56 58 void CReloc::AddSchedule_CodeSection(DWORD addr){ 57 extern BOOL bDll; 58 if(!bDll) return; 59 if( !compiler.IsDll() ) return; 59 60 60 61 codeSectionAddresses.push_back( addr ); 61 62 } 62 63 void CReloc::AddSchedule_DataSection(DWORD addr){ 63 extern BOOL bDll; 64 if(!bDll) return; 64 if( !compiler.IsDll() ) return; 65 65 66 66 dataSectionAddresses.push_back( addr ); … … 68 68 69 69 void CReloc::__add(DWORD addr){ 70 extern BOOL bDll; 71 if(!bDll) return; 70 if( !compiler.IsDll() ) return; 72 71 73 72 BOOL sw; -
trunk/abdev/BasicCompiler_Common/StrOperation.cpp
r206 r266 2 2 3 3 #include <jenga/include/smoothie/LexicalAnalysis.h> 4 #include <jenga/include/smoothie/Source.h> 4 5 #include <Source.h> 5 6 6 7 #include "../BasicCompiler_Common/common.h" -
trunk/abdev/BasicCompiler_Common/common_msg_jpn.h
r232 r266 32 32 33 33 #define STRING_COMPILE_STOP "コンパイルはユーザーにより中断されました。" 34 #define STRING_COMPILE_SUCCESS "コンパイルは正常に完了しました(エラー:%d、警告:%d )。"34 #define STRING_COMPILE_SUCCESS "コンパイルは正常に完了しました(エラー:%d、警告:%d、所要時間:%.2fsec)。" 35 35 #define STRING_COMPILE_ERROR "コンパイルは中断されました(エラー:%d、警告:%d)。" 36 36 -
trunk/abdev/BasicCompiler_Common/include/Class.h
r232 r266 6 6 #include <Method.h> 7 7 #include <Member.h> 8 #include <Source.h> 8 9 9 10 class UserProc; -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r265 r266 22 22 : pObjectModule( new ObjectModule ) 23 23 , pNowObjectModule( pObjectModule ) 24 , targetModuleType( Exe ) 24 25 { 25 26 } … … 40 41 Linker linker; 41 42 43 // オブジェクトモジュール 42 44 ObjectModule &GetObjectModule() 43 45 { … … 49 51 } 50 52 53 54 // ターゲット 55 enum TargetModuleType 56 { 57 Exe, 58 Dll, 59 StaticLibrary, 60 }; 61 62 TargetModuleType targetModuleType; 63 64 bool IsExe() const 65 { 66 if( targetModuleType == Exe ) 67 { 68 return true; 69 } 70 return false; 71 } 72 bool IsDll() const 73 { 74 if( targetModuleType == Dll ) 75 { 76 return true; 77 } 78 return false; 79 } 80 bool IsStaticLibrary() const 81 { 82 if( targetModuleType == StaticLibrary ) 83 { 84 return true; 85 } 86 return false; 87 } 88 void SetTargetModuleType( TargetModuleType targetModuleType ) 89 { 90 this->targetModuleType = targetModuleType; 91 } 92 93 94 51 95 static bool StringToType( const std::string &typeName, Type &type ); 52 96 static const std::string TypeToString( const Type &type ); -
trunk/abdev/BasicCompiler_Common/include/Linker.h
r263 r266 12 12 // データテーブル 13 13 DataTable dataTable; 14 15 // ソースコード 16 BasicSource source; 14 17 15 18 // XMLシリアライズ用 … … 27 30 ar & BOOST_SERIALIZATION_NVP( globalNativeCode ); 28 31 ar & BOOST_SERIALIZATION_NVP( dataTable ); 32 ar & BOOST_SERIALIZATION_NVP( source ); 29 33 } 30 34 }; -
trunk/abdev/BasicCompiler_Common/include/Member.h
r206 r266 3 3 #include <string> 4 4 #include <vector> 5 6 #include <jenga/include/smoothie/Source.h>7 5 8 6 #include <option.h> -
trunk/abdev/BasicCompiler_Common/include/Procedure.h
r259 r266 1 1 #pragma once 2 3 #include <jenga/include/smoothie/Source.h>4 2 5 3 #include <Hashmap.h> … … 12 10 #include <Variable.h> 13 11 #include <CodeGenerator.h> 12 #include <Source.h> 14 13 15 14 class CClass; … … 43 42 44 43 // XMLシリアライズ用 45 private:46 44 private: 47 45 friend class boost::serialization::access; -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r265 r266 2 2 3 3 #include <jenga/include/smoothie/Smoothie.h> 4 #include <jenga/include/smoothie/Source.h>5 4 #include <jenga/include/smoothie/SmoothieException.h> 6 5 #include <jenga/include/smoothie/LexicalAnalysis.h> 7 6 7 #include <Source.h> 8 8 #include <Class.h> 9 9 #include <Compiler.h>
Note:
See TracChangeset
for help on using the changeset viewer.