Changeset 159 in dev for trunk/abdev/BasicCompiler_Common


Ignore:
Timestamp:
Jun 17, 2007, 4:44:57 AM (17 years ago)
Author:
dai_9181
Message:

プロジェクト内を整理。jengaライブラリのベースを作成。

Location:
trunk/abdev/BasicCompiler_Common
Files:
1 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/Class.cpp

    r143 r159  
    77#endif
    88
    9 CDBClass *pobj_DBClass;
     9Classes *pobj_DBClass;
    1010
    1111const CClass *pobj_CompilingClass;
     
    588588
    589589
    590 int CDBClass::hash(const char *name) const{
     590int Classes::hash(const char *name) const{
    591591    int key;
    592592
     
    598598}
    599599
    600 void CDBClass::DestroyClass(CClass *pobj_c){
     600void Classes::DestroyClass(CClass *pobj_c){
    601601    if(pobj_c->pobj_NextClass){
    602602        DestroyClass(pobj_c->pobj_NextClass);
     
    606606}
    607607
    608 CDBClass::CDBClass():
     608Classes::Classes():
    609609    pStringClass( NULL ),
    610610    pObjectClass( NULL ),
     
    617617    memset( pobj_ClassHash, 0, MAX_CLASS_HASH * sizeof(CClass *) );
    618618}
    619 CDBClass::~CDBClass(){
     619Classes::~Classes(){
    620620    int i;
    621621    for(i=0;i<MAX_CLASS_HASH;i++){
     
    626626}
    627627
    628 void CDBClass::ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection){
     628void Classes::ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection){
    629629    int i;
    630630    for(i=0;i<MAX_CLASS_HASH;i++){
     
    642642}
    643643
    644 const CClass *CDBClass::Find( const NamespaceScopes &namespaceScopes, const string &name ) const
     644const CClass *Classes::Find( const NamespaceScopes &namespaceScopes, const string &name ) const
    645645{
    646646    int key;
     
    669669
    670670    // TypeDefも見る
    671     int index = Smoothie::Meta::typeDefs.GetIndex( namespaceScopes, name );
     671    int index = Smoothie::meta.typeDefs.GetIndex( namespaceScopes, name );
    672672    if( index != -1 ){
    673         Type type = Smoothie::Meta::typeDefs[index].GetBaseType();
     673        Type type = Smoothie::meta.typeDefs[index].GetBaseType();
    674674        if( type.IsObject() ){
    675675            return &type.GetClass();
     
    679679    return NULL;
    680680}
    681 const CClass *CDBClass::Find( const string &fullName ) const
     681const CClass *Classes::Find( const string &fullName ) const
    682682{
    683683    char AreaName[VN_SIZE] = "";        //オブジェクト変数
     
    688688}
    689689
    690 CClass *CDBClass::AddClass( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine){
     690CClass *Classes::AddClass( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine){
    691691    //////////////////////////////////////////////////////////////////////////
    692692    // クラスを追加
     
    735735}
    736736
    737 void CDBClass::InitNames(void){
     737void Classes::InitNames(void){
    738738    extern char *basbuf;
    739739    int i, i2;
     
    741741
    742742    // Blittable型管理オブジェクトを初期化
    743     Smoothie::Meta::blittableTypes.clear();
     743    Smoothie::meta.blittableTypes.clear();
    744744
    745745    // 名前空間管理
     
    858858
    859859                    // Blittable型として登録
    860                     Smoothie::Meta::blittableTypes.push_back( BlittableType( blittableType, pClass ) );
    861                 }
    862         }
    863     }
    864 }
    865 
    866 
    867 void CDBClass::AddMethod(CClass *pobj_c, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract,
     860                    Smoothie::meta.blittableTypes.push_back( BlittableType( blittableType, pClass ) );
     861                }
     862        }
     863    }
     864}
     865
     866
     867void Classes::AddMethod(CClass *pobj_c, Prototype::Accessibility accessibility, BOOL bStatic, bool isConst, bool isAbstract,
    868868                         bool isVirtual, bool isOverride, char *buffer, int nowLine){
    869869    int i,i2;
     
    987987}
    988988
    989 BOOL CDBClass::MemberVar_LoopRefCheck(const CClass &objClass){
     989BOOL Classes::MemberVar_LoopRefCheck(const CClass &objClass){
    990990    int i2,bRet=1;
    991991    BOOST_FOREACH( CMember *pMember, objClass.dynamicMembers ){
     
    10101010}
    10111011
    1012 void CDBClass::GetClass_recur(const char *lpszInheritsClass){
     1012void Classes::GetClass_recur(const char *lpszInheritsClass){
    10131013    extern char *basbuf;
    10141014    int i,i2,i3,sub_address,top_pos;
     
    14611461}
    14621462
    1463 void CDBClass::GetAllClassInfo(void){
     1463void Classes::GetAllClassInfo(void){
    14641464    //ループ継承チェック用のクラス
    14651465    pobj_LoopRefCheck=new CLoopRefCheck();
     
    14751475}
    14761476
    1477 void CDBClass::Compile_System_InitializeUserTypes(){
     1477void Classes::Compile_System_InitializeUserTypes(){
    14781478    char temporary[VN_SIZE];
    14791479
     
    16041604
    16051605
    1606 CClass *CDBClass::GetStringClassPtr() const
     1606CClass *Classes::GetStringClassPtr() const
    16071607{
    16081608    if( !pStringClass ){
     
    16121612    return pStringClass;
    16131613}
    1614 CClass *CDBClass::GetObjectClassPtr() const
     1614CClass *Classes::GetObjectClassPtr() const
    16151615{
    16161616    if( !pObjectClass ){
     
    16211621}
    16221622
    1623 void CDBClass::StartCompile( UserProc *pUserProc ){
     1623void Classes::StartCompile( UserProc *pUserProc ){
    16241624    pCompilingClass = pUserProc->GetParentClassPtr();
    16251625    if( pCompilingClass ){
     
    16381638    }
    16391639}
    1640 const CClass *CDBClass::GetNowCompilingClass() const
     1640const CClass *Classes::GetNowCompilingClass() const
    16411641{
    16421642    return pCompilingClass;
    16431643}
    1644 const CMethod *CDBClass::GetNowCompilingMethodInfo(){
     1644const CMethod *Classes::GetNowCompilingMethodInfo(){
    16451645    return pCompilingMethod;
    16461646}
     
    16531653//////////////////////
    16541654
    1655 void CDBClass::Iterator_Init(void){
     1655void Classes::Iterator_Init(void){
    16561656    if(ppobj_IteClass) HeapDefaultFree(ppobj_IteClass);
    16571657
     
    16761676    }
    16771677}
    1678 void CDBClass::Iterator_Reset(void){
     1678void Classes::Iterator_Reset(void){
    16791679    iIteNextNum = 0;
    16801680}
    1681 BOOL CDBClass::Iterator_HasNext(void){
     1681BOOL Classes::Iterator_HasNext(void){
    16821682    if(iIteNextNum<iIteMaxNum) return 1;
    16831683    return 0;
    16841684}
    1685 CClass *CDBClass::Iterator_GetNext(void){
     1685CClass *Classes::Iterator_GetNext(void){
    16861686    CClass *pobj_c;
    16871687    pobj_c=ppobj_IteClass[iIteNextNum];
     
    16891689    return pobj_c;
    16901690}
    1691 int CDBClass::Iterator_GetMaxCount(void){
     1691int Classes::Iterator_GetMaxCount(void){
    16921692    return iIteMaxNum;
    16931693}
  • trunk/abdev/BasicCompiler_Common/Class.h

    r141 r159  
    99#include "Procedure.h"
    1010
    11 class CDBClass;
     11class Classes;
    1212class CDebugSection;
    1313class CClass;
     
    3535{
    3636    friend CMember;
    37     friend CDBClass;
     37    friend Classes;
    3838    friend CDebugSection;
    3939
     
    234234
    235235#define MAX_CLASS_HASH 65535
    236 class CDBClass{
     236class Classes{
    237237    int hash(const char *name) const;
    238238    void DestroyClass(CClass *pobj_c);
     
    240240    CClass *pobj_ClassHash[MAX_CLASS_HASH];
    241241
    242     CDBClass();
    243     ~CDBClass();
     242    Classes();
     243    ~Classes();
    244244
    245245    const CClass *Find( const string &fullName ) const;
     
    301301
    302302
    303 extern CDBClass *pobj_DBClass;
     303extern Classes *pobj_DBClass;
    304304extern const CClass *pobj_CompilingClass;
  • trunk/abdev/BasicCompiler_Common/DebugMiddleFile.cpp

    r141 r159  
    115115
    116116    //イテレータをリセット
    117     extern CDBClass *pobj_DBClass;
     117    extern Classes *pobj_DBClass;
    118118    pobj_DBClass->Iterator_Reset();
    119119
     
    136136    // TypeDef情報
    137137    //////////////////
    138     *(long *)(buffer+i2)=(int)Smoothie::Meta::typeDefs.size();
    139     i2+=sizeof(long);
    140     for(i3=0;i3<(int)Smoothie::Meta::typeDefs.size();i3++){
    141         lstrcpy(buffer+i2,Smoothie::Meta::typeDefs[i3].GetName().c_str() );
    142         i2+=lstrlen(buffer+i2)+1;
    143 
    144         lstrcpy(buffer+i2,Smoothie::Meta::typeDefs[i3].GetBaseName().c_str() );
     138    *(long *)(buffer+i2)=(int)Smoothie::meta.typeDefs.size();
     139    i2+=sizeof(long);
     140    for(i3=0;i3<(int)Smoothie::meta.typeDefs.size();i3++){
     141        lstrcpy(buffer+i2,Smoothie::meta.typeDefs[i3].GetName().c_str() );
     142        i2+=lstrlen(buffer+i2)+1;
     143
     144        lstrcpy(buffer+i2,Smoothie::meta.typeDefs[i3].GetBaseName().c_str() );
    145145        i2+=lstrlen(buffer+i2)+1;
    146146
     
    482482    ///////////////////////////////////////////
    483483
    484     this->pobj_DBClass=new CDBClass();
     484    this->pobj_DBClass=new Classes();
    485485
    486486    int iMaxClassCount;
     
    494494    }
    495495
    496     extern CDBClass *pobj_DBClass;
     496    extern Classes *pobj_DBClass;
    497497    pobj_DBClass=this->pobj_DBClass;
    498498
     
    503503
    504504    //初期化
    505     Smoothie::Meta::typeDefs.clear();
     505    Smoothie::meta.typeDefs.clear();
    506506
    507507    //個数を取得
     
    513513
    514514        // 名前空間に未対応
    515         Smoothie::Meta::typeDefs.push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2 ) );
     515        Smoothie::meta.typeDefs.push_back( TypeDef( NamespaceScopes(), temp5, buffer+i2 ) );
    516516
    517517        i2+=lstrlen(buffer+i2)+1;
     
    943943
    944944    // クラス情報
    945     extern CDBClass *pobj_DBClass;
     945    extern Classes *pobj_DBClass;
    946946    pobj_DBClass=this->pobj_DBClass;
    947947
  • trunk/abdev/BasicCompiler_Common/DebugSection.h

    r100 r159  
    3232
    3333    // クラス情報
    34     CDBClass *pobj_DBClass;
     34    Classes *pobj_DBClass;
    3535
    3636    //定数を取得
  • trunk/abdev/BasicCompiler_Common/Diagnose.cpp

    r135 r159  
    6363
    6464        // イテレータをリセット
    65         extern CDBClass *pobj_DBClass;
     65        extern Classes *pobj_DBClass;
    6666        pobj_DBClass->Iterator_Reset();
    6767
     
    103103
    104104        // イテレータをリセット
    105         extern CDBClass *pobj_DBClass;
     105        extern Classes *pobj_DBClass;
    106106        pobj_DBClass->Iterator_Reset();
    107107
  • trunk/abdev/BasicCompiler_Common/NumOpe_GetType.cpp

    r135 r159  
    323323        Type leftType;
    324324        if( GetTermType( termLeft, leftType, isLiteral, &isClassName ) ){
    325             if( isClassName == false && Smoothie::Meta::blittableTypes.IsExist( leftType ) ){
     325            if( isClassName == false && Smoothie::meta.blittableTypes.IsExist( leftType ) ){
    326326                // 左側のオブジェクト部分がBlittable型のとき
    327327
     
    329329                lstrcpy( temporary, termLeft );
    330330                sprintf( termLeft, "%s(%s)",
    331                     Smoothie::Meta::blittableTypes.Find( leftType ).GetCreateStaticMethodFullName().c_str(),
     331                    Smoothie::meta.blittableTypes.Find( leftType ).GetCreateStaticMethodFullName().c_str(),
    332332                    temporary );
    333333
  • trunk/abdev/BasicCompiler_Common/Subroutine.cpp

    r143 r159  
    199199        GetVarType(fullCallName,type,false);
    200200
    201         ProcPointer *pProcPtr = Smoothie::Meta::procPointers[type.GetIndex()];
     201        ProcPointer *pProcPtr = Smoothie::meta.procPointers[type.GetIndex()];
    202202        resultType = pProcPtr->ReturnType();
    203203
     
    869869    pProcPointer->SetParamsAndReturnType( paramStr.c_str(), nowLine );
    870870
    871     Smoothie::Meta::procPointers.push_back( pProcPointer );
    872 
    873     return (int)Smoothie::Meta::procPointers.size()-1;
     871    Smoothie::meta.procPointers.push_back( pProcPointer );
     872
     873    return (int)Smoothie::meta.procPointers.size()-1;
    874874}
    875875void DeleteProcPtrInfo(void){
    876     BOOST_FOREACH( ProcPointer *pProcPointer, Smoothie::Meta::procPointers ){
     876    BOOST_FOREACH( ProcPointer *pProcPointer, Smoothie::meta.procPointers ){
    877877        delete pProcPointer;
    878878    }
    879879
    880     Smoothie::Meta::procPointers.clear();
     880    Smoothie::meta.procPointers.clear();
    881881}
    882882
  • trunk/abdev/BasicCompiler_Common/Type.cpp

    r140 r159  
    102102    // TypeDefされた型
    103103    ////////////////////
    104     int i=Smoothie::Meta::typeDefs.GetIndex( typeName );
     104    int i=Smoothie::meta.typeDefs.GetIndex( typeName );
    105105    if(i!=-1){
    106         type = Smoothie::Meta::typeDefs[i].GetBaseType();
     106        type = Smoothie::meta.typeDefs[i].GetBaseType();
    107107        return true;
    108108    }
     
    502502        }
    503503        else{
    504             if( Smoothie::Meta::procPointers[index]->ReturnType().IsNull() ){
     504            if( Smoothie::meta.procPointers[index]->ReturnType().IsNull() ){
    505505                return "*Sub";
    506506            }
  • trunk/abdev/BasicCompiler_Common/VariableOpe.cpp

    r140 r159  
    220220        if(lpIndex==-1) lstrcpy(name,"VoidPtr");
    221221        else{
    222             if( Smoothie::Meta::procPointers[lpIndex]->ReturnType().IsNull() )
     222            if( Smoothie::meta.procPointers[lpIndex]->ReturnType().IsNull() )
    223223                lstrcpy(name,"*Sub");
    224224            else lstrcpy(name,"*Function");
     
    645645    // 名前空間を分離
    646646    char namespaceStr[VN_SIZE]="", simpleName[VN_SIZE];
    647     Smoothie::Meta::namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
     647    Smoothie::meta.namespaceScopesCollection.SplitNamespace( variable, namespaceStr, simpleName );
    648648
    649649    // 先頭オブジェクトまたはクラス名と入れ子メンバに分割
     
    738738        }
    739739
    740         int typeDefIndex = Smoothie::Meta::typeDefs.GetIndex( VarName );
     740        int typeDefIndex = Smoothie::meta.typeDefs.GetIndex( VarName );
    741741        if( typeDefIndex != -1 ){
    742742            // TypeDef後の型名だったとき
    743             lstrcpy( VarName, Smoothie::Meta::typeDefs[typeDefIndex].GetBaseName().c_str() );
     743            lstrcpy( VarName, Smoothie::meta.typeDefs[typeDefIndex].GetBaseName().c_str() );
    744744        }
    745745
  • trunk/abdev/BasicCompiler_Common/include/Smoothie.h

    r143 r159  
    22
    33#include "Source.h"
    4 #include "../TypeDef.h"
    5 #include "Namespace.h"
     4#include "ObjectModule.h"
    65
    76class Smoothie{
     
    3332    };
    3433
    35     // プロジェクト中に存在するメタ情報
    36     class Meta{
    37     public:
    38         // 名前空間
    39         static NamespaceScopesCollection namespaceScopesCollection;
    40 
    41         // クラス
    42 
    43         // TypeDef
    44         static TypeDefCollection typeDefs;
    45 
    46         // 関数ポインタ
    47         static vector<ProcPointer *> procPointers;
    48 
    49         // blittable型
    50         static BlittableTypes blittableTypes;
    51     };
    52 
    5334    // コンパイル中に一時的に利用する
    5435    class Temp{
     
    5839    };
    5940
     41    // プロジェクト中に存在するメタ情報
     42    static Meta meta;
     43
    6044    static bool isFullCompile;
    6145};
  • trunk/abdev/BasicCompiler_Common/src/Member.cpp

    r138 r159  
    5757
    5858    //イテレータをリセット
    59     extern CDBClass *pobj_DBClass;
     59    extern Classes *pobj_DBClass;
    6060    pobj_DBClass->Iterator_Reset();
    6161
  • trunk/abdev/BasicCompiler_Common/src/Namespace.cpp

    r143 r159  
    103103void NamespaceScopesCollection::Imports( const string &namespaceStr ){
    104104    NamespaceScopes namespaceScopes( namespaceStr );
    105     if( !Smoothie::Meta::namespaceScopesCollection.IsExist( namespaceScopes ) ){
     105    if( !Smoothie::meta.namespaceScopesCollection.IsExist( namespaceScopes ) ){
    106106        SetError(64,namespaceStr.c_str(),cp );
    107107        return;
  • trunk/abdev/BasicCompiler_Common/src/Smoothie.cpp

    r143 r159  
    1919NamespaceScopes Smoothie::Lexical::liveingNamespaceScopes;
    2020
    21 TypeDefCollection Smoothie::Meta::typeDefs;
    22 vector<ProcPointer *> Smoothie::Meta::procPointers;
    23 NamespaceScopesCollection Smoothie::Meta::namespaceScopesCollection;
     21Meta Smoothie::meta;
    2422NamespaceScopesCollection Smoothie::Temp::importedNamespaces;
    25 BlittableTypes Smoothie::Meta::blittableTypes;
    2623
    2724bool Smoothie::isFullCompile = false;
Note: See TracChangeset for help on using the changeset viewer.