Changeset 256 in dev
- Timestamp:
- Aug 1, 2007, 11:19:01 PM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 1 added
- 34 edited
- 1 moved
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 } -
trunk/abdev/BasicCompiler_Common/BreakPoint.cpp
r206 r256 42 42 } 43 43 44 void CFileBreakPoint::update(char * OpBuffer){44 void CFileBreakPoint::update(char *nativeCodeBuffer){ 45 45 extern INCLUDEFILEINFO IncludeFileInfo; 46 46 … … 85 85 } 86 86 87 OpBuffer[pLineInfo[i3].TopObp]=(char)0xCC;87 nativeCodeBuffer[pLineInfo[i3].TopObp]=(char)0xCC; 88 88 89 89 nCount++; … … 177 177 } 178 178 179 char *CDBBreakPoint::update(char * OpBuffer,int SizeOf_CodeSection){179 char *CDBBreakPoint::update(char *nativeCodeBuffer,int SizeOf_CodeSection){ 180 180 char *buffer; 181 181 buffer=(char *)HeapAlloc(hHeap,0,SizeOf_CodeSection); 182 memcpy(buffer, OpBuffer,SizeOf_CodeSection);182 memcpy(buffer,nativeCodeBuffer,SizeOf_CodeSection); 183 183 184 184 int i; -
trunk/abdev/BasicCompiler_Common/BreakPoint.h
r4 r256 14 14 void remove(int iLineNum); 15 15 16 void update(char * OpBuffer);16 void update(char *nativeCodeBuffer); 17 17 }; 18 18 … … 28 28 void remove(char *lpszFileName,int iLineNum); 29 29 30 char *update(char * OpBuffer,int SizeOf_CodeSection);30 char *update(char *nativeCodeBuffer,int SizeOf_CodeSection); 31 31 }; 32 32 -
trunk/abdev/BasicCompiler_Common/Debug.cpp
r233 r256 230 230 } 231 231 UserProc *GetSubFromObp(ULONG_PTR pos){ 232 compiler. GetMeta().GetUserProcs().Iterator_Reset();233 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )232 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 233 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 234 234 { 235 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();235 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 236 236 237 237 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pos && -
trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp
r232 r256 37 37 (*p)+=lstrlen(buffer+(*p))+1; 38 38 39 type.SetClassPtr( compiler. GetMeta().GetClasses().Find(szClassName) );39 type.SetClassPtr( compiler.objectModule.meta.GetClasses().Find(szClassName) ); 40 40 } 41 41 else{ … … 121 121 122 122 //イテレータをリセット 123 compiler. GetMeta().GetClasses().Iterator_Reset();123 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 124 124 125 125 //個数 126 *(long *)(buffer+i2)=compiler. GetMeta().GetClasses().Iterator_GetMaxCount();127 i2+=sizeof(long); 128 129 while(compiler. GetMeta().GetClasses().Iterator_HasNext()){126 *(long *)(buffer+i2)=compiler.objectModule.meta.GetClasses().Iterator_GetMaxCount(); 127 i2+=sizeof(long); 128 129 while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){ 130 130 CClass *pobj_c; 131 pobj_c=compiler. GetMeta().GetClasses().Iterator_GetNext();131 pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 132 132 133 133 //クラス名 … … 141 141 // TypeDef情報 142 142 ////////////////// 143 *(long *)(buffer+i2)=(int)compiler. GetMeta().GetTypeDefs().size();144 i2+=sizeof(long); 145 for(i3=0;i3<(int)compiler. GetMeta().GetTypeDefs().size();i3++){146 lstrcpy(buffer+i2,compiler. GetMeta().GetTypeDefs()[i3].GetName().c_str() );147 i2+=lstrlen(buffer+i2)+1; 148 149 lstrcpy(buffer+i2,compiler. GetMeta().GetTypeDefs()[i3].GetBaseName().c_str() );143 *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetTypeDefs().size(); 144 i2+=sizeof(long); 145 for(i3=0;i3<(int)compiler.objectModule.meta.GetTypeDefs().size();i3++){ 146 lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetName().c_str() ); 147 i2+=lstrlen(buffer+i2)+1; 148 149 lstrcpy(buffer+i2,compiler.objectModule.meta.GetTypeDefs()[i3].GetBaseName().c_str() ); 150 150 i2+=lstrlen(buffer+i2)+1; 151 151 … … 159 159 160 160 //グローバル変数情報 161 *(long *)(buffer+i2)=(int)compiler. GetMeta().GetGlobalVars().size();162 i2+=sizeof(long); 163 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){161 *(long *)(buffer+i2)=(int)compiler.objectModule.meta.GetGlobalVars().size(); 162 i2+=sizeof(long); 163 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 164 164 //変数名 165 165 lstrcpy(buffer+i2,pVar->GetName().c_str()); … … 212 212 213 213 //プロシージャ情報 214 *(long *)(buffer+i2) = compiler. GetMeta().GetUserProcs().Iterator_GetMaxCount();215 i2+=sizeof(long); 216 compiler. GetMeta().GetUserProcs().Iterator_Reset();217 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )214 *(long *)(buffer+i2) = compiler.objectModule.meta.GetUserProcs().Iterator_GetMaxCount(); 215 i2+=sizeof(long); 216 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 217 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 218 218 { 219 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();219 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 220 220 221 221 if(pUserProc->GetParentClassPtr()){ … … 309 309 310 310 //イテレータをリセット 311 compiler. GetMeta().GetClasses().Iterator_Reset();312 313 while(compiler. GetMeta().GetClasses().Iterator_HasNext()){311 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 312 313 while(compiler.objectModule.meta.GetClasses().Iterator_HasNext()){ 314 314 CClass *pobj_c; 315 pobj_c=compiler. GetMeta().GetClasses().Iterator_GetNext();315 pobj_c=compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 316 316 317 317 … … 510 510 } 511 511 512 compiler. GetMeta().SetClasses( this->pobj_DBClass );512 compiler.objectModule.meta.SetClasses( this->pobj_DBClass ); 513 513 514 514 … … 518 518 519 519 //初期化 520 compiler. GetMeta().GetTypeDefs().clear();520 compiler.objectModule.meta.GetTypeDefs().clear(); 521 521 522 522 //個数を取得 … … 528 528 529 529 // 名前空間に未対応 530 compiler. GetMeta().GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) );530 compiler.objectModule.meta.GetTypeDefs().push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2, -1 ) ); 531 531 532 532 i2+=lstrlen(buffer+i2)+1; … … 535 535 //定数を取得 536 536 GetConstInfo(); 537 this->globalConsts = compiler. GetMeta().GetGlobalConsts();538 this->globalConstMacros = compiler. GetMeta().GetGlobalConstMacros();537 this->globalConsts = compiler.objectModule.meta.GetGlobalConsts(); 538 this->globalConstMacros = compiler.objectModule.meta.GetGlobalConstMacros(); 539 539 540 540 //グローバル変数情報 541 compiler. GetMeta().GetGlobalVars().clear();541 compiler.objectModule.meta.GetGlobalVars().clear(); 542 542 int maxGlobalVars=*(long *)(buffer+i2); 543 543 i2+=sizeof(long); … … 586 586 587 587 //変数を追加 588 compiler. GetMeta().GetGlobalVars().push_back( pVar );588 compiler.objectModule.meta.GetGlobalVars().push_back( pVar ); 589 589 } 590 590 … … 604 604 const CClass *pClass = NULL; 605 605 if(szParentClassName[0]){ 606 pClass=compiler. GetMeta().GetClasses().Find(szParentClassName);606 pClass=compiler.objectModule.meta.GetClasses().Find(szParentClassName); 607 607 } 608 608 … … 698 698 i2+=lstrlen(buffer+i2)+1; 699 699 700 pobj_c = const_cast<CClass *>( compiler. GetMeta().GetClasses().Find(szClassName) );700 pobj_c = const_cast<CClass *>( compiler.objectModule.meta.GetClasses().Find(szClassName) ); 701 701 702 702 //仮想関数の数 … … 755 755 const CClass *pobj_InheritsClass = NULL; 756 756 if(szInherits[0]){ 757 pobj_InheritsClass=compiler. GetMeta().GetClasses().Find(szInherits);757 pobj_InheritsClass=compiler.objectModule.meta.GetClasses().Find(szInherits); 758 758 } 759 759 … … 765 765 if(pobj_temp_c==0) pobj_temp_c=pobj_c; 766 766 767 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().GetHashArrayElement( temp2 );767 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().GetHashArrayElement( temp2 ); 768 768 while(pUserProc){ 769 769 if( pUserProc->GetName() == temp2 &&pUserProc->GetParentClassPtr()==pobj_temp_c) … … 821 821 822 822 823 compiler. GetMeta().GetUserProcs() = userProcs;823 compiler.objectModule.meta.GetUserProcs() = userProcs; 824 824 pSub_DebugSys_EndProc=GetSubHash("_DebugSys_EndProc"); 825 825 … … 962 962 963 963 // クラス情報 964 compiler. GetMeta().SetClasses( this->pobj_DBClass );964 compiler.objectModule.meta.SetClasses( this->pobj_DBClass ); 965 965 966 966 //定数を取得 967 compiler. GetMeta().GetGlobalConsts() = this->globalConsts;968 compiler. GetMeta().GetGlobalConstMacros() = this->globalConstMacros;967 compiler.objectModule.meta.GetGlobalConsts() = this->globalConsts; 968 compiler.objectModule.meta.GetGlobalConstMacros() = this->globalConstMacros; 969 969 970 970 //グローバル実行領域のサイズ … … 973 973 974 974 //プロシージャ 975 compiler. GetMeta().GetUserProcs() = userProcs;975 compiler.objectModule.meta.GetUserProcs() = userProcs; 976 976 977 977 extern const UserProc *pSub_DebugSys_EndProc; -
trunk/abdev/BasicCompiler_Common/Diagnose.cpp
r206 r256 40 40 int codeSizeOfGlobalProc = 0; 41 41 int codeSizeOfClassMethod = 0; 42 compiler. GetMeta().GetUserProcs().Iterator_Reset();43 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )42 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 43 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 44 44 { 45 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();45 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 46 46 if( pUserProc->IsCompiled() ){ 47 47 if( pUserProc->HasParentClass() ){ … … 68 68 // イテレータをリセット 69 69 extern Classes *pobj_DBClass; 70 compiler. GetMeta().GetClasses().Iterator_Reset();70 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 71 71 72 while( compiler. GetMeta().GetClasses().Iterator_HasNext() ){72 while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){ 73 73 int codeSizeOfClass = 0; 74 74 75 CClass &objClass = *compiler. GetMeta().GetClasses().Iterator_GetNext();75 CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 76 76 77 77 if( !objClass.IsEnum() ){ … … 108 108 // イテレータをリセット 109 109 extern Classes *pobj_DBClass; 110 compiler. GetMeta().GetClasses().Iterator_Reset();110 compiler.objectModule.meta.GetClasses().Iterator_Reset(); 111 111 112 while( compiler. GetMeta().GetClasses().Iterator_HasNext() ){112 while( compiler.objectModule.meta.GetClasses().Iterator_HasNext() ){ 113 113 int codeSizeOfClass = 0; 114 114 115 CClass &objClass = *compiler. GetMeta().GetClasses().Iterator_GetNext();115 CClass &objClass = *compiler.objectModule.meta.GetClasses().Iterator_GetNext(); 116 116 117 117 // 動的メソッド -
trunk/abdev/BasicCompiler_Common/Intermediate_Step2.cpp
r206 r256 79 79 80 80 //定数を追加 81 compiler. GetMeta().GetGlobalConsts().Add( namespaceScopes, temporary, NextValue);81 compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, temporary, NextValue); 82 82 } 83 83 } … … 95 95 96 96 //定数に関する情報を初期化 97 compiler. GetMeta().GetGlobalConsts().Clear();98 compiler. GetMeta().GetGlobalConstMacros().Clear();97 compiler.objectModule.meta.GetGlobalConsts().Clear(); 98 compiler.objectModule.meta.GetGlobalConstMacros().Clear(); 99 99 100 100 extern char *basbuf; … … 172 172 173 173 // イテレータを初期化 174 compiler. GetMeta().GetGlobalConsts().Iterator_Init();175 compiler. GetMeta().GetGlobalConstMacros().Iterator_Init();174 compiler.objectModule.meta.GetGlobalConsts().Iterator_Init(); 175 compiler.objectModule.meta.GetGlobalConstMacros().Iterator_Init(); 176 176 177 177 return true; -
trunk/abdev/BasicCompiler_Common/MakeExe.cpp
r209 r256 137 137 extern int AllGlobalVarSize; 138 138 extern int AllInitGlobalVarSize; 139 compiler. GetMeta().GetGlobalVars().clear();139 compiler.objectModule.meta.GetGlobalVars().clear(); 140 140 AllGlobalVarSize=0; 141 141 AllInitGlobalVarSize=0; -
trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp
r254 r256 330 330 Type leftType; 331 331 if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){ 332 if( isClassName == false && compiler. GetMeta().GetBlittableTypes().IsExist( leftType ) ){332 if( isClassName == false && compiler.objectModule.meta.GetBlittableTypes().IsExist( leftType ) ){ 333 333 // 左側のオブジェクト部分がBlittable型のとき 334 334 … … 336 336 lstrcpy( temporary, termLeft ); 337 337 sprintf( termLeft, "%s(%s)", 338 compiler. GetMeta().GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(),338 compiler.objectModule.meta.GetBlittableTypes().Find( leftType ).GetCreateStaticMethodFullName().c_str(), 339 339 temporary ); 340 340 … … 398 398 399 399 if( pIsClassName ){ 400 if( compiler. GetMeta().GetClasses().Find( termFull ) ){400 if( compiler.objectModule.meta.GetClasses().Find( termFull ) ){ 401 401 *pIsClassName = true; 402 402 return true; … … 457 457 else 458 458 { 459 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( procName );459 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( procName ); 460 460 if( pConstMacro ) 461 461 { … … 689 689 //要求タイプがオブジェクト、または未定のとき 690 690 type_stack[sp]=DEF_OBJECT; 691 index_stack[sp]=(LONG_PTR)compiler. GetMeta().GetClasses().GetStringClassPtr();691 index_stack[sp]=(LONG_PTR)compiler.objectModule.meta.GetClasses().GetStringClassPtr(); 692 692 *pIsLiteralCalculation = false; 693 693 … … 734 734 } 735 735 else{ 736 index_stack[sp] = (LONG_PTR)compiler. GetMeta().GetClasses().GetObjectClassPtr();736 index_stack[sp] = (LONG_PTR)compiler.objectModule.meta.GetClasses().GetObjectClassPtr(); 737 737 } 738 738 *pIsLiteralCalculation = false; … … 746 746 ////////////// 747 747 748 i3 = compiler. GetMeta().GetGlobalConsts().GetBasicType(term);748 i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(term); 749 749 if(i3){ 750 if( compiler. GetMeta().GetGlobalConsts().IsStringPtr( term ) ){750 if( compiler.objectModule.meta.GetGlobalConsts().IsStringPtr( term ) ){ 751 751 //リテラル文字列 752 752 goto StrLiteral; -
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r255 r256 168 168 GetVarType(fullCallName,type,false); 169 169 170 ProcPointer *pProcPtr = compiler. GetMeta().GetProcPointers()[type.GetIndex()];170 ProcPointer *pProcPtr = compiler.objectModule.meta.GetProcPointers()[type.GetIndex()]; 171 171 resultType = pProcPtr->ReturnType(); 172 172 … … 451 451 452 452 bool IsNeedProcCompile(){ 453 compiler. GetMeta().GetUserProcs().Iterator_Reset();454 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )453 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 454 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 455 455 { 456 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();456 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 457 457 if( pUserProc->IsUsing() && pUserProc->IsCompiled() == false ){ 458 458 return true; -
trunk/abdev/BasicCompiler_Common/VarList.cpp
r220 r256 275 275 extern int MemPos_RWSection; 276 276 277 BOOST_FOREACH( Variable *pVar, compiler. GetMeta().GetGlobalVars() ){277 BOOST_FOREACH( Variable *pVar, compiler.objectModule.meta.GetGlobalVars() ){ 278 278 279 279 //スコープ外の場合は無視 … … 358 358 359 359 UserProc *pUserProc = NULL; 360 compiler. GetMeta().GetUserProcs().Iterator_Reset();361 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )360 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 361 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 362 362 { 363 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();363 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 364 364 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && 365 365 pobj_dti->lplpObp[i2] < rva_to_real(pUserProc->GetEndOpAddress())){ … … 605 605 606 606 UserProc *pUserProc = NULL; 607 compiler. GetMeta().GetUserProcs().Iterator_Reset();608 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )607 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 608 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 609 609 { 610 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();610 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 611 611 612 612 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && … … 718 718 719 719 UserProc *pUserProc = NULL; 720 compiler. GetMeta().GetUserProcs().Iterator_Reset();721 while( compiler. GetMeta().GetUserProcs().Iterator_HasNext() )720 compiler.objectModule.meta.GetUserProcs().Iterator_Reset(); 721 while( compiler.objectModule.meta.GetUserProcs().Iterator_HasNext() ) 722 722 { 723 pUserProc = compiler. GetMeta().GetUserProcs().Iterator_GetNext();723 pUserProc = compiler.objectModule.meta.GetUserProcs().Iterator_GetNext(); 724 724 725 725 if(rva_to_real(pUserProc->GetBeginOpAddress()) <= pobj_dti->lplpObp[i2] && -
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r248 r256 220 220 if(lpIndex==-1) lstrcpy(name,"VoidPtr"); 221 221 else{ 222 if( compiler. GetMeta().GetProcPointers()[lpIndex]->ReturnType().IsNull() )222 if( compiler.objectModule.meta.GetProcPointers()[lpIndex]->ReturnType().IsNull() ) 223 223 lstrcpy(name,"*Sub"); 224 224 else lstrcpy(name,"*Function"); … … 235 235 236 236 Type GetStringTypeInfo(){ 237 Type type( DEF_OBJECT, *compiler. GetMeta().GetClasses().GetStringClassPtr() );237 Type type( DEF_OBJECT, *compiler.objectModule.meta.GetClasses().GetStringClassPtr() ); 238 238 return type; 239 239 } … … 575 575 // 名前空間を分離 576 576 char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE]; 577 compiler. GetMeta().GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName );577 compiler.objectModule.meta.GetNamespaces().SplitNamespace( variable, namespaceStr, simpleName ); 578 578 579 579 // 先頭オブジェクトまたはクラス名と入れ子メンバに分割 … … 647 647 GetNowStaticVarFullName(VarName,temporary); 648 648 649 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temporary ) );649 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temporary ) ); 650 650 if( pVar ){ 651 651 goto ok; … … 667 667 } 668 668 669 int typeDefIndex = compiler. GetMeta().GetTypeDefs().GetIndex( VarName );669 int typeDefIndex = compiler.objectModule.meta.GetTypeDefs().GetIndex( VarName ); 670 670 if( typeDefIndex != -1 ){ 671 671 // TypeDef後の型名だったとき 672 lstrcpy( VarName, compiler. GetMeta().GetTypeDefs()[typeDefIndex].GetBaseName().c_str() );672 lstrcpy( VarName, compiler.objectModule.meta.GetTypeDefs()[typeDefIndex].GetBaseName().c_str() ); 673 673 } 674 674 … … 676 676 sprintf(temp2,"%s.%s",VarName,temporary); 677 677 678 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );678 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) ); 679 679 if( pVar ){ 680 680 lstrcpy(member,tempMember); … … 689 689 sprintf(temp2,"%s.%s",compiler.pCompilingClass->GetName().c_str(),VarName); 690 690 691 pVar = compiler. GetMeta().GetGlobalVars().Find( Symbol( temp2 ) );691 pVar = compiler.objectModule.meta.GetGlobalVars().Find( Symbol( temp2 ) ); 692 692 if( pVar ){ 693 693 goto ok; … … 700 700 //////////////////// 701 701 702 pVar = compiler. GetMeta().GetGlobalVars().BackSearch( Symbol( VarName ) );702 pVar = compiler.objectModule.meta.GetGlobalVars().BackSearch( Symbol( VarName ) ); 703 703 if( pVar ){ 704 704 goto ok; … … 973 973 extern int AllGlobalVarSize; 974 974 975 if( compiler. GetMeta().GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){975 if( compiler.objectModule.meta.GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){ 976 976 //2重定義のエラー 977 977 SetError(15,name,cp); … … 997 997 998 998 // 変数を追加 999 compiler. GetMeta().GetGlobalVars().push_back( pVar );999 compiler.objectModule.meta.GetGlobalVars().push_back( pVar ); 1000 1000 1001 1001 //アラインメントを考慮 … … 1105 1105 1106 1106 //定数と2重定義されていないる場合は抜け出す 1107 if(compiler. GetMeta().GetGlobalConsts().GetBasicType(VarName)){1107 if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){ 1108 1108 return; 1109 1109 } 1110 1110 1111 1111 //定数マクロとして定義されている場合は抜け出す 1112 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( VarName ) )1112 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) ) 1113 1113 { 1114 1114 return; … … 1126 1126 1127 1127 //定数と2重定義されていないかを調べる 1128 if(compiler. GetMeta().GetGlobalConsts().GetBasicType(VarName)){1128 if(compiler.objectModule.meta.GetGlobalConsts().GetBasicType(VarName)){ 1129 1129 SetError(15,VarName,cp); 1130 1130 return; … … 1132 1132 1133 1133 //定数マクロとして定義されている場合 1134 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( VarName ) ){1134 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( VarName ) ){ 1135 1135 SetError(15,VarName,cp); 1136 1136 return; -
trunk/abdev/BasicCompiler_Common/WatchList.cpp
r206 r256 440 440 /////////////////// 441 441 442 const Variable *pVar = compiler. GetMeta().GetGlobalVars().Find( VarName );442 const Variable *pVar = compiler.objectModule.meta.GetGlobalVars().Find( VarName ); 443 443 if( !pVar ){ 444 444 //一致しないとき -
trunk/abdev/BasicCompiler_Common/calculation.cpp
r254 r256 500 500 //定数関数 501 501 502 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( temporary );502 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary ); 503 503 if( !pConstMacro ) 504 504 { … … 665 665 ///////// 666 666 StrPtr[pnum]=0; 667 type[pnum] = compiler. GetMeta().GetGlobalConsts().GetBasicType(Parms);667 type[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Parms); 668 668 if(type[pnum]){ 669 669 if(IsRealNumberType(type[pnum])){ 670 670 //実数型 671 nums[pnum] = compiler. GetMeta().GetGlobalConsts().GetDoubleData(Parms);671 nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetDoubleData(Parms); 672 672 } 673 673 else if(IsWholeNumberType(type[pnum])){ 674 674 //整数 675 i64nums[pnum] = compiler. GetMeta().GetGlobalConsts().GetWholeData(Parms);675 i64nums[pnum] = compiler.objectModule.meta.GetGlobalConsts().GetWholeData(Parms); 676 676 } 677 677 /* else if(type[pnum]==DEF_STRING){ … … 1221 1221 1222 1222 //定数 1223 ConstMacro *pConstMacro = compiler. GetMeta().GetGlobalConstMacros().Find( temporary );1223 ConstMacro *pConstMacro = compiler.objectModule.meta.GetGlobalConstMacros().Find( temporary ); 1224 1224 if(pConstMacro){ 1225 1225 //マクロ関数の場合 … … 1231 1231 1232 1232 //定数 1233 i3 = compiler. GetMeta().GetGlobalConsts().GetBasicType(Command+i2);1233 i3 = compiler.objectModule.meta.GetGlobalConsts().GetBasicType(Command+i2); 1234 1234 if(i3==DEF_STRING) return 1; //文字列 1235 1235 if(i3) return 0; //数値 -
trunk/abdev/BasicCompiler_Common/hash.cpp
r209 r256 33 33 34 34 // ハッシュ値を取得 35 DllProc *pDllProc = compiler. GetMeta().GetDllProcs().GetHashArrayElement( simpleName );35 DllProc *pDllProc = compiler.objectModule.meta.GetDllProcs().GetHashArrayElement( simpleName ); 36 36 while(pDllProc){ 37 37 if( pDllProc->IsEqualSymbol( fullName ) ){ … … 74 74 } 75 75 else{ 76 pobj_c=compiler. GetMeta().GetClasses().Find(ObjName);76 pobj_c=compiler.objectModule.meta.GetClasses().Find(ObjName); 77 77 if( pobj_c ){ 78 78 isStatic = true; … … 107 107 108 108 // グローバル関数を検索 109 compiler. GetMeta().GetUserProcs().EnumGlobalProcs( NestMember, name, subs );109 compiler.objectModule.meta.GetUserProcs().EnumGlobalProcs( NestMember, name, subs ); 110 110 } 111 111 … … 151 151 152 152 const UserProc *GetClassMethod( const char *className, const char *methodName ){ 153 const CClass *pClass = compiler. GetMeta().GetClasses().Find( className );153 const CClass *pClass = compiler.objectModule.meta.GetClasses().Find( className ); 154 154 if( pClass ){ 155 155 vector<const UserProc *> userProcs; -
trunk/abdev/BasicCompiler_Common/include/BoostSerializationSupport.h
r215 r256 26 26 bool WriteXml( const string &xmlFilePath, bool isShowExceptionMessage = true ) const; 27 27 28 bool ReadBina ly( const string &filePath, bool isShowExceptionMessage = true );29 bool WriteBina ly( const string &filePath, bool isShowExceptionMessage = true ) const;28 bool ReadBinary( const string &filePath, bool isShowExceptionMessage = true ); 29 bool WriteBinary( const string &filePath, bool isShowExceptionMessage = true ) const; 30 30 31 31 bool ReadText( const string &filePath, bool isShowExceptionMessage = true ); -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r225 r256 3 3 #include <CodeGenerator.h> 4 4 #include <NamespaceSupporter.h> 5 #include <Meta Impl.h>5 #include <Meta.h> 6 6 #include <DataTable.h> 7 7 #include <CodeGenerator.h> 8 #include <Linker.h> 8 9 9 10 class Compiler … … 11 12 // 名前空間サポート 12 13 NamespaceSupporter namespaceSupporter; 13 14 // メタ情報15 MetaImpl metaImpl;16 17 // データテーブル18 DataTable dataTable;19 14 20 15 public: … … 25 20 } 26 21 27 MetaImpl &GetMeta() 28 { 29 return metaImpl; 30 } 31 32 DataTable &GetDataTable() 33 { 34 return dataTable; 35 } 36 37 // グローバル領域のネイティブコード 38 NativeCode globalNativeCode; 22 // オブジェクトモジュール 23 ObjectModule objectModule; 39 24 40 25 // コード生成機構 41 26 CodeGenerator codeGenerator; 27 28 // リンカ 29 Linker linker; 42 30 43 31 static bool StringToType( const std::string &typeName, Type &type ); -
trunk/abdev/BasicCompiler_Common/include/DataTable.h
r184 r256 1 1 #pragma once 2 3 #include <BoostSerializationSupport.h> 2 4 3 5 //DataTable.cpp 4 6 class DataTable{ 5 void *pdata;7 char *buffer; 6 8 int size; 7 9 10 // XMLシリアライズ用 11 private: 12 friend class boost::serialization::access; 13 BOOST_SERIALIZATION_SPLIT_MEMBER(); 14 template<class Archive> void load(Archive& ar, const unsigned int version) 15 { 16 std::string _buffer; 17 ar & BOOST_SERIALIZATION_NVP( _buffer ); 18 ar & BOOST_SERIALIZATION_NVP( size ); 19 20 // 読み込み後の処理 21 Realloc( size ); 22 for( int i=0; i<size; i++ ) 23 { 24 if( _buffer[i*3+2] != ',' ) 25 { 26 //エラー 27 DebugBreak(); 28 } 29 ULONG_PTR l; 30 sscanf( _buffer.c_str() + i*3, "%02x,", &l ); 31 buffer[i] = (char)l; 32 } 33 } 34 template<class Archive> void save(Archive& ar, const unsigned int version) const 35 { 36 // 保存準備 37 char *tempCode = (char *)calloc( (size+1) * 3, 1 ); 38 for( int i=0; i<size; i++ ) 39 { 40 char temp[32]; 41 sprintf( temp, "%02x,", (unsigned char)buffer[i] ); 42 tempCode[i*3] = temp[0]; 43 tempCode[i*3+1] = temp[1]; 44 tempCode[i*3+2] = temp[2]; 45 } 46 47 std::string _buffer = tempCode; 48 free( tempCode ); 49 50 ar & BOOST_SERIALIZATION_NVP( _buffer ); 51 ar & BOOST_SERIALIZATION_NVP( size ); 52 } 53 8 54 public: 9 DataTable(); 10 ~DataTable(); 11 void Init(); 55 DataTable() 56 : buffer( (char *)malloc(100) ) 57 , size( 0 ) 58 { 59 lstrcpy( buffer, "initialized!!!" ); 60 } 61 DataTable( const DataTable &dataTable ) 62 : buffer( (char *)malloc(100) ) 63 , size( 0 ) 64 { 65 lstrcpy( buffer, "initialized!!!" ); 66 AddBinary( dataTable.GetPtr(), dataTable.GetSize() ); 67 } 68 ~DataTable() 69 { 70 free( buffer ); 71 } 72 void Clear() 73 { 74 size = 0; 75 } 12 76 13 int AddBinary( const void *pdata, int size ); 77 void operator =( const DataTable &dataTable ) 78 { 79 Clear(); 80 AddBinary( dataTable.GetPtr(), dataTable.GetSize() ); 81 } 82 83 void Realloc( int size ); 84 int AddBinary( const void *buffer, int size ); 14 85 int Add( _int64 i64data ); 15 86 int Add( int i32data ); -
trunk/abdev/BasicCompiler_Common/include/Meta.h
r255 r256 11 11 #include <Const.h> 12 12 13 class Meta Impl : public Jenga::Common::BoostSerializationSupport<MetaImpl>13 class Meta 14 14 { 15 15 // 名前空間 … … 45 45 // XMLシリアライズ用 46 46 private: 47 virtual const char *RootTagName() const48 {49 return "metaImpl";50 }51 47 friend class boost::serialization::access; 52 48 template<class Archive> void serialize(Archive& ar, const unsigned int version) 53 49 { 54 trace_for_serialize( "serializing - Meta Impl" );50 trace_for_serialize( "serializing - Meta" ); 55 51 56 52 ar & BOOST_SERIALIZATION_NVP( namespaceScopesCollection ); … … 69 65 70 66 public: 71 Meta Impl()67 Meta() 72 68 : classesImpl() 73 69 , pNowClassesForDebugger( &classesImpl ) -
trunk/abdev/BasicCompiler_Common/include/NativeCode.h
r253 r256 39 39 template<class Archive> void serialize(Archive& ar, const unsigned int version) 40 40 { 41 trace_for_serialize( "serializing - Schedule" ); 42 41 43 ar & BOOST_SERIALIZATION_NVP( type ); 42 44 ar & BOOST_SERIALIZATION_NVP( offset ); … … 94 96 template<class Archive> void load(Archive& ar, const unsigned int version) 95 97 { 98 trace_for_serialize( "serializing(load) - NativeCode" ); 99 96 100 std::string code; 97 101 ar & BOOST_SERIALIZATION_NVP( code ); … … 103 107 for( int i=0; i<size; i++ ) 104 108 { 105 char c;106 sscanf( code.c_str() + i*3, "%02x,", & c);107 codeBuffer[i] = c;109 ULONG_PTR l; 110 sscanf( code.c_str() + i*3, "%02x,", &l ); 111 codeBuffer[i] = (char)l; 108 112 } 109 113 } 110 114 template<class Archive> void save(Archive& ar, const unsigned int version) const 111 115 { 116 trace_for_serialize( "serializing(save) - NativeCode" ); 117 112 118 // 保存準備 113 char *tempCode = (char *) malloc( (size+1) * 3);119 char *tempCode = (char *)calloc( (size+1) * 3, 1 ); 114 120 for( int i=0; i<size; i++ ) 115 121 { 116 122 char temp[32]; 117 sprintf( temp, "%02x,", codeBuffer[i] );123 sprintf( temp, "%02x,", (unsigned char)codeBuffer[i] ); 118 124 tempCode[i*3] = temp[0]; 119 125 tempCode[i*3+1] = temp[1]; … … 130 136 131 137 132 void Realloc( int additionSize = 0)133 { 134 if( allocateSize < size + 8192 + additionSize)135 { 136 while( allocateSize < size + 8192 + additionSize)138 void Realloc( int newSize ) 139 { 140 if( allocateSize < newSize + 8192 ) 141 { 142 while( allocateSize < newSize + 8192 ) 137 143 { 138 144 allocateSize += 8192; … … 149 155 { 150 156 } 157 NativeCode( const NativeCode &nativeCode ) 158 : allocateSize( 8192 ) 159 , codeBuffer( (char *)malloc( allocateSize ) ) 160 , size( 0 ) 161 { 162 Put( nativeCode ); 163 } 151 164 NativeCode( const char *codeBuffer, int size ) 152 165 : allocateSize( 8192 ) … … 165 178 } 166 179 180 void operator =( const NativeCode &nativeCode ) 181 { 182 Clear(); 183 Put( nativeCode ); 184 } 185 167 186 int GetSize() const 168 187 { … … 203 222 void Put( const char *codeBuffer, int size ) 204 223 { 205 Realloc( size );224 Realloc( this->size + size ); 206 225 207 226 memcpy( this->codeBuffer + this->size, codeBuffer, size ); … … 268 287 void Put( char c ) 269 288 { 289 Realloc( size + 1 ); 270 290 codeBuffer[size++] = c; 271 Realloc();272 291 273 292 -
trunk/abdev/BasicCompiler_Common/include/SmoothieImpl.h
r206 r256 3 3 #include <jenga/include/smoothie/Smoothie.h> 4 4 5 #include <Meta Impl.h>5 #include <Meta.h> 6 6 7 7 class SmoothieImpl : public Smoothie -
trunk/abdev/BasicCompiler_Common/src/BoostSerializationSupport.cpp
r215 r256 17 17 #include <BoostSerializationSupport.h> 18 18 19 #include <MetaImpl.h>20 #include <logger.h>21 22 19 #include <windows.h> 23 20 … … 119 116 } 120 117 121 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBina ly( const string &filePath, bool isShowExceptionMessage )118 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadBinary( const string &filePath, bool isShowExceptionMessage ) 122 119 { 123 120 // 入力アーカイブの作成 … … 157 154 return true; 158 155 } 159 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBina ly( const string &filePath, bool isShowExceptionMessage ) const156 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteBinary( const string &filePath, bool isShowExceptionMessage ) const 160 157 { 161 158 // 出力アーカイブの作成 … … 301 298 302 299 303 template class Jenga::Common::BoostSerializationSupport<MetaImpl>; 300 #include <Compiler.h> 301 #include <logger.h> 302 303 template class Jenga::Common::BoostSerializationSupport<ObjectModule>; 304 304 template class Jenga::Common::BoostSerializationSupport<LoggerSetting>; -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r232 r256 189 189 190 190 //継承元クラスを取得 191 const CClass *pInheritsClass = compiler. GetMeta().GetClasses().Find(temporary);191 const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary); 192 192 if( !pInheritsClass ){ 193 193 SmoothieException::Throw(106,temporary,nowLine); … … 219 219 if( !isInheritsClass ){ 220 220 // クラスを一つも継承していないとき 221 const CClass *pObjectClass = compiler. GetMeta().GetClasses().Find("Object");221 const CClass *pObjectClass = compiler.objectModule.meta.GetClasses().Find("Object"); 222 222 if( !pObjectClass ){ 223 223 SmoothieException::Throw(106,"Object",i); … … 243 243 244 244 //継承元クラスを取得 245 const CClass *pInheritsClass = compiler. GetMeta().GetClasses().Find(temporary);245 const CClass *pInheritsClass = compiler.objectModule.meta.GetClasses().Find(temporary); 246 246 if( !pInheritsClass ){ 247 247 SmoothieException::Throw(106,temporary,nowLine); … … 282 282 //継承先が読み取られていないとき 283 283 pobj_LoopRefCheck->add(this->GetName().c_str()); 284 compiler. GetMeta().GetClasses().GetClass_recur(inheritsClass.GetName().c_str());284 compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsClass.GetName().c_str()); 285 285 pobj_LoopRefCheck->del(this->GetName().c_str()); 286 286 } … … 344 344 //継承先が読み取られていないとき 345 345 pobj_LoopRefCheck->add(this->GetName().c_str()); 346 compiler. GetMeta().GetClasses().GetClass_recur(inheritsInterface.GetName().c_str());346 compiler.objectModule.meta.GetClasses().GetClass_recur(inheritsInterface.GetName().c_str()); 347 347 pobj_LoopRefCheck->del(this->GetName().c_str()); 348 348 } … … 427 427 428 428 //関数ハッシュへ登録 429 UserProc *pUserProc = compiler. GetMeta().GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) );429 UserProc *pUserProc = compiler.objectModule.meta.GetUserProcs().Add( NamespaceScopes(), NamespaceScopesCollection(), buffer,nowLine,isVirtual,pobj_c, (bStatic!=0) ); 430 430 if(!pUserProc) return; 431 431 … … 716 716 } 717 717 718 vtbl_offset=compiler. GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));718 vtbl_offset=compiler.objectModule.dataTable.AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR)); 719 719 720 720 for( int i=0; i < GetVtblNum(); i++ ){ … … 730 730 731 731 LONG_PTR *pVtbl; 732 pVtbl=(LONG_PTR *)((char *)compiler. GetDataTable().GetPtr()+vtbl_offset);732 pVtbl=(LONG_PTR *)((char *)compiler.objectModule.dataTable.GetPtr()+vtbl_offset); 733 733 734 734 int i; … … 831 831 832 832 // Blittable型管理オブジェクトを初期化 833 compiler. GetMeta().GetBlittableTypes().clear();833 compiler.objectModule.meta.GetBlittableTypes().clear(); 834 834 835 835 // 名前空間管理 … … 951 951 952 952 // Blittable型として登録 953 compiler. GetMeta().GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) );953 compiler.objectModule.meta.GetBlittableTypes().push_back( BlittableType( blittableType, pClass ) ); 954 954 } 955 955 } … … 1656 1656 1657 1657 // TypeDefも見る 1658 int index = compiler. GetMeta().GetTypeDefs().GetIndex( namespaceScopes, name );1658 int index = compiler.objectModule.meta.GetTypeDefs().GetIndex( namespaceScopes, name ); 1659 1659 if( index != -1 ){ 1660 Type type = compiler. GetMeta().GetTypeDefs()[index].GetBaseType();1660 Type type = compiler.objectModule.meta.GetTypeDefs()[index].GetBaseType(); 1661 1661 if( type.IsObject() ){ 1662 1662 return &type.GetClass(); -
trunk/abdev/BasicCompiler_Common/src/Compiler.cpp
r206 r256 16 16 //関数ポインタ(*Function) 17 17 type.SetBasicType( DEF_PTR_PROC ); 18 type.SetIndex( compiler. GetMeta().GetProcPointers().Add( typeName ) );18 type.SetIndex( compiler.objectModule.meta.GetProcPointers().Add( typeName ) ); 19 19 return true; 20 20 } … … 42 42 // Object型だったとき 43 43 if( typeName == "Object" ){ 44 type.SetType( DEF_OBJECT, compiler. GetMeta().GetClasses().GetObjectClassPtr() );44 type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetObjectClassPtr() ); 45 45 return true; 46 46 } … … 48 48 // String型だったとき 49 49 if( typeName == "String" ){ 50 type.SetType( DEF_OBJECT, compiler. GetMeta().GetClasses().GetStringClassPtr() );50 type.SetType( DEF_OBJECT, compiler.objectModule.meta.GetClasses().GetStringClassPtr() ); 51 51 return true; 52 52 } … … 56 56 // TypeDefされた型 57 57 //////////////////// 58 int i=compiler. GetMeta().GetTypeDefs().GetIndex( typeName );58 int i=compiler.objectModule.meta.GetTypeDefs().GetIndex( typeName ); 59 59 if(i!=-1){ 60 type = compiler. GetMeta().GetTypeDefs()[i].GetBaseType();60 type = compiler.objectModule.meta.GetTypeDefs()[i].GetBaseType(); 61 61 return true; 62 62 } 63 63 64 64 //クラス 65 const CClass *pobj_c = compiler. GetMeta().GetClasses().Find( typeName );65 const CClass *pobj_c = compiler.objectModule.meta.GetClasses().Find( typeName ); 66 66 if(pobj_c){ 67 67 type.SetClassPtr( pobj_c ); … … 104 104 } 105 105 else{ 106 if( compiler. GetMeta().GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){106 if( compiler.objectModule.meta.GetProcPointers()[type.GetIndex()]->ReturnType().IsNull() ){ 107 107 return "*Sub"; 108 108 } -
trunk/abdev/BasicCompiler_Common/src/Const.cpp
r254 r256 28 28 29 29 //重複チェック 30 if( compiler. GetMeta().GetGlobalConstMacros().IsExist( name )31 || compiler. GetMeta().GetGlobalConsts().IsExist( name ) )30 if( compiler.objectModule.meta.GetGlobalConstMacros().IsExist( name ) 31 || compiler.objectModule.meta.GetGlobalConsts().IsExist( name ) ) 32 32 { 33 33 SetError(15,name,cp); … … 38 38 //定数マクロ 39 39 40 compiler. GetMeta().GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i );40 compiler.objectModule.meta.GetGlobalConstMacros().Add( namespaceScopes, name, buffer + i ); 41 41 } 42 42 else{ … … 44 44 char *expression = buffer + i + 1; 45 45 46 compiler. GetMeta().GetGlobalConsts().Add( namespaceScopes, name, expression );46 compiler.objectModule.meta.GetGlobalConsts().Add( namespaceScopes, name, expression ); 47 47 } 48 48 } -
trunk/abdev/BasicCompiler_Common/src/DataTable.cpp
r206 r256 8 8 #include <stdlib.h> 9 9 10 DataTable::DataTable(){ 11 pdata = malloc( 1 ); 12 size = 0; 13 } 14 DataTable::~DataTable(){ 15 free( pdata ); 10 void DataTable::Realloc( int size ) 11 { 12 this->buffer = (char *)realloc( this->buffer, size + 100 ); 13 this->size = size; 16 14 } 17 15 18 void DataTable::Init(){ 19 free( pdata ); 20 21 pdata = malloc( 1 ); 22 size = 0; 23 } 24 25 int DataTable::AddBinary( const void *pdata, int size ){ 16 int DataTable::AddBinary( const void *buffer, int size ){ 26 17 int retSize = this->size; 27 18 28 this->pdata = realloc( this->pdata, this->size + size ); 29 memcpy( (char *)this->pdata + this->size, pdata, size ); 30 this->size += size; 19 Realloc( this->size + size ); 20 memcpy( (char *)this->buffer + retSize, buffer, size ); 31 21 32 22 return retSize; … … 89 79 const void *DataTable::GetPtr() const 90 80 { 91 return pdata;81 return buffer; 92 82 } 93 83 int DataTable::GetSize() const -
trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp
r254 r256 72 72 73 73 Variables &vars = UserProc::IsGlobalAreaCompiling() ? 74 compiler. GetMeta().GetGlobalVars() :74 compiler.objectModule.meta.GetGlobalVars() : 75 75 UserProc::CompilingUserProc().GetLocalVars(); 76 76 … … 98 98 99 99 Variables &vars = UserProc::IsGlobalAreaCompiling() ? 100 compiler. GetMeta().GetGlobalVars() :100 compiler.objectModule.meta.GetGlobalVars() : 101 101 UserProc::CompilingUserProc().GetLocalVars(); 102 102 -
trunk/abdev/BasicCompiler_Common/src/NamespaceSupporter.cpp
r206 r256 9 9 { 10 10 NamespaceScopes namespaceScopes( namespaceStr ); 11 if( !compiler. GetMeta().GetNamespaces().IsExist( namespaceScopes ) ){11 if( !compiler.objectModule.meta.GetNamespaces().IsExist( namespaceScopes ) ){ 12 12 return false; 13 13 }
Note:
See TracChangeset
for help on using the changeset viewer.