Changeset 256 in dev for trunk/abdev/BasicCompiler32
- Timestamp:
- Aug 1, 2007, 11:19:01 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler32
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/BasicCompiler.vcproj
r248 r256 1254 1254 </File> 1255 1255 <Filter 1256 Name="CoreClasses" 1257 > 1258 <File 1259 RelativePath="..\BasicCompiler_Common\src\CommonCodeGenerator.cpp" 1260 > 1261 </File> 1262 </Filter> 1263 </Filter> 1264 <Filter 1265 Name="Compiler Classes" 1266 > 1267 <Filter 1256 1268 Name="Langauge Classes" 1257 1269 > … … 1326 1338 <File 1327 1339 RelativePath="..\BasicCompiler_Common\src\Variable.cpp" 1328 >1329 </File>1330 </Filter>1331 <Filter1332 Name="CoreClasses"1333 >1334 <File1335 RelativePath="..\BasicCompiler_Common\src\CommonCodeGenerator.cpp"1336 1340 > 1337 1341 </File> … … 1392 1396 </Filter> 1393 1397 <Filter 1394 Name="Language Classes" 1395 > 1396 <File 1397 RelativePath="..\BasicCompiler_Common\include\Class.h" 1398 > 1399 </File> 1400 <File 1401 RelativePath="..\BasicCompiler_Common\include\CodeGenerator.h" 1402 > 1403 </File> 1404 <File 1405 RelativePath="..\BasicCompiler_Common\include\Compiler.h" 1406 > 1407 </File> 1408 <File 1409 RelativePath="..\BasicCompiler_Common\include\Const.h" 1410 > 1411 </File> 1412 <File 1413 RelativePath="..\BasicCompiler_Common\include\DataTable.h" 1414 > 1415 </File> 1416 <File 1417 RelativePath="..\BasicCompiler_Common\include\Exception.h" 1418 > 1419 </File> 1420 <File 1421 RelativePath="..\BasicCompiler_Common\include\LexicalScope.h" 1422 > 1423 </File> 1424 <File 1425 RelativePath="..\BasicCompiler_Common\include\Member.h" 1426 > 1427 </File> 1428 <File 1429 RelativePath="..\BasicCompiler_Common\include\MetaImpl.h" 1430 > 1431 </File> 1432 <File 1433 RelativePath="..\BasicCompiler_Common\include\Method.h" 1434 > 1435 </File> 1436 <File 1437 RelativePath="..\BasicCompiler_Common\include\Namespace.h" 1438 > 1439 </File> 1440 <File 1441 RelativePath="..\BasicCompiler_Common\include\NamespaceSupporter.h" 1442 > 1443 </File> 1444 <File 1445 RelativePath="..\BasicCompiler_Common\include\NativeCode.h" 1446 > 1447 </File> 1448 <File 1449 RelativePath="..\BasicCompiler_Common\include\Parameter.h" 1450 > 1451 </File> 1452 <File 1453 RelativePath="..\BasicCompiler_Common\include\Procedure.h" 1454 > 1455 </File> 1456 <File 1457 RelativePath="..\BasicCompiler_Common\include\Program.h" 1458 > 1459 </File> 1460 <File 1461 RelativePath="..\BasicCompiler_Common\include\Prototype.h" 1462 > 1463 </File> 1464 <File 1465 RelativePath="..\BasicCompiler_Common\include\SmoothieImpl.h" 1466 > 1467 </File> 1468 <File 1469 RelativePath="..\BasicCompiler_Common\include\Symbol.h" 1470 > 1471 </File> 1472 <File 1473 RelativePath="..\BasicCompiler_Common\include\Type.h" 1474 > 1475 </File> 1476 <File 1477 RelativePath="..\BasicCompiler_Common\include\TypeDef.h" 1478 > 1479 </File> 1480 <File 1481 RelativePath="..\BasicCompiler_Common\include\Variable.h" 1398 Name="Common Classes" 1399 > 1400 <File 1401 RelativePath="..\BasicCompiler_Common\include\BoostSerializationSupport.h" 1402 > 1403 </File> 1404 <File 1405 RelativePath="..\BasicCompiler_Common\include\Hashmap.h" 1406 > 1407 </File> 1408 <File 1409 RelativePath="..\BasicCompiler_Common\include\logger.h" 1482 1410 > 1483 1411 </File> 1484 1412 </Filter> 1485 1413 <Filter 1486 Name="Common Classes" 1487 > 1488 <File 1489 RelativePath="..\BasicCompiler_Common\include\BoostSerializationSupport.h" 1490 > 1491 </File> 1492 <File 1493 RelativePath="..\BasicCompiler_Common\include\Hashmap.h" 1494 > 1495 </File> 1496 <File 1497 RelativePath="..\BasicCompiler_Common\include\logger.h" 1498 > 1499 </File> 1414 Name="Compiler Classes" 1415 > 1416 <File 1417 RelativePath="..\BasicCompiler_Common\include\CodeGenerator.h" 1418 > 1419 </File> 1420 <File 1421 RelativePath="..\BasicCompiler_Common\include\Compiler.h" 1422 > 1423 </File> 1424 <File 1425 RelativePath="..\BasicCompiler_Common\include\Linker.h" 1426 > 1427 </File> 1428 <Filter 1429 Name="Language Classes" 1430 > 1431 <File 1432 RelativePath="..\BasicCompiler_Common\include\Class.h" 1433 > 1434 </File> 1435 <File 1436 RelativePath="..\BasicCompiler_Common\include\Const.h" 1437 > 1438 </File> 1439 <File 1440 RelativePath="..\BasicCompiler_Common\include\DataTable.h" 1441 > 1442 </File> 1443 <File 1444 RelativePath="..\BasicCompiler_Common\include\Exception.h" 1445 > 1446 </File> 1447 <File 1448 RelativePath="..\BasicCompiler_Common\include\LexicalScope.h" 1449 > 1450 </File> 1451 <File 1452 RelativePath="..\BasicCompiler_Common\include\Member.h" 1453 > 1454 </File> 1455 <File 1456 RelativePath="..\BasicCompiler_Common\include\Meta.h" 1457 > 1458 </File> 1459 <File 1460 RelativePath="..\BasicCompiler_Common\include\Method.h" 1461 > 1462 </File> 1463 <File 1464 RelativePath="..\BasicCompiler_Common\include\Namespace.h" 1465 > 1466 </File> 1467 <File 1468 RelativePath="..\BasicCompiler_Common\include\NamespaceSupporter.h" 1469 > 1470 </File> 1471 <File 1472 RelativePath="..\BasicCompiler_Common\include\NativeCode.h" 1473 > 1474 </File> 1475 <File 1476 RelativePath="..\BasicCompiler_Common\include\Parameter.h" 1477 > 1478 </File> 1479 <File 1480 RelativePath="..\BasicCompiler_Common\include\Procedure.h" 1481 > 1482 </File> 1483 <File 1484 RelativePath="..\BasicCompiler_Common\include\Program.h" 1485 > 1486 </File> 1487 <File 1488 RelativePath="..\BasicCompiler_Common\include\Prototype.h" 1489 > 1490 </File> 1491 <File 1492 RelativePath="..\BasicCompiler_Common\include\SmoothieImpl.h" 1493 > 1494 </File> 1495 <File 1496 RelativePath="..\BasicCompiler_Common\include\Symbol.h" 1497 > 1498 </File> 1499 <File 1500 RelativePath="..\BasicCompiler_Common\include\Type.h" 1501 > 1502 </File> 1503 <File 1504 RelativePath="..\BasicCompiler_Common\include\TypeDef.h" 1505 > 1506 </File> 1507 <File 1508 RelativePath="..\BasicCompiler_Common\include\Variable.h" 1509 > 1510 </File> 1511 </Filter> 1500 1512 </Filter> 1501 1513 </Filter> -
trunk/abdev/BasicCompiler32/Compile_Calc.cpp
r225 r256 461 461 } 462 462 else{ 463 if( compiler. GetMeta().GetGlobalConsts().IsExist(variable)464 || compiler. GetMeta().GetGlobalConstMacros().IsExist(variable) )463 if( compiler.objectModule.meta.GetGlobalConsts().IsExist(variable) 464 || compiler.objectModule.meta.GetGlobalConstMacros().IsExist(variable) ) 465 465 { 466 466 //定数リストに該当したとき … … 606 606 607 607 608 if( varType.IsObject() && compiler. GetMeta().GetBlittableTypes().IsExist( calcType ) ){608 if( varType.IsObject() && compiler.objectModule.meta.GetBlittableTypes().IsExist( calcType ) ){ 609 609 // Blittable型をオブジェクトとして扱う 610 610 vector<const UserProc *> userProcs; 611 compiler. GetMeta().GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs );611 compiler.objectModule.meta.GetBlittableTypes().GetClass( calcType ).GetStaticMethods().Enum( "_Create", userProcs ); 612 612 if( userProcs.size() != 1 ){ 613 613 SetError(); -
trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
r253 r256 117 117 pobj_c = &varType.GetClass(); 118 118 if( NATURAL_TYPE( varType.GetBasicType() ) != DEF_OBJECT ){ 119 pobj_c=compiler. GetMeta().GetClasses().Find(ObjectName);119 pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjectName); 120 120 if( pobj_c ){ 121 121 isStatic = true; -
trunk/abdev/BasicCompiler32/Compile_Func.cpp
r250 r256 185 185 tempParm=temp2; 186 186 187 type.SetType( DEF_OBJECT, compiler. GetMeta().GetClasses().GetStringClassPtr() );187 type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() ); 188 188 } 189 189 … … 235 235 236 236 //オーバーロードを解決 237 pUserProc=OverloadSolution(name,subs,compiler. GetMeta().GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() );237 pUserProc=OverloadSolution(name,subs,compiler.objectModule.meta.GetProcPointers()[ProcPtr_BaseIndex]->Params(), Type() ); 238 238 239 239 if(!pUserProc){ -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r253 r256 58 58 59 59 //クラスに属する静的メンバを定義 60 compiler. GetMeta().GetClasses().InitStaticMember();60 compiler.objectModule.meta.GetClasses().InitStaticMember(); 61 61 62 62 GetGlobalDataForDll(); … … 71 71 //静的ローカルオブジェクトのコンストラクタ呼び出し 72 72 73 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){73 BOOST_FOREACH( Variable *pVar, compiler.objectModule.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. GetMeta().GetClasses().Compile_System_InitializeUserTypes();221 compiler.objectModule.meta.GetClasses().Compile_System_InitializeUserTypes(); 222 222 } 223 223 else if( userProc.GetName() == "RegisterGlobalRoots" … … 270 270 271 271 //コンパイルスタートをクラス管理クラスに追加 272 compiler. GetMeta().GetClasses().StartCompile( pUserProc );272 compiler.objectModule.meta.GetClasses().StartCompile( pUserProc ); 273 273 274 274 //コンパイル中の関数 … … 789 789 790 790 repeat: 791 compiler. GetMeta().GetUserProcs().Iterator_Reset();792 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )791 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 792 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 793 793 { 794 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();794 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 795 795 CompileBufferInProcedure( *pUserProc ); 796 796 } … … 808 808 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 809 809 810 compiler. GetMeta().GetUserProcs().Iterator_Reset();811 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )810 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 811 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 812 812 { 813 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();813 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 814 814 CompileBufferInProcedure( *pUserProc ); 815 815 } -
trunk/abdev/BasicCompiler32/Compile_Var.cpp
r253 r256 362 362 // 名前空間を分離 363 363 char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE]; 364 compiler. GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );364 compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName ); 365 365 366 366 // 先頭オブジェクトまたはクラス名と入れ子メンバに分割 … … 456 456 //Const修飾子のメソッド内でメンバ書き込みアクセスが発生したとき 457 457 //(コンストラクタ、デストラクタ内を除く) 458 const CMethod *pMethod = compiler. GetMeta().GetClasses().GetNowCompilingMethodInfo();458 const CMethod *pMethod = compiler.objectModule.meta.GetClasses().GetNowCompilingMethodInfo(); 459 459 if( isWriteAccess && 460 460 pMethod->IsConst() && … … 496 496 GetNowStaticVarFullName(VarName,temporary); 497 497 498 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temporary ) );498 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) ); 499 499 if( pVar ){ 500 500 goto GlobalOk; … … 519 519 } 520 520 521 int typeDefIndex = compiler. GetMeta().GetTypeDefs().GetIndex( VarName );521 int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName ); 522 522 if( typeDefIndex != -1 ){ 523 523 // TypeDef後の型名だったとき 524 lstrcpy( VarName, compiler. GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );524 lstrcpy( VarName, compiler.objectModule.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. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );529 pVar = compiler.objectModule.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. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );541 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) ); 542 542 if( pVar ){ 543 543 goto GlobalOk; … … 549 549 ///////////////////// 550 550 551 pVar = compiler. GetMeta().GetGlobalVars().BackSearch( Symbol( VarName ) );551 pVar = compiler.objectModule.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. GetDataTable().AddString(temp,lstrlen(temp));839 i2=compiler.objectModule.dataTable.AddString(temp,lstrlen(temp)); 840 840 HeapDefaultFree(temp); 841 841 … … 1010 1010 char *temp; 1011 1011 temp=(char *)i64data; 1012 i2=compiler. GetDataTable().AddString(temp,lstrlen(temp));1012 i2=compiler.objectModule.dataTable.AddString(temp,lstrlen(temp)); 1013 1013 HeapDefaultFree(temp); 1014 1014 … … 1267 1267 } 1268 1268 1269 BOOST_FOREACH( const Variable *pVar, compiler. GetMeta().GetGlobalVars() ){1269 BOOST_FOREACH( const Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 1270 1270 if( pVar->GetType().IsObject() || pVar->GetType().IsPointer() || pVar->GetType().IsStruct() ){ 1271 1271 // オブジェクトまたはポインタだったとき -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r253 r256 146 146 ////////////////// 147 147 // データテーブル 148 compiler. GetDataTable().Init();148 compiler.objectModule.dataTable.Clear(); 149 149 if(bDebugCompile){ 150 compiler. GetDataTable().Add( (long)0x00000002 );150 compiler.objectModule.dataTable.Add( (long)0x00000002 ); 151 151 } 152 152 … … 172 172 173 173 //関数ポインタ情報を初期化 174 compiler. GetMeta().GetProcPointers().clear();174 compiler.objectModule.meta.GetProcPointers().clear(); 175 175 176 176 // 名前空間情報を取得 177 177 NamespaceSupporter::CollectNamespaces( 178 178 Smoothie::Lexical::source.GetBuffer(), 179 compiler. GetMeta().GetNamespaces()179 compiler.objectModule.meta.GetNamespaces() 180 180 ); 181 181 … … 183 183 // CollectProcedures関数の中で参照されるオブジェクト名を事前に取得する。 184 184 // ※オブジェクトの内容までは取得しない 185 compiler. GetMeta().GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source );185 compiler.objectModule.meta.GetClasses().CollectClassesForNameOnly( Smoothie::Lexical::source ); 186 186 187 187 //TypeDef情報を初期化 188 compiler. GetMeta().GetTypeDefs().Init();188 compiler.objectModule.meta.GetTypeDefs().Init(); 189 189 190 190 //定数情報を取得 … … 195 195 CollectProcedures( 196 196 Smoothie::Lexical::source, 197 compiler. GetMeta().GetUserProcs(),198 compiler. GetMeta().GetDllProcs()197 compiler.objectModule.meta.GetUserProcs(), 198 compiler.objectModule.meta.GetDllProcs() 199 199 ); 200 200 201 201 // クラス情報を取得(※注 - CollectProceduresの後に呼び出す) 202 compiler. GetMeta().GetClasses().GetAllClassInfo();202 compiler.objectModule.meta.GetClasses().GetAllClassInfo(); 203 203 204 204 // サブルーチン(ユーザー定義、DLL関数)のイテレータの準備 205 compiler. GetMeta().GetUserProcs().Iterator_Init();206 compiler. GetMeta().GetDllProcs().Iterator_Init();205 compiler.objectModule.meta.GetUserProcs().Iterator_Init(); 206 compiler.objectModule.meta.GetDllProcs().Iterator_Init(); 207 207 208 208 /* 209 if( !compiler. GetMeta().WriteXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )209 if( !compiler.objectModule.WriteXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 210 210 { 211 211 MessageBox(0,"XML書き込みに失敗","test",0); 212 212 } 213 MetaImpl *pTempMeta = new MetaImpl();214 if( !pTemp Meta->ReadXml( Jenga::Common::Environment::GetAppDir() + "\\meta_test.xml" ) )213 ObjectModule *pTempObjectModule = new ObjectModule(); 214 if( !pTempObjectModule->ReadXml( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 215 215 { 216 216 MessageBox(0,"XML読み込みに失敗","test",0); 217 217 } 218 218 219 if( !compiler. GetMeta().WriteBinaly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )219 if( !compiler.objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 220 220 { 221 221 MessageBox(0,"バイナリ書き込みに失敗","test",0); 222 222 } 223 Meta Impl *pTempMeta = new MetaImpl();224 if( !pTempMeta->ReadBina ly( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )223 Meta *pTempMeta = new Meta(); 224 if( !pTempMeta->ReadBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 225 225 { 226 226 MessageBox(0,"バイナリ読み込みに失敗","test",0); 227 227 } 228 if( !compiler. GetMeta().WriteText( Jenga::Common::Environment::GetAppDir() + "\\meta_test.dat" ) )228 if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 229 229 { 230 230 MessageBox(0,"バイナリ書き込みに失敗","test",0); 231 231 } 232 Meta Impl *pTempMeta = new MetaImpl();233 if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\ meta_test.dat" ) )232 Meta *pTempMeta = new Meta(); 233 if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 234 234 { 235 235 MessageBox(0,"バイナリ読み込みに失敗","test",0); 236 236 } 237 compiler. GetMeta() = (*pTempMeta);*/237 compiler.objectModule = (*pTempObjectModule);*/ 238 238 239 239 … … 436 436 437 437 // コード生成対象を選択 438 compiler.codeGenerator.Select( compiler. globalNativeCode );438 compiler.codeGenerator.Select( compiler.objectModule.globalNativeCode ); 439 439 440 440 trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" ); … … 461 461 462 462 //クラスに属する静的メンバを定義 463 compiler. GetMeta().GetClasses().InitStaticMember();463 compiler.objectModule.meta.GetClasses().InitStaticMember(); 464 464 465 465 //グローバル実行領域をコンパイル開始 … … 550 550 551 551 552 trace( "コード生成が終了しました。" ); 553 554 555 /* 556 int t,t2; 557 t=GetTickCount(); 558 if( !compiler.objectModule.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 559 { 560 MessageBox(0,"XML書き込みに失敗","test",0); 561 } 562 if( !compiler.objectModule.ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.xml" ) ) 563 { 564 MessageBox(0,"XML読み込みに失敗","test",0); 565 } 566 t2=GetTickCount(); 567 t2-=t; 568 char s[100]; 569 sprintf(s,"%d",t2); 570 MessageBox(0,s,"test",0); 571 572 if( !compiler.objectModule.meta.WriteBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 573 { 574 MessageBox(0,"バイナリ書き込みに失敗","test",0); 575 } 576 Meta *pTempMeta = new Meta(); 577 if( !pTempMeta->ReadBinary( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 578 { 579 MessageBox(0,"バイナリ読み込みに失敗","test",0); 580 } 581 if( !compiler.objectModule.meta.WriteText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 582 { 583 MessageBox(0,"バイナリ書き込みに失敗","test",0); 584 } 585 Meta *pTempMeta = new Meta(); 586 if( !pTempMeta->ReadText( Jenga::Common::Environment::GetAppDir() + "\\objectModule_test.dat" ) ) 587 { 588 MessageBox(0,"バイナリ読み込みに失敗","test",0); 589 }*/ 590 591 552 592 553 593 //////////////////////////////// … … 561 601 // 使用するDLL関数のチェック 562 602 //////////////////////////////// 563 compiler. GetMeta().GetDllProcs().Iterator_Reset();564 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )603 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 604 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 565 605 { 566 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();606 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 567 607 568 608 if( !pDllProc->IsUsing() ){ … … 634 674 //辞書順にサーチ 635 675 temporary[0]=0; 636 compiler. GetMeta().GetUserProcs().Iterator_Reset();637 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )676 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 677 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 638 678 { 639 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();679 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 640 680 if(pUserProc->IsExport()){ 641 681 if(temporary[0]=='\0'){ … … 724 764 int ImportDllNum=0; 725 765 726 compiler. GetMeta().GetDllProcs().Iterator_Reset();727 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )766 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 767 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 728 768 { 729 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();769 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 730 770 731 771 if( !pDllProc->IsUsing() ){ … … 764 804 pImportTable[i].Name=i3+i*0x10; 765 805 766 compiler. GetMeta().GetDllProcs().Iterator_Reset();767 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )806 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 807 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 768 808 { 769 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();809 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 770 810 771 811 if( !pDllProc->IsUsing() ){ … … 793 833 i3+=ImportDllNum*0x10; 794 834 for(i=0,i5=0;i<ImportDllNum;i++){ 795 compiler. GetMeta().GetDllProcs().Iterator_Reset();796 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )835 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 836 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 797 837 { 798 DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();838 DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 799 839 800 840 if( !pDllProc->IsUsing() ){ … … 839 879 //(デバッグ情報で利用される) 840 880 extern int AllInitGlobalVarSize; 841 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){881 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 842 882 if(pVar->GetOffsetAddress()&0x80000000){ 843 883 pVar->SetOffsetAddress( (pVar->GetOffsetAddress()&0x7FFFFFFF)+AllInitGlobalVarSize ); … … 921 961 922 962 //データセクションのファイル上のサイズ 923 if(compiler. GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetDataTable().GetSize()%FILE_ALIGNMENT);924 else FileSize_DataSection=compiler. GetDataTable().GetSize();963 if(compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.objectModule.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.objectModule.dataTable.GetSize()%FILE_ALIGNMENT); 964 else FileSize_DataSection=compiler.objectModule.dataTable.GetSize(); 925 965 if(FileSize_DataSection) bUse_DataSection=1; 926 966 else bUse_DataSection=0; … … 1084 1124 HintSize; //ヒント名(関数名)テーブル 1085 1125 1086 compiler. GetMeta().GetDllProcs().Iterator_Reset();1087 while( compiler. GetMeta().GetDllProcs().Iterator_HasNext() )1126 compiler.objectModule.meta.GetDllProcs().Iterator_Reset(); 1127 while( compiler.objectModule.meta.GetDllProcs().Iterator_HasNext() ) 1088 1128 { 1089 const DllProc *pDllProc = compiler. GetMeta().GetDllProcs().Iterator_GetNext();1129 const DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().Iterator_GetNext(); 1090 1130 1091 1131 if( !pDllProc->IsUsing() ){ … … 1105 1145 //////////////////////////////////////// 1106 1146 //仮想関数データテーブルスケジュール 1107 compiler. GetMeta().GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection);1147 compiler.objectModule.meta.GetClasses().ActionVtblSchedule(ImageBase,MemPos_CodeSection); 1108 1148 1109 1149 … … 1640 1680 if(bUse_DataSection){ 1641 1681 //データ テーブル 1642 WriteFile(hFile,compiler. GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL);1682 WriteFile(hFile,compiler.objectModule.dataTable.GetPtr(),compiler.objectModule.dataTable.GetSize(),(DWORD *)&i2,NULL); 1643 1683 i+=i2; 1644 1684 } … … 1752 1792 1753 1793 //クラスに関するメモリを解放 1754 compiler. GetMeta().GetClasses().Clear();1794 compiler.objectModule.meta.GetClasses().Clear(); 1755 1795 } -
trunk/abdev/BasicCompiler32/NumOpe.cpp
r254 r256 76 76 SetStringQuotes( parameter ); 77 77 78 Operator_New( *compiler. GetMeta().GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.GetMeta().GetClasses().GetStringClassPtr() ) );78 Operator_New( *compiler.objectModule.meta.GetClasses().GetStringClassPtr(), "", parameter, Type( DEF_OBJECT, *compiler.objectModule.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. GetMeta().GetBlittableTypes().IsExist( leftType ) ){256 if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){ 257 257 // 左側のオブジェクト部分がBlittable型のとき 258 258 … … 260 260 lstrcpy( temporary, termLeft ); 261 261 sprintf( termLeft, "%s(%s)", 262 compiler. GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),262 compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(), 263 263 temporary ); 264 264 } … … 289 289 290 290 if( pIsClassName ){ 291 if( compiler. GetMeta().GetClasses().Find( termFull ) ){291 if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){ 292 292 *pIsClassName = true; 293 293 return true; … … 380 380 } 381 381 382 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( procName );382 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName ); 383 383 if( pConstMacro ) 384 384 { … … 582 582 } 583 583 584 i2 = compiler. GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );584 i2 = compiler.objectModule.dataTable.AddBinary( binary, num * tempBaseType.GetSize() ); 585 585 586 586 //mov eax,i2 … … 784 784 785 785 type_stack[sp]=DEF_OBJECT; 786 index_stack[sp]=(LONG_PTR)compiler. GetMeta().GetClasses().GetStringClassPtr();786 index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr(); 787 787 bLiteralCalculation=0; 788 788 … … 795 795 bLiteralCalculation=0; 796 796 797 i2=compiler. GetDataTable().AddString(term,i3);797 i2=compiler.objectModule.dataTable.AddString(term,i3); 798 798 799 799 //push DataSize … … 879 879 } 880 880 else{ 881 index_stack[sp] = (LONG_PTR)compiler. GetMeta().GetClasses().GetObjectClassPtr();881 index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr(); 882 882 } 883 883 … … 896 896 ////////////// 897 897 898 i3 = compiler. GetMeta().GetGlobalConsts().GetBasicType(term);898 i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term); 899 899 if(i3){ 900 if( compiler. GetMeta().GetGlobalConsts().IsStringPtr( term ) ){900 if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){ 901 901 //リテラル文字列 902 902 903 double dbl = compiler. GetMeta().GetGlobalConsts().GetDoubleData(term);903 double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term); 904 904 memcpy(&i64data,&dbl,sizeof(double)); 905 905 … … 915 915 if(IsRealNumberType(i3)){ 916 916 //実数 917 double dbl = compiler. GetMeta().GetGlobalConsts().GetDoubleData(term);917 double dbl = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(term); 918 918 memcpy(&i64data,&dbl,sizeof(double)); 919 919 goto Literal; … … 921 921 else if(IsWholeNumberType(i3)){ 922 922 //整数 923 i64data = compiler. GetMeta().GetGlobalConsts().GetWholeData(term);923 i64data = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(term); 924 924 goto Literal; 925 925 }
Note:
See TracChangeset
for help on using the changeset viewer.