Changeset 265 in dev for trunk/abdev/BasicCompiler32
- Timestamp:
- Aug 6, 2007, 11:44:42 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler32
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Calc.cpp
r256 r265 461 461 } 462 462 else{ 463 if( compiler. objectModule.meta.GetGlobalConsts().IsExist(variable)464 || compiler. objectModule.meta.GetGlobalConstMacros().IsExist(variable) )463 if( compiler.GetObjectModule().meta.GetGlobalConsts().IsExist(variable) 464 || compiler.GetObjectModule().meta.GetGlobalConstMacros().IsExist(variable) ) 465 465 { 466 466 //定数リストに該当したとき … … 606 606 607 607 608 if( varType.IsObject() && compiler. objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){608 if( varType.IsObject() && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( calcType ) ){ 609 609 // Blittable型をオブジェクトとして扱う 610 610 vector<const UserProc *> userProcs; 611 compiler. objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );611 compiler.GetObjectModule().meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs ); 612 612 if( userProcs.size() != 1 ){ 613 613 SetError(); -
trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
r256 r265 117 117 pobj_c = &varType.GetClass(); 118 118 if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){ 119 pobj_c=compiler. objectModule.meta.GetClasses().Find(ObjectName);119 pobj_c=compiler.GetObjectModule().meta.GetClasses().Find(ObjectName); 120 120 if( pobj_c ){ 121 121 isStatic = true; -
trunk/abdev/BasicCompiler32/Compile_Func.cpp
r256 r265 185 185 tempParm=temp2; 186 186 187 type.SetType( DEF_OBJECT, compiler. objectModule.meta.GetClasses().GetStringClassPtr() );187 type.SetType( DEF_OBJECT, compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ); 188 188 } 189 189 … … 235 235 236 236 //オーバーロードを解決 237 pUserProc=OverloadSolution(name,subs,compiler. objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );237 pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() ); 238 238 239 239 if(!pUserProc){ -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r263 r265 58 58 59 59 //クラスに属する静的メンバを定義 60 compiler. objectModule.meta.GetClasses().InitStaticMember();60 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 61 61 62 62 GetGlobalDataForDll(); … … 71 71 //静的ローカルオブジェクトのコンストラクタ呼び出し 72 72 73 BOOST_FOREACH( Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){73 BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 74 74 if(memicmp(pVar->GetName().c_str(),"Static%",7)==0){ 75 75 //コンストラクタ呼び出し … … 219 219 && userProc.GetParentClass().GetName() == "_System_TypeBase" ){ 220 220 221 compiler. objectModule.meta.GetClasses().Compile_System_InitializeUserTypes();221 compiler.GetObjectModule().meta.GetClasses().Compile_System_InitializeUserTypes(); 222 222 } 223 223 else if( userProc.GetName() == "RegisterGlobalRoots" … … 270 270 271 271 //コンパイルスタートをクラス管理クラスに追加 272 compiler. objectModule.meta.GetClasses().StartCompile( pUserProc );272 compiler.GetObjectModule().meta.GetClasses().StartCompile( pUserProc ); 273 273 274 274 //コンパイル中の関数 … … 781 781 782 782 repeat: 783 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();784 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )783 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 784 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 785 785 { 786 UserProc *pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();786 UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 787 787 CompileBufferInProcedure( *pUserProc ); 788 788 } … … 800 800 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 801 801 802 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();803 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )802 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 803 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 804 804 { 805 UserProc *pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();805 UserProc *pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 806 806 CompileBufferInProcedure( *pUserProc ); 807 807 } -
trunk/abdev/BasicCompiler32/Compile_Var.cpp
r256 r265 362 362 // 名前空間を分離 363 363 char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE]; 364 compiler. objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );364 compiler.GetObjectModule().meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName ); 365 365 366 366 // 先頭オブジェクトまたはクラス名と入れ子メンバに分割 … … 456 456 //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき 457 457 //(コンストラクタ、デストラクタ内を除く) 458 const CMethod *pMethod = compiler. objectModule.meta.GetClasses().GetNowCompilingMethodInfo();458 const CMethod *pMethod = compiler.GetObjectModule().meta.GetClasses().GetNowCompilingMethodInfo(); 459 459 if( isWriteAccess && 460 460 pMethod->IsConst() && … … 496 496 GetNowStaticVarFullName(VarName,temporary); 497 497 498 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) );498 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temporary ) ); 499 499 if( pVar ){ 500 500 goto GlobalOk; … … 519 519 } 520 520 521 int typeDefIndex = compiler. objectModule.meta.GetTypeDefs().GetIndex( VarName );521 int typeDefIndex = compiler.GetObjectModule().meta.GetTypeDefs().GetIndex( VarName ); 522 522 if( typeDefIndex != -1 ){ 523 523 // TypeDef後の型名だったとき 524 lstrcpy( VarName, compiler. objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );524 lstrcpy( VarName, compiler.GetObjectModule().meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() ); 525 525 } 526 526 527 527 char temp2[VN_SIZE]; 528 528 sprintf(temp2,"%s.%s",VarName,temporary); 529 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );529 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) ); 530 530 if( pVar ){ 531 531 lstrcpy(member,tempMember); … … 539 539 char temp2[VN_SIZE]; 540 540 sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName); 541 pVar = compiler. objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) );541 pVar = compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( temp2 ) ); 542 542 if( pVar ){ 543 543 goto GlobalOk; … … 549 549 ///////////////////// 550 550 551 pVar = compiler. objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) );551 pVar = compiler.GetObjectModule().meta.GetGlobalVars().BackSearch( Symbol( VarName ) ); 552 552 if( pVar ){ 553 553 goto GlobalOk; … … 837 837 char *temp; 838 838 temp=(char *)i64data; 839 i2=compiler. objectModule.dataTable.AddString(temp,lstrlen(temp));839 i2=compiler.GetObjectModule().dataTable.AddString(temp,lstrlen(temp)); 840 840 HeapDefaultFree(temp); 841 841 … … 1010 1010 char *temp; 1011 1011 temp=(char *)i64data; 1012 i2=compiler. objectModule.dataTable.AddString(temp,lstrlen(temp));1012 i2=compiler.GetObjectModule().dataTable.AddString(temp,lstrlen(temp)); 1013 1013 HeapDefaultFree(temp); 1014 1014 … … 1267 1267 } 1268 1268 1269 BOOST_FOREACH( const Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){1269 BOOST_FOREACH( const Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 1270 1270 if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){ 1271 1271 // オブジェクトまたはポインタだったとき -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r263 r265 146 146 ////////////////// 147 147 // データテーブル 148 compiler. objectModule.dataTable.Clear();148 compiler.GetObjectModule().dataTable.Clear(); 149 149 if(bDebugCompile){ 150 compiler. objectModule.dataTable.Add( (long)0x00000002 );150 compiler.GetObjectModule().dataTable.Add( (long)0x00000002 ); 151 151 } 152 152 … … 172 172 173 173 //関数ポインタ情報を初期化 174 compiler. objectModule.meta.GetProcPointers().clear();174 compiler.GetObjectModule().meta.GetProcPointers().clear(); 175 175 176 176 // 名前空間情報を取得 177 177 NamespaceSupporter::CollectNamespaces( 178 178 Smoothie::Lexical::source.GetBuffer(), 179 compiler. objectModule.meta.GetNamespaces()179 compiler.GetObjectModule().meta.GetNamespaces() 180 180 ); 181 181 … … 183 183 // CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。 184 184 // ※オブジェクトの内容までは取得しない 185 compiler. objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );185 compiler.GetObjectModule().meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source ); 186 186 187 187 //TypeDef情報を初期化 188 compiler. objectModule.meta.GetTypeDefs().Init();188 compiler.GetObjectModule().meta.GetTypeDefs().Init(); 189 189 190 190 //定数情報を取得 … … 195 195 CollectProcedures( 196 196 Smoothie::Lexical::source, 197 compiler. objectModule.meta.GetUserProcs(),198 compiler. objectModule.meta.GetDllProcs()197 compiler.GetObjectModule().meta.GetUserProcs(), 198 compiler.GetObjectModule().meta.GetDllProcs() 199 199 ); 200 200 201 201 // クラス情報を取得(※注 - CollectProceduresの後に呼び出す) 202 compiler. objectModule.meta.GetClasses().GetAllClassInfo();202 compiler.GetObjectModule().meta.GetClasses().GetAllClassInfo(); 203 203 204 204 // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備 205 compiler. objectModule.meta.GetUserProcs().Iterator_Init();206 compiler. objectModule.meta.GetDllProcs().Iterator_Init();205 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Init(); 206 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Init(); 207 207 208 208 /* 209 if( !compiler. objectModule.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )209 if( !compiler.GetObjectModule().WriteXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 210 210 { 211 211 MessageBox(0,"XML書き込みに失敗","test",0); … … 217 217 } 218 218 219 if( !compiler. objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )219 if( !compiler.GetObjectModule().meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 220 220 { 221 221 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 226 226 MessageBox(0,"バイナリ読み込みに失敗","test",0); 227 227 } 228 if( !compiler. objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )228 if( !compiler.GetObjectModule().meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 229 229 { 230 230 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 431 431 432 432 // コード生成対象を選択 433 compiler.codeGenerator.Select( compiler. objectModule.globalNativeCode );433 compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode ); 434 434 435 435 trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" ); … … 456 456 457 457 //クラスに属する静的メンバを定義 458 compiler. objectModule.meta.GetClasses().InitStaticMember();458 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 459 459 460 460 //グローバル実行領域をコンパイル開始 … … 542 542 543 543 vector<ObjectModule *> masterObjectModules; 544 masterObjectModules.push_back( &compiler. objectModule);544 masterObjectModules.push_back( &compiler.GetObjectModule() ); 545 545 compiler.linker.Link( masterObjectModules ); 546 547 oldSourceLines = compiler.linker.GetNativeCode().GetSourceLines(); 546 548 547 549 … … 549 551 int t,t2; 550 552 t=GetTickCount(); 551 if( !compiler. objectModule.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )553 if( !compiler.GetObjectModule().WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 552 554 { 553 555 MessageBox(0,"XML書き込みに失敗","test",0); 554 556 } 555 if( !compiler. objectModule.ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) )557 if( !compiler.GetObjectModule().ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 556 558 { 557 559 MessageBox(0,"XML読み込みに失敗","test",0); … … 563 565 MessageBox(0,s,"test",0); 564 566 565 if( !compiler. objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )567 if( !compiler.GetObjectModule().meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 566 568 { 567 569 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 572 574 MessageBox(0,"バイナリ読み込みに失敗","test",0); 573 575 } 574 if( !compiler. objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) )576 if( !compiler.GetObjectModule().meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 575 577 { 576 578 MessageBox(0,"バイナリ書き込みに失敗","test",0); … … 594 596 // 使用するDLL関数のチェック 595 597 //////////////////////////////// 596 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();597 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )598 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 599 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 598 600 { 599 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();601 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 600 602 601 603 if( !pDllProc->IsUsing() ){ … … 667 669 //辞書順にサーチ 668 670 temporary[0]=0; 669 compiler. objectModule.meta.GetUserProcs().Iterator_Reset();670 while( compiler. objectModule.meta.GetUserProcs().Iterator_HasNext() )671 compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset(); 672 while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() ) 671 673 { 672 pUserProc = compiler. objectModule.meta.GetUserProcs().Iterator_GetNext();674 pUserProc = compiler.GetObjectModule().meta.GetUserProcs().Iterator_GetNext(); 673 675 if(pUserProc->IsExport()){ 674 676 if(temporary[0]=='\0'){ … … 693 695 694 696 if( pUserProc->GetName() == "DllMain" ){ 697 // TODO: 未完成 695 698 DllMain_EntryPoint=pUserProc->_beginOpAddressOld; 696 699 } … … 757 760 int ImportDllNum=0; 758 761 759 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();760 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )762 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 763 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 761 764 { 762 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();765 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 763 766 764 767 if( !pDllProc->IsUsing() ){ … … 797 800 pImportTable[i].Name=i3+i*0x10; 798 801 799 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();800 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )802 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 803 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 801 804 { 802 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();805 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 803 806 804 807 if( !pDllProc->IsUsing() ){ … … 826 829 i3+=ImportDllNum*0x10; 827 830 for(i=0,i5=0;i<ImportDllNum;i++){ 828 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();829 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )831 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 832 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 830 833 { 831 DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();834 DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 832 835 833 836 if( !pDllProc->IsUsing() ){ … … 872 875 //(デバッグ情報で利用される) 873 876 extern int AllInitGlobalVarSize; 874 BOOST_FOREACH( Variable *pVar, compiler. objectModule.meta.GetGlobalVars() ){877 BOOST_FOREACH( Variable *pVar, compiler.GetObjectModule().meta.GetGlobalVars() ){ 875 878 if(pVar->GetOffsetAddress()&0x80000000){ 876 879 pVar->SetOffsetAddress( (pVar->GetOffsetAddress()&0x7FFFFFFF)+AllInitGlobalVarSize ); … … 883 886 // デバッグセクションを生成 884 887 //////////////////////////////////// 885 886 //機械語コードとBasicコードの関係を整理887 extern SourceLines oldSourceLines;888 int MinObp,MaxObp;889 SourceLines tempSourceLines;890 MaxObp=0;891 while(1){892 for(i3=0,MinObp=0x0FFFFFFF;i3<(int)oldSourceLines.size();i3++){893 if(oldSourceLines[i3].GetNativeCodePos()<MinObp&&MaxObp<oldSourceLines[i3].GetNativeCodePos()){894 MinObp=oldSourceLines[i3].GetNativeCodePos();895 i4=i3;896 }897 }898 if(MinObp==0x0FFFFFFF) break;899 tempSourceLines.push_back( oldSourceLines[i4] );900 MaxObp=tempSourceLines.back().GetNativeCodePos();901 }902 oldSourceLines = tempSourceLines;903 888 904 889 //デバッグセクションを生成 … … 946 931 947 932 //データセクションのファイル上のサイズ 948 if(compiler. objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT);949 else FileSize_DataSection=compiler. objectModule.dataTable.GetSize();933 if(compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT); 934 else FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize(); 950 935 if(FileSize_DataSection) bUse_DataSection=1; 951 936 else bUse_DataSection=0; … … 1109 1094 HintSize; //ヒント名(関数名)テーブル 1110 1095 1111 compiler. objectModule.meta.GetDllProcs().Iterator_Reset();1112 while( compiler. objectModule.meta.GetDllProcs().Iterator_HasNext() )1096 compiler.GetObjectModule().meta.GetDllProcs().Iterator_Reset(); 1097 while( compiler.GetObjectModule().meta.GetDllProcs().Iterator_HasNext() ) 1113 1098 { 1114 const DllProc *pDllProc = compiler. objectModule.meta.GetDllProcs().Iterator_GetNext();1099 const DllProc *pDllProc = compiler.GetObjectModule().meta.GetDllProcs().Iterator_GetNext(); 1115 1100 1116 1101 if( !pDllProc->IsUsing() ){ … … 1130 1115 //////////////////////////////////////// 1131 1116 //仮想関数データテーブルスケジュール 1132 compiler. objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);1117 compiler.GetObjectModule().meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection); 1133 1118 1134 1119 … … 1215 1200 if( obp == compiler.linker.GetNativeCode().GetSize() ) 1216 1201 { 1217 //memcpy( OpBuffer, compiler.linker.GetNativeCode().GetCodeBuffer(), compiler.linker.GetNativeCode().GetSize() );1202 memcpy( OpBuffer, compiler.linker.GetNativeCode().GetCodeBuffer(), compiler.linker.GetNativeCode().GetSize() ); 1218 1203 } 1219 1204 else … … 1681 1666 if(bUse_DataSection){ 1682 1667 //データ テーブル 1683 WriteFile(hFile,compiler. objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL);1668 WriteFile(hFile,compiler.GetObjectModule().dataTable.GetPtr(),compiler.GetObjectModule().dataTable.GetSize(),(DWORD *)&i2,NULL); 1684 1669 i+=i2; 1685 1670 } … … 1793 1778 1794 1779 //クラスに関するメモリを解放 1795 compiler. objectModule.meta.GetClasses().Clear();1780 compiler.GetObjectModule().meta.GetClasses().Clear(); 1796 1781 } -
trunk/abdev/BasicCompiler32/NumOpe.cpp
r259 r265 76 76 SetStringQuotes( parameter ); 77 77 78 Operator_New( *compiler. objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ) );78 Operator_New( *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr() ) ); 79 79 80 80 free( parameter ); … … 254 254 Type leftType; 255 255 if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){ 256 if( isClassName == false && compiler. objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){256 if( isClassName == false && compiler.GetObjectModule().meta.GetBlittableTypes().IsExist( leftType ) ){ 257 257 // 左側のオブジェクト部分がBlittable型のとき 258 258 … … 260 260 lstrcpy( temporary, termLeft ); 261 261 sprintf( termLeft, "%s(%s)", 262 compiler. objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),262 compiler.GetObjectModule().meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(), 263 263 temporary ); 264 264 } … … 289 289 290 290 if( pIsClassName ){ 291 if( compiler. objectModule.meta.GetClasses().Find( termFull ) ){291 if( compiler.GetObjectModule().meta.GetClasses().Find( termFull ) ){ 292 292 *pIsClassName = true; 293 293 return true; … … 380 380 } 381 381 382 ConstMacro *pConstMacro = compiler. objectModule.meta.GetGlobalConstMacros().Find( procName );382 ConstMacro *pConstMacro = compiler.GetObjectModule().meta.GetGlobalConstMacros().Find( procName ); 383 383 if( pConstMacro ) 384 384 { … … 582 582 } 583 583 584 i2 = compiler. objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() );584 i2 = compiler.GetObjectModule().dataTable.AddBinary( binary, num * tempBaseType.GetSize() ); 585 585 586 586 //mov eax,i2 … … 780 780 781 781 type_stack[sp]=DEF_OBJECT; 782 index_stack[sp]=(LONG_PTR)compiler. objectModule.meta.GetClasses().GetStringClassPtr();782 index_stack[sp]=(LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetStringClassPtr(); 783 783 bLiteralCalculation=0; 784 784 … … 791 791 bLiteralCalculation=0; 792 792 793 i2=compiler. objectModule.dataTable.AddString(term,i3);793 i2=compiler.GetObjectModule().dataTable.AddString(term,i3); 794 794 795 795 //push DataSize … … 875 875 } 876 876 else{ 877 index_stack[sp] = (LONG_PTR)compiler. objectModule.meta.GetClasses().GetObjectClassPtr();877 index_stack[sp] = (LONG_PTR)compiler.GetObjectModule().meta.GetClasses().GetObjectClassPtr(); 878 878 } 879 879 … … 892 892 ////////////// 893 893 894 i3 = compiler. objectModule.meta.GetGlobalConsts().GetBasicType(term);894 i3 = compiler.GetObjectModule().meta.GetGlobalConsts().GetBasicType(term); 895 895 if(i3){ 896 if( compiler. objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){896 if( compiler.GetObjectModule().meta.GetGlobalConsts().IsStringPtr( term ) ){ 897 897 //リテラル文字列 898 898 899 double dbl = compiler. objectModule.meta.GetGlobalConsts().GetDoubleData(term);899 double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term); 900 900 memcpy(&i64data,&dbl,sizeof(double)); 901 901 … … 911 911 if(IsRealNumberType(i3)){ 912 912 //実数 913 double dbl = compiler. objectModule.meta.GetGlobalConsts().GetDoubleData(term);913 double dbl = compiler.GetObjectModule().meta.GetGlobalConsts().GetDoubleData(term); 914 914 memcpy(&i64data,&dbl,sizeof(double)); 915 915 goto Literal; … … 917 917 else if(IsWholeNumberType(i3)){ 918 918 //整数 919 i64data = compiler. objectModule.meta.GetGlobalConsts().GetWholeData(term);919 i64data = compiler.GetObjectModule().meta.GetGlobalConsts().GetWholeData(term); 920 920 goto Literal; 921 921 }
Note:
See TracChangeset
for help on using the changeset viewer.