Changeset 180 in dev for trunk


Ignore:
Timestamp:
Jun 21, 2007, 3:26:21 AM (17 years ago)
Author:
dai_9181
Message:

Meta::GetClassesメソッドを追加

Location:
trunk/jenga
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/jenga/include/smoothie/Class.h

    r173 r180  
    315315    BOOL MemberVar_LoopRefCheck(const CClass &objClass);
    316316public:
    317     void GetAllClassInfo(void);
    318     void Compile_System_InitializeUserTypes();
     317
     318    // 実体収集
     319    virtual void CollectClassesForNameOnly( const BasicSource &source ) = 0;
     320    virtual void GetAllClassInfo() = 0;
     321    virtual void Compile_System_InitializeUserTypes() = 0;
     322    virtual void InitStaticMember() = 0;
    319323
    320324
  • trunk/jenga/include/smoothie/Member.h

    r171 r180  
    7575    {
    7676    }
    77     static void InitStaticMember(void);
    7877};
    7978typedef std::vector<CMember *> Members;
  • trunk/jenga/include/smoothie/ObjectModule.h

    r172 r180  
    88// プロジェクト中に存在するメタ情報
    99class Meta{
     10    Classes *pClasses;
    1011public:
     12
     13    Meta( Classes *pNewClasses )
     14        : pClasses( pNewClasses )
     15    {
     16    }
     17    ~Meta()
     18    {
     19        delete pClasses;
     20    }
     21
    1122    // 名前空間
    1223    NamespaceScopesCollection namespaceScopesCollection;
    1324
    1425    // クラス
    15     Classes classes;
     26    Classes &GetClasses()
     27    {
     28        return *pClasses;
     29    }
    1630
    1731    // TypeDef
  • trunk/jenga/src/smoothie/Class.cpp

    r173 r180  
    140140
    141141        //継承元クラスを取得
    142         const CClass *pInheritsClass = Smoothie::meta.classes.Find(temporary);
     142        const CClass *pInheritsClass = Smoothie::meta.GetClasses().Find(temporary);
    143143        if( !pInheritsClass ){
    144144            throw SmoothieException(106,temporary,nowLine);
     
    170170    if( !isInheritsClass ){
    171171        // クラスを一つも継承していないとき
    172         const CClass *pObjectClass = Smoothie::meta.classes.Find("Object");
     172        const CClass *pObjectClass = Smoothie::meta.GetClasses().Find("Object");
    173173        if( !pObjectClass ){
    174174            throw SmoothieException(106,"Object",i);
     
    194194
    195195        //継承元クラスを取得
    196         const CClass *pInheritsClass = Smoothie::meta.classes.Find(temporary);
     196        const CClass *pInheritsClass = Smoothie::meta.GetClasses().Find(temporary);
    197197        if( !pInheritsClass ){
    198198            throw SmoothieException(106,temporary,nowLine);
     
    234234        //継承先が読み取られていないとき
    235235        pobj_LoopRefCheck->add(this->GetName().c_str());
    236         Smoothie::meta.classes.GetClass_recur(inheritsClass.GetName().c_str());
     236        Smoothie::meta.GetClasses().GetClass_recur(inheritsClass.GetName().c_str());
    237237        pobj_LoopRefCheck->del(this->GetName().c_str());
    238238    }
     
    296296        //継承先が読み取られていないとき
    297297        pobj_LoopRefCheck->add(this->GetName().c_str());
    298         Smoothie::meta.classes.GetClass_recur(inheritsInterface.GetName().c_str());
     298        Smoothie::meta.GetClasses().GetClass_recur(inheritsInterface.GetName().c_str());
    299299        pobj_LoopRefCheck->del(this->GetName().c_str());
    300300    }
  • trunk/jenga/src/smoothie/Smoothie.cpp

    r174 r180  
    44NamespaceScopes Smoothie::Lexical::liveingNamespaceScopes;
    55
    6 Meta Smoothie::meta;
    76NamespaceScopesCollection Smoothie::Temp::importedNamespaces;
    87const CClass *Smoothie::Temp::pCompilingClass = NULL;
  • trunk/jenga/src/smoothie/Type.cpp

    r173 r180  
    9393    // Object型だったとき
    9494    if( typeName == "Object" ){
    95         type.SetType( DEF_OBJECT, Smoothie::meta.classes.GetObjectClassPtr() );
     95        type.SetType( DEF_OBJECT, Smoothie::meta.GetClasses().GetObjectClassPtr() );
    9696        return true;
    9797    }
     
    9999    // String型だったとき
    100100    if( typeName == "String" ){
    101         type.SetType( DEF_OBJECT, Smoothie::meta.classes.GetStringClassPtr() );
     101        type.SetType( DEF_OBJECT, Smoothie::meta.GetClasses().GetStringClassPtr() );
    102102        return true;
    103103    }
     
    114114
    115115    //クラス
    116     const CClass *pobj_c = Smoothie::meta.classes.Find( typeName );
     116    const CClass *pobj_c = Smoothie::meta.GetClasses().Find( typeName );
    117117    if(pobj_c){
    118118        type.pClass = pobj_c;
     
    539539
    540540Type Type::String(){
    541     return Type( DEF_OBJECT, *Smoothie::meta.classes.GetStringClassPtr() );
     541    return Type( DEF_OBJECT, *Smoothie::meta.GetClasses().GetStringClassPtr() );
    542542}*/
    543543
Note: See TracChangeset for help on using the changeset viewer.